Merge m-c to autoland
authorPhil Ringnalda <philringnalda@gmail.com>
Mon, 20 Feb 2017 20:32:46 -0800
changeset 372965 1a10c7d3712eed83d87166f8bc19742a355e8861
parent 372964 840ecb1c7d655ac18ccd8193c08bb61bfeb37720 (current diff)
parent 372951 d84beb192e57e26846c82d3df3599381f4663792 (diff)
child 372966 0fe3d1b34c11b23cc4c2273b843303cd79de8d76
push id10863
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 23:02:23 +0000
treeherdermozilla-aurora@0931190cd725 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone54.0a1
Merge m-c to autoland
testing/web-platform/meta/FileAPI/blob/Blob-close.html.ini
testing/web-platform/meta/IndexedDB/open-request-queue.html.ini
testing/web-platform/meta/XMLHttpRequest/setrequestheader-bogus-value.htm.ini
testing/web-platform/meta/dom/events/ProgressEvent.html.ini
testing/web-platform/meta/eventsource/interfaces.html.ini
testing/web-platform/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-exceptions.html.ini
testing/web-platform/meta/html/semantics/forms/the-input-element/time-2.html.ini
testing/web-platform/meta/html/semantics/forms/the-input-element/week.html.ini
testing/web-platform/meta/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html.ini
testing/web-platform/meta/html/syntax/parsing/html5lib_innerHTML_foreign-fragment.html.ini
testing/web-platform/meta/html/syntax/parsing/html5lib_template.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html.ini
testing/web-platform/meta/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html.ini
testing/web-platform/meta/old-tests/submission/Opera/script_scheduling/096.html.ini
testing/web-platform/meta/old-tests/submission/Opera/script_scheduling/098.html.ini
testing/web-platform/meta/old-tests/submission/Opera/script_scheduling/128.html.ini
testing/web-platform/meta/preload/download_resources.html.ini
testing/web-platform/meta/preload/dynamic_adding_preload.html.ini
testing/web-platform/meta/preload/fetch_destination.https.html.ini
testing/web-platform/meta/preload/link_header_preload.html.ini
testing/web-platform/meta/preload/onerror_event.html.ini
testing/web-platform/meta/preload/onload_event.html.ini
testing/web-platform/meta/preload/preload_with_type.html.ini
testing/web-platform/meta/preload/single_download_preload.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/getAvailability_mixedcontent.https.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/getAvailability_sandboxing_error.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/reconnectToPresentation_mixedcontent.https.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/reconnectToPresentation_sandboxing_error.html.ini
testing/web-platform/meta/selection/addRange.html.ini
testing/web-platform/meta/selection/collapse.html.ini
testing/web-platform/meta/selection/extend.html.ini
testing/web-platform/meta/streams/byte-length-queuing-strategy.https.html.ini
testing/web-platform/meta/streams/count-queuing-strategy.https.html.ini
testing/web-platform/meta/streams/readable-streams/bad-strategies.https.html.ini
testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.https.html.ini
testing/web-platform/meta/streams/readable-streams/brand-checks.https.html.ini
testing/web-platform/meta/streams/readable-streams/cancel.https.html.ini
testing/web-platform/meta/streams/readable-streams/count-queuing-strategy-integration.https.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.https.html.ini
testing/web-platform/meta/streams/readable-streams/general.https.html.ini
testing/web-platform/meta/streams/readable-streams/pipe-through.https.html.ini
testing/web-platform/meta/streams/readable-streams/readable-stream-reader.https.html.ini
testing/web-platform/meta/streams/readable-streams/tee.https.html.ini
testing/web-platform/meta/streams/readable-streams/templated.https.html.ini
testing/web-platform/meta/vr/idlharness.html.ini
testing/web-platform/tests/FileAPI/blob/Blob-close.html
testing/web-platform/tests/docs/configuration.md
testing/web-platform/tests/docs/css-metadata.md
testing/web-platform/tests/docs/css-naming.md
testing/web-platform/tests/docs/css-user-styles.md
testing/web-platform/tests/docs/github-101.md
testing/web-platform/tests/docs/lint-tool.md
testing/web-platform/tests/docs/manual-test.md
testing/web-platform/tests/docs/reftests.md
testing/web-platform/tests/docs/review-checklist.md
testing/web-platform/tests/docs/review-process.md
testing/web-platform/tests/docs/running_tests.md
testing/web-platform/tests/docs/submission-process.md
testing/web-platform/tests/docs/test-format-guidelines.md
testing/web-platform/tests/docs/test-style-guidelines.md
testing/web-platform/tests/docs/test-templates.md
testing/web-platform/tests/dom/events/ProgressEvent.html
testing/web-platform/tests/fullscreen/api/blank.html
testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/MANIFEST
testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/MANIFEST
testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/MANIFEST
testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/MANIFEST
testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/prompt/MANIFEST
testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/unload/MANIFEST
testing/web-platform/tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-exceptions.html
testing/web-platform/tests/html/browsers/windows/browsing-context-names/MANIFEST
testing/web-platform/tests/html/browsers/windows/nested-browsing-contexts/MANIFEST
testing/web-platform/tests/html/rendering/bindings/the-button-element-0/.gitkeep
testing/web-platform/tests/html/rendering/bindings/the-keygen-element-0/.gitkeep
testing/web-platform/tests/html/semantics/forms/the-keygen-element/.gitkeep
testing/web-platform/tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner-ref.html
testing/web-platform/tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html
testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html
testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/098.html
testing/web-platform/tests/preload/avoid_delaying_onload_link_preload.html
testing/web-platform/tests/preload/delaying_onload_link_preload_after_discovery.html
testing/web-platform/tests/preload/download_resources.html
testing/web-platform/tests/preload/dynamic_adding_preload.html
testing/web-platform/tests/preload/fetch_destination.https.html
testing/web-platform/tests/preload/link_header_preload.html
testing/web-platform/tests/preload/link_header_preload.html.headers
testing/web-platform/tests/preload/link_header_preload_delay_onload.html
testing/web-platform/tests/preload/link_header_preload_delay_onload.html.headers
testing/web-platform/tests/preload/onerror_event.html
testing/web-platform/tests/preload/onload_event.html
testing/web-platform/tests/preload/preload_with_type.html
testing/web-platform/tests/preload/single_download_late_used_preload.html
testing/web-platform/tests/preload/single_download_preload.html
testing/web-platform/tests/presentation-api/controlling-ua/getAvailability_mixedcontent.https.html
testing/web-platform/tests/presentation-api/controlling-ua/getAvailability_sandboxing_error.html
testing/web-platform/tests/presentation-api/controlling-ua/reconnectToPresentation_mixedcontent.https.html
testing/web-platform/tests/presentation-api/controlling-ua/reconnectToPresentation_sandboxing_error.html
testing/web-platform/tests/presentation-api/controlling-ua/startNewPresentation_mixedcontent-manual.https.html
testing/web-platform/tests/presentation-api/controlling-ua/startNewPresentation_mixedcontent_multiple-manual.https.html
testing/web-platform/tests/presentation-api/controlling-ua/startNewPresentation_sandboxing_error-manual.html
testing/web-platform/tests/selection/addRange.html
testing/web-platform/tests/selection/collapse.html
testing/web-platform/tests/selection/extend.html
testing/web-platform/tests/streams/byte-length-queuing-strategy.https.html
testing/web-platform/tests/streams/count-queuing-strategy.https.html
testing/web-platform/tests/streams/readable-streams/bad-strategies.https.html
testing/web-platform/tests/streams/readable-streams/bad-underlying-sources.https.html
testing/web-platform/tests/streams/readable-streams/brand-checks.https.html
testing/web-platform/tests/streams/readable-streams/cancel.https.html
testing/web-platform/tests/streams/readable-streams/count-queuing-strategy-integration.https.html
testing/web-platform/tests/streams/readable-streams/garbage-collection.https.html
testing/web-platform/tests/streams/readable-streams/general.https.html
testing/web-platform/tests/streams/readable-streams/pipe-through.https.html
testing/web-platform/tests/streams/readable-streams/readable-stream-reader.https.html
testing/web-platform/tests/streams/readable-streams/tee.https.html
testing/web-platform/tests/streams/readable-streams/templated.https.html
testing/web-platform/tests/streams/resources/test-initializer.js
testing/web-platform/tests/vr/idlharness.html
testing/web-platform/tests/websockets/Close-0.htm
testing/web-platform/tests/websockets/Close-NaN.htm
testing/web-platform/tests/websockets/Close-clamp.htm
testing/web-platform/tests/websockets/Close-null.htm
testing/web-platform/tests/websockets/Close-string.htm
testing/web-platform/tests/websockets/Secure-Close-0.htm
testing/web-platform/tests/websockets/Secure-Close-NaN.htm
testing/web-platform/tests/websockets/Secure-Close-null.htm
testing/web-platform/tests/websockets/Secure-Close-string.htm
--- a/accessible/atk/AccessibleWrap.cpp
+++ b/accessible/atk/AccessibleWrap.cpp
@@ -609,18 +609,17 @@ getNameCB(AtkObject* aAtkObj)
 
   return aAtkObj->name;
 }
 
 static void
 MaybeFireNameChange(AtkObject* aAtkObj, const nsString& aNewName)
 {
   NS_ConvertUTF16toUTF8 newNameUTF8(aNewName);
-  if (aAtkObj->name &&
-      !strncmp(aAtkObj->name, newNameUTF8.get(), newNameUTF8.Length()))
+  if (aAtkObj->name && !strcmp(aAtkObj->name, newNameUTF8.get()))
     return;
 
   // Below we duplicate the functionality of atk_object_set_name(),
   // but without calling atk_object_get_name(). Instead of
   // atk_object_get_name() we directly access aAtkObj->name. This is because
   // atk_object_get_name() would call getNameCB() which would call
   // MaybeFireNameChange() (or atk_object_set_name() before this problem was
   // fixed) and we would get an infinite recursion.
--- a/browser/base/content/test/popupNotifications/browser_popupNotification_5.js
+++ b/browser/base/content/test/popupNotifications/browser_popupNotification_5.js
@@ -190,16 +190,17 @@ var tests = [
       this.notification = showNotification(notifyObj);
       yield shown;
 
       ok(notifyObj.shownCallbackTriggered, "Should have triggered the shown event");
       ok(notifyObj.showingCallbackTriggered, "Should have triggered the showing event");
       // Reset to false so that we can ensure these are not fired a second time.
       notifyObj.shownCallbackTriggered = false;
       notifyObj.showingCallbackTriggered = false;
+      let timeShown = this.notification.timeShown;
 
       let promiseWin = BrowserTestUtils.waitForNewWindow();
       gBrowser.replaceTabWithWindow(firstTab);
       let win = yield promiseWin;
 
       let anchor = win.document.getElementById("default-notification-icon");
       win.PopupNotifications._reshowNotifications(anchor);
       ok(win.PopupNotifications.panel.childNodes.length == 0,
@@ -213,16 +214,18 @@ var tests = [
       ok(PopupNotifications.isPanelOpen,
          "Should have kept the popup on the first window");
       ok(!notifyObj.dismissalCallbackTriggered,
          "Should not have triggered a dismissed event");
       ok(!notifyObj.shownCallbackTriggered,
          "Should not have triggered a second shown event");
       ok(!notifyObj.showingCallbackTriggered,
          "Should not have triggered a second showing event");
+      ok(this.notification.timeShown > timeShown,
+         "should have updated timeShown to restart the security delay");
 
       this.notification.remove();
       gBrowser.removeTab(gBrowser.selectedTab);
       gBrowser.selectedTab = this.oldSelectedTab;
 
       goNext();
     }
   },
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -49,16 +49,17 @@
 #include "nsScriptNameSpaceManager.h"
 #include "nsISlowScriptDebug.h"
 #include "nsWindowMemoryReporter.h"
 #include "WindowNamedPropertiesHandler.h"
 #include "nsFrameSelection.h"
 #include "nsNetUtil.h"
 #include "nsVariant.h"
 #include "nsPrintfCString.h"
+#include "mozilla/intl/LocaleService.h"
 
 // Helper Classes
 #include "nsJSUtils.h"
 #include "jsapi.h"              // for JSAutoRequest
 #include "jswrapper.h"
 #include "nsCharSeparatedTokenizer.h"
 #include "nsReadableUtils.h"
 #include "nsDOMClassInfo.h"
@@ -14912,11 +14913,22 @@ nsGlobalWindow::GetPaintWorklet(ErrorRes
     }
 
     mPaintWorklet = new Worklet(AsInner(), principal, Worklet::ePaintWorklet);
   }
 
   return mPaintWorklet;
 }
 
+void
+nsGlobalWindow::GetAppLocales(nsTArray<nsString>& aLocales)
+{
+  nsTArray<nsCString> appLocales;
+  mozilla::intl::LocaleService::GetInstance()->GetAppLocales(appLocales);
+
+  for (uint32_t i = 0; i < appLocales.Length(); i++) {
+    aLocales.AppendElement(NS_ConvertUTF8toUTF16(appLocales[i]));
+  }
+}
+
 template class nsPIDOMWindow<mozIDOMWindowProxy>;
 template class nsPIDOMWindow<mozIDOMWindow>;
 template class nsPIDOMWindow<nsISupports>;
--- a/dom/base/nsGlobalWindow.h
+++ b/dom/base/nsGlobalWindow.h
@@ -942,16 +942,19 @@ public:
   ConvertDialogOptions(const nsAString& aOptions, nsAString& aResult);
 
   mozilla::dom::Worklet*
   GetAudioWorklet(mozilla::ErrorResult& aRv);
 
   mozilla::dom::Worklet*
   GetPaintWorklet(mozilla::ErrorResult& aRv);
 
+  void
+  GetAppLocales(nsTArray<nsString>& aLocales);
+
 protected:
   bool AlertOrConfirm(bool aAlert, const nsAString& aMessage,
                       nsIPrincipal& aSubjectPrincipal,
                       mozilla::ErrorResult& aError);
 
 public:
   void Alert(nsIPrincipal& aSubjectPrincipal,
              mozilla::ErrorResult& aError);
--- a/dom/events/test/pointerevents/test_bug1285128.html
+++ b/dom/events/test/pointerevents/test_bug1285128.html
@@ -36,13 +36,15 @@ function runTests() {
     SimpleTest.finish();
   });
 
   synthesizeMouseAtCenter(target0, { type: "mousemove",
                                      inputSource: SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_MOUSE,
                                      isWidgetEventSynthesized: true });
 }
 
-SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true]]}, runTests);
+SimpleTest.waitForFocus(() => {
+  SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true]]}, runTests);
+});
 
 </script>
 </body>
 </html>
--- a/dom/events/test/pointerevents/test_bug1303704.html
+++ b/dom/events/test/pointerevents/test_bug1303704.html
@@ -42,13 +42,15 @@ function runTests() {
   synthesizeMouseAtCenter(link1, { type: "mousedown",
                                    inputSource: SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_MOUSE });
   synthesizeMouseAtCenter(link1, { type: "mousemove",
                                    inputSource: SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_MOUSE });
   synthesizeMouseAtCenter(link1, { type: "mouseup",
                                    inputSource: SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_MOUSE });
 }
 
-SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true]]}, runTests);
+SimpleTest.waitForFocus(() => {
+  SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true]]}, runTests);
+});
 
 </script>
 </body>
 </html>
--- a/dom/events/test/pointerevents/test_bug1315862.html
+++ b/dom/events/test/pointerevents/test_bug1315862.html
@@ -54,13 +54,15 @@ function runTests() {
   synthesizeMouse(target, 5, 5, { type: "mousedown", inputSource: source },
                   iframe.contentWindow);
   synthesizeMouse(target, 5, 5, { type: "mousemove", inputSource: source },
                   iframe.contentWindow);
   synthesizeMouse(target, 5, 5, { type: "mouseup", inputSource: source },
                   iframe.contentWindow);
 }
 
-SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true]]}, runTests);
+SimpleTest.waitForFocus(() => {
+  SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true]]}, runTests);
+});
 
 </script>
 </body>
 </html>
--- a/dom/tests/mochitest/chrome/chrome.ini
+++ b/dom/tests/mochitest/chrome/chrome.ini
@@ -82,8 +82,9 @@ skip-if = os == 'linux'
 [test_sandbox_postMessage.html]
 [test_selectAtPoint.html]
 [test_sizemode_attribute.xul]
 tags = fullscreen
 skip-if = os != 'win'
 [test_subscript_bindings.xul]
 [test_xray_event_constructor.xul]
 [test_clipboard_events_chrome.html]
+[test_window_getAppLocales.html]
new file mode 100644
--- /dev/null
+++ b/dom/tests/mochitest/chrome/test_window_getAppLocales.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1337234
+-->
+<head>
+  <title>Test for Bug 1337234</title>
+  <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1337234">Mozilla Bug 1337234</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+<script>
+
+let appLocales = window.getAppLocales();
+ok(appLocales.length > 0, "getAppLocales returns at least one locale.");
+is(appLocales[0], "en-US", "The first app locale should be en-US.");
+
+</script>
+</body>
+</html>
--- a/dom/webidl/Window.webidl
+++ b/dom/webidl/Window.webidl
@@ -514,8 +514,23 @@ callback IdleRequestCallback = void (Idl
  * WARNING: Do not use this unless you are familiar with the issues that
  * taking opener state into account is designed to address (or else you may
  * introduce security issues).  If in doubt, use |isSecureContext|.  In
  * particular do not use this to gate access to JavaScript APIs.
  */
 partial interface Window {
   [ChromeOnly] readonly attribute boolean isSecureContextIfOpenerIgnored;
 };
+
+partial interface Window {
+/**
+  * Returns a list of locales that the application should be localized to.
+  *
+  * The result is a sorted list of valid locale IDs and it should be
+  * used for all APIs that accept list of locales, like ECMA402 and L10n APIs.
+  *
+  * This API always returns at least one locale.
+  *
+  * Example: ["en-US", "de", "pl", "sr-Cyrl", "zh-Hans-HK"]
+  */
+  [Func="IsChromeOrXBL"]
+  sequence<DOMString> getAppLocales();
+};
--- a/dom/workers/ScriptLoader.cpp
+++ b/dom/workers/ScriptLoader.cpp
@@ -1204,39 +1204,38 @@ private:
                                      loadInfo.mScriptTextLength);
     if (NS_SUCCEEDED(rv) && IsMainWorkerScript()) {
       nsCOMPtr<nsIURI> finalURI;
       rv = NS_NewURI(getter_AddRefs(finalURI), loadInfo.mFullURL, nullptr, nullptr);
       if (NS_SUCCEEDED(rv)) {
         mWorkerPrivate->SetBaseURI(finalURI);
       }
 
-      nsILoadGroup* loadGroup = mWorkerPrivate->GetLoadGroup();
-      MOZ_DIAGNOSTIC_ASSERT(loadGroup);
-
 #if defined(DEBUG) || !defined(RELEASE_OR_BETA)
       nsIPrincipal* principal = mWorkerPrivate->GetPrincipal();
       MOZ_DIAGNOSTIC_ASSERT(principal);
 
       bool equal = false;
       MOZ_ALWAYS_SUCCEEDS(responsePrincipal->Equals(principal, &equal));
       MOZ_DIAGNOSTIC_ASSERT(equal);
 
       nsCOMPtr<nsIContentSecurityPolicy> csp;
       MOZ_ALWAYS_SUCCEEDS(responsePrincipal->GetCsp(getter_AddRefs(csp)));
       MOZ_DIAGNOSTIC_ASSERT(!csp);
 #endif
 
       mWorkerPrivate->InitChannelInfo(aChannelInfo);
 
-      // Override the principal on the WorkerPrivate.  We just asserted that
-      // this is the same as our current WorkerPrivate principal, so this is
-      // almost a no-op.  We must do, it though, in order to avoid accidentally
-      // propagating the CSP object back to the ServiceWorkerRegistration
-      // principal.  If bug 965637 is fixed then this can be removed.
+      nsILoadGroup* loadGroup = mWorkerPrivate->GetLoadGroup();
+      MOZ_DIAGNOSTIC_ASSERT(loadGroup);
+
+      // Override the principal on the WorkerPrivate.  This is only necessary
+      // in order to get a principal with exactly the correct URL.  The fetch
+      // referrer logic depends on the WorkerPrivate principal having a URL
+      // that matches the worker script URL.
       rv = mWorkerPrivate->SetPrincipalOnMainThread(responsePrincipal, loadGroup);
       MOZ_DIAGNOSTIC_ASSERT(NS_SUCCEEDED(rv));
 
       rv = mWorkerPrivate->SetCSPFromHeaderValues(aCSPHeaderValue,
                                                   aCSPReportOnlyHeaderValue);
       MOZ_DIAGNOSTIC_ASSERT(NS_SUCCEEDED(rv));
     }
 
--- a/dom/workers/ServiceWorkerInfo.h
+++ b/dom/workers/ServiceWorkerInfo.h
@@ -67,17 +67,17 @@ public:
   class ServiceWorkerPrivate*
   WorkerPrivate() const
   {
     MOZ_ASSERT(mServiceWorkerPrivate);
     return mServiceWorkerPrivate;
   }
 
   nsIPrincipal*
-  GetPrincipal() const
+  Principal() const
   {
     return mPrincipal;
   }
 
   const nsCString&
   ScriptSpec() const
   {
     return mScriptSpec;
--- a/dom/workers/ServiceWorkerManager.cpp
+++ b/dom/workers/ServiceWorkerManager.cpp
@@ -1012,17 +1012,17 @@ ServiceWorkerManager::SendPushEvent(cons
   }
 
   ServiceWorkerInfo* serviceWorker = GetActiveWorkerInfoForScope(attrs, aScope);
   if (NS_WARN_IF(!serviceWorker)) {
     return NS_ERROR_FAILURE;
   }
 
   RefPtr<ServiceWorkerRegistrationInfo> registration =
-    GetRegistration(serviceWorker->GetPrincipal(), aScope);
+    GetRegistration(serviceWorker->Principal(), aScope);
   MOZ_DIAGNOSTIC_ASSERT(registration);
 
   return serviceWorker->WorkerPrivate()->SendPushEvent(aMessageId, aData,
                                                        registration);
 }
 
 NS_IMETHODIMP
 ServiceWorkerManager::SendPushSubscriptionChangeEvent(const nsACString& aOriginAttributes,
@@ -1372,17 +1372,17 @@ ServiceWorkerManager::NotifyUnregister(n
 
 void
 ServiceWorkerManager::WorkerIsIdle(ServiceWorkerInfo* aWorker)
 {
   AssertIsOnMainThread();
   MOZ_DIAGNOSTIC_ASSERT(aWorker);
 
   RefPtr<ServiceWorkerRegistrationInfo> reg =
-    GetRegistration(aWorker->GetPrincipal(), aWorker->Scope());
+    GetRegistration(aWorker->Principal(), aWorker->Scope());
   if (!reg) {
     return;
   }
 
   if (reg->GetActive() != aWorker) {
     return;
   }
 
@@ -3201,58 +3201,29 @@ ServiceWorkerManager::GetRegistration(co
   return reg.forget();
 }
 
 already_AddRefed<ServiceWorkerRegistrationInfo>
 ServiceWorkerManager::CreateNewRegistration(const nsCString& aScope,
                                             nsIPrincipal* aPrincipal,
                                             nsLoadFlags aLoadFlags)
 {
-  nsresult rv;
-
 #ifdef DEBUG
   AssertIsOnMainThread();
   nsCOMPtr<nsIURI> scopeURI;
-  rv = NS_NewURI(getter_AddRefs(scopeURI), aScope, nullptr, nullptr);
+  nsresult rv = NS_NewURI(getter_AddRefs(scopeURI), aScope, nullptr, nullptr);
   MOZ_ASSERT(NS_SUCCEEDED(rv));
 
   RefPtr<ServiceWorkerRegistrationInfo> tmp =
     GetRegistration(aPrincipal, aScope);
   MOZ_ASSERT(!tmp);
 #endif
 
-  // The environment that registers the document may have some CSP applied
-  // to its principal.  This should not be inherited by the registration
-  // itself or the worker it creates.  To avoid confusion in callsites
-  // downstream we strip the CSP from the principal now.
-  //
-  // Unfortunately there is no API to clone a principal without its CSP.  To
-  // achieve the same thing we serialize to the IPC PrincipalInfo type and
-  // back to an nsIPrincipal.
-  PrincipalInfo principalInfo;
-  rv = PrincipalToPrincipalInfo(aPrincipal, &principalInfo);
-  if (NS_WARN_IF(NS_FAILED(rv))) {
-    return nullptr;
-  }
-
-  nsCOMPtr<nsIPrincipal> cleanPrincipal =
-    PrincipalInfoToPrincipal(principalInfo, &rv);
-  if (NS_WARN_IF(NS_FAILED(rv))) {
-    return nullptr;
-  }
-
-  // Verify that we do not have any CSP set on our principal "clone".
-#if defined(DEBUG) || !defined(RELEASE_OR_BETA)
-  nsCOMPtr<nsIContentSecurityPolicy> csp;
-  MOZ_ALWAYS_SUCCEEDS(cleanPrincipal->GetCsp(getter_AddRefs(csp)));
-  MOZ_DIAGNOSTIC_ASSERT(!csp);
-#endif
-
   RefPtr<ServiceWorkerRegistrationInfo> registration =
-    new ServiceWorkerRegistrationInfo(aScope, cleanPrincipal, aLoadFlags);
+    new ServiceWorkerRegistrationInfo(aScope, aPrincipal, aLoadFlags);
   // From now on ownership of registration is with
   // mServiceWorkerRegistrationInfos.
   AddScopeAndRegistration(aScope, registration);
   return registration.forget();
 }
 
 void
 ServiceWorkerManager::MaybeRemoveRegistration(ServiceWorkerRegistrationInfo* aRegistration)
--- a/dom/workers/ServiceWorkerPrivate.cpp
+++ b/dom/workers/ServiceWorkerPrivate.cpp
@@ -1608,17 +1608,17 @@ ServiceWorkerPrivate::SendFetchEvent(nsI
   AssertIsOnMainThread();
 
   RefPtr<ServiceWorkerManager> swm = ServiceWorkerManager::GetInstance();
   if (NS_WARN_IF(!mInfo || !swm)) {
     return NS_ERROR_FAILURE;
   }
 
   RefPtr<ServiceWorkerRegistrationInfo> registration =
-    swm->GetRegistration(mInfo->GetPrincipal(), mInfo->Scope());
+    swm->GetRegistration(mInfo->Principal(), mInfo->Scope());
 
   // Its possible the registration is removed between starting the interception
   // and actually dispatching the fetch event.  In these cases we simply
   // want to restart the original network request.  Since this is a normal
   // condition we handle the reset here instead of returning an error which
   // would in turn trigger a console report.
   if (!registration) {
     aChannel->ResetInterception();
@@ -1731,33 +1731,45 @@ ServiceWorkerPrivate::SpawnWorkerIfNeede
   info.mLoadFlags = mInfo->GetLoadFlags() |
                     nsIChannel::LOAD_BYPASS_SERVICE_WORKER;
 
   rv = info.mBaseURI->GetHost(info.mDomain);
   if (NS_WARN_IF(NS_FAILED(rv))) {
     return rv;
   }
 
-  info.mPrincipal = mInfo->GetPrincipal();
+  nsCOMPtr<nsIURI> uri;
+  rv = mInfo->Principal()->GetURI(getter_AddRefs(uri));
+  if (NS_WARN_IF(NS_FAILED(rv))) {
+    return rv;
+  }
+
+  if (NS_WARN_IF(!uri)) {
+    return NS_ERROR_FAILURE;
+  }
+
+  // Create a pristine codebase principal to avoid any possibility of inheriting
+  // CSP values.  The principal on the registration may be polluted with CSP
+  // from the registering page or other places the principal is passed.  If
+  // bug 965637 is ever fixed this can be removed.
+  info.mPrincipal =
+    BasePrincipal::CreateCodebasePrincipal(uri, mInfo->GetOriginAttributes());
+  if (NS_WARN_IF(!info.mPrincipal)) {
+    return NS_ERROR_FAILURE;
+  }
 
   nsContentUtils::StorageAccess access =
     nsContentUtils::StorageAllowedForPrincipal(info.mPrincipal);
   info.mStorageAllowed = access > nsContentUtils::StorageAccess::ePrivateBrowsing;
   info.mOriginAttributes = mInfo->GetOriginAttributes();
 
-  // The ServiceWorkerRegistration principal should never have any CSP
-  // set.  The CSP from the page that registered the SW should not be
-  // inherited.  Verify this is the case in non-release builds
+  // Verify that we don't have any CSP on pristine principal.
 #if defined(DEBUG) || !defined(RELEASE_OR_BETA)
   nsCOMPtr<nsIContentSecurityPolicy> csp;
-  rv = info.mPrincipal->GetCsp(getter_AddRefs(csp));
-  if (NS_WARN_IF(NS_FAILED(rv))) {
-    return rv;
-  }
-
+  Unused << info.mPrincipal->GetCsp(getter_AddRefs(csp));
   MOZ_DIAGNOSTIC_ASSERT(!csp);
 #endif
 
   // Default CSP permissions for now.  These will be overrided if necessary
   // based on the script CSP headers during load in ScriptLoader.
   info.mEvalAllowed = true;
   info.mReportCSPViolations = false;
 
--- a/gfx/thebes/gfxPrefs.h
+++ b/gfx/thebes/gfxPrefs.h
@@ -378,16 +378,17 @@ private:
 
   DECL_GFX_PREF(Once, "gfx.device-reset.limit",                DeviceResetLimitCount, int32_t, 10);
   DECL_GFX_PREF(Once, "gfx.device-reset.threshold-ms",         DeviceResetThresholdMilliseconds, int32_t, -1);
 
   DECL_GFX_PREF(Once, "gfx.direct2d.disabled",                 Direct2DDisabled, bool, false);
   DECL_GFX_PREF(Once, "gfx.direct2d.force-enabled",            Direct2DForceEnabled, bool, false);
   DECL_GFX_PREF(Live, "gfx.direct3d11.reuse-decoder-device",   Direct3D11ReuseDecoderDevice, int32_t, -1);
   DECL_GFX_PREF(Live, "gfx.direct3d11.allow-intel-mutex",      Direct3D11AllowIntelMutex, bool, true);
+  DECL_GFX_PREF(Live, "gfx.downloadable_fonts.keep_variation_tables", KeepVariationTables, bool, false);
   DECL_GFX_PREF(Live, "gfx.downloadable_fonts.otl_validation", ValidateOTLTables, bool, true);
   DECL_GFX_PREF(Live, "gfx.draw-color-bars",                   CompositorDrawColorBars, bool, false);
   DECL_GFX_PREF(Once, "gfx.e10s.hide-plugins-for-scroll",      HidePluginsForScroll, bool, true);
   DECL_GFX_PREF(Live, "gfx.layerscope.enabled",                LayerScopeEnabled, bool, false);
   DECL_GFX_PREF(Live, "gfx.layerscope.port",                   LayerScopePort, int32_t, 23456);
   // Note that        "gfx.logging.level" is defined in Logging.h.
   DECL_GFX_PREF(Live, "gfx.logging.level",                     GfxLoggingLevel, int32_t, mozilla::gfx::LOG_DEFAULT);
   DECL_GFX_PREF(Once, "gfx.logging.crash.length",              GfxLoggingCrashLength, uint32_t, 16);
--- a/gfx/thebes/gfxUserFontSet.cpp
+++ b/gfx/thebes/gfxUserFontSet.cpp
@@ -176,25 +176,35 @@ gfxUserFontEntry::CreateFontInstance(con
 
 class gfxOTSContext : public ots::OTSContext {
 public:
     explicit gfxOTSContext(gfxUserFontEntry* aUserFontEntry)
         : mUserFontEntry(aUserFontEntry)
     {
         // Whether to apply OTS validation to OpenType Layout tables
         mCheckOTLTables = gfxPrefs::ValidateOTLTables();
+        // Whether to preserve Variation tables in downloaded fonts
+        mKeepVariationTables = gfxPrefs::KeepVariationTables();
     }
 
     virtual ots::TableAction GetTableAction(uint32_t aTag) override {
         // Preserve Graphite, color glyph and SVG tables,
-        // and possibly OTL tables (depending on pref)
+        // and possibly OTL and Variation tables (depending on prefs)
         if ((!mCheckOTLTables &&
              (aTag == TRUETYPE_TAG('G', 'D', 'E', 'F') ||
               aTag == TRUETYPE_TAG('G', 'P', 'O', 'S') ||
               aTag == TRUETYPE_TAG('G', 'S', 'U', 'B'))) ||
+            (mKeepVariationTables &&
+             (aTag == TRUETYPE_TAG('a', 'v', 'a', 'r') ||
+              aTag == TRUETYPE_TAG('c', 'v', 'a', 'r') ||
+              aTag == TRUETYPE_TAG('f', 'v', 'a', 'r') ||
+              aTag == TRUETYPE_TAG('g', 'v', 'a', 'r') ||
+              aTag == TRUETYPE_TAG('H', 'V', 'A', 'R') ||
+              aTag == TRUETYPE_TAG('M', 'V', 'A', 'R') ||
+              aTag == TRUETYPE_TAG('V', 'V', 'A', 'R'))) ||
             aTag == TRUETYPE_TAG('S', 'i', 'l', 'f') ||
             aTag == TRUETYPE_TAG('S', 'i', 'l', 'l') ||
             aTag == TRUETYPE_TAG('G', 'l', 'o', 'c') ||
             aTag == TRUETYPE_TAG('G', 'l', 'a', 't') ||
             aTag == TRUETYPE_TAG('F', 'e', 'a', 't') ||
             aTag == TRUETYPE_TAG('S', 'V', 'G', ' ') ||
             aTag == TRUETYPE_TAG('C', 'O', 'L', 'R') ||
             aTag == TRUETYPE_TAG('C', 'P', 'A', 'L')) {
@@ -224,16 +234,17 @@ public:
 
         mUserFontEntry->mFontSet->LogMessage(mUserFontEntry, msg.get());
     }
 
 private:
     gfxUserFontEntry* mUserFontEntry;
     nsTHashtable<nsCStringHashKey> mWarningsIssued;
     bool mCheckOTLTables;
+    bool mKeepVariationTables;
 };
 
 // Call the OTS library to sanitize an sfnt before attempting to use it.
 // Returns a newly-allocated block, or nullptr in case of fatal errors.
 const uint8_t*
 gfxUserFontEntry::SanitizeOpenTypeData(const uint8_t* aData,
                                        uint32_t       aLength,
                                        uint32_t&      aSaneLength,
--- a/intl/locale/LocaleService.cpp
+++ b/intl/locale/LocaleService.cpp
@@ -1,16 +1,15 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "LocaleService.h"
 
-#include "jsapi.h"
 #include "mozilla/ClearOnShutdown.h"
 #include "mozilla/Services.h"
 #include "nsIObserverService.h"
 #include "nsIToolkitChromeRegistry.h"
 
 using namespace mozilla::intl;
 
 NS_IMPL_ISUPPORTS(LocaleService, mozILocaleService)
@@ -74,35 +73,29 @@ LocaleService::Refresh()
     }
   }
 }
 
 /**
  * mozILocaleService methods
  */
 NS_IMETHODIMP
-LocaleService::GetAppLocales(JSContext* aCtx, JS::MutableHandleValue aRetVal)
+LocaleService::GetAppLocales(uint32_t* aCount, char*** aOutArray)
 {
   if (mAppLocales.IsEmpty()) {
     ReadAppLocales(mAppLocales);
   }
 
-  uint32_t appLocalesNum = mAppLocales.Length();
-
-  JS::RootedObject locales(aCtx, JS_NewArrayObject(aCtx, appLocalesNum));
-  JS::Rooted<JS::Value> value(aCtx);
+  *aCount = mAppLocales.Length();
+  *aOutArray = static_cast<char**>(moz_xmalloc(*aCount * sizeof(char*)));
 
-  for (size_t i = 0; i < appLocalesNum; i++) {
-    const nsCString& loc = mAppLocales[i];
-    JSString* str = JS_NewStringCopyN(aCtx, loc.get(), loc.Length());
-    value.setString(str);
-    JS_DefineElement(aCtx, locales, i, value, JSPROP_ENUMERATE);
+  for (uint32_t i = 0; i < *aCount; i++) {
+    (*aOutArray)[i] = moz_xstrdup(mAppLocales[i].get());
   }
 
-  aRetVal.setObject(*locales);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 LocaleService::GetAppLocale(nsACString& aRetVal)
 {
   if (mAppLocales.IsEmpty()) {
     ReadAppLocales(mAppLocales);
--- a/intl/locale/mozILocaleService.idl
+++ b/intl/locale/mozILocaleService.idl
@@ -23,17 +23,18 @@ interface mozILocaleService : nsISupport
    * used for all APIs that accept list of locales, like ECMA402 and L10n APIs.
    *
    * This API always returns at least one locale.
    *
    * Example: ["en-US", "de", "pl", "sr-Cyrl", "zh-Hans-HK"]
    *
    * (See LocaleService.h for a more C++-friendly version of this.)
    */
-  [implicit_jscontext] jsval getAppLocales();
+  void getAppLocales([optional] out unsigned long aCount,
+                     [retval, array, size_is(aCount)] out string aLocales);
 
   /**
    * Returns the best locale that the application should be localized to.
    *
    * The result is a valid locale ID and it should be
    * used for all APIs that do not handle language negotiation.
    *
    * Where possible, getAppLocales() should be preferred over this API and
--- a/js/src/builtin/ModuleObject.cpp
+++ b/js/src/builtin/ModuleObject.cpp
@@ -325,17 +325,17 @@ ModuleNamespaceObject::addBinding(JSCont
     RootedId exportedNameId(cx, AtomToId(exportedName));
     RootedId localNameId(cx, AtomToId(localName));
     return bindings->putNew(cx, exportedNameId, environment, localNameId);
 }
 
 const char ModuleNamespaceObject::ProxyHandler::family = 0;
 
 ModuleNamespaceObject::ProxyHandler::ProxyHandler()
-  : BaseProxyHandler(&family, true)
+  : BaseProxyHandler(&family, false)
 {}
 
 bool
 ModuleNamespaceObject::ProxyHandler::getPrototype(JSContext* cx, HandleObject proxy,
                                                   MutableHandleObject protop) const
 {
     protop.set(nullptr);
     return true;
@@ -433,17 +433,18 @@ ModuleNamespaceObject::ProxyHandler::def
 
 bool
 ModuleNamespaceObject::ProxyHandler::has(JSContext* cx, HandleObject proxy, HandleId id,
                                          bool* bp) const
 {
     Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
     if (JSID_IS_SYMBOL(id)) {
         Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
-        return symbol == cx->wellKnownSymbols().toStringTag;
+        *bp = symbol == cx->wellKnownSymbols().toStringTag;
+        return true;
     }
 
     *bp = ns->bindings().has(id);
     return true;
 }
 
 bool
 ModuleNamespaceObject::ProxyHandler::get(JSContext* cx, HandleObject proxy, HandleValue receiver,
@@ -452,17 +453,18 @@ ModuleNamespaceObject::ProxyHandler::get
     Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
     if (JSID_IS_SYMBOL(id)) {
         Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
         if (symbol == cx->wellKnownSymbols().toStringTag) {
             vp.setString(cx->names().Module);
             return true;
         }
 
-        return false;
+        vp.setUndefined();
+        return true;
     }
 
     ModuleEnvironmentObject* env;
     Shape* shape;
     if (!ns->bindings().lookup(id, &env, &shape))
         return false;
 
     RootedValue value(cx, env->getSlot(shape->slot()));
--- a/js/src/gc/NurseryAwareHashMap.h
+++ b/js/src/gc/NurseryAwareHashMap.h
@@ -65,171 +65,101 @@ class UnsafeBareReadBarriered : public R
 template <typename Key,
           typename Value,
           typename HashPolicy = DefaultHasher<Key>,
           typename AllocPolicy = TempAllocPolicy>
 class NurseryAwareHashMap
 {
     using BarrieredValue = detail::UnsafeBareReadBarriered<Value>;
     using MapType = GCRekeyableHashMap<Key, BarrieredValue, HashPolicy, AllocPolicy>;
-
-    // Contains entries that have a nursery-allocated key or value (or both).
-    MapType nurseryMap_;
+    MapType map;
 
-    // All entries in this map have a tenured key and value.
-    MapType tenuredMap_;
-
-    // Keys and values usually have the same lifetime (for the WrapperMap we
-    // ensure this when we allocate the wrapper object). If this flag is set,
-    // it means nurseryMap_ contains a tenured key with a nursery allocated
-    // value.
-    bool nurseryMapContainsTenuredKeys_;
+    // Keep a list of all keys for which JS::GCPolicy<Key>::isTenured is false.
+    // This lets us avoid a full traveral of the map on each minor GC, keeping
+    // the minor GC times proportional to the nursery heap size.
+    Vector<Key, 0, AllocPolicy> nurseryEntries;
 
   public:
     using Lookup = typename MapType::Lookup;
-
-    class Ptr {
-        friend class NurseryAwareHashMap;
-
-        typename MapType::Ptr ptr_;
-        bool isNurseryMap_;
-
-      public:
-        Ptr(typename MapType::Ptr ptr, bool isNurseryMap)
-          : ptr_(ptr), isNurseryMap_(isNurseryMap)
-        {}
+    using Ptr = typename MapType::Ptr;
+    using Range = typename MapType::Range;
 
-        const typename MapType::Entry& operator*() const { return *ptr_; }
-        const typename MapType::Entry* operator->() const { return &*ptr_; }
-
-        bool found() const { return ptr_.found(); }
-        explicit operator bool() const { return bool(ptr_); }
-    };
+    explicit NurseryAwareHashMap(AllocPolicy a = AllocPolicy()) : map(a) {}
 
-    explicit NurseryAwareHashMap(AllocPolicy a = AllocPolicy())
-      : nurseryMap_(a), tenuredMap_(a), nurseryMapContainsTenuredKeys_(false)
-    {}
-
-    MOZ_MUST_USE bool init(uint32_t len = 16) {
-        return nurseryMap_.init(len) && tenuredMap_.init(len);
-    }
-
-    bool empty() const { return nurseryMap_.empty() && tenuredMap_.empty(); }
+    MOZ_MUST_USE bool init(uint32_t len = 16) { return map.init(len); }
 
-    Ptr lookup(const Lookup& l) const {
-        if (JS::GCPolicy<Key>::isTenured(l)) {
-            // If we find the key in the tenuredMap_, we're done. If we don't
-            // find it there and we know nurseryMap_ contains tenured keys
-            // (hopefully uncommon), we have to try nurseryMap_ as well.
-            typename MapType::Ptr p = tenuredMap_.lookup(l);
-            if (p || !nurseryMapContainsTenuredKeys_)
-                return Ptr(p, /* isNurseryMap = */ false);
-        }
-        return Ptr(nurseryMap_.lookup(l), /* isNurseryMap = */ true);
-    }
-
-    void remove(Ptr p) {
-        if (p.isNurseryMap_)
-            nurseryMap_.remove(p.ptr_);
-        else
-            tenuredMap_.remove(p.ptr_);
-    }
-
-    class Enum {
-        // First iterate over the nursery map. When nurseryEnum_ becomes
-        // empty() we switch to tenuredEnum_.
-        typename MapType::Enum nurseryEnum_;
-        typename MapType::Enum tenuredEnum_;
-
-        const typename MapType::Enum& currentEnum() const {
-            return nurseryEnum_.empty() ? tenuredEnum_ : nurseryEnum_;
-        }
-        typename MapType::Enum& currentEnum() {
-            return nurseryEnum_.empty() ? tenuredEnum_ : nurseryEnum_;
-        }
-
-      public:
-        explicit Enum(NurseryAwareHashMap& namap)
-          : nurseryEnum_(namap.nurseryMap_), tenuredEnum_(namap.tenuredMap_)
-        {}
-
-        typename MapType::Entry& front() const { return currentEnum().front(); }
-        void popFront() { currentEnum().popFront(); }
-        void removeFront() { currentEnum().removeFront(); }
-
-        bool empty() const { return nurseryEnum_.empty() && tenuredEnum_.empty(); }
+    bool empty() const { return map.empty(); }
+    Ptr lookup(const Lookup& l) const { return map.lookup(l); }
+    void remove(Ptr p) { map.remove(p); }
+    Range all() const { return map.all(); }
+    struct Enum : public MapType::Enum {
+        explicit Enum(NurseryAwareHashMap& namap) : MapType::Enum(namap.map) {}
     };
-
     size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
-        size_t size = nurseryMap_.sizeOfExcludingThis(mallocSizeOf);
-        size += tenuredMap_.sizeOfExcludingThis(mallocSizeOf);
-        return size;
+        return map.sizeOfExcludingThis(mallocSizeOf);
     }
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
-        size_t size = nurseryMap_.sizeOfIncludingThis(mallocSizeOf);
-        size += tenuredMap_.sizeOfIncludingThis(mallocSizeOf);
-        return size;
-    }
-
-    MOZ_MUST_USE bool putNew(const Key& k, const Value& v) {
-        MOZ_ASSERT(!tenuredMap_.has(k));
-        MOZ_ASSERT(!nurseryMap_.has(k));
-
-        bool tenuredKey = JS::GCPolicy<Key>::isTenured(k);
-        if (tenuredKey && JS::GCPolicy<Value>::isTenured(v))
-            return tenuredMap_.putNew(k, v);
-
-        if (tenuredKey)
-            nurseryMapContainsTenuredKeys_ = true;
-
-        return nurseryMap_.putNew(k, v);
+        return map.sizeOfIncludingThis(mallocSizeOf);
     }
 
     MOZ_MUST_USE bool put(const Key& k, const Value& v) {
-        // For simplicity, just remove the entry and forward to putNew for now.
-        // Performance-sensitive callers should prefer putNew.
-        if (Ptr p = lookup(k))
-            remove(p);
-        return putNew(k, v);
+        auto p = map.lookupForAdd(k);
+        if (p) {
+            if (!JS::GCPolicy<Key>::isTenured(k) || !JS::GCPolicy<Value>::isTenured(v)) {
+                if (!nurseryEntries.append(k))
+                    return false;
+            }
+            p->value() = v;
+            return true;
+        }
+
+        bool ok = map.add(p, k, v);
+        if (!ok)
+            return false;
+
+        if (!JS::GCPolicy<Key>::isTenured(k) || !JS::GCPolicy<Value>::isTenured(v)) {
+            if (!nurseryEntries.append(k)) {
+                map.remove(k);
+                return false;
+            }
+        }
+
+        return true;
     }
 
     void sweepAfterMinorGC(JSTracer* trc) {
-        for (typename MapType::Enum e(nurseryMap_); !e.empty(); e.popFront()) {
-            auto& key = e.front().key();
-            auto& value = e.front().value();
+        for (auto& key : nurseryEntries) {
+            auto p = map.lookup(key);
+            if (!p)
+                continue;
 
             // Drop the entry if the value is not marked.
-            if (JS::GCPolicy<BarrieredValue>::needsSweep(&value))
+            if (JS::GCPolicy<BarrieredValue>::needsSweep(&p->value())) {
+                map.remove(key);
                 continue;
+            }
 
-            // Insert the key/value in the tenured map, if the value is still
-            // needed.
+            // Update and relocate the key, if the value is still needed.
             //
-            // Note that this currently assumes that each Value will contain a
+            // Note that this currently assumes that all Value will contain a
             // strong reference to Key, as per its use as the
             // CrossCompartmentWrapperMap. We may need to make the following
             // behavior more dynamic if we use this map in other nursery-aware
             // contexts.
-
-            Key keyCopy(key);
-            mozilla::DebugOnly<bool> sweepKey = JS::GCPolicy<Key>::needsSweep(&keyCopy);
+            Key copy(key);
+            mozilla::DebugOnly<bool> sweepKey = JS::GCPolicy<Key>::needsSweep(&copy);
             MOZ_ASSERT(!sweepKey);
-
-            AutoEnterOOMUnsafeRegion oomUnsafe;
-            if (!tenuredMap_.putNew(keyCopy, value))
-                oomUnsafe.crash("NurseryAwareHashMap sweepAfterMinorGC");
+            map.rekeyIfMoved(key, copy);
         }
-
-        nurseryMap_.clear();
-        nurseryMapContainsTenuredKeys_ = false;
+        nurseryEntries.clear();
     }
 
     void sweep() {
-        MOZ_ASSERT(nurseryMap_.empty());
-        tenuredMap_.sweep();
+        MOZ_ASSERT(nurseryEntries.empty());
+        map.sweep();
     }
 };
 
 } // namespace js
 
 namespace JS {
 template <typename T>
 struct GCPolicy<js::detail::UnsafeBareReadBarriered<T>>
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/gc/bug-1340010.js
@@ -0,0 +1,24 @@
+if (helperThreadCount() === 0)
+    quit();
+if (!('deterministicgc' in this))
+    quit();
+
+gc();
+function weighted(wa) {
+    var a = [];
+    for (var i = 0; i < 30; ++i) {
+        for (var j = 0; j < 20; ++j) {
+            a.push(0);
+        }
+    }
+    return a;
+}
+var statementMakers = weighted();
+if (typeof oomTest == "function") {
+    statementMakers = statementMakers.concat([function (d, b) {
+        return "oomTest(" + makeFunction(d - 1, b) + ")";
+    }, ]);
+}
+deterministicgc(true);
+startgc(9469, "shrinking");
+offThreadCompileScript("");
--- a/js/src/jsapi-tests/testGCGrayMarking.cpp
+++ b/js/src/jsapi-tests/testGCGrayMarking.cpp
@@ -1,57 +1,85 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 * vim: set ts=8 sts=4 et sw=4 tw=99:
 */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
+#include "jsweakmap.h"
+
 #include "gc/Heap.h"
 #include "gc/Zone.h"
 
 #include "jsapi-tests/tests.h"
 
 using namespace js;
 using namespace js::gc;
 
+namespace JS {
+
+template <>
+struct DeletePolicy<js::ObjectWeakMap> : public js::GCManagedDeletePolicy<js::ObjectWeakMap>
+{};
+
+template <>
+struct MapTypeToRootKind<js::ObjectWeakMap*> {
+    static const JS::RootKind kind = JS::RootKind::Traceable;
+};
+
+template <>
+struct GCPolicy<js::ObjectWeakMap*> {
+    static void trace(JSTracer* trc, js::ObjectWeakMap** tp, const char* name) {
+        (*tp)->trace(trc);
+    }
+};
+
+} // namespace JS
+
+
 class AutoNoAnalysisForTest
 {
   public:
     AutoNoAnalysisForTest() {}
 } JS_HAZ_GC_SUPPRESSED;
 
 BEGIN_TEST(testGCGrayMarking)
 {
     AutoNoAnalysisForTest disableAnalysis;
 
     CHECK(InitGlobals());
     JSAutoCompartment ac(cx, global1);
 
     InitGrayRootTracer();
 
-    bool ok = TestMarking() && TestWeakMaps() && TestCCWs();
+    bool ok =
+        TestMarking() &&
+        TestWeakMaps() &&
+        TestUnassociatedWeakMaps() &&
+        TestWatchpoints() &&
+        TestCCWs();
 
     global1 = nullptr;
     global2 = nullptr;
     RemoveGrayRootTracer();
 
     return ok;
 }
 
 bool
 TestMarking()
 {
-    JSObject* sameTarget = AllocTargetObject();
+    JSObject* sameTarget = AllocPlainObject();
     CHECK(sameTarget);
 
     JSObject* sameSource = AllocSameCompartmentSourceObject(sameTarget);
     CHECK(sameSource);
 
-    JSObject* crossTarget = AllocTargetObject();
+    JSObject* crossTarget = AllocPlainObject();
     CHECK(crossTarget);
 
     JSObject* crossSource = GetCrossCompartmentWrapper(crossTarget);
     CHECK(crossSource);
 
     // Test GC with black roots marks objects black.
 
     JS::RootedObject blackRoot1(cx, sameSource);
@@ -85,18 +113,18 @@ TestMarking()
 
     CHECK(IsMarkedGray(sameSource));
     CHECK(IsMarkedGray(crossSource));
     CHECK(IsMarkedGray(sameTarget));
     CHECK(IsMarkedGray(crossTarget));
 
     // Test ExposeToActiveJS marks gray objects black.
 
-    ExposeGCThingToActiveJS(JS::GCCellPtr(sameSource));
-    ExposeGCThingToActiveJS(JS::GCCellPtr(crossSource));
+    JS::ExposeObjectToActiveJS(sameSource);
+    JS::ExposeObjectToActiveJS(crossSource);
     CHECK(IsMarkedBlack(sameSource));
     CHECK(IsMarkedBlack(crossSource));
     CHECK(IsMarkedBlack(sameTarget));
     CHECK(IsMarkedBlack(crossTarget));
 
     // Test a zone GC with black roots marks gray object in other zone black.
 
     JS_GC(cx);
@@ -105,29 +133,34 @@ TestMarking()
     CHECK(IsMarkedGray(crossTarget));
 
     blackRoot1 = crossSource;
     CHECK(ZoneGC(crossSource->zone()));
 
     CHECK(IsMarkedBlack(crossSource));
     CHECK(IsMarkedBlack(crossTarget));
 
+    blackRoot1 = nullptr;
+    blackRoot2 = nullptr;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+
     return true;
 }
 
 bool
 TestWeakMaps()
 {
     JSObject* weakMap = JS::NewWeakMapObject(cx);
     CHECK(weakMap);
 
     JSObject* key = AllocWeakmapKeyObject();
     CHECK(key);
 
-    JSObject* value = AllocWeakmapKeyObject();
+    JSObject* value = AllocPlainObject();
     CHECK(value);
 
     {
         JS::RootedObject rootedMap(cx, weakMap);
         JS::RootedObject rootedKey(cx, key);
         JS::RootedValue rootedValue(cx, ObjectValue(*value));
         CHECK(SetWeakMapEntry(cx, rootedMap, rootedKey, rootedValue));
     }
@@ -271,23 +304,186 @@ TestWeakMaps()
     blackRoot2 = nullptr;
     grayRoots.grayRoot1 = weakMap;
     grayRoots.grayRoot2 = key;
     JS_GC(cx);
     CHECK(IsMarkedGray(key));
     CHECK(IsMarkedGray(weakMap));
     CHECK(IsMarkedGray(value));
 
+    blackRoot1 = nullptr;
+    blackRoot2 = nullptr;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+
+    return true;
+}
+
+bool
+TestUnassociatedWeakMaps()
+{
+    // Make a weakmap that's not associated with a JSObject.
+    auto weakMap = cx->make_unique<ObjectWeakMap>(cx);
+    CHECK(weakMap);
+    CHECK(weakMap->init());
+
+    // Make sure this gets traced during GC.
+    Rooted<ObjectWeakMap*> rootMap(cx, weakMap.get());
+
+    JSObject* key = AllocWeakmapKeyObject();
+    CHECK(key);
+
+    JSObject* value = AllocPlainObject();
+    CHECK(value);
+
+    CHECK(weakMap->add(cx, key, value));
+
+    // Test the value of a weakmap entry is marked gray by GC if the
+    // key is marked gray.
+
+    grayRoots.grayRoot1 = key;
+    JS_GC(cx);
+    CHECK(IsMarkedGray(key));
+    CHECK(IsMarkedGray(value));
+
+    // Test the value of a weakmap entry is marked gray by GC if the key is marked gray.
+
+    grayRoots.grayRoot1 = key;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedGray(key));
+    CHECK(IsMarkedGray(value));
+
+    // Test the value of a weakmap entry is marked black by GC if the key is
+    // marked black.
+
+    JS::RootedObject blackRoot(cx);
+    blackRoot = key;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedBlack(key));
+    CHECK(IsMarkedBlack(value));
+
+    // Test that a weakmap key is marked gray if it has a gray delegate.
+
+    JSObject* delegate = AllocDelegateForKey(key);
+    blackRoot = nullptr;
+    grayRoots.grayRoot1 = delegate;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedGray(delegate));
+    CHECK(IsMarkedGray(key));
+    CHECK(IsMarkedGray(value));
+
+    // Test that a weakmap key is marked black if it has a black delegate.
+
+    blackRoot = delegate;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedBlack(delegate));
+    CHECK(IsMarkedBlack(key));
+    CHECK(IsMarkedBlack(value));
+
+    blackRoot = delegate;
+    grayRoots.grayRoot1 = key;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedBlack(delegate));
+    CHECK(IsMarkedBlack(key));
+    CHECK(IsMarkedBlack(value));
+
+    // Test what happens if there is a delegate but it is not marked for both
+    // black and gray cases.
+
+    delegate = nullptr;
+    blackRoot = key;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedBlack(key));
+    CHECK(IsMarkedBlack(value));
+
+    CHECK(AllocDelegateForKey(key));
+    blackRoot = nullptr;
+    grayRoots.grayRoot1 = key;
+    grayRoots.grayRoot2 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedGray(key));
+    CHECK(IsMarkedGray(value));
+
+    blackRoot = nullptr;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+
+    return true;
+}
+
+bool
+TestWatchpoints()
+{
+    JSObject* watched = AllocPlainObject();
+    CHECK(watched);
+
+    JSObject* closure = AllocPlainObject();
+    CHECK(closure);
+
+    {
+        RootedObject obj(cx, watched);
+        RootedObject callable(cx, closure);
+        RootedId id(cx, INT_TO_JSID(0));
+        CHECK(JS_DefinePropertyById(cx, obj, id, JS::TrueHandleValue, 0));
+        CHECK(js::WatchGuts(cx, obj, id, callable));
+    }
+
+    // Test that a watchpoint marks the callable black if the watched object is
+    // black.
+
+    RootedObject blackRoot(cx, watched);
+    grayRoots.grayRoot1 = nullptr;
+    JS_GC(cx);
+    CHECK(IsMarkedBlack(watched));
+    CHECK(IsMarkedBlack(closure));
+
+    // Test that a watchpoint marks the callable gray if the watched object is
+    // gray.
+
+    blackRoot = nullptr;
+    grayRoots.grayRoot1 = watched;
+    JS_GC(cx);
+    CHECK(IsMarkedGray(watched));
+    CHECK(IsMarkedGray(closure));
+
+    // Test that ExposeToActiveJS *doesn't* unmark through watchpoints.  We
+    // could make this work, but it's currently handled by the CC fixup.
+
+    CHECK(IsMarkedGray(watched));
+    CHECK(IsMarkedGray(closure));
+    JS::ExposeObjectToActiveJS(watched);
+    CHECK(IsMarkedBlack(watched));
+    CHECK(IsMarkedGray(closure));
+
+    {
+        RootedObject obj(cx, watched);
+        RootedId id(cx, INT_TO_JSID(0));
+        CHECK(js::UnwatchGuts(cx, obj, id));
+    }
+
+    blackRoot = nullptr;
+    grayRoots.grayRoot1 = nullptr;
+    grayRoots.grayRoot2 = nullptr;
+
     return true;
 }
 
 bool
 TestCCWs()
 {
-    RootedObject target(cx, AllocTargetObject());
+    RootedObject target(cx, AllocPlainObject());
     CHECK(target);
 
     // Test getting a new wrapper doesn't return a gray wrapper.
 
     JSObject* wrapper = GetCrossCompartmentWrapper(target);
     CHECK(wrapper);
     CHECK(!IsMarkedGray(wrapper));
 
@@ -318,16 +514,17 @@ TestCCWs()
     CHECK(!IsMarkedBlack(wrapper));
     CHECK(wrapper->zone()->isGCMarkingBlack());
 
     CHECK(GetCrossCompartmentWrapper(target) == wrapper);
     CHECK(IsMarkedBlack(wrapper));
 
     JS::FinishIncrementalGC(cx, JS::gcreason::API);
 
+    target = nullptr;
     grayRoots.grayRoot1 = nullptr;
     grayRoots.grayRoot2 = nullptr;
 
     return true;
 }
 
 JS::PersistentRootedObject global1;
 JS::PersistentRootedObject global2;
@@ -372,17 +569,17 @@ TraceGrayRoots(JSTracer* trc, void* data
     auto grayRoots = static_cast<GrayRoots*>(data);
     if (grayRoots->grayRoot1)
         UnsafeTraceManuallyBarrieredEdge(trc, &grayRoots->grayRoot1, "gray root 1");
     if (grayRoots->grayRoot2)
         UnsafeTraceManuallyBarrieredEdge(trc, &grayRoots->grayRoot2, "gray root 2");
 }
 
 JSObject*
-AllocTargetObject()
+AllocPlainObject()
 {
     JS::RootedObject obj(cx, JS_NewPlainObject(cx));
     EvictNursery();
 
     MOZ_ASSERT(obj->compartment() == global1->compartment());
     return obj;
 }
 
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -921,21 +921,18 @@ JS_TransplantObject(JSContext* cx, Handl
     if (origobj->compartment() != destination) {
         RootedObject newIdentityWrapper(cx, newIdentity);
         AutoCompartment ac(cx, origobj);
         if (!JS_WrapObject(cx, &newIdentityWrapper))
             MOZ_CRASH();
         MOZ_ASSERT(Wrapper::wrappedObject(newIdentityWrapper) == newIdentity);
         if (!JSObject::swap(cx, origobj, newIdentityWrapper))
             MOZ_CRASH();
-        if (!origobj->compartment()->putWrapperMaybeUpdate(cx, CrossCompartmentKey(newIdentity),
-                                                           origv))
-        {
+        if (!origobj->compartment()->putWrapper(cx, CrossCompartmentKey(newIdentity), origv))
             MOZ_CRASH();
-        }
     }
 
     // The new identity object might be one of several things. Return it to avoid
     // ambiguity.
     return newIdentity;
 }
 
 /*
--- a/js/src/jscompartment.cpp
+++ b/js/src/jscompartment.cpp
@@ -246,33 +246,18 @@ JSCompartment::checkWrapperMapAfterMovin
 
         WrapperMap::Ptr ptr = crossCompartmentWrappers.lookup(e.front().key());
         MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &e.front());
     }
 }
 #endif
 
 bool
-JSCompartment::putNewWrapper(JSContext* cx, const CrossCompartmentKey& wrapped,
-                             const js::Value& wrapper)
-{
-    MOZ_ASSERT(wrapped.is<JSString*>() == wrapper.isString());
-    MOZ_ASSERT_IF(!wrapped.is<JSString*>(), wrapper.isObject());
-
-    if (!crossCompartmentWrappers.putNew(wrapped, wrapper)) {
-        ReportOutOfMemory(cx);
-        return false;
-    }
-
-    return true;
-}
-
-bool
-JSCompartment::putWrapperMaybeUpdate(JSContext* cx, const CrossCompartmentKey& wrapped,
-                                     const js::Value& wrapper)
+JSCompartment::putWrapper(JSContext* cx, const CrossCompartmentKey& wrapped,
+                          const js::Value& wrapper)
 {
     MOZ_ASSERT(wrapped.is<JSString*>() == wrapper.isString());
     MOZ_ASSERT_IF(!wrapped.is<JSString*>(), wrapper.isObject());
 
     if (!crossCompartmentWrappers.put(wrapped, wrapper)) {
         ReportOutOfMemory(cx);
         return false;
     }
@@ -353,17 +338,17 @@ JSCompartment::wrap(JSContext* cx, Mutab
         strp.set(p->value().get().toString());
         return true;
     }
 
     /* No dice. Make a copy, and cache it. */
     JSString* copy = CopyStringPure(cx, str);
     if (!copy)
         return false;
-    if (!putNewWrapper(cx, CrossCompartmentKey(key), StringValue(copy)))
+    if (!putWrapper(cx, CrossCompartmentKey(key), StringValue(copy)))
         return false;
 
     strp.set(copy);
     return true;
 }
 
 bool
 JSCompartment::getNonWrapperObjectForCurrentCompartment(JSContext* cx, MutableHandleObject obj)
@@ -443,17 +428,17 @@ JSCompartment::getOrCreateWrapper(JSCont
     RootedObject wrapper(cx, wrap(cx, existing, obj));
     if (!wrapper)
         return false;
 
     // We maintain the invariant that the key in the cross-compartment wrapper
     // map is always directly wrapped by the value.
     MOZ_ASSERT(Wrapper::wrappedObject(wrapper) == &key.get().toObject());
 
-    if (!putNewWrapper(cx, CrossCompartmentKey(key), ObjectValue(*wrapper))) {
+    if (!putWrapper(cx, CrossCompartmentKey(key), ObjectValue(*wrapper))) {
         // Enforce the invariant that all cross-compartment wrapper object are
         // in the map by nuking the wrapper if we couldn't add it.
         // Unfortunately it's possible for the wrapper to still be marked if we
         // took this path, for example if the object metadata callback stashes a
         // reference to it.
         if (wrapper->is<CrossCompartmentWrapperObject>())
             NukeCrossCompartmentWrapper(cx, wrapper);
         return false;
--- a/js/src/jscompartment.h
+++ b/js/src/jscompartment.h
@@ -474,16 +474,19 @@ struct JSCompartment
 
   private:
     const js::AllocationMetadataBuilder *allocationMetadataBuilder;
 
     js::SavedStacks              savedStacks_;
 
     js::WrapperMap               crossCompartmentWrappers;
 
+    using CCKeyVector = mozilla::Vector<js::CrossCompartmentKey, 0, js::SystemAllocPolicy>;
+    CCKeyVector                  nurseryCCKeys;
+
     // The global environment record's [[VarNames]] list that contains all
     // names declared using FunctionDeclaration, GeneratorDeclaration, and
     // VariableDeclaration declarations in global code in this compartment.
     // Names are only removed from this list by a |delete IdentifierReference|
     // that successfully removes that global property.
     JS::GCHashSet<JSAtom*,
                   js::DefaultHasher<JSAtom*>,
                   js::SystemAllocPolicy> varNames_;
@@ -637,20 +640,18 @@ struct JSCompartment
     MOZ_MUST_USE inline bool wrap(JSContext* cx, JS::MutableHandleValue vp);
 
     MOZ_MUST_USE bool wrap(JSContext* cx, js::MutableHandleString strp);
     MOZ_MUST_USE bool wrap(JSContext* cx, JS::MutableHandleObject obj);
     MOZ_MUST_USE bool wrap(JSContext* cx, JS::MutableHandle<js::PropertyDescriptor> desc);
     MOZ_MUST_USE bool wrap(JSContext* cx, JS::MutableHandle<JS::GCVector<JS::Value>> vec);
     MOZ_MUST_USE bool rewrap(JSContext* cx, JS::MutableHandleObject obj, JS::HandleObject existing);
 
-    MOZ_MUST_USE bool putNewWrapper(JSContext* cx, const js::CrossCompartmentKey& wrapped,
-                                    const js::Value& wrapper);
-    MOZ_MUST_USE bool putWrapperMaybeUpdate(JSContext* cx, const js::CrossCompartmentKey& wrapped,
-                                            const js::Value& wrapper);
+    MOZ_MUST_USE bool putWrapper(JSContext* cx, const js::CrossCompartmentKey& wrapped,
+                                 const js::Value& wrapper);
 
     js::WrapperMap::Ptr lookupWrapper(const js::Value& wrapped) const {
         return crossCompartmentWrappers.lookup(js::CrossCompartmentKey(wrapped));
     }
 
     void removeWrapper(js::WrapperMap::Ptr p) {
         crossCompartmentWrappers.remove(p);
     }
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -6321,26 +6321,31 @@ GCRuntime::gcCycle(bool nonincrementalBy
 
     return IncrementalResult::Ok;
 }
 
 #ifdef JS_GC_ZEAL
 static bool
 IsDeterministicGCReason(JS::gcreason::Reason reason)
 {
-    if (reason > JS::gcreason::DEBUG_GC &&
-        reason != JS::gcreason::CC_FORCED && reason != JS::gcreason::SHUTDOWN_CC)
-    {
+    switch (reason) {
+      case JS::gcreason::API:
+      case JS::gcreason::DESTROY_RUNTIME:
+      case JS::gcreason::LAST_DITCH:
+      case JS::gcreason::TOO_MUCH_MALLOC:
+      case JS::gcreason::ALLOC_TRIGGER:
+      case JS::gcreason::DEBUG_GC:
+      case JS::gcreason::CC_FORCED:
+      case JS::gcreason::SHUTDOWN_CC:
+      case JS::gcreason::ABORT_GC:
+        return true;
+
+      default:
         return false;
     }
-
-    if (reason == JS::gcreason::EAGER_ALLOC_TRIGGER)
-        return false;
-
-    return true;
 }
 #endif
 
 gcstats::ZoneGCStats
 GCRuntime::scanZonesBeforeGC()
 {
     gcstats::ZoneGCStats zoneStats;
     for (ZonesIter zone(rt, WithAtoms); !zone.done(); zone.next()) {
--- a/js/src/jsobj.cpp
+++ b/js/src/jsobj.cpp
@@ -2862,17 +2862,17 @@ js::WatchGuts(JSContext* cx, JS::HandleO
 
 bool
 js::UnwatchGuts(JSContext* cx, JS::HandleObject origObj, JS::HandleId id)
 {
     // Looking in the map for an unsupported object will never hit, so we don't
     // need to check for nativeness or watchable-ness here.
     RootedObject obj(cx, ToWindowIfWindowProxy(origObj));
     if (WatchpointMap* wpmap = cx->compartment()->watchpointMap)
-        wpmap->unwatch(obj, id, nullptr, nullptr);
+        wpmap->unwatch(obj, id);
     return true;
 }
 
 bool
 js::WatchProperty(JSContext* cx, HandleObject obj, HandleId id, HandleObject callable)
 {
     if (WatchOp op = obj->getOpsWatch())
         return op(cx, obj, id, callable);
--- a/js/src/jswatchpoint.cpp
+++ b/js/src/jswatchpoint.cpp
@@ -76,30 +76,20 @@ WatchpointMap::watch(JSContext* cx, Hand
      * For generational GC, we don't need to post-barrier writes to the
      * hashtable here because we mark all watchpoints as part of root marking in
      * markAll().
      */
     return true;
 }
 
 void
-WatchpointMap::unwatch(JSObject* obj, jsid id,
-                       JSWatchPointHandler* handlerp, JSObject** closurep)
+WatchpointMap::unwatch(JSObject* obj, jsid id)
 {
-    if (Map::Ptr p = map.lookup(WatchKey(obj, id))) {
-        if (handlerp)
-            *handlerp = p->value().handler;
-        if (closurep) {
-            // Read barrier to prevent an incorrectly gray closure from escaping the
-            // watchpoint. See the comment before UnmarkGrayChildren in gc/Marking.cpp
-            JS::ExposeObjectToActiveJS(p->value().closure);
-            *closurep = p->value().closure;
-        }
+    if (Map::Ptr p = map.lookup(WatchKey(obj, id)))
         map.remove(p);
-    }
 }
 
 void
 WatchpointMap::unwatchObject(JSObject* obj)
 {
     for (Map::Enum e(map); !e.empty(); e.popFront()) {
         Map::Entry& entry = e.front();
         if (entry.key().object == obj)
--- a/js/src/jswatchpoint.h
+++ b/js/src/jswatchpoint.h
@@ -62,18 +62,17 @@ struct WatchKeyHasher
 
 class WatchpointMap {
   public:
     typedef HashMap<WatchKey, Watchpoint, WatchKeyHasher, SystemAllocPolicy> Map;
 
     bool init();
     bool watch(JSContext* cx, HandleObject obj, HandleId id,
                JSWatchPointHandler handler, HandleObject closure);
-    void unwatch(JSObject* obj, jsid id,
-                 JSWatchPointHandler* handlerp, JSObject** closurep);
+    void unwatch(JSObject* obj, jsid id);
     void unwatchObject(JSObject* obj);
     void clear();
 
     bool triggerWatchpoint(JSContext* cx, HandleObject obj, HandleId id, MutableHandleValue vp);
 
     bool markIteratively(GCMarker* marker);
     void trace(JSTracer* trc);
 
--- a/js/src/jsweakmap.h
+++ b/js/src/jsweakmap.h
@@ -397,16 +397,18 @@ class ObjectValueMap : public WeakMap<He
 class ObjectWeakMap
 {
     ObjectValueMap map;
 
   public:
     explicit ObjectWeakMap(JSContext* cx);
     bool init();
 
+    JS::Zone* zone() const { return map.zone(); }
+
     JSObject* lookup(const JSObject* obj);
     bool add(JSContext* cx, JSObject* obj, JSObject* target);
     void clear();
 
     void trace(JSTracer* trc);
     size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf);
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) {
         return mallocSizeOf(this) + sizeOfExcludingThis(mallocSizeOf);
--- a/js/src/proxy/CrossCompartmentWrapper.cpp
+++ b/js/src/proxy/CrossCompartmentWrapper.cpp
@@ -615,21 +615,18 @@ js::RemapWrapper(JSContext* cx, JSObject
 
     // Before swapping, this wrapper came out of wrap(), which enforces the
     // invariant that the wrapper in the map points directly to the key.
     MOZ_ASSERT(Wrapper::wrappedObject(wobj) == newTarget);
 
     // Update the entry in the compartment's wrapper map to point to the old
     // wrapper, which has now been updated (via reuse or swap).
     MOZ_ASSERT(wobj->is<WrapperObject>());
-    if (!wcompartment->putWrapperMaybeUpdate(cx, CrossCompartmentKey(newTarget),
-                                             ObjectValue(*wobj)))
-    {
+    if (!wcompartment->putWrapper(cx, CrossCompartmentKey(newTarget), ObjectValue(*wobj)))
         MOZ_CRASH();
-    }
 }
 
 // Remap all cross-compartment wrappers pointing to |oldTarget| to point to
 // |newTarget|. All wrappers are recomputed.
 JS_FRIEND_API(bool)
 js::RemapAllWrappersForObject(JSContext* cx, JSObject* oldTargetArg,
                               JSObject* newTargetArg)
 {
--- a/js/src/vm/Debugger.cpp
+++ b/js/src/vm/Debugger.cpp
@@ -1133,17 +1133,17 @@ Debugger::wrapEnvironment(JSContext* cx,
             return false;
 
         if (!p.add(cx, environments, env, envobj)) {
             NukeDebuggerWrapper(envobj);
             return false;
         }
 
         CrossCompartmentKey key(object, env, CrossCompartmentKey::DebuggerEnvironment);
-        if (!object->compartment()->putNewWrapper(cx, key, ObjectValue(*envobj))) {
+        if (!object->compartment()->putWrapper(cx, key, ObjectValue(*envobj))) {
             NukeDebuggerWrapper(envobj);
             environments.remove(env);
             return false;
         }
 
         result.set(envobj);
     }
 
@@ -1220,17 +1220,17 @@ Debugger::wrapDebuggeeObject(JSContext* 
 
         if (!p.add(cx, objects, obj, dobj)) {
             NukeDebuggerWrapper(dobj);
             return false;
         }
 
         if (obj->compartment() != object->compartment()) {
             CrossCompartmentKey key(object, obj, CrossCompartmentKey::DebuggerObject);
-            if (!object->compartment()->putNewWrapper(cx, key, ObjectValue(*dobj))) {
+            if (!object->compartment()->putWrapper(cx, key, ObjectValue(*dobj))) {
                 NukeDebuggerWrapper(dobj);
                 objects.remove(obj);
                 ReportOutOfMemory(cx);
                 return false;
             }
         }
 
         result.set(dobj);
@@ -5515,17 +5515,17 @@ Debugger::wrapVariantReferent(JSContext*
         if (!wrapper)
             return nullptr;
 
         if (!p.add(cx, map, untaggedReferent, wrapper)) {
             NukeDebuggerWrapper(wrapper);
             return nullptr;
         }
 
-        if (!object->compartment()->putNewWrapper(cx, key, ObjectValue(*wrapper))) {
+        if (!object->compartment()->putWrapper(cx, key, ObjectValue(*wrapper))) {
             NukeDebuggerWrapper(wrapper);
             map.remove(untaggedReferent);
             ReportOutOfMemory(cx);
             return nullptr;
         }
 
     }
 
--- a/layout/base/nsBidiPresUtils.cpp
+++ b/layout/base/nsBidiPresUtils.cpp
@@ -128,29 +128,39 @@ GetBidiControl(nsStyleContext* aStyleCon
 
 struct MOZ_STACK_CLASS BidiParagraphData
 {
   nsAutoString        mBuffer;
   AutoTArray<char16_t, 16> mEmbeddingStack;
   AutoTArray<nsIFrame*, 16> mLogicalFrames;
   AutoTArray<nsLineBox*, 16> mLinePerFrame;
   nsDataHashtable<nsISupportsHashKey, int32_t> mContentToFrameIndex;
+  // Cached presentation context for the frames we're processing.
+  nsPresContext*      mPresContext;
   bool                mIsVisual;
   nsBidiLevel         mParaLevel;
   nsIContent*         mPrevContent;
   nsBidi              mBidiEngine;
   nsIFrame*           mPrevFrame;
+#ifdef DEBUG
+  // Only used for NOISY debug output.
+  nsBlockFrame*       mCurrentBlock;
+#endif
 
-  void Init(nsBlockFrame *aBlockFrame)
+  void Init(nsBlockFrame* aBlockFrame)
   {
     mPrevContent = nullptr;
+#ifdef DEBUG
+    mCurrentBlock = aBlockFrame;
+#endif
 
     mParaLevel = nsBidiPresUtils::BidiLevelFromStyle(aBlockFrame->StyleContext());
 
-    mIsVisual = aBlockFrame->PresContext()->IsVisualMode();
+    mPresContext = aBlockFrame->PresContext();
+    mIsVisual = mPresContext->IsVisualMode();
     if (mIsVisual) {
       /**
        * Drill up in content to detect whether this is an element that needs to
        * be rendered with logical order even on visual pages.
        *
        * We always use logical order on form controls, firstly so that text
        * entry will be in logical order, but also because visual pages were
        * written with the assumption that even if the browser had no support
@@ -337,17 +347,17 @@ struct MOZ_STACK_CLASS BidiParagraphData
   {
     // Advance aLine to the line containing aFrame
     nsIFrame* child = aFrame;
     nsIFrame* parent = nsLayoutUtils::GetParentOrPlaceholderFor(child);
     while (parent && !nsLayoutUtils::GetAsBlock(parent)) {
       child = parent;
       parent = nsLayoutUtils::GetParentOrPlaceholderFor(child);
     }
-    NS_ASSERTION (parent, "aFrame is not a descendent of aBlockFrame");
+    NS_ASSERTION (parent, "aFrame is not a descendent of a block frame");
     while (!IsFrameInCurrentLine(aLineIter, aPrevFrame, child)) {
 #ifdef DEBUG
       bool hasNext =
 #endif
         aLineIter->Next();
       NS_ASSERTION(hasNext, "Can't find frame in lines!");
       aPrevFrame = nullptr;
     }
@@ -686,36 +696,40 @@ nsBidiPresUtils::Resolve(nsBlockFrame* a
   // unicode-bidi:plaintext on a block element is handled by block frame
   // via using nsIFrame::GetWritingMode(nsIFrame*).
   char16_t ch = GetBidiOverride(aBlockFrame->StyleContext());
   if (ch != 0) {
     bpd.PushBidiControl(ch);
   }
   for (nsBlockFrame* block = aBlockFrame; block;
        block = static_cast<nsBlockFrame*>(block->GetNextContinuation())) {
+#ifdef DEBUG
+    bpd.mCurrentBlock = block;
+#endif
     block->RemoveStateBits(NS_BLOCK_NEEDS_BIDI_RESOLUTION);
-    nsBlockInFlowLineIterator lineIter(block, block->LinesBegin());
+    nsBlockInFlowLineIterator it(block, block->LinesBegin());
     bpd.mPrevFrame = nullptr;
-    TraverseFrames(aBlockFrame, &lineIter, block->PrincipalChildList().FirstChild(), &bpd);
-    // XXX what about overflow lines?
+    TraverseFrames(&it, block->PrincipalChildList().FirstChild(), &bpd);
+    nsBlockFrame::FrameLines* overflowLines = block->GetOverflowLines();
+    if (overflowLines) {
+      nsBlockInFlowLineIterator it(block, overflowLines->mLines.begin(), true);
+      TraverseFrames(&it, block->PrincipalChildList().FirstChild(), &bpd);
+    }
   }
 
   if (ch != 0) {
     bpd.PopBidiControl(ch);
   }
 
-  return ResolveParagraph(aBlockFrame, &bpd);
+  return ResolveParagraph(&bpd);
 }
 
 nsresult
-nsBidiPresUtils::ResolveParagraph(nsBlockFrame* aBlockFrame,
-                                  BidiParagraphData* aBpd)
+nsBidiPresUtils::ResolveParagraph(BidiParagraphData* aBpd)
 {
-  nsPresContext *presContext = aBlockFrame->PresContext();
-
   if (aBpd->BufferLength() < 1) {
     return NS_OK;
   }
   aBpd->mBuffer.ReplaceChar(kSeparators, kSpace);
 
   int32_t runCount;
 
   nsresult rv = aBpd->SetPara();
@@ -733,26 +747,26 @@ nsBidiPresUtils::ResolveParagraph(nsBloc
   int32_t     frameIndex     = -1;  // index to the frames in mLogicalFrames
   int32_t     frameCount     = aBpd->FrameCount();
   int32_t     contentOffset  = 0;   // offset of current frame in its content node
   bool        isTextFrame    = false;
   nsIFrame*   frame = nullptr;
   nsIContent* content = nullptr;
   int32_t     contentTextLength = 0;
 
-  FramePropertyTable *propTable = presContext->PropertyTable();
+  FramePropertyTable* propTable = aBpd->mPresContext->PropertyTable();
   nsLineBox* currentLine = nullptr;
   
 #ifdef DEBUG
 #ifdef NOISY_BIDI
-  printf("Before Resolve(), aBlockFrame=0x%p, mBuffer='%s', frameCount=%d, runCount=%d\n",
-         (void*)aBlockFrame, NS_ConvertUTF16toUTF8(aBpd->mBuffer).get(), frameCount, runCount);
+  printf("Before Resolve(), mCurrentBlock=%p, mBuffer='%s', frameCount=%d, runCount=%d\n",
+         (void*)aBpd->mCurrentBlock, NS_ConvertUTF16toUTF8(aBpd->mBuffer).get(), frameCount, runCount);
 #ifdef REALLY_NOISY_BIDI
   printf(" block frame tree=:\n");
-  aBlockFrame->List(stdout, 0);
+  aBpd->mCurrentBlock->List(stdout, 0);
 #endif
 #endif
 #endif
 
   if (runCount == 1 && frameCount == 1 &&
       aBpd->GetDirection() == NSBIDI_LTR && aBpd->GetParaLevel() == 0) {
     // We have a single left-to-right frame in a left-to-right paragraph,
     // without bidi isolation from the surrounding text.
@@ -971,27 +985,26 @@ nsBidiPresUtils::ResolveParagraph(nsBloc
         JoinInlineAncestors(frame);
       }
     }
   } // for
 
 #ifdef DEBUG
 #ifdef REALLY_NOISY_BIDI
   printf("---\nAfter Resolve(), frameTree =:\n");
-  aBlockFrame->List(stdout, 0);
+  aBpd->mCurrentBlock->List(stdout, 0);
   printf("===\n");
 #endif
 #endif
 
   return rv;
 }
 
 void
-nsBidiPresUtils::TraverseFrames(nsBlockFrame*              aBlockFrame,
-                                nsBlockInFlowLineIterator* aLineIter,
+nsBidiPresUtils::TraverseFrames(nsBlockInFlowLineIterator* aLineIter,
                                 nsIFrame*                  aCurrentFrame,
                                 BidiParagraphData*         aBpd)
 {
   if (!aCurrentFrame)
     return;
 
 #ifdef DEBUG
   nsBlockFrame* initialLineContainer = aLineIter->GetContainer();
@@ -1148,17 +1161,17 @@ nsBidiPresUtils::TraverseFrames(nsBlockF
                 if (!next) {
                   // If the frame has no next in flow, create one.
                   CreateContinuation(frame, &next, true);
                   createdContinuation = true;
                 }
                 // Mark the line before the newline as dirty.
                 aBpd->GetLineForFrameAt(aBpd->FrameCount() - 1)->MarkDirty();
               }
-              ResolveParagraphWithinBlock(aBlockFrame, aBpd);
+              ResolveParagraphWithinBlock(aBpd);
 
               if (!nextSibling && !createdContinuation) {
                 break;
               } else if (next) {
                 frame = next;
                 aBpd->AppendFrame(frame, aLineIter);
                 // Mark the line after the newline as dirty.
                 aBpd->GetLineForFrameAt(aBpd->FrameCount() - 1)->MarkDirty();
@@ -1173,37 +1186,37 @@ nsBidiPresUtils::TraverseFrames(nsBlockF
               }
 
             } while (next);
           }
         }
       } else if (nsGkAtoms::brFrame == frameType) {
         // break frame -- append line separator
         aBpd->AppendUnichar(kLineSeparator);
-        ResolveParagraphWithinBlock(aBlockFrame, aBpd);
+        ResolveParagraphWithinBlock(aBpd);
       } else { 
         // other frame type -- see the Unicode Bidi Algorithm:
         // "...inline objects (such as graphics) are treated as if they are ...
         // U+FFFC"
         // <wbr>, however, is treated as U+200B ZERO WIDTH SPACE. See
         // http://dev.w3.org/html5/spec/Overview.html#phrasing-content-1
         aBpd->AppendUnichar(content->IsHTMLElement(nsGkAtoms::wbr) ?
                             kZWSP : kObjectSubstitute);
         if (!frame->IsInlineOutside()) {
           // if it is not inline, end the paragraph
-          ResolveParagraphWithinBlock(aBlockFrame, aBpd);
+          ResolveParagraphWithinBlock(aBpd);
         }
       }
     } else {
       // For a non-leaf frame, recurse into TraverseFrames
       nsIFrame* kid = frame->PrincipalChildList().FirstChild();
       MOZ_ASSERT(!frame->GetChildList(nsIFrame::kOverflowList).FirstChild(),
                  "should have drained the overflow list above");
       if (kid) {
-        TraverseFrames(aBlockFrame, aLineIter, kid, aBpd);
+        TraverseFrames(aLineIter, kid, aBpd);
       }
     }
 
     // If the element is attributed by dir, indicate direction pop (add PDF frame)
     if (isLastFrame) {
       // Add a dummy frame pointer representing a bidi control code after the
       // last frame of an element specifying embedding or override
       if (overrideChar != 0) {
@@ -1215,21 +1228,20 @@ nsBidiPresUtils::TraverseFrames(nsBlockF
     }
     childFrame = nextSibling;
   } while (childFrame);
 
   MOZ_ASSERT(initialLineContainer == aLineIter->GetContainer());
 }
 
 void
-nsBidiPresUtils::ResolveParagraphWithinBlock(nsBlockFrame* aBlockFrame,
-                                             BidiParagraphData* aBpd)
+nsBidiPresUtils::ResolveParagraphWithinBlock(BidiParagraphData* aBpd)
 {
   aBpd->ClearBidiControls();
-  ResolveParagraph(aBlockFrame, aBpd);
+  ResolveParagraph(aBpd);
   aBpd->ResetData();
 }
 
 /* static */ nscoord
 nsBidiPresUtils::ReorderFrames(nsIFrame* aFirstFrameOnLine,
                                int32_t aNumFramesOnLine,
                                WritingMode aLineWM,
                                const nsSize& aContainerSize,
--- a/layout/base/nsBidiPresUtils.h
+++ b/layout/base/nsBidiPresUtils.h
@@ -149,20 +149,18 @@ public:
    * Make Bidi engine calculate the embedding levels of the frames that are
    * descendants of a given block frame.
    *
    * @param aBlockFrame          The block frame
    *
    *  @lina 06/18/2000
    */
   static nsresult Resolve(nsBlockFrame* aBlockFrame);
-  static nsresult ResolveParagraph(nsBlockFrame* aBlockFrame,
-                                   BidiParagraphData* aBpd);
-  static void ResolveParagraphWithinBlock(nsBlockFrame* aBlockFrame,
-                                          BidiParagraphData* aBpd);
+  static nsresult ResolveParagraph(BidiParagraphData* aBpd);
+  static void ResolveParagraphWithinBlock(BidiParagraphData* aBpd);
 
   /**
    * Reorder this line using Bidi engine.
    * Update frame array, following the new visual sequence.
    *
    * @return total inline size
    * 
    * @lina 05/02/2000
@@ -392,18 +390,17 @@ private:
   /**
    * Traverse the child frames of the block element and:
    *  Set up an array of the frames in logical order
    *  Create a string containing the text content of all the frames
    *  If we encounter content that requires us to split the element into more
    *  than one paragraph for bidi resolution, resolve the paragraph up to that
    *  point.
    */
-  static void TraverseFrames(nsBlockFrame*              aBlockFrame,
-                             nsBlockInFlowLineIterator* aLineIter,
+  static void TraverseFrames(nsBlockInFlowLineIterator* aLineIter,
                              nsIFrame*                  aCurrentFrame,
                              BidiParagraphData*         aBpd);
 
   /**
    * Position ruby content frames (ruby base/text frame).
    * Called from RepositionRubyFrame.
    */
   static void RepositionRubyContentFrame(
--- a/layout/base/nsCSSFrameConstructor.cpp
+++ b/layout/base/nsCSSFrameConstructor.cpp
@@ -10873,19 +10873,23 @@ nsCSSFrameConstructor::ProcessChildren(n
   // containing blocks as needed, so callers don't have to do it...
 
   bool haveFirstLetterStyle = false, haveFirstLineStyle = false;
   if (aAllowBlockStyles) {
     ShouldHaveSpecialBlockStyle(aContent, aStyleContext, &haveFirstLetterStyle,
                                 &haveFirstLineStyle);
   }
 
+  const bool isFlexOrGridContainer = ::IsFlexOrGridContainer(aFrame);
   // The logic here needs to match the logic in GetFloatContainingBlock()
+  // (Since we already have isFlexOrGridContainer, we check that eagerly instead
+  // of letting ShouldSuppressFloatingOfDescendants look it up redundantly.)
   nsFrameConstructorSaveState floatSaveState;
-  if (ShouldSuppressFloatingOfDescendants(aFrame)) {
+  if (isFlexOrGridContainer ||
+      ShouldSuppressFloatingOfDescendants(aFrame)) {
     aState.PushFloatContainingBlock(nullptr, floatSaveState);
   } else if (aFrame->IsFloatContainingBlock()) {
     aState.PushFloatContainingBlock(aFrame, floatSaveState);
   }
 
   nsFrameConstructorState::PendingBindingAutoPusher pusher(aState,
                                                            aPendingBinding);
 
@@ -10930,16 +10934,24 @@ nsCSSFrameConstructor::ProcessChildren(n
                                  itemsToConstruct);
     }
 
     const bool addChildItems = MOZ_LIKELY(mCurrentDepth < kMaxDepth);
     if (!addChildItems) {
       NS_WARNING("ProcessChildren max depth exceeded");
     }
 
+    // Don't blockify 'display' in ApplyStyleFixups unless aFrame really is
+    // a flex/grid container frame, not just has display:flex/grid.
+    Maybe<TreeMatchContext::AutoParentDisplayBasedStyleFixupSkipper>
+      parentDisplayBasedStyleFixupSkipper;
+    if (!isFlexOrGridContainer) {
+      parentDisplayBasedStyleFixupSkipper.emplace(aState.mTreeMatchContext);
+    }
+
     InsertionPoint insertion(aFrame, nullptr);
     FlattenedChildIterator iter(aContent);
     for (nsIContent* child = iter.GetNextChild(); child; child = iter.GetNextChild()) {
       // Get the parent of the content and check if it is a XBL children element
       // (if the content is a children element then parent != aContent because the
       // FlattenedChildIterator will transitively iterate through <xbl:children>
       // for default content). Push the children element as an ancestor here because
       // it does not have a frame and would not otherwise be pushed as an ancestor.
--- a/layout/generic/nsBlockFrame.cpp
+++ b/layout/generic/nsBlockFrame.cpp
@@ -1158,46 +1158,46 @@ nsBlockFrame::Reflow(nsPresContext*     
   // overflowArea.VisualOverflow().y/yMost invariant, and we may even
   // delete the line with the line cursor.
   ClearLineCursor();
 
   if (IsFrameTreeTooDeep(*reflowInput, aMetrics, aStatus)) {
     return;
   }
 
+#ifdef DEBUG
+  // Between when we drain pushed floats and when we complete reflow,
+  // we're allowed to have multiple continuations of the same float on
+  // our floats list, since a first-in-flow might get pushed to a later
+  // continuation of its containing block.  But it's not permitted
+  // outside that time.
+  nsLayoutUtils::AssertNoDuplicateContinuations(this, mFloats);
+#endif
+
+  // ALWAYS drain overflow. We never want to leave the previnflow's
+  // overflow lines hanging around; block reflow depends on the
+  // overflow line lists being cleared out between reflow passes.
+  DrainOverflowLines();
+
   bool blockStartMarginRoot, blockEndMarginRoot;
   IsMarginRoot(&blockStartMarginRoot, &blockEndMarginRoot);
 
   // Cache the consumed height in the block reflow state so that we don't have
   // to continually recompute it.
   BlockReflowInput state(*reflowInput, aPresContext, this,
                            blockStartMarginRoot, blockEndMarginRoot,
                            needFloatManager, consumedBSize);
 
   if (GetStateBits() & NS_BLOCK_NEEDS_BIDI_RESOLUTION)
     static_cast<nsBlockFrame*>(FirstContinuation())->ResolveBidi();
 
   if (RenumberList()) {
     AddStateBits(NS_FRAME_HAS_DIRTY_CHILDREN);
   }
 
-#ifdef DEBUG
-  // Between when we drain pushed floats and when we complete reflow,
-  // we're allowed to have multiple continuations of the same float on
-  // our floats list, since a first-in-flow might get pushed to a later
-  // continuation of its containing block.  But it's not permitted
-  // outside that time.
-  nsLayoutUtils::AssertNoDuplicateContinuations(this, mFloats);
-#endif
-
-  // ALWAYS drain overflow. We never want to leave the previnflow's
-  // overflow lines hanging around; block reflow depends on the
-  // overflow line lists being cleared out between reflow passes.
-  DrainOverflowLines();
-
   // Handle paginated overflow (see nsContainerFrame.h)
   nsOverflowAreas ocBounds;
   nsReflowStatus ocStatus = NS_FRAME_COMPLETE;
   if (GetPrevInFlow()) {
     ReflowOverflowContainerChildren(aPresContext, *reflowInput, ocBounds, 0,
                                     ocStatus);
   }
 
--- a/layout/generic/nsBlockFrame.h
+++ b/layout/generic/nsBlockFrame.h
@@ -1014,17 +1014,19 @@ public:
   /**
    * Returns false if there are no more lines. After this has returned false,
    * don't call any methods on this object again.
    */
   bool Prev();
 
 private:
   friend class nsBlockFrame;
+  friend class nsBidiPresUtils;
   // XXX nsBlockFrame uses this internally in one place.  Try to remove it.
+  // XXX uhm, and nsBidiPresUtils::Resolve too.
   nsBlockInFlowLineIterator(nsBlockFrame* aFrame, LineIterator aLine, bool aInOverflow);
 
   nsBlockFrame* mFrame;
   LineIterator mLine;
   nsLineList* mLineList;  // the line list mLine is in
 
   /**
    * Moves iterator to next valid line reachable from the current block.
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/legend/1339287-ref.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML>
+<!--
+     Any copyright is dedicated to the Public Domain.
+     http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html><head>
+  <meta charset="utf-8">
+  <title>Testcase for bug 1339287</title>
+  <style type="text/css">
+
+html,body {
+  color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+}
+
+fieldset { border:1px solid black; }  /* solid border is less likely to cause AA issues */
+
+  </style>
+</head>
+<body>
+
+  <fieldset>
+    <legend style="display:inline-flex">
+      Headline Instructions
+    </legend>
+  </fieldset>
+
+  <fieldset>
+    <legend style="display:inline-grid">
+      Headline Instructions
+    </legend>
+  </fieldset>
+
+  <fieldset>
+    <legend style="display:flex">
+      Headline Instructions
+    </legend>
+  </fieldset>
+
+  <fieldset>
+    <legend style="display:grid">
+      Headline Instructions
+    </legend>
+  </fieldset>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/legend/1339287.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML>
+<!--
+     Any copyright is dedicated to the Public Domain.
+     http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html><head>
+  <meta charset="utf-8">
+  <title>Testcase for bug 1339287</title>
+  <style type="text/css">
+
+html,body {
+  color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+}
+
+fieldset { border:1px solid black; }  /* solid border is less likely to cause AA issues */
+
+  </style>
+</head>
+<body>
+
+  <fieldset>
+    <legend style="display:inline-flex">
+      Headline 
+      <span>
+        Instructions
+       </span>
+    </legend>
+  </fieldset>
+
+  <fieldset>
+    <legend style="display:inline-grid">
+      Headline 
+      <span>
+        Instructions
+       </span>
+    </legend>
+  </fieldset>
+
+  <fieldset>
+    <legend style="display:flex">
+      Headline 
+      <span>
+        Instructions
+       </span>
+    </legend>
+  </fieldset>
+
+  <fieldset>
+    <legend style="display:grid">
+      Headline 
+      <span>
+        Instructions
+       </span>
+    </legend>
+  </fieldset>
+
+</body>
+</html>
--- a/layout/reftests/forms/legend/reftest.list
+++ b/layout/reftests/forms/legend/reftest.list
@@ -1,3 +1,4 @@
 == legend.html legend-ref.html
 fuzzy-if(skiaContent,1,7) pref(dom.webcomponents.enabled,true) == shadow-dom.html shadow-dom-ref.html
 == 1273433.html 1273433-ref.html
+== 1339287.html 1339287-ref.html
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -743,16 +743,19 @@ pref("gfx.downloadable_fonts.woff2.enabl
 
 // Whether OTS validation should be applied to OpenType Layout (OTL) tables
 #ifdef RELEASE_OR_BETA
 pref("gfx.downloadable_fonts.otl_validation", false);
 #else
 pref("gfx.downloadable_fonts.otl_validation", true);
 #endif
 
+// Whether to preserve OpenType variation tables in fonts (bypassing OTS)
+pref("gfx.downloadable_fonts.keep_variation_tables", false);
+
 #ifdef ANDROID
 pref("gfx.bundled_fonts.enabled", true);
 pref("gfx.bundled_fonts.force-enabled", false);
 #endif
 
 // Do we fire a notification about missing fonts, so the front-end can decide
 // whether to try and do something about it (e.g. download additional fonts)?
 pref("gfx.missing_fonts.notify", false);
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1152,9 +1152,9 @@ static const TransportSecurityPreload kP
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
 // Pinning Preload List Length = 477;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1495991313339000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1496072272084000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -11,25 +11,24 @@ 0xf00.ch: did not receive HSTS header
 100dayloans.com: max-age too low: 0
 1018hosting.nl: did not receive HSTS header
 1022996493.rsc.cdn77.org: could not connect to host
 10seos.com: did not receive HSTS header
 10tacle.io: could not connect to host
 123plons.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 123test.de: did not receive HSTS header
 126ium.moe: could not connect to host
-127011-networks.ch: could not connect to host
+127011-networks.ch: did not receive HSTS header
 12vpnchina.com: could not connect to host
 16packets.com: could not connect to host
 1a-jva.de: did not receive HSTS header
-1k8b.com: could not connect to host
 1p.ro: could not connect to host
 1password.com: did not receive HSTS header
 1xcess.com: did not receive HSTS header
-1years.cc: could not connect to host
+1years.cc: did not receive HSTS header
 206rc.net: max-age too low: 2592000
 247loan.com: max-age too low: 0
 25daysof.io: could not connect to host
 2859cc.com: could not connect to host
 2brokegirls.org: could not connect to host
 2or3.tk: could not connect to host
 2ss.jp: did not receive HSTS header
 300651.ru: did not receive HSTS header
@@ -40,16 +39,17 @@ 360ds.co.in: could not connect to host
 360gradus.com: did not receive HSTS header
 365.or.jp: did not receive HSTS header
 3chit.cf: could not connect to host
 3click-loan.com: could not connect to host
 3sreporting.com: did not receive HSTS header
 3yearloans.com: max-age too low: 0
 404.sh: max-age too low: 0
 404404.info: could not connect to host
+41844.de: could not connect to host
 420dongstorm.com: could not connect to host
 42ms.org: could not connect to host
 4455software.com: did not receive HSTS header
 4679.space: could not connect to host
 47ronin.com: did not receive HSTS header
 4cclothing.com: could not connect to host
 4elements.com: did not receive HSTS header
 4mm.org: did not receive HSTS header
@@ -289,17 +289,16 @@ armytricka.cz: did not receive HSTS head
 arnaudfeld.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 arpr.co: did not receive HSTS header
 arrayify.com: could not connect to host
 arrow-cloud.nl: could not connect to host
 ars-design.net: could not connect to host
 ars.toscana.it: max-age too low: 0
 artiming.com: could not connect to host
 artistnetwork.nl: did not receive HSTS header
-artofeyes.nl: did not receive HSTS header
 arturkohut.com: could not connect to host
 arvamus.eu: could not connect to host
 as.se: could not connect to host
 as9178.net: could not connect to host
 asasuou.pw: could not connect to host
 asc16.com: could not connect to host
 asdpress.cn: could not connect to host
 ashlane-cottages.com: could not connect to host
@@ -338,16 +337,17 @@ aufmerksamkeitsstudie.com: could not con
 aujapan.ru: could not connect to host
 aurainfosec.com: did not receive HSTS header
 aurainfosec.com.au: could not connect to host
 auraredeye.com: did not receive HSTS header
 auraredshield.com: did not receive HSTS header
 auroratownshipfd.org: could not connect to host
 ausnah.me: could not connect to host
 ausoptic.com.au: max-age too low: 2592000
+aussiecable.org: could not connect to host
 auszeit.bio: did not receive HSTS header
 auth.mail.ru: did not receive HSTS header
 authentication.io: could not connect to host
 authoritynutrition.com: did not receive HSTS header
 auto-serwis.zgorzelec.pl: did not receive HSTS header
 auto4trade.nl: could not connect to host
 autoepc.ro: did not receive HSTS header
 autojuhos.sk: could not connect to host
@@ -358,22 +358,24 @@ auverbox.ovh: could not connect to host
 auxiliumincrementum.co.uk: could not connect to host
 av.de: did not receive HSTS header
 avec-ou-sans-ordonnance.fr: could not connect to host
 avenelequinehospital.com.au: did not receive HSTS header
 aviacao.pt: did not receive HSTS header
 avinet.com: max-age too low: 0
 avqueen.cn: did not receive HSTS header
 avril4th.com: could not connect to host
+avus-automobile.com: did not receive HSTS header
 awg-mode.de: did not receive HSTS header
 axado.com.br: did not receive HSTS header
 axeny.com: did not receive HSTS header
 az.search.yahoo.com: did not receive HSTS header
 azprep.us: could not connect to host
 azuxul.fr: could not connect to host
+b303.me: did not receive HSTS header
 b3orion.com: max-age too low: 0
 b64.club: could not connect to host
 baby-click.de: did not receive HSTS header
 babybic.hu: did not receive HSTS header
 babyhouse.xyz: could not connect to host
 babysaying.me: max-age too low: 6000
 bacchanallia.com: could not connect to host
 back-bone.nl: did not receive HSTS header
@@ -383,17 +385,16 @@ badkamergigant.com: could not connect to
 badlink.org: could not connect to host
 baff.lu: did not receive HSTS header
 baiduaccount.com: could not connect to host
 baiyangliu.com: could not connect to host
 bakingstone.com: could not connect to host
 bakkerdesignandbuild.com: did not receive HSTS header
 balcan-underground.net: could not connect to host
 baldwinkoo.com: could not connect to host
-balonmano.co: could not connect to host
 bandb.xyz: could not connect to host
 bandrcrafts.com: could not connect to host
 bannisbierblog.de: could not connect to host
 banqingdiao.com: could not connect to host
 barely.sexy: did not receive HSTS header
 bashcode.ninja: could not connect to host
 basicsolutionsus.com: did not receive HSTS header
 basilisk.io: could not connect to host
@@ -403,16 +404,17 @@ baumstark.ca: could not connect to host
 baysse.eu: could not connect to host
 bazarstupava.sk: could not connect to host
 bcbsmagentprofile.com: could not connect to host
 bccx.com: could not connect to host
 bckp.de: did not receive HSTS header
 bcm.com.au: max-age too low: 0
 bcnx.de: max-age too low: 0
 bcsytv.com: could not connect to host
+bcvps.com: could not connect to host
 bcweightlifting.ca: could not connect to host
 be.search.yahoo.com: did not receive HSTS header
 beach-inspector.com: did not receive HSTS header
 beachi.es: could not connect to host
 beaglewatch.com: could not connect to host
 beamitapp.com: could not connect to host
 beardydave.com: did not receive HSTS header
 beastowner.com: did not receive HSTS header
@@ -483,16 +485,17 @@ bitf.ly: could not connect to host
 bitfactory.ws: could not connect to host
 bitfarm-archiv.com: did not receive HSTS header
 bitfarm-archiv.de: did not receive HSTS header
 bitgo.com: max-age too low: 0
 bitheus.com: could not connect to host
 bithosting.io: did not receive HSTS header
 bitnet.io: did not receive HSTS header
 bitsafe.systems: did not receive HSTS header
+bittmann.me: could not connect to host
 bitvigor.com: could not connect to host
 bityes.org: could not connect to host
 bivsi.com: could not connect to host
 bizcms.com: did not receive HSTS header
 bizon.sk: did not receive HSTS header
 black-armada.com.pl: could not connect to host
 black-armada.pl: could not connect to host
 blackburn.link: could not connect to host
@@ -558,17 +561,17 @@ brainvation.de: did not receive HSTS hea
 bran.cc: could not connect to host
 branchtrack.com: did not receive HSTS header
 branchzero.com: did not receive HSTS header
 brandnewdays.nl: could not connect to host
 brandon.so: could not connect to host
 brandred.net: could not connect to host
 brandspray.com: did not receive HSTS header
 brettabel.com: did not receive HSTS header
-brianmwaters.net: did not receive HSTS header
+brianmwaters.net: could not connect to host
 brickoo.com: could not connect to host
 brilliantbuilders.co.uk: could not connect to host
 britzer-toner.de: did not receive HSTS header
 brks.xyz: could not connect to host
 broken-oak.com: could not connect to host
 brookechase.com: did not receive HSTS header
 browserid.org: did not receive HSTS header
 brunix.net: did not receive HSTS header
@@ -624,16 +627,17 @@ cadao.me: did not receive HSTS header
 cafe-scientifique.org.ec: could not connect to host
 caim.cz: did not receive HSTS header
 cainhosting.com: did not receive HSTS header
 cajapopcorn.com: did not receive HSTS header
 cake.care: could not connect to host
 calendarr.com: did not receive HSTS header
 calgaryconstructionjobs.com: did not receive HSTS header
 calix.com: max-age too low: 0
+call.me: did not receive HSTS header
 calltrackingreports.com: could not connect to host
 calvin.me: max-age too low: 2592000
 calvinallen.net: did not receive HSTS header
 calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 camolist.com: could not connect to host
 canadiangamblingchoice.com: did not receive HSTS header
 cancelmyprofile.com: did not receive HSTS header
 candicontrols.com: did not receive HSTS header
@@ -721,17 +725,16 @@ chejianer.cn: did not receive HSTS heade
 chensir.net: could not connect to host
 cherysunzhang.com: max-age too low: 7776000
 chihiro.xyz: could not connect to host
 chijiokeindustries.co.uk: could not connect to host
 childcaresolutionscny.org: did not receive HSTS header
 chinacdn.org: could not connect to host
 chinawhale.com: did not receive HSTS header
 chirgui.eu: could not connect to host
-chloe.re: could not connect to host
 chm.vn: did not receive HSTS header
 chontalpa.pw: could not connect to host
 chopperforums.com: did not receive HSTS header
 chotu.net: could not connect to host
 chris-web.info: could not connect to host
 chrisandsarahinasia.com: did not receive HSTS header
 chrisbrown.id.au: could not connect to host
 chrisfaber.com: could not connect to host
@@ -760,17 +763,16 @@ ciplanutrition.com: did not receive HSTS
 circara.com: did not receive HSTS header
 ciscommerce.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 citiagent.cz: could not connect to host
 cityoflaurel.org: did not receive HSTS header
 clara-baumert.de: could not connect to host
 classicsandexotics.com: did not receive HSTS header
 classicspublishing.com: could not connect to host
 clcleaningco.com: could not connect to host
-cldly.com: could not connect to host
 cleanexperts.co.uk: could not connect to host
 cleaningsquad.ca: could not connect to host
 cleanmta.com: could not connect to host
 clearc.tk: could not connect to host
 clemovementlaw.com: could not connect to host
 clerkendweller.uk: could not connect to host
 clickandgo.com: did not receive HSTS header
 clickandshoot.nl: did not receive HSTS header
@@ -782,16 +784,17 @@ clintwilson.technology: max-age too low:
 clip.mx: did not receive HSTS header
 cloud.wtf: could not connect to host
 cloudapi.vc: could not connect to host
 cloudcert.org: did not receive HSTS header
 cloudcy.net: could not connect to host
 clouddesktop.co.nz: could not connect to host
 cloudey.net: did not receive HSTS header
 cloudflare.com: did not receive HSTS header
+cloudily.com: could not connect to host
 cloudimag.es: could not connect to host
 cloudlink.club: could not connect to host
 cloudns.com.au: could not connect to host
 cloudspotterapp.com: did not receive HSTS header
 cloudstoragemaus.com: could not connect to host
 cloudstorm.me: could not connect to host
 cloudwalk.io: did not receive HSTS header
 cloverleaf.net: max-age too low: 0
@@ -804,17 +807,16 @@ cmci.dk: did not receive HSTS header
 cmlachapelle.ch: did not receive HSTS header
 cmlancy.ch: did not receive HSTS header
 cmlignon.ch: did not receive HSTS header
 cmplainpalais.ch: did not receive HSTS header
 cmsbattle.com: could not connect to host
 cmscafe.ru: did not receive HSTS header
 cn.search.yahoo.com: did not receive HSTS header
 cni-certing.it: max-age too low: 0
-cnwarn.com: could not connect to host
 co50.com: did not receive HSTS header
 cocaine-import.agency: could not connect to host
 cocktailfuture.fr: could not connect to host
 codabix.com: did not receive HSTS header
 codabix.de: could not connect to host
 codabix.net: could not connect to host
 code.google.com: did not receive HSTS header (error ignored - included regardless)
 codeco.pw: could not connect to host
@@ -901,16 +903,17 @@ criticalaim.com: could not connect to ho
 crizk.com: could not connect to host
 crosssec.com: did not receive HSTS header
 crow.tw: could not connect to host
 crowd.supply: could not connect to host
 crowdcurity.com: did not receive HSTS header
 crowdjuris.com: could not connect to host
 crtvmgmt.com: could not connect to host
 crudysql.com: could not connect to host
+crufad.org: did not receive HSTS header
 cruzr.xyz: could not connect to host
 crypt.guru: could not connect to host
 crypticshell.co.uk: could not connect to host
 cryptify.eu: could not connect to host
 cryptobin.org: could not connect to host
 cryptojar.io: did not receive HSTS header
 cryptoki.fr: max-age too low: 7776000
 cryptolab.pro: could not connect to host
@@ -941,16 +944,17 @@ cuntflaps.me: did not receive HSTS heade
 cuongquach.com: did not receive HSTS header
 cupidmentor.com: did not receive HSTS header
 curroapp.com: could not connect to host
 custe.rs: could not connect to host
 cuvva.insure: did not receive HSTS header
 cyanogenmod.xxx: could not connect to host
 cyberpunk.ca: could not connect to host
 cybershambles.com: could not connect to host
+cyclebeads.com: could not connect to host
 cycleluxembourg.lu: did not receive HSTS header
 cydia-search.io: could not connect to host
 cyphertite.com: could not connect to host
 czlx.co: could not connect to host
 dad256.tk: could not connect to host
 dadtheimpaler.com: could not connect to host
 dah5.com: did not receive HSTS header
 dailystormerpodcasts.com: did not receive HSTS header
@@ -986,17 +990,17 @@ databionix.com: could not connect to hos
 databutlr.com: could not connect to host
 databutlr.net: could not connect to host
 datahove.no: did not receive HSTS header
 datajapan.co.jp: could not connect to host
 datarank.com: max-age too low: 0
 dataretention.solutions: could not connect to host
 datatekniikka.com: could not connect to host
 datenkeks.de: did not receive HSTS header
-dateno1.com: max-age too low: 2592000
+dateno1.com: max-age too low: 0
 datenreiter.cf: could not connect to host
 datenreiter.gq: could not connect to host
 datenreiter.ml: could not connect to host
 datenreiter.tk: could not connect to host
 datewon.net: did not receive HSTS header
 davidglidden.eu: could not connect to host
 davidgrudl.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 davidhunter.scot: did not receive HSTS header
@@ -1007,17 +1011,17 @@ daylightcompany.com: did not receive HST
 daytonaseaside.com: did not receive HSTS header
 db.gy: did not receive HSTS header
 dbx.ovh: could not connect to host
 dccode.gov: could not connect to host
 dcurt.is: did not receive HSTS header
 dden.ca: could not connect to host
 dden.website: could not connect to host
 dden.xyz: could not connect to host
-ddfreedish.site: max-age too low: 1
+ddfreedish.site: did not receive HSTS header
 debank.tv: did not receive HSTS header
 debatch.se: could not connect to host
 debian-vhost.de: did not receive HSTS header
 debiton.dk: could not connect to host
 debtkit.co.uk: did not receive HSTS header
 decafu.co: could not connect to host
 decesus.com: could not connect to host
 decibelios.li: could not connect to host
@@ -1047,28 +1051,28 @@ dentaldomain.ph: could not connect to ho
 depeche-mode.moscow: max-age too low: 7200
 depijl-mz.nl: did not receive HSTS header
 depixion.agency: could not connect to host
 dequehablamos.es: could not connect to host
 derevtsov.com: did not receive HSTS header
 derhil.de: did not receive HSTS header
 derwolfe.net: did not receive HSTS header
 desiccantpackets.com: did not receive HSTS header
-designgears.com: could not connect to host
+designgears.com: did not receive HSTS header
 designthinking.or.jp: did not receive HSTS header
 despora.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 destinationbijoux.fr: could not connect to host
 detector.exposed: could not connect to host
 devcu.net: did not receive HSTS header
-devdesco.com: could not connect to host
-devh.net: could not connect to host
 deviltracks.net: could not connect to host
 devincrow.me: could not connect to host
+devopsconnected.com: could not connect to host
 devtub.com: did not receive HSTS header
 devuan.org: did not receive HSTS header
+dewin.io: could not connect to host
 dhpcs.com: did not receive HSTS header
 dhpiggott.net: did not receive HSTS header
 diablotine.rocks: could not connect to host
 diamante.ro: could not connect to host
 diarbag.us: did not receive HSTS header
 diasp.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 dick.red: could not connect to host
 diedrich.co: did not receive HSTS header
@@ -1103,17 +1107,16 @@ do.search.yahoo.com: did not receive HST
 dobet.in: could not connect to host
 docid.io: could not connect to host
 docket.news: could not connect to host
 docs.google.com: did not receive HSTS header (error ignored - included regardless)
 docset.io: could not connect to host
 docufiel.com: could not connect to host
 doeswindowssuckforeveryoneorjustme.com: could not connect to host
 dogbox.se: did not receive HSTS header
-dogmap.jp: could not connect to host
 dohosting.ru: could not connect to host
 dokan.online: could not connect to host
 dollarstore24.com: could not connect to host
 dollywiki.co.uk: could not connect to host
 dolphin-cloud.com: could not connect to host
 dolphincorp.co.uk: could not connect to host
 domaris.de: did not receive HSTS header
 dominicpratt.de: did not receive HSTS header
@@ -1136,16 +1139,17 @@ doyoucheck.com: did not receive HSTS hea
 dpratt.de: did not receive HSTS header
 dragonisles.net: could not connect to host
 dragons-of-highlands.cz: could not connect to host
 dragontrainingmobilezoo.com.au: max-age too low: 0
 draw.uy: could not connect to host
 drdevil.ru: could not connect to host
 drdim.ru: could not connect to host
 dreadbyte.com: could not connect to host
+drewgle.net: could not connect to host
 drhopeson.com: could not connect to host
 drishti.guru: could not connect to host
 drive.google.com: did not receive HSTS header (error ignored - included regardless)
 drobniuch.pl: could not connect to host
 droidboss.com: could not connect to host
 dropcam.com: did not receive HSTS header
 drtroyhendrickson.com: could not connect to host
 drumbandesperanto.nl: could not connect to host
@@ -1157,17 +1161,16 @@ duria.de: max-age too low: 3600
 dustri.org: did not receive HSTS header
 dutchrank.com: could not connect to host
 dwhd.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 dycontrol.de: could not connect to host
 dylanscott.com.au: did not receive HSTS header
 dymersion.com: did not receive HSTS header
 dzimejl.sk: did not receive HSTS header
 dzlibs.io: could not connect to host
-dzndk.net: could not connect to host
 dzndk.org: could not connect to host
 e-aut.net: did not receive HSTS header
 e-deca2.org: did not receive HSTS header
 e-sa.com: did not receive HSTS header
 e3amn2l.com: could not connect to host
 earlybirdsnacks.com: could not connect to host
 easez.net: did not receive HSTS header
 easychiller.org: could not connect to host
@@ -1236,32 +1239,28 @@ emilyhorsman.com: could not connect to h
 eminovic.me: could not connect to host
 emjainteractive.com: did not receive HSTS header
 emjimadhu.com: could not connect to host
 emmable.com: could not connect to host
 emnitech.com: could not connect to host
 empleosentorreon.mx: could not connect to host
 empleostampico.com: did not receive HSTS header
 enaah.de: could not connect to host
+enaia.fr: could not connect to host
 enargia.jp: max-age too low: 0
 encode.host: did not receive HSTS header
 encode.space: did not receive HSTS header
 encoder.pw: could not connect to host
 encontrebarato.com.br: did not receive HSTS header
 encrypted.google.com: did not receive HSTS header (error ignored - included regardless)
 end.pp.ua: could not connect to host
 endlessdark.net: max-age too low: 600
 endlessdiy.ca: could not connect to host
 endlesstone.com: did not receive HSTS header
-endohaus.ca: could not connect to host
-endohaus.com: could not connect to host
-endohaus.eu: could not connect to host
-endohaus.us: could not connect to host
 enersec.co.uk: could not connect to host
-enfoqueseguro.com: did not receive HSTS header
 engelwerbung.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 enigmacpt.com: did not receive HSTS header
 enigmail.net: did not receive HSTS header
 enjoy-nepal.de: max-age too low: 0
 enskat.de: could not connect to host
 enskatson-sippe.de: could not connect to host
 enteente.club: could not connect to host
 enteente.space: could not connect to host
@@ -1291,27 +1290,26 @@ ernesto.at: could not connect to host
 eromixx.com: did not receive HSTS header
 erotalia.es: could not connect to host
 eroticen.com: did not receive HSTS header
 erotische-aanbiedingen.nl: could not connect to host
 errlytics.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 errolz.com: could not connect to host
 errors.zenpayroll.com: could not connect to host
 ersindemirtas.com: did not receive HSTS header
-escotour.com: could not connect to host
+escotour.com: did not receive HSTS header
 esec.rs: did not receive HSTS header
 esko.bar: could not connect to host
 esln.org: did not receive HSTS header
 esoterikerforum.de: did not receive HSTS header
 espra.com: could not connect to host
 esquonic.com: could not connect to host
 essexcosmeticdentists.co.uk: did not receive HSTS header
 essexghosthunters.co.uk: did not receive HSTS header
 estilosapeca.com: could not connect to host
-estoic.net: could not connect to host
 et-buchholz.de: could not connect to host
 etdonline.co.uk: could not connect to host
 eternitylove.us: could not connect to host
 eth9.net: max-age too low: 0
 ethicalexploiting.com: could not connect to host
 etsysecure.com: could not connect to host
 etula.ga: could not connect to host
 etula.me: could not connect to host
@@ -1364,47 +1362,45 @@ falconfrag.com: could not connect to hos
 falkena.net: max-age too low: 5184000
 falkp.no: did not receive HSTS header
 fallenangelspirits.uk: could not connect to host
 familie-sprink.de: could not connect to host
 familie-zimmermann.at: could not connect to host
 familjenm.se: could not connect to host
 fanyl.cn: could not connect to host
 farhadexchange.com: did not receive HSTS header
-farhood.org: could not connect to host
 fashioncare.cz: did not receive HSTS header
 fasset.jp: could not connect to host
-fastconfirm.com: could not connect to host
 fastograph.com: could not connect to host
 fastopen.ml: could not connect to host
 fatgeekflix.net: could not connect to host
 fatherhood.gov: did not receive HSTS header
 fatlossguide.xyz: could not connect to host
 fatox.de: could not connect to host
 fayolle.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 fbox.li: could not connect to host
 fdj.im: could not connect to host
 feard.space: could not connect to host
 feastr.de: did not receive HSTS header
 fedux.com.ar: could not connect to host
 feezmodo.com: max-age too low: 0
 felisslovakia.sk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 feliwyn.fr: did not receive HSTS header
-felixklein.at: could not connect to host
 feminists.co: could not connect to host
 fenteo.com: could not connect to host
 feragon.net: did not receive HSTS header
 fernseher-kauf.de: could not connect to host
 ferrolatino.com: could not connect to host
 festember.com: did not receive HSTS header
 festrip.com: could not connect to host
 fexmen.com: could not connect to host
 ffmradio.de: did not receive HSTS header
 fhdhelp.de: could not connect to host
 fhdhilft.de: could not connect to host
+fifieldtech.com: could not connect to host
 fiftyshadesofluca.ml: could not connect to host
 fig.co: did not receive HSTS header
 fightr.co: could not connect to host
 fikt.space: could not connect to host
 filmipop.com: max-age too low: 0
 finalgear.com: did not receive HSTS header
 financieringsportaal.nl: did not receive HSTS header
 finanzkontor.net: could not connect to host
@@ -1431,16 +1427,17 @@ fixatom.com: did not receive HSTS header
 fixingdns.com: did not receive HSTS header
 fj.search.yahoo.com: did not receive HSTS header
 fjruiz.es: did not receive HSTS header
 flags.ninja: could not connect to host
 flamewall.net: could not connect to host
 flareon.net: could not connect to host
 flawcheck.com: did not receive HSTS header
 fleurette.me: max-age too low: 0
+fleximus.org: could not connect to host
 fliexer.com: could not connect to host
 flirchi.com: did not receive HSTS header
 floless.co.uk: did not receive HSTS header
 florian-lillpopp.de: max-age too low: 10
 florianlillpopp.de: max-age too low: 10
 floridaescapes.co.uk: did not receive HSTS header
 flouartistique.ch: could not connect to host
 flow.pe: could not connect to host
@@ -1464,17 +1461,17 @@ forextimes.ru: [Exception... "Component 
 formazioneopen.it: did not receive HSTS header
 formbetter.com: could not connect to host
 formula.cf: could not connect to host
 fotiu.com: could not connect to host
 fotm.net: did not receive HSTS header
 fotocerita.net: could not connect to host
 fotografosexpertos.com: did not receive HSTS header
 fotopasja.info: could not connect to host
-fourchin.net: could not connect to host
+fourchin.net: did not receive HSTS header
 foxdev.io: could not connect to host
 foxelbox.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 foxley-farm.co.uk: did not receive HSTS header
 foxley-seeds.co.uk: could not connect to host
 foxleyseeds.co.uk: could not connect to host
 foxtrot.pw: could not connect to host
 fr33d0m.link: could not connect to host
 francevpn.xyz: could not connect to host
@@ -1532,21 +1529,19 @@ fysiohaenraets.nl: did not receive HSTS 
 fzn.io: could not connect to host
 fzslm.me: did not receive HSTS header
 g01.in.ua: could not connect to host
 g2a.co: did not receive HSTS header
 g2g.com: did not receive HSTS header
 g4w.co: did not receive HSTS header (error ignored - included regardless)
 g5led.nl: could not connect to host
 gabber.scot: could not connect to host
-gabi.com.es: could not connect to host
-gabi.soy: could not connect to host
-gabi.uno: could not connect to host
 gaelleetarnaud.com: did not receive HSTS header
 gafachi.com: could not connect to host
+gaiserik.com: could not connect to host
 gaite.me: could not connect to host
 gakkainavi.jp: did not receive HSTS header
 gakkainavi4.com: could not connect to host
 gakkainavi4.net: did not receive HSTS header
 galardi.org: did not receive HSTS header
 galenskap.eu: could not connect to host
 gallery44.org: did not receive HSTS header
 galoisvpn.xyz: could not connect to host
@@ -1554,16 +1549,17 @@ game-files.net: did not receive HSTS hea
 game.yt: could not connect to host
 gamecave.de: could not connect to host
 gamechasm.com: could not connect to host
 gamefund.me: did not receive HSTS header
 gamehacks.me: could not connect to host
 gameink.net: max-age too low: 0
 gamenected.com: could not connect to host
 gamenected.de: could not connect to host
+gameofpwnz.com: did not receive HSTS header
 gamepader.com: could not connect to host
 gameparade.de: could not connect to host
 gamepiece.com: could not connect to host
 gamerslair.org: did not receive HSTS header
 gamesdepartment.co.uk: did not receive HSTS header
 gameserver-sponsor.de: could not connect to host
 gamingmedia.eu: did not receive HSTS header
 gampenhof.de: did not receive HSTS header
@@ -1663,33 +1659,33 @@ goerner.me: did not receive HSTS header
 goge.site: could not connect to host
 gogenenglish.com: could not connect to host
 gogetssl.com: did not receive HSTS header
 goggs.eu: did not receive HSTS header
 gogold-g.com: could not connect to host
 gold24.in: did not receive HSTS header
 goldendata.io: could not connect to host
 golocal-media.de: did not receive HSTS header
-gonkar.com: did not receive HSTS header
 gonzalosanchez.mx: could not connect to host
 goodenough.nz: did not receive HSTS header
 goodwin43.ru: could not connect to host
 google: could not connect to host (error ignored - included regardless)
 googlemail.com: did not receive HSTS header (error ignored - included regardless)
 googleplex.com: did not receive HSTS header (error ignored - included regardless)
 goolok.com: could not connect to host
 gorilla-gym.site: could not connect to host
 goto.google.com: did not receive HSTS header (error ignored - included regardless)
 gotowned.org: did not receive HSTS header
 gotspot.com: could not connect to host
 gottcode.org: did not receive HSTS header
 gov.ax: could not connect to host
 govillemo.ca: did not receive HSTS header
 gozel.com.tr: did not receive HSTS header
 gparent.org: did not receive HSTS header
+gpfclan.de: could not connect to host
 gpsfix.cz: could not connect to host
 gpstuner.com: did not receive HSTS header
 gracesofgrief.com: max-age too low: 86400
 gradienthosting.co.uk: did not receive HSTS header
 grandmascookieblog.com: did not receive HSTS header
 grantedby.me: could not connect to host
 graph.no: did not receive HSTS header
 graphsearchengine.com: could not connect to host
@@ -1736,16 +1732,17 @@ gw2reload.eu: could not connect to host
 gwijaya.com: could not connect to host
 gwtest.us: could not connect to host
 gxlrx.net: could not connect to host
 gyboche.com: could not connect to host
 gyboche.science: could not connect to host
 gycis.me: could not connect to host
 gypthecat.com: max-age too low: 604800
 gyz.io: could not connect to host
+gzitech.com: could not connect to host
 h2check.org: could not connect to host
 haarkliniek.com: did not receive HSTS header
 habanaavenue.com: did not receive HSTS header
 habbo.life: did not receive HSTS header
 hablemosdetecnologia.com.ve: could not connect to host
 hack.cz: could not connect to host
 hack.li: did not receive HSTS header
 hacker.one: could not connect to host
@@ -1757,33 +1754,36 @@ hadzic.co: could not connect to host
 haeckdesign.com: did not receive HSTS header
 hahayidu.org: could not connect to host
 haitschi.com: could not connect to host
 haitschi.de: could not connect to host
 haitschi.net: could not connect to host
 haitschi.org: could not connect to host
 haku.moe: could not connect to host
 hakugin.org: could not connect to host
+halcyonsbastion.com: could not connect to host
 halo.red: could not connect to host
 hancc.net: could not connect to host
 hanfu.la: could not connect to host
 hang333.pw: did not receive HSTS header
 hanimalis.fr: could not connect to host
 hansen.hn: could not connect to host
 hao2taiwan.com: max-age too low: 0
 haoyugao.com: could not connect to host
 hapissl.com: could not connect to host
 happyfabric.me: did not receive HSTS header
 happygastro.com: could not connect to host
 harabuhouse.com: did not receive HSTS header
 harbor-light.net: could not connect to host
+hardfalcon.net: could not connect to host
 hardline.xyz: could not connect to host
 haribosupermix.com: could not connect to host
 harmonycosmetic.com: max-age too low: 300
 harristony.com: could not connect to host
+hartie95.de: could not connect to host
 hartmancpa.com: did not receive HSTS header
 harvestrenewal.org: did not receive HSTS header
 harz.cloud: could not connect to host
 has.vision: could not connect to host
 hash-list.com: could not connect to host
 hasilocke.de: did not receive HSTS header
 haste.ch: could not connect to host
 hastherebeenamassshooting.today: could not connect to host
@@ -1813,20 +1813,20 @@ helgakristoffer.wedding: could not conne
 helloworldhost.com: did not receive HSTS header
 helpadmin.net: could not connect to host
 helpium.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 helpmebuild.com: did not receive HSTS header
 hemdal.se: could not connect to host
 hencagon.com: could not connect to host
 henriknoerr.com: could not connect to host
 hermes-net.de: could not connect to host
-herpaderp.net: did not receive HSTS header
 herrenfahrt.com: did not receive HSTS header
 herzbotschaft.de: did not receive HSTS header
 heutger.net: did not receive HSTS header
+heywoodtown.co.uk: could not connect to host
 hibilog.com: could not connect to host
 hicn.gq: could not connect to host
 hiddendepth.ie: max-age too low: 0
 hiddenmail.xyz: could not connect to host
 hiddenrefuge.eu.org: could not connect to host
 highseer.com: did not receive HSTS header
 highsurf-miyazaki.com: did not receive HSTS header
 highvelocitydesign.com: could not connect to host
@@ -1878,44 +1878,42 @@ hsir.me: could not connect to host
 hsts.date: could not connect to host
 html-lab.tk: could not connect to host
 http418.xyz: could not connect to host
 httpstatuscode418.xyz: could not connect to host
 hu.search.yahoo.com: did not receive HSTS header
 huarongdao.com: did not receive HSTS header
 hugocollignon.fr: could not connect to host
 hugosleep.com.au: did not receive HSTS header
-humankode.com: did not receive HSTS header
 humblefinances.com: could not connect to host
 humeurs.net: could not connect to host
 humpteedumptee.in: did not receive HSTS header
 huntshomeinspections.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 hurricanelabs.com: did not receive HSTS header
 huskybutt.dog: could not connect to host
 hydra.ws: could not connect to host
 hydronium.cf: could not connect to host
 hydronium.ga: could not connect to host
 hydronium.me: could not connect to host
 hydronium.tk: could not connect to host
 hyper69.com: did not receive HSTS header
 i-jp.net: could not connect to host
 i-partners.sk: did not receive HSTS header
 iamokay.nl: did not receive HSTS header
-iamusingtheinter.net: could not connect to host
 iamveto.com: could not connect to host
 iapws.com: did not receive HSTS header
 iban.is: could not connect to host
 ibarf.nl: did not receive HSTS header
 icewoman.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 icfl.com.br: could not connect to host
 ichnichtskaufmann.de: could not connect to host
 ichoosebtec.com: could not connect to host
 icpc2016.in.th: could not connect to host
 icreative.nl: did not receive HSTS header
-ictual.com: could not connect to host
+ictual.com: max-age too low: 0
 id-co.in: could not connect to host
 id-conf.com: could not connect to host
 idacmedia.com: max-age too low: 5184000
 idcrane.com: could not connect to host
 ideadozz.hu: could not connect to host
 ideal-envelopes.co.uk: did not receive HSTS header
 ideasmeetingpoint.com: could not connect to host
 ideation-inc.co.jp: did not receive HSTS header
@@ -1996,17 +1994,16 @@ insane-bullets.com: could not connect to
 insane.zone: could not connect to host
 insite-feedback.com: did not receive HSTS header
 inspire-av.com: did not receive HSTS header
 inspiroinc.com: could not connect to host
 instacart.com: did not receive HSTS header
 instantdev.io: could not connect to host
 instela.com: did not receive HSTS header
 institutoflordelavida.com: could not connect to host
-institutolancaster.com: could not connect to host
 intel.li: could not connect to host
 intelldynamics.com: could not connect to host
 interference.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 interlun.com: could not connect to host
 intermedinet.nl: could not connect to host
 internetcasinos.de: could not connect to host
 internetcensus.org: could not connect to host
 interserved.com: did not receive HSTS header
@@ -2050,31 +2047,29 @@ istaspirtslietas.lv: did not receive HST
 it-go.net: did not receive HSTS header
 itechgeek.com: max-age too low: 0
 itos.asia: did not receive HSTS header
 itos.pl: did not receive HSTS header
 itriskltd.com: could not connect to host
 itsadog.co.uk: did not receive HSTS header
 itsagadget.com: did not receive HSTS header
 itsamurai.ru: max-age too low: 2592000
-itsatrap.nl: could not connect to host
 itsecurityassurance.pw: could not connect to host
 itsg-faq.de: could not connect to host
 itshost.ru: could not connect to host
 ivi-fertility.com: max-age too low: 0
 ivi.es: max-age too low: 0
 ivk.website: could not connect to host
 izdiwho.com: could not connect to host
 izolight.ch: could not connect to host
 izoox.com: did not receive HSTS header
 izzzorgconcerten.nl: could not connect to host
 ja-publications.com: did not receive HSTS header
 jabbari.io: did not receive HSTS header
 jackalworks.com: could not connect to host
-jackyyf.com: could not connect to host
 jacobparry.ca: did not receive HSTS header
 jagido.de: did not receive HSTS header
 jahliveradio.com: could not connect to host
 jakenbake.com: did not receive HSTS header
 jakubtopic.cz: could not connect to host
 james.je: could not connect to host
 jamesandpame.la: could not connect to host
 jamesbradach.com: did not receive HSTS header
@@ -2102,17 +2097,17 @@ jaredeberle.org: did not receive HSTS he
 jaroslavtrsek.cz: did not receive HSTS header
 jartza.org: could not connect to host
 jasmineconseil.com: did not receive HSTS header
 jasonrobinson.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 jasonroe.me: did not receive HSTS header
 jasonsansone.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 jastoria.pl: could not connect to host
 jayblock.com: did not receive HSTS header
-jayschulman.com: could not connect to host
+jayschulman.com: did not receive HSTS header
 jayscoaching.com: did not receive HSTS header
 jayshao.com: did not receive HSTS header
 jazzinutrecht.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 jazzncheese.com: could not connect to host
 jbn.mx: could not connect to host
 jcch.de: could not connect to host
 jcor.me: did not receive HSTS header
 jcoscia.com: could not connect to host
@@ -2186,34 +2181,33 @@ jupp0r.de: did not receive HSTS header
 justanothercompany.name: could not connect to host
 justlikethat.hosting: did not receive HSTS header
 justnaw.co.uk: could not connect to host
 justudin.com: did not receive HSTS header
 juwairen.cn: did not receive HSTS header
 jvoice.net: could not connect to host
 jwilsson.me: could not connect to host
 jxm.in: could not connect to host
-jyoti-fairworks.org: could not connect to host
 jznet.org: max-age too low: 86400
 k-dev.de: could not connect to host
 ka-clan.com: could not connect to host
 kabuabc.com: did not receive HSTS header
 kabus.org: could not connect to host
 kadioglumakina.com.tr: did not receive HSTS header
 kaela.design: could not connect to host
 kahopoon.net: could not connect to host
 kaisers.de: did not receive HSTS header
 kalami.nl: did not receive HSTS header
 kaliaa.fi: could not connect to host
 kamikano.com: could not connect to host
 kaneo-gmbh.de: did not receive HSTS header
 kaplatz.is: could not connect to host
 kapucini.si: max-age too low: 0
 karaoketonight.com: could not connect to host
-kasilag.me: could not connect to host
+kasilag.me: did not receive HSTS header
 katiaetdavid.fr: could not connect to host
 katproxy.online: could not connect to host
 katproxy.site: could not connect to host
 katproxy.tech: could not connect to host
 kaufkraftkiel.de: could not connect to host
 kausch.at: did not receive HSTS header
 kavinvin.me: did not receive HSTS header
 kawaii.io: max-age too low: 2592000
@@ -2228,22 +2222,22 @@ keeley.gq: could not connect to host
 keeley.ml: could not connect to host
 keeleysam.me: could not connect to host
 keepclean.me: could not connect to host
 kellyandantony.com: could not connect to host
 kenderbeton-magyarorszag.hu: did not receive HSTS header
 kenderbetonmagyarorszag.hu: did not receive HSTS header
 kenderhaz-magyarorszag.hu: did not receive HSTS header
 kenderhazmagyarorszag.hu: did not receive HSTS header
-kennethlim.me: did not receive HSTS header
 kerangalam.com: could not connect to host
 kerksanders.nl: did not receive HSTS header
 kermadec.net: could not connect to host
 kernl.us: did not receive HSTS header
 keymaster.lookout.com: did not receive HSTS header
+kg-rating.com: could not connect to host
 kgxtech.com: max-age too low: 2592000
 ki-on.net: did not receive HSTS header
 kickass.al: could not connect to host
 kid-dachau.de: did not receive HSTS header
 kiel-media.de: did not receive HSTS header
 kienlen.org: could not connect to host
 kimpost.org: could not connect to host
 kinderly.co.uk: did not receive HSTS header
@@ -2300,17 +2294,16 @@ kostya.net: could not connect to host
 kotonehoko.net: could not connect to host
 kotovstyle.ru: could not connect to host
 kr.search.yahoo.com: did not receive HSTS header
 kramsj.uk: could not connect to host
 krayx.com: could not connect to host
 kreavis.com: did not receive HSTS header
 kredite.sale: could not connect to host
 kriegt.es: could not connect to host
-kristikala.nl: could not connect to host
 kristofferkoch.com: could not connect to host
 krmela.com: could not connect to host
 kroetenfuchs.de: could not connect to host
 kropkait.pl: could not connect to host
 krouzkyliduska.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 krunut.com: did not receive HSTS header
 krypteia.org: could not connect to host
 kryptomech.com: could not connect to host
@@ -2319,16 +2312,17 @@ kstan.me: could not connect to host
 kswriter.com: could not connect to host
 kucom.it: did not receive HSTS header
 kueulangtahunanak.net: could not connect to host
 kummerlaender.eu: did not receive HSTS header
 kupelne-ptacek.sk: did not receive HSTS header
 kuppingercole.com: did not receive HSTS header
 kura.io: could not connect to host
 kurehun.org: could not connect to host
+kurofuku.me: could not connect to host
 kurtmclester.com: did not receive HSTS header
 kusaka-abacus.jp: max-age too low: 0
 kweddingplanning.com: did not receive HSTS header
 kwok.tv: could not connect to host
 kyanite.co: could not connect to host
 kylapps.com: did not receive HSTS header
 kylinj.com: could not connect to host
 kyochon.fr: could not connect to host
@@ -2337,16 +2331,17 @@ kzjnet.com: could not connect to host
 l2guru.ru: could not connect to host
 labaia.info: could not connect to host
 labina.com.tr: did not receive HSTS header
 laboiteapc.fr: did not receive HSTS header
 labordata.io: did not receive HSTS header
 labrador-retrievers.com.au: did not receive HSTS header
 labs.moscow: did not receive HSTS header
 lachlankidson.net: did not receive HSTS header
+lacledeslan.com: could not connect to host
 lacledeslan.ninja: could not connect to host
 lacocinadelila.com: did not receive HSTS header
 ladbroke.net: did not receive HSTS header
 laf.in.net: could not connect to host
 lagalerievirtuelle.fr: did not receive HSTS header
 lagoza.name: could not connect to host
 lambdafive.co.uk: could not connect to host
 lampl.info: did not receive HSTS header
@@ -2363,16 +2358,17 @@ latinred.com: could not connect to host
 latour-managedcare.ch: did not receive HSTS header
 latus.xyz: could not connect to host
 lausitzer-widerstand.de: could not connect to host
 lavine.ch: did not receive HSTS header
 lavval.com: could not connect to host
 lawformt.com: could not connect to host
 laxatus.com: did not receive HSTS header
 laxiongames.es: could not connect to host
+laylo.nl: did not receive HSTS header
 lbrt.xyz: could not connect to host
 ldarby.me.uk: could not connect to host
 leadership9.com: could not connect to host
 leardev.de: did not receive HSTS header
 learnfrenchfluently.com: did not receive HSTS header
 learningorder.com: could not connect to host
 lebal.se: could not connect to host
 lechiennoir.net: did not receive HSTS header
@@ -2395,17 +2391,16 @@ leopold.email: could not connect to host
 leopotamgroup.com: could not connect to host
 leovanna.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 lepont.pl: could not connect to host
 lerner.moscow: did not receive HSTS header
 les-corsaires.net: could not connect to host
 lesdouceursdeliyana.com: could not connect to host
 lesperlesdunet.fr: could not connect to host
 letras.mus.br: did not receive HSTS header
-lets.ninja: could not connect to host
 letsmultiplayerplay.com: did not receive HSTS header
 letustravel.tk: could not connect to host
 levelum.com: did not receive HSTS header
 lfullerdesign.com: did not receive HSTS header
 lgiswa.com.au: did not receive HSTS header
 lgrs.com.au: did not receive HSTS header
 lgts.se: could not connect to host
 li.search.yahoo.com: did not receive HSTS header
@@ -2458,16 +2453,17 @@ linuxgeek.ro: could not connect to host
 linuxmonitoring.net: did not receive HSTS header
 liquorsanthe.in: could not connect to host
 lisonfan.com: did not receive HSTS header
 listafirmelor.com: could not connect to host
 litespeed.io: could not connect to host
 livedemo.io: could not connect to host
 livej.am: could not connect to host
 livi.co: did not receive HSTS header
+lnoldan.com: could not connect to host
 loadingdeck.com: did not receive HSTS header
 loadso.me: could not connect to host
 loafbox.com: could not connect to host
 locktheirphone.com: could not connect to host
 locomotive.ca: did not receive HSTS header
 login.corp.google.com: max-age too low: 7776000 (error ignored - included regardless)
 loginseite.com: could not connect to host
 lonal.com: could not connect to host
@@ -2550,17 +2546,16 @@ magenx.com: did not receive HSTS header
 magicbroccoli.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 mahamed91.pw: could not connect to host
 mail-settings.google.com: did not receive HSTS header (error ignored - included regardless)
 mail.google.com: did not receive HSTS header (error ignored - included regardless)
 maildragon.com: could not connect to host
 mailhost.it: could not connect to host
 makeitdynamic.com: could not connect to host
 makerstuff.net: did not receive HSTS header
-makeuplove.nl: could not connect to host
 malerversand.de: did not receive HSTS header
 malfait.nl: could not connect to host
 malkaso.com.ua: could not connect to host
 maltes.website: could not connect to host
 malwre.io: could not connect to host
 mamaison.io: could not connect to host
 mamaxi.org: did not receive HSTS header
 mammothmail.com: could not connect to host
@@ -2825,32 +2820,32 @@ myairshop.gr: could not connect to host
 myandroidtools.cc: could not connect to host
 mybon.at: could not connect to host
 mybudget.xyz: could not connect to host
 mybuilderinlondon.co.uk: could not connect to host
 mycollab.net: could not connect to host
 mycoted.com: did not receive HSTS header
 mydeos.com: could not connect to host
 mydigipass.com: did not receive HSTS header
+myg21.com: max-age too low: 0
 mygate.at: could not connect to host
 mygdut.com: did not receive HSTS header
 mygov.scot: did not receive HSTS header
 myiocc.org: could not connect to host
 mykolab.com: did not receive HSTS header
 mykreuzfahrt.de: could not connect to host
 myni.io: could not connect to host
 mypagella.com: could not connect to host
 mypagella.eu: could not connect to host
 mypagella.it: could not connect to host
 mypension.ca: could not connect to host
 myphonebox.de: could not connect to host
 myraytech.net: did not receive HSTS header
 mysecretrewards.com: did not receive HSTS header
-mystery-science-theater-3000.de: could not connect to host
-mythslegendscollection.com: did not receive HSTS header
+mystery-science-theater-3000.de: did not receive HSTS header
 myvirtualserver.com: max-age too low: 2592000
 myzone.com: did not receive HSTS header
 n0psled.nl: could not connect to host
 n2x.in: could not connect to host
 n4l.pw: could not connect to host
 nabytko.cz: could not connect to host
 nadia.pt: could not connect to host
 nagoya-kyuyo.com: could not connect to host
@@ -2883,18 +2878,16 @@ naval.tf: could not connect to host
 navenlle.com: did not receive HSTS header
 navjobs.com: did not receive HSTS header
 nbb.io: could not connect to host
 nbg-ha.de: could not connect to host
 ncc60205.info: could not connect to host
 ncpc.gov: could not connect to host
 nct.org.uk: max-age too low: 1
 nctx.co.uk: did not receive HSTS header
-ndtblog.com: could not connect to host
-ndtmarket.place: could not connect to host
 near.st: did not receive HSTS header
 neel.ch: could not connect to host
 neels.ch: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 neftaly.com: did not receive HSTS header
 neilgreen.net: did not receive HSTS header
 neko-life.com: did not receive HSTS header
 neko-system.com: did not receive HSTS header
 nemno.de: could not connect to host
@@ -2941,25 +2934,24 @@ nicolasbettag.me: did not receive HSTS h
 niconiconi.xyz: could not connect to host
 niconode.com: could not connect to host
 nien.chat: could not connect to host
 nightwinds.tk: could not connect to host
 nightx.uk: could not connect to host
 niho.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 nikomo.fi: could not connect to host
 ninchisho-online.com: did not receive HSTS header
-ninhs.org: could not connect to host
+ninhs.org: did not receive HSTS header
 nippler.org: did not receive HSTS header
 nippombashi.net: did not receive HSTS header
 nipponcareers.com: did not receive HSTS header
 nixien.fr: could not connect to host
 nkinka.de: did not receive HSTS header
 nlegall.fr: did not receive HSTS header
 nmctest.net: could not connect to host
-nnote.net: could not connect to host
 nnya.cat: could not connect to host
 no17sifangjie.cc: could not connect to host
 nocallaghan.com: could not connect to host
 noctinus.tk: could not connect to host
 nodebrewery.com: could not connect to host
 nodetemple.com: could not connect to host
 nodi.at: could not connect to host
 noexpect.org: could not connect to host
@@ -2978,20 +2970,18 @@ nosecretshop.com: could not connect to h
 notadd.com: did not receive HSTS header
 notenoughtime.de: could not connect to host
 nottheonion.net: did not receive HSTS header
 nouvelle-vague-saint-cast.fr: did not receive HSTS header
 novacoast.com: did not receive HSTS header
 novatrucking.de: could not connect to host
 nowak.ninja: did not receive HSTS header
 noworrywp.com: could not connect to host
-noxlogic.nl: could not connect to host
 nozoe.jp: did not receive HSTS header
 np.search.yahoo.com: did not receive HSTS header
-npm.li: could not connect to host
 npol.de: could not connect to host
 nqesh.com: could not connect to host
 ntbs.pro: could not connect to host
 ntse.xyz: could not connect to host
 nu3.at: did not receive HSTS header
 nu3.ch: did not receive HSTS header
 nu3.co.uk: did not receive HSTS header
 nu3.com: did not receive HSTS header
@@ -3077,17 +3067,17 @@ onpatient.com: did not receive HSTS head
 ontras.com: could not connect to host
 onyxwall.com: could not connect to host
 onyxwall.link: could not connect to host
 onyxwall.net: could not connect to host
 oogartsennet.nl: could not connect to host
 ookjesprookje.nl: could not connect to host
 ooonja.de: could not connect to host
 oopsmycase.com: could not connect to host
-oost.io: could not connect to host
+oost.io: did not receive HSTS header
 open-mx.de: could not connect to host
 open-to-repair.fr: did not receive HSTS header
 opendesk.cc: did not receive HSTS header
 openmind-shop.de: did not receive HSTS header
 openpriv.pw: did not receive HSTS header
 openprovider.nl: did not receive HSTS header
 openquery.com.au: did not receive HSTS header
 openshift.redhat.com: did not receive HSTS header
@@ -3173,16 +3163,17 @@ papygeek.com: could not connect to host
 parentmail.co.uk: did not receive HSTS header
 parithy.net: could not connect to host
 parkingplus.co.il: could not connect to host
 parodybit.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 parpaing-paillette.net: could not connect to host
 particonpsplus.it: did not receive HSTS header
 partijtjevoordevrijheid.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 partou.de: did not receive HSTS header
+partyvan.io: could not connect to host
 partyvan.it: could not connect to host
 partyvan.moe: could not connect to host
 partyvan.nl: could not connect to host
 partyvan.se: could not connect to host
 passwordbox.com: did not receive HSTS header
 passwordrevelator.net: did not receive HSTS header
 passwords.google.com: did not receive HSTS header (error ignored - included regardless)
 pastaf.com: could not connect to host
@@ -3244,43 +3235,45 @@ phil.tw: could not connect to host
 phoebe.co.nz: did not receive HSTS header
 phonenumberinfo.co.uk: could not connect to host
 phongmay24h.com: could not connect to host
 photoblogverona.com: could not connect to host
 php-bach.org: could not connect to host
 phpfashion.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 phurl.de: could not connect to host
 phus.lu: did not receive HSTS header
+physicalist.com: could not connect to host
 pickr.co: could not connect to host
 picotronic.biz: could not connect to host
 picscare.co.uk: did not receive HSTS header
+picsto.re: did not receive HSTS header
 pieperhome.de: could not connect to host
 piggott.me.uk: did not receive HSTS header
 pilgermaske.org: did not receive HSTS header
 piligrimname.com: could not connect to host
 pillowandpepper.com: did not receive HSTS header
 pippen.io: could not connect to host
 piratedb.com: could not connect to host
 piratedot.com: could not connect to host
 piratelist.online: did not receive HSTS header
 piratenlogin.de: could not connect to host
 pirateproxy.sx: could not connect to host
 pirati.cz: max-age too low: 604800
 pirlitu.com: did not receive HSTS header
 pisexy.me: did not receive HSTS header
 pisidia.de: could not connect to host
+pittaya.com: could not connect to host
 pittonpreschool.com: did not receive HSTS header
 pixel.google.com: did not receive HSTS header (error ignored - included regardless)
 pixelcode.com.au: could not connect to host
 pixelhero.co.uk: did not receive HSTS header
 pixi.chat: could not connect to host
 pixi.me: could not connect to host
 pj83.duckdns.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 pk.search.yahoo.com: did not receive HSTS header
-pkgt.de: could not connect to host
 placefade.com: could not connect to host
 placollection.org: could not connect to host
 plaettliaktion.ch: did not receive HSTS header
 planpharmacy.com: could not connect to host
 platform.lookout.com: could not connect to host
 play.google.com: did not receive HSTS header (error ignored - included regardless)
 playflick.com: did not receive HSTS header
 playkh.com: did not receive HSTS header
@@ -3311,19 +3304,22 @@ politically-incorrect.xyz: could not con
 politologos.org: could not connect to host
 polycoise.com: could not connect to host
 polymathematician.com: could not connect to host
 polypho.nyc: could not connect to host
 pompompoes.com: could not connect to host
 pontualcomp.com: max-age too low: 2592000
 poolsandstuff.com: did not receive HSTS header
 poon.tech: could not connect to host
+porno-gif.ru: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 portalplatform.net: did not receive HSTS header
+portalzine.de: did not receive HSTS header
 poshpak.com: max-age too low: 86400
 postcodewise.co.uk: did not receive HSTS header
+posterspy.com: did not receive HSTS header
 postscheduler.org: could not connect to host
 posylka.de: did not receive HSTS header
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
 power99press.com: did not receive HSTS header
 powerplannerapp.com: did not receive HSTS header
 powerxequality.com: could not connect to host
 ppr-truby.ru: could not connect to host
@@ -3358,17 +3354,16 @@ projectdp.net: could not connect to host
 promecon-gmbh.de: did not receive HSTS header
 prontocleaners.co.uk: could not connect to host
 prontolight.com: did not receive HSTS header
 prontomovers.co.uk: could not connect to host
 propactrading.com: could not connect to host
 prosocialmachines.com: could not connect to host
 prosoft.sk: did not receive HSTS header
 prosperident.com: did not receive HSTS header
-proweser.de: could not connect to host
 prowhisky.de: did not receive HSTS header
 proximato.com: could not connect to host
 proxybay.al: could not connect to host
 proxybay.club: could not connect to host
 proxybay.info: did not receive HSTS header
 prxio.site: did not receive HSTS header
 prytkov.com: did not receive HSTS header
 psw.academy: did not receive HSTS header
@@ -3406,17 +3401,16 @@ quail.solutions: could not connect to ho
 quality1.com.br: did not receive HSTS header
 quantacloud.ch: could not connect to host
 quantenteranik.eu: could not connect to host
 quantum-cloud.xyz: could not connect to host
 quantumcourse.org: did not receive HSTS header
 quebecmailbox.com: did not receive HSTS header
 queercoders.com: did not receive HSTS header
 questsandrewards.com: could not connect to host
-quickboysvrouwen2.nl: did not receive HSTS header
 quli.nl: did not receive HSTS header
 quotehex.com: could not connect to host
 quranserver.net: could not connect to host
 qvi.st: did not receive HSTS header
 qwaser.fr: could not connect to host
 qwilink.me: did not receive HSTS header
 r10n.com: did not receive HSTS header
 r15.me: could not connect to host
@@ -3436,16 +3430,17 @@ rannseier.org: did not receive HSTS head
 rapido.nu: did not receive HSTS header
 rapidresearch.me: could not connect to host
 rapidthunder.io: could not connect to host
 rasing.me: did not receive HSTS header
 raspass.me: could not connect to host
 rastreador.com.es: did not receive HSTS header
 ratajczak.fr: could not connect to host
 rate-esport.de: could not connect to host
+rationalism.com: could not connect to host
 raulfraile.net: could not connect to host
 raven.lipetsk.ru: could not connect to host
 rawet.se: did not receive HSTS header
 rawstorieslondon.com: could not connect to host
 raydan.space: could not connect to host
 raydobe.me: could not connect to host
 rbhighinc.org: could not connect to host
 rc-rp.com: did not receive HSTS header
@@ -3465,17 +3460,16 @@ redar.xyz: did not receive HSTS header
 reddiseals.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 reddit.com: did not receive HSTS header
 rede.ca: did not receive HSTS header
 redicabo.de: could not connect to host
 redirectman.com: did not receive HSTS header
 redlatam.org: did not receive HSTS header
 redmbk.com: did not receive HSTS header
 redports.org: could not connect to host
-refitplanner.com: could not connect to host
 regaloaks.com: did not receive HSTS header
 regalpalms.com: did not receive HSTS header
 regenbogenwald.de: did not receive HSTS header
 regenerescence.com: did not receive HSTS header
 reggae-cdmx.com: did not receive HSTS header
 reic.me: could not connect to host
 reisyukaku.org: did not receive HSTS header
 rejo.in: could not connect to host
@@ -3548,21 +3542,23 @@ rochman.id: could not connect to host
 rocksberg.net: could not connect to host
 rockstarloan.com: max-age too low: 0
 roddis.net: did not receive HSTS header
 rodney.id.au: did not receive HSTS header
 rodosto.com: did not receive HSTS header
 roeper.party: could not connect to host
 roesemann.email: could not connect to host
 roguelikecenter.fr: did not receive HSTS header
+rolemaster.net: did not receive HSTS header
 romans-place.me.uk: did not receive HSTS header
 romulusapp.com: could not connect to host
 ronvandordt.info: could not connect to host
 ronwo.de: max-age too low: 1
 room-checkin24.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
+roosterpgplus.nl: could not connect to host
 rootforum.org: did not receive HSTS header
 rootservice.org: did not receive HSTS header
 rootwpn.com: could not connect to host
 rop.io: could not connect to host
 rossen.be: did not receive HSTS header
 rotterdamjazz.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 roundtheme.com: did not receive HSTS header
 rous.se: could not connect to host
@@ -3621,16 +3617,17 @@ samsen.club: did not receive HSTS header
 sanasalud.org: could not connect to host
 sandrolittke.de: did not receive HSTS header
 sandviks.com: did not receive HSTS header
 sangwon.org: could not connect to host
 sansemea.com: did not receive HSTS header
 sansonehowell.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 sarah-beckett-harpist.com: did not receive HSTS header
 sarahsweetlife.com: could not connect to host
+sarakas.com: could not connect to host
 sarisonproductions.com: did not receive HSTS header
 saruwebshop.co.za: could not connect to host
 sash.pw: could not connect to host
 sat.rent: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 satinn.pl: did not receive HSTS header
 satmep.com: did not receive HSTS header
 satrent.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 satrent.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
@@ -3644,16 +3641,17 @@ saunasandstuff.com: did not receive HSTS
 savannahtasteexperience.com: did not receive HSTS header
 saveaward.gov: could not connect to host
 saveyour.biz: did not receive HSTS header
 sawamura-rental.com: did not receive HSTS header
 sazima.ru: did not receive HSTS header
 sbox-archives.com: could not connect to host
 sby.de: did not receive HSTS header
 sc4le.com: could not connect to host
+scepticism.com: could not connect to host
 schadegarant.net: could not connect to host
 schnell-gold.com: could not connect to host
 schoop.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 schrauger.com: did not receive HSTS header
 schrauger.info: did not receive HSTS header
 schrauger.net: did not receive HSTS header
 schrauger.org: did not receive HSTS header
 schrauger.run: did not receive HSTS header
@@ -3756,17 +3754,16 @@ shaunwheelhou.se: could not connect to h
 shawnh.net: could not connect to host
 shellsec.pw: did not receive HSTS header
 shereallyheals.com: could not connect to host
 shibe.club: could not connect to host
 shiftins.com: did not receive HSTS header
 shiinko.com: could not connect to host
 shinebijoux.com.br: could not connect to host
 shinju.moe: could not connect to host
-shinobi-fansub.ro: could not connect to host
 shinonome-lab.eu.org: could not connect to host
 shiona.xyz: could not connect to host
 shocksrv.com: did not receive HSTS header
 shooshosha.com: did not receive HSTS header
 shopontarget.com: did not receive HSTS header
 shoprose.ru: could not connect to host
 shops.neonisi.com: could not connect to host
 shortr.li: could not connect to host
@@ -3811,37 +3808,37 @@ sitesten.com: did not receive HSTS heade
 sitsy.ru: did not receive HSTS header
 sixtwentyten.com: did not receive HSTS header
 skhosting.eu: did not receive HSTS header
 skile.ru: could not connect to host
 skk.io: could not connect to host
 skoda-clever-lead.de: could not connect to host
 skoda-im-dialog.de: could not connect to host
 skullhouse.nyc: did not receive HSTS header
-skyflix.me: did not receive HSTS header
+skyflix.me: could not connect to host
 skyoy.com: did not receive HSTS header
 slash-dev.de: did not receive HSTS header
 slashand.co: did not receive HSTS header
-slashem.me: could not connect to host
+slashem.me: did not receive HSTS header
 slattery.co: could not connect to host
 sleep10.com: could not connect to host
 slicketl.com: did not receive HSTS header
 slightfuture.click: could not connect to host
 slix.io: could not connect to host
 slope.haus: could not connect to host
 slovakiana.sk: did not receive HSTS header
+slowfood.es: could not connect to host
 sluitkampzeist.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
-slycurity.de: did not receive HSTS header
+slycurity.de: could not connect to host
 smart-mirror.de: did not receive HSTS header
 smart-ov.nl: could not connect to host
 smartcoin.com.br: could not connect to host
 smartlend.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 smartofficesandsmarthomes.com: did not receive HSTS header
 smartrak.co.nz: did not receive HSTS header
-smartshiftme.com: could not connect to host
 smatch.com: did not receive HSTS header
 smdev.fr: could not connect to host
 smet.us: could not connect to host
 smimea.com: could not connect to host
 smirkingwhorefromhighgarden.pro: could not connect to host
 smkn1lengkong.sch.id: did not receive HSTS header
 smksi2.com: could not connect to host
 smove.sg: did not receive HSTS header
@@ -3867,31 +3864,29 @@ soci.ml: did not receive HSTS header
 socialbillboard.com: could not connect to host
 socialdevelop.biz: max-age too low: 604800
 socialhams.net: did not receive HSTS header
 socialhead.io: could not connect to host
 socialspirit.com.br: did not receive HSTS header
 sockeye.cc: could not connect to host
 socomponents.co.uk: did not receive HSTS header
 sodacore.com: could not connect to host
-soe-server.com: could not connect to host
 sogeek.me: did not receive HSTS header
 sol-3.de: did not receive HSTS header
 solidfuelappliancespares.co.uk: did not receive HSTS header
 solidus.systems: could not connect to host
 solinter.com.br: did not receive HSTS header
 solit.systems: did not receive HSTS header
 soll-i.ch: did not receive HSTS header
 solsystems.ru: could not connect to host
 someshit.xyz: could not connect to host
 somethingnew.xyz: could not connect to host
 sonicrainboom.rocks: could not connect to host
 soobi.org: did not receive HSTS header
 soondy.com: did not receive HSTS header
-sortaweird.net: could not connect to host
 sotiran.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 sotor.de: did not receive HSTS header
 soulema.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 soulfulglamour.uk: could not connect to host
 sourcelair.com: did not receive HSTS header
 southside-crew.club: could not connect to host
 southworcestershiregpservices.co.uk: could not connect to host
 souyar.de: could not connect to host
@@ -3912,19 +3907,20 @@ speculor.net: could not connect to host
 speed-mailer.com: could not connect to host
 speedcounter.net: did not receive HSTS header
 speedtest-russia.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 speedy.lt: max-age too low: 0
 speidel.com.tr: did not receive HSTS header
 spencerbaer.com: could not connect to host
 sperohub.io: could not connect to host
 spherenix.org: could not connect to host
+spibe.is: could not connect to host
 spicydog.tk: could not connect to host
 spiegels.nl: could not connect to host
-spikeykc.me: did not receive HSTS header
+spikeykc.me: could not connect to host
 spillmaker.no: did not receive HSTS header
 spilsbury.io: could not connect to host
 spititout.it: could not connect to host
 spittersberger.recipes: did not receive HSTS header
 split.is: did not receive HSTS header
 sponsortobias.com: did not receive HSTS header
 sportwette.eu: did not receive HSTS header
 spot-events.com: could not connect to host
@@ -3960,17 +3956,16 @@ statementinsertsforless.com: did not rec
 stateofexception.io: could not connect to host
 static.or.at: did not receive HSTS header
 staticanime.net: could not connect to host
 stationaryjourney.com: did not receive HSTS header
 stationnementdenuit.ca: did not receive HSTS header
 statuschecks.net: could not connect to host
 stayokhotelscdc-mailing.com: could not connect to host
 stcomex.com: did not receive HSTS header
-stderr.cc: could not connect to host
 stefanweiser.de: did not receive HSTS header
 stephanierxo.com: did not receive HSTS header
 stephenandburns.com: did not receive HSTS header
 stephenschrauger.com: did not receive HSTS header
 stephenschrauger.info: did not receive HSTS header
 stephenschrauger.net: did not receive HSTS header
 stephenschrauger.org: did not receive HSTS header
 stevensononthe.net: did not receive HSTS header
@@ -4033,17 +4028,16 @@ sunnyfruit.ru: did not receive HSTS head
 sunshinepress.org: could not connect to host
 supcro.com: could not connect to host
 superbabysitting.ch: could not connect to host
 superbike.tw: could not connect to host
 supereight.net: did not receive HSTS header
 superiorfloridavacation.com: did not receive HSTS header
 supersalescontest.nl: did not receive HSTS header
 supersecurefancydomain.com: could not connect to host
-superuser.fi: could not connect to host
 superwally.org: could not connect to host
 suprlink.net: could not connect to host
 supweb.ovh: did not receive HSTS header
 surfeasy.com: did not receive HSTS header
 surfone-leucate.com: did not receive HSTS header
 sushi101tempe.com: did not receive HSTS header
 sushifrick.de: could not connect to host
 suzukikenichi.com: did not receive HSTS header
@@ -4068,17 +4062,20 @@ syncserve.net: did not receive HSTS head
 syneic.com: did not receive HSTS header
 syno.gq: could not connect to host
 syntheticmotoroil.org: did not receive HSTS header
 syriatalk.biz: could not connect to host
 syriatalk.org: could not connect to host
 sysadmin.xyz: did not receive HSTS header
 syso.name: could not connect to host
 szaszm.tk: max-age too low: 0
+t-shirts4less.nl: did not receive HSTS header
 t-tz.com: could not connect to host
+ta-65.com: could not connect to host
+ta65.com: could not connect to host
 taabe.xyz: did not receive HSTS header
 tacomafia.net: did not receive HSTS header
 tadigitalstore.com: could not connect to host
 tafoma.com: did not receive HSTS header
 tageau.com: could not connect to host
 taglondon.org: did not receive HSTS header
 tails.com.ar: did not receive HSTS header
 talk.google.com: did not receive HSTS header (error ignored - included regardless)
@@ -4129,16 +4126,17 @@ tegelsensanitaironline.nl: did not recei
 tekshrek.com: did not receive HSTS header
 telefonnummer.online: could not connect to host
 telefoonnummerinfo.nl: could not connect to host
 telling.xyz: could not connect to host
 temehu.com: did not receive HSTS header
 tempcraft.net: could not connect to host
 tendertool.nl: could not connect to host
 tenni.xyz: could not connect to host
+tensei-slime.com: did not receive HSTS header
 tensionup.com: could not connect to host
 teos.online: could not connect to host
 teriiphotography.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 terra.by: did not receive HSTS header
 terrax.berlin: could not connect to host
 terrax.info: could not connect to host
 testandroid.xyz: could not connect to host
 testbawks.com: did not receive HSTS header
@@ -4234,34 +4232,32 @@ tildebot.com: could not connect to host
 tilkah.com.au: could not connect to host
 tillcraft.com: could not connect to host
 tillseasyscore.com: could not connect to host
 timbeilby.com: could not connect to host
 timbuktutimber.com: did not receive HSTS header
 timcamara.com: did not receive HSTS header
 time-river.xyz: could not connect to host
 timestamp.io: did not receive HSTS header
-timmy.ws: did not receive HSTS header
 timnash.co.uk: did not receive HSTS header
 timotrans.de: did not receive HSTS header
 timotrans.eu: did not receive HSTS header
 timowi.de: could not connect to host
 timowi.net: could not connect to host
 timvivian.ca: could not connect to host
 timwittenberg.com: could not connect to host
 tipbox.is: could not connect to host
 tipsyk.ru: could not connect to host
 tirex.media: did not receive HSTS header
 titanleaf.com: could not connect to host
 titouan.co: did not receive HSTS header
 tittelbach.at: did not receive HSTS header
 titties.ml: could not connect to host
 tkarstens.de: did not receive HSTS header
 tkn.tokyo: could not connect to host
-tlach.cz: did not receive HSTS header
 tlo.hosting: could not connect to host
 tlo.link: did not receive HSTS header
 tlo.network: could not connect to host
 tloxygen.com: did not receive HSTS header
 tls.li: could not connect to host
 tm-solutions.eu: did not receive HSTS header
 tmaward.net: could not connect to host
 tmitchell.io: could not connect to host
@@ -4273,17 +4269,16 @@ tobiasmathes.com: could not connect to h
 tobiasmathes.name: could not connect to host
 tobiasofficial.at: could not connect to host
 todamateria.com.br: did not receive HSTS header
 todo.is: did not receive HSTS header
 todobazar.es: could not connect to host
 tollmanz.com: did not receive HSTS header
 tom.horse: did not receive HSTS header
 tomask.info: max-age too low: 86400
-tomberek.info: could not connect to host
 tomeara.net: could not connect to host
 tomharling.co.uk: max-age too low: 86400
 tomharling.uk: max-age too low: 86400
 tomharris.tech: did not receive HSTS header
 tomlankhorst.nl: did not receive HSTS header
 tommsy.com: did not receive HSTS header
 tommyads.com: could not connect to host
 tonburi.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
@@ -4329,16 +4324,17 @@ trustmeimfancy.com: could not connect to
 trybind.com: could not connect to host
 tryoneday.co: did not receive HSTS header
 ts2.se: could not connect to host
 ts3.consulting: could not connect to host
 tsecy.com: did not receive HSTS header
 tsgoc.com: did not receive HSTS header
 tsrstore.gq: could not connect to host
 tssouthernpower.com: max-age too low: 0
+ttchan.org: could not connect to host
 tuamoronline.com: could not connect to host
 tubepro.de: max-age too low: 600000
 tucker.wales: could not connect to host
 tuingereedschappen.net: could not connect to host
 tunai.id: could not connect to host
 tunebitfm.de: could not connect to host
 turnik-67.ru: could not connect to host
 turtlementors.com: could not connect to host
@@ -4441,17 +4437,18 @@ utopiagalaxy.space: could not connect to
 utopianhomespa.com: did not receive HSTS header
 utumno.ch: could not connect to host
 utvbloggen.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 uvarov.pw: did not receive HSTS header
 uy.search.yahoo.com: did not receive HSTS header
 uz.search.yahoo.com: did not receive HSTS header
 uzmandroid.net: could not connect to host
 uzmandroid.top: could not connect to host
-v2.pw: could not connect to host
+v2.pw: did not receive HSTS header
+v2ex.us: did not receive HSTS header
 v4veedu.com: could not connect to host
 vaddder.com: could not connect to host
 valasi.eu: could not connect to host
 valethound.com: could not connect to host
 valis.sx: could not connect to host
 valkyrja.xyz: did not receive HSTS header
 valleyridgepta.org: could not connect to host
 vallis.net: did not receive HSTS header
@@ -4464,17 +4461,17 @@ vanestack.com: could not connect to host
 vanetv.com: could not connect to host
 vanitas.xyz: could not connect to host
 vanitynailworkz.com: could not connect to host
 vanlaanen.com: did not receive HSTS header
 vansieleghem.com: could not connect to host
 vasanth.org: did not receive HSTS header
 vbulletin-russia.com: could not connect to host
 vbulletinrussia.com: could not connect to host
-vcdove.com: did not receive HSTS header
+vcdove.com: could not connect to host
 vcr.re: could not connect to host
 ve3oat.ca: could not connect to host
 veblen.com: could not connect to host
 vechkasov.ru: did not receive HSTS header
 vehent.org: did not receive HSTS header
 vemokin.net: did not receive HSTS header
 venixplays-stream.ml: could not connect to host
 verifikatorindonesia.com: could not connect to host
@@ -4494,42 +4491,44 @@ vietnamphotographytours.com: did not rec
 viewsea.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 vigilo.cf: could not connect to host
 vijos.org: did not receive HSTS header
 viktorsvantesson.net: did not receive HSTS header
 vincentkooijman.at: did not receive HSTS header
 vincentkooijman.nl: did not receive HSTS header
 vincentpancol.com: could not connect to host
 vintageheartcoffee.com: did not receive HSTS header
+vinyculture.com: could not connect to host
 vio.no: did not receive HSTS header
 viperdns.com: could not connect to host
 vipi.es: could not connect to host
 vipmusic.ga: could not connect to host
 vipnettikasinoklubi.com: did not receive HSTS header
 visiontree-beta.eu: could not connect to host
 visitbroadstairs.com: could not connect to host
 vissanum.com: did not receive HSTS header
 vistarait.com: did not receive HSTS header
 vitagenda.nl: could not connect to host
 vitalorange.com: did not receive HSTS header
+vitapingu.de: could not connect to host
 viva-french.com: did not receive HSTS header
-vivocloud.com: did not receive HSTS header
 vlastimilburian.cz: did not receive HSTS header
 vlora.city: could not connect to host
 vm0.eu: did not receive HSTS header
 vmrdev.com: could not connect to host
 voceinveste.com: did not receive HSTS header
 vodpay.com: could not connect to host
 vodpay.net: could not connect to host
 vodpay.org: could not connect to host
 voicesuk.co.uk: did not receive HSTS header
 voidpay.com: could not connect to host
 voidpay.net: could not connect to host
 voidpay.org: could not connect to host
 volcrado.com: did not receive HSTS header
+voliere-info.nl: did not receive HSTS header
 vortexhobbies.com: did not receive HSTS header
 voshod.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 vosjesweb.nl: could not connect to host
 vox.vg: did not receive HSTS header
 vpl.me: did not receive HSTS header
 vpn-byen.dk: did not receive HSTS header
 vratny.space: could not connect to host
 vrobert.fr: could not connect to host
@@ -4657,30 +4656,30 @@ withustrading.com: could not connect to 
 withyoutube.com: did not receive HSTS header (error ignored - included regardless)
 wittcher.com: could not connect to host
 wittydonut.com: could not connect to host
 witzemaschine.com: max-age too low: 0
 wiz.biz: could not connect to host
 wlzhiyin.cn: could not connect to host
 wmcuk.net: could not connect to host
 wmfinanz.com: could not connect to host
-wod-stavby.cz: could not connect to host
 wodice.com: could not connect to host
 wohnungsbau-ludwigsburg.de: did not receive HSTS header
 woima.fi: max-age too low: 604800
 wolfesden.com: could not connect to host
 womosale.de: could not connect to host
 wonderfall.xyz: could not connect to host
 wonderhost.info: could not connect to host
 woodmafia.com.au: max-age too low: 0
 woontegelwinkel.nl: did not receive HSTS header
 woording.com: could not connect to host
 wootton95.com: could not connect to host
 woresite.jp: did not receive HSTS header
 workfone.io: did not receive HSTS header
+workpermit.com.vn: did not receive HSTS header
 worldsbeststory.com: did not receive HSTS header
 wowapi.org: could not connect to host
 wphostingspot.com: did not receive HSTS header
 wpmetadatastandardsproject.org: could not connect to host
 writeapp.me: did not receive HSTS header
 wsscompany.com.ve: could not connect to host
 wufu.org: did not receive HSTS header
 wuhengmin.com: did not receive HSTS header
@@ -4705,17 +4704,17 @@ www.moneybookers.com: did not receive HS
 www.neonisi.com: could not connect to host
 www.paycheckrecords.com: did not receive HSTS header
 www.rme.li: did not receive HSTS header
 www.sandbox.mydigipass.com: could not connect to host
 www.surfeasy.com: did not receive HSTS header
 www.zenpayroll.com: did not receive HSTS header
 www3.info: could not connect to host
 wxukang.cn: could not connect to host
-wyzphoto.nl: did not receive HSTS header
+wyzphoto.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 x2w.io: could not connect to host
 xa.search.yahoo.com: did not receive HSTS header
 xandocs.com: could not connect to host
 xatr0z.org: could not connect to host
 xavierbarroso.com: could not connect to host
 xcoop.me: could not connect to host
 xellos.ga: could not connect to host
 xellos.ml: could not connect to host
@@ -4823,17 +4822,16 @@ z33.ch: did not receive HSTS header
 z3liff.com: could not connect to host
 z3liff.net: could not connect to host
 za.search.yahoo.com: did not receive HSTS header
 zachgibbens.org: could not connect to host
 zadieheimlich.com: did not receive HSTS header
 zamorano.edu: could not connect to host
 zap.yt: could not connect to host
 zarooba.com: could not connect to host
-zary.me: did not receive HSTS header
 zbigniewgalucki.eu: did not receive HSTS header
 zbp.at: did not receive HSTS header
 zebrababy.cn: did not receive HSTS header
 zefiris.org: did not receive HSTS header
 zefu.ca: could not connect to host
 zehntner.ch: could not connect to host
 zeitpunkt-kulturmagazin.de: did not receive HSTS header
 zelezny.uk: did not receive HSTS header
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*****************************************************************************/
 /* This is an automatically generated file. If you're not                    */
 /* nsSiteSecurityService.cpp, you shouldn't be #including it.     */
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1498410502826000);
+const PRTime gPreloadListExpirationTime = INT64_C(1498491460978000);
 
 static const char kSTSHostTable[] = {
   /* "0.me.uk", true */ '0', '.', 'm', 'e', '.', 'u', 'k', '\0',
   /* "007-preisvergleich.de", true */ '0', '0', '7', '-', 'p', 'r', 'e', 'i', 's', 'v', 'e', 'r', 'g', 'l', 'e', 'i', 'c', 'h', '.', 'd', 'e', '\0',
   /* "0100dev.com", true */ '0', '1', '0', '0', 'd', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "0100dev.nl", true */ '0', '1', '0', '0', 'd', 'e', 'v', '.', 'n', 'l', '\0',
   /* "01electronica.com.ar", true */ '0', '1', 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', 'a', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "01seguridad.com.ar", true */ '0', '1', 's', 'e', 'g', 'u', 'r', 'i', 'd', 'a', 'd', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
@@ -83,16 +83,17 @@ static const char kSTSHostTable[] = {
   /* "1a-werkstattgeraete.de", true */ '1', 'a', '-', 'w', 'e', 'r', 'k', 's', 't', 'a', 't', 't', 'g', 'e', 'r', 'a', 'e', 't', 'e', '.', 'd', 'e', '\0',
   /* "1atic.com", true */ '1', 'a', 't', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "1co-jp.net", true */ '1', 'c', 'o', '-', 'j', 'p', '.', 'n', 'e', 't', '\0',
   /* "1cover.com", true */ '1', 'c', 'o', 'v', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "1cover.com.au", true */ '1', 'c', 'o', 'v', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "1hourproofreading.com", true */ '1', 'h', 'o', 'u', 'r', 'p', 'r', 'o', 'o', 'f', 'r', 'e', 'a', 'd', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "1item.co.il", true */ '1', 'i', 't', 'e', 'm', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "1js.de", true */ '1', 'j', 's', '.', 'd', 'e', '\0',
+  /* "1k8b.com", true */ '1', 'k', '8', 'b', '.', 'c', 'o', 'm', '\0',
   /* "1kando.com", true */ '1', 'k', 'a', 'n', 'd', 'o', '.', 'c', 'o', 'm', '\0',
   /* "1km.ro", true */ '1', 'k', 'm', '.', 'r', 'o', '\0',
   /* "1on1on1.de", true */ '1', 'o', 'n', '1', 'o', 'n', '1', '.', 'd', 'e', '\0',
   /* "1on1on1.tv", true */ '1', 'o', 'n', '1', 'o', 'n', '1', '.', 't', 'v', '\0',
   /* "1pw.ca", true */ '1', 'p', 'w', '.', 'c', 'a', '\0',
   /* "1px.tv", true */ '1', 'p', 'x', '.', 't', 'v', '\0',
   /* "1q365a.com", true */ '1', 'q', '3', '6', '5', 'a', '.', 'c', 'o', 'm', '\0',
   /* "1rs.nl", true */ '1', 'r', 's', '.', 'n', 'l', '\0',
@@ -110,17 +111,17 @@ static const char kSTSHostTable[] = {
   /* "21lg.co", true */ '2', '1', 'l', 'g', '.', 'c', 'o', '\0',
   /* "21stnc.com", true */ '2', '1', 's', 't', 'n', 'c', '.', 'c', 'o', 'm', '\0',
   /* "246060.ru", true */ '2', '4', '6', '0', '6', '0', '.', 'r', 'u', '\0',
   /* "247healthshop.com", true */ '2', '4', '7', 'h', 'e', 'a', 'l', 't', 'h', 's', 'h', 'o', 'p', '.', 'c', 'o', 'm', '\0',
   /* "24hourpaint.com", true */ '2', '4', 'h', 'o', 'u', 'r', 'p', 'a', 'i', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "24ip.com", true */ '2', '4', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "24ip.de", true */ '2', '4', 'i', 'p', '.', 'd', 'e', '\0',
   /* "24ip.fr", true */ '2', '4', 'i', 'p', '.', 'f', 'r', '\0',
-  /* "24sihu.com", true */ '2', '4', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
+  /* "24sihu.com", false */ '2', '4', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
   /* "2600edinburgh.org", true */ '2', '6', '0', '0', 'e', 'd', 'i', 'n', 'b', 'u', 'r', 'g', 'h', '.', 'o', 'r', 'g', '\0',
   /* "2600hq.com", true */ '2', '6', '0', '0', 'h', 'q', '.', 'c', 'o', 'm', '\0',
   /* "263.info", true */ '2', '6', '3', '.', 'i', 'n', 'f', 'o', '\0',
   /* "28spots.net", true */ '2', '8', 's', 'p', 'o', 't', 's', '.', 'n', 'e', 't', '\0',
   /* "2acbi-asso.fr", true */ '2', 'a', 'c', 'b', 'i', '-', 'a', 's', 's', 'o', '.', 'f', 'r', '\0',
   /* "2bas.nl", true */ '2', 'b', 'a', 's', '.', 'n', 'l', '\0',
   /* "2bis10.de", true */ '2', 'b', 'i', 's', '1', '0', '.', 'd', 'e', '\0',
   /* "2carpros.com", false */ '2', 'c', 'a', 'r', 'p', 'r', 'o', 's', '.', 'c', 'o', 'm', '\0',
@@ -145,33 +146,32 @@ static const char kSTSHostTable[] = {
   /* "33-km.ru", true */ '3', '3', '-', 'k', 'm', '.', 'r', 'u', '\0',
   /* "3473-wiki.de", true */ '3', '4', '7', '3', '-', 'w', 'i', 'k', 'i', '.', 'd', 'e', '\0',
   /* "35792.de", true */ '3', '5', '7', '9', '2', '.', 'd', 'e', '\0',
   /* "365beautyworld.com", true */ '3', '6', '5', 'b', 'e', 'a', 'u', 't', 'y', 'w', 'o', 'r', 'l', 'd', '.', 'c', 'o', 'm', '\0',
   /* "365healthworld.com", true */ '3', '6', '5', 'h', 'e', 'a', 'l', 't', 'h', 'w', 'o', 'r', 'l', 'd', '.', 'c', 'o', 'm', '\0',
   /* "365maya.com", true */ '3', '6', '5', 'm', 'a', 'y', 'a', '.', 'c', 'o', 'm', '\0',
   /* "365skulls.com", true */ '3', '6', '5', 's', 'k', 'u', 'l', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "368mibn.com", true */ '3', '6', '8', 'm', 'i', 'b', 'n', '.', 'c', 'o', 'm', '\0',
-  /* "38sihu.com", true */ '3', '8', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
+  /* "38sihu.com", false */ '3', '8', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
   /* "398.info", true */ '3', '9', '8', '.', 'i', 'n', 'f', 'o', '\0',
-  /* "39sihu.com", true */ '3', '9', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
+  /* "39sihu.com", false */ '3', '9', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
   /* "3bigking.com", true */ '3', 'b', 'i', 'g', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "3c-d.de", true */ '3', 'c', '-', 'd', '.', 'd', 'e', '\0',
   /* "3delivered.com", true */ '3', 'd', 'e', 'l', 'i', 'v', 'e', 'r', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "3dmedium.de", true */ '3', 'd', 'm', 'e', 'd', 'i', 'u', 'm', '.', 'd', 'e', '\0',
   /* "3do3dont.com", true */ '3', 'd', 'o', '3', 'd', 'o', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "3r.org.uk", true */ '3', 'r', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "3s-hosting.de", true */ '3', 's', '-', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'd', 'e', '\0',
   /* "3timegear.com", true */ '3', 't', 'i', 'm', 'e', 'g', 'e', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "4-1-where.com", true */ '4', '-', '1', '-', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "4-it.de", true */ '4', '-', 'i', 't', '.', 'd', 'e', '\0',
   /* "403.ch", true */ '4', '0', '3', '.', 'c', 'h', '\0',
   /* "4096bit.de", true */ '4', '0', '9', '6', 'b', 'i', 't', '.', 'd', 'e', '\0',
   /* "41-where.com", true */ '4', '1', '-', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "41844.de", true */ '4', '1', '8', '4', '4', '.', 'd', 'e', '\0',
   /* "41where.com", true */ '4', '1', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "439191.com", true */ '4', '3', '9', '1', '9', '1', '.', 'c', 'o', 'm', '\0',
   /* "441jj.com", true */ '4', '4', '1', 'j', 'j', '.', 'c', 'o', 'm', '\0',
   /* "4500.co.il", true */ '4', '5', '0', '0', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "491mhz.net", true */ '4', '9', '1', 'm', 'h', 'z', '.', 'n', 'e', 't', '\0',
   /* "4azino777.ru", true */ '4', 'a', 'z', 'i', 'n', 'o', '7', '7', '7', '.', 'r', 'u', '\0',
   /* "4d2.xyz", true */ '4', 'd', '2', '.', 'x', 'y', 'z', '\0',
   /* "4eyes.ch", false */ '4', 'e', 'y', 'e', 's', '.', 'c', 'h', '\0',
@@ -976,16 +976,17 @@ static const char kSTSHostTable[] = {
   /* "artisense.de", true */ 'a', 'r', 't', 'i', 's', 'e', 'n', 's', 'e', '.', 'd', 'e', '\0',
   /* "artisphere.ch", true */ 'a', 'r', 't', 'i', 's', 'p', 'h', 'e', 'r', 'e', '.', 'c', 'h', '\0',
   /* "artlego.com", true */ 'a', 'r', 't', 'l', 'e', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "artlifeisgood.com", true */ 'a', 'r', 't', 'l', 'i', 'f', 'e', 'i', 's', 'g', 'o', 'o', 'd', '.', 'c', 'o', 'm', '\0',
   /* "artlogo.biz", true */ 'a', 'r', 't', 'l', 'o', 'g', 'o', '.', 'b', 'i', 'z', '\0',
   /* "artlogo.cz", true */ 'a', 'r', 't', 'l', 'o', 'g', 'o', '.', 'c', 'z', '\0',
   /* "artlogo.sk", true */ 'a', 'r', 't', 'l', 'o', 'g', 'o', '.', 's', 'k', '\0',
   /* "artmoney.com", true */ 'a', 'r', 't', 'm', 'o', 'n', 'e', 'y', '.', 'c', 'o', 'm', '\0',
+  /* "artofeyes.nl", true */ 'a', 'r', 't', 'o', 'f', 'e', 'y', 'e', 's', '.', 'n', 'l', '\0',
   /* "artofwhere.com", true */ 'a', 'r', 't', 'o', 'f', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "artroot.jp", true */ 'a', 'r', 't', 'r', 'o', 'o', 't', '.', 'j', 'p', '\0',
   /* "artspac.es", true */ 'a', 'r', 't', 's', 'p', 'a', 'c', '.', 'e', 's', '\0',
   /* "artweby.cz", true */ 'a', 'r', 't', 'w', 'e', 'b', 'y', '.', 'c', 'z', '\0',
   /* "arty.name", true */ 'a', 'r', 't', 'y', '.', 'n', 'a', 'm', 'e', '\0',
   /* "arubasunsetbeach.com", true */ 'a', 'r', 'u', 'b', 'a', 's', 'u', 'n', 's', 'e', 't', 'b', 'e', 'a', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "arvid.io", true */ 'a', 'r', 'v', 'i', 'd', '.', 'i', 'o', '\0',
   /* "arw.me", true */ 'a', 'r', 'w', '.', 'm', 'e', '\0',
@@ -1103,17 +1104,16 @@ static const char kSTSHostTable[] = {
   /* "aukaraoke.su", true */ 'a', 'u', 'k', 'a', 'r', 'a', 'o', 'k', 'e', '.', 's', 'u', '\0',
   /* "aulo.in", false */ 'a', 'u', 'l', 'o', '.', 'i', 'n', '\0',
   /* "aunali1.com", true */ 'a', 'u', 'n', 'a', 'l', 'i', '1', '.', 'c', 'o', 'm', '\0',
   /* "aur.rocks", true */ 'a', 'u', 'r', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "aureus.pw", true */ 'a', 'u', 'r', 'e', 'u', 's', '.', 'p', 'w', '\0',
   /* "auricblue.com", true */ 'a', 'u', 'r', 'i', 'c', 'b', 'l', 'u', 'e', '.', 'c', 'o', 'm', '\0',
   /* "auriko-games.de", true */ 'a', 'u', 'r', 'i', 'k', 'o', '-', 'g', 'a', 'm', 'e', 's', '.', 'd', 'e', '\0',
   /* "ausschreibungen-suedtirol.it", true */ 'a', 'u', 's', 's', 'c', 'h', 'r', 'e', 'i', 'b', 'u', 'n', 'g', 'e', 'n', '-', 's', 'u', 'e', 'd', 't', 'i', 'r', 'o', 'l', '.', 'i', 't', '\0',
-  /* "aussiecable.org", true */ 'a', 'u', 's', 's', 'i', 'e', 'c', 'a', 'b', 'l', 'e', '.', 'o', 'r', 'g', '\0',
   /* "aussiehq.com.au", true */ 'a', 'u', 's', 's', 'i', 'e', 'h', 'q', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "australian.dating", true */ 'a', 'u', 's', 't', 'r', 'a', 'l', 'i', 'a', 'n', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "australiancattle.dog", true */ 'a', 'u', 's', 't', 'r', 'a', 'l', 'i', 'a', 'n', 'c', 'a', 't', 't', 'l', 'e', '.', 'd', 'o', 'g', '\0',
   /* "auth.adult", true */ 'a', 'u', 't', 'h', '.', 'a', 'd', 'u', 'l', 't', '\0',
   /* "authint.com", true */ 'a', 'u', 't', 'h', 'i', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "author24.ru", true */ 'a', 'u', 't', 'h', 'o', 'r', '2', '4', '.', 'r', 'u', '\0',
   /* "autimatisering.nl", true */ 'a', 'u', 't', 'i', 'm', 'a', 't', 'i', 's', 'e', 'r', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "auto-anleitung.de", true */ 'a', 'u', 't', 'o', '-', 'a', 'n', 'l', 'e', 'i', 't', 'u', 'n', 'g', '.', 'd', 'e', '\0',
@@ -1151,17 +1151,16 @@ static const char kSTSHostTable[] = {
   /* "aviodeals.com", true */ 'a', 'v', 'i', 'o', 'd', 'e', 'a', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "avmemo.com", true */ 'a', 'v', 'm', 'e', 'm', 'o', '.', 'c', 'o', 'm', '\0',
   /* "avmo.pw", true */ 'a', 'v', 'm', 'o', '.', 'p', 'w', '\0',
   /* "avmoo.com", true */ 'a', 'v', 'm', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "avotoma.com", true */ 'a', 'v', 'o', 't', 'o', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "avso.pw", true */ 'a', 'v', 's', 'o', '.', 'p', 'w', '\0',
   /* "avsox.com", true */ 'a', 'v', 's', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "avtovokzaly.ru", true */ 'a', 'v', 't', 'o', 'v', 'o', 'k', 'z', 'a', 'l', 'y', '.', 'r', 'u', '\0',
-  /* "avus-automobile.com", true */ 'a', 'v', 'u', 's', '-', 'a', 'u', 't', 'o', 'm', 'o', 'b', 'i', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "avxo.pw", true */ 'a', 'v', 'x', 'o', '.', 'p', 'w', '\0',
   /* "awanderlustadventure.com", true */ 'a', 'w', 'a', 'n', 'd', 'e', 'r', 'l', 'u', 's', 't', 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "awaremi-tai.com", true */ 'a', 'w', 'a', 'r', 'e', 'm', 'i', '-', 't', 'a', 'i', '.', 'c', 'o', 'm', '\0',
   /* "awccanadianpharmacy.com", true */ 'a', 'w', 'c', 'c', 'a', 'n', 'a', 'd', 'i', 'a', 'n', 'p', 'h', 'a', 'r', 'm', 'a', 'c', 'y', '.', 'c', 'o', 'm', '\0',
   /* "awk.tw", true */ 'a', 'w', 'k', '.', 't', 'w', '\0',
   /* "aww.moe", true */ 'a', 'w', 'w', '.', 'm', 'o', 'e', '\0',
   /* "awxg.com", true */ 'a', 'w', 'x', 'g', '.', 'c', 'o', 'm', '\0',
   /* "axg.io", true */ 'a', 'x', 'g', '.', 'i', 'o', '\0',
@@ -1193,17 +1192,16 @@ static const char kSTSHostTable[] = {
   /* "azzag.co.uk", true */ 'a', 'z', 'z', 'a', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "azzorti.com", true */ 'a', 'z', 'z', 'o', 'r', 't', 'i', '.', 'c', 'o', 'm', '\0',
   /* "b-landia.net", true */ 'b', '-', 'l', 'a', 'n', 'd', 'i', 'a', '.', 'n', 'e', 't', '\0',
   /* "b-rickroll-e.pw", true */ 'b', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'e', '.', 'p', 'w', '\0',
   /* "b-root-force.de", true */ 'b', '-', 'r', 'o', 'o', 't', '-', 'f', 'o', 'r', 'c', 'e', '.', 'd', 'e', '\0',
   /* "b1c1l1.com", true */ 'b', '1', 'c', '1', 'l', '1', '.', 'c', 'o', 'm', '\0',
   /* "b2and.com", false */ 'b', '2', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "b2bmuzikbank.com", true */ 'b', '2', 'b', 'm', 'u', 'z', 'i', 'k', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
-  /* "b303.me", true */ 'b', '3', '0', '3', '.', 'm', 'e', '\0',
   /* "baalsworld.de", true */ 'b', 'a', 'a', 'l', 's', 'w', 'o', 'r', 'l', 'd', '.', 'd', 'e', '\0',
   /* "baas-becking.biology.utah.edu", true */ 'b', 'a', 'a', 's', '-', 'b', 'e', 'c', 'k', 'i', 'n', 'g', '.', 'b', 'i', 'o', 'l', 'o', 'g', 'y', '.', 'u', 't', 'a', 'h', '.', 'e', 'd', 'u', '\0',
   /* "babacasino.net", true */ 'b', 'a', 'b', 'a', 'c', 'a', 's', 'i', 'n', 'o', '.', 'n', 'e', 't', '\0',
   /* "babak.de", false */ 'b', 'a', 'b', 'a', 'k', '.', 'd', 'e', '\0',
   /* "babarkata.com", true */ 'b', 'a', 'b', 'a', 'r', 'k', 'a', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "babelfisch.eu", true */ 'b', 'a', 'b', 'e', 'l', 'f', 'i', 's', 'c', 'h', '.', 'e', 'u', '\0',
   /* "babettelandmesser.de", true */ 'b', 'a', 'b', 'e', 't', 't', 'e', 'l', 'a', 'n', 'd', 'm', 'e', 's', 's', 'e', 'r', '.', 'd', 'e', '\0',
   /* "babybee.ie", true */ 'b', 'a', 'b', 'y', 'b', 'e', 'e', '.', 'i', 'e', '\0',
@@ -1252,16 +1250,17 @@ static const char kSTSHostTable[] = {
   /* "baliyano.com", true */ 'b', 'a', 'l', 'i', 'y', 'a', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "balkonien.org", true */ 'b', 'a', 'l', 'k', 'o', 'n', 'i', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "ball.holdings", true */ 'b', 'a', 'l', 'l', '.', 'h', 'o', 'l', 'd', 'i', 'n', 'g', 's', '\0',
   /* "ballarin.cc", true */ 'b', 'a', 'l', 'l', 'a', 'r', 'i', 'n', '.', 'c', 'c', '\0',
   /* "ballejaune.com", true */ 'b', 'a', 'l', 'l', 'e', 'j', 'a', 'u', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "ballmerpeak.org", true */ 'b', 'a', 'l', 'l', 'm', 'e', 'r', 'p', 'e', 'a', 'k', '.', 'o', 'r', 'g', '\0',
   /* "balloonphp.com", true */ 'b', 'a', 'l', 'l', 'o', 'o', 'n', 'p', 'h', 'p', '.', 'c', 'o', 'm', '\0',
   /* "ballotapi.com", true */ 'b', 'a', 'l', 'l', 'o', 't', 'a', 'p', 'i', '.', 'c', 'o', 'm', '\0',
+  /* "balonmano.co", true */ 'b', 'a', 'l', 'o', 'n', 'm', 'a', 'n', 'o', '.', 'c', 'o', '\0',
   /* "bananabandy.com", true */ 'b', 'a', 'n', 'a', 'n', 'a', 'b', 'a', 'n', 'd', 'y', '.', 'c', 'o', 'm', '\0',
   /* "bananium.fr", true */ 'b', 'a', 'n', 'a', 'n', 'i', 'u', 'm', '.', 'f', 'r', '\0',
   /* "banbanchs.com", true */ 'b', 'a', 'n', 'b', 'a', 'n', 'c', 'h', 's', '.', 'c', 'o', 'm', '\0',
   /* "bancacrs.it", true */ 'b', 'a', 'n', 'c', 'a', 'c', 'r', 's', '.', 'i', 't', '\0',
   /* "bancoctt.pt", true */ 'b', 'a', 'n', 'c', 'o', 'c', 't', 't', '.', 'p', 't', '\0',
   /* "bandgap.io", true */ 'b', 'a', 'n', 'd', 'g', 'a', 'p', '.', 'i', 'o', '\0',
   /* "bandiga.it", true */ 'b', 'a', 'n', 'd', 'i', 'g', 'a', '.', 'i', 't', '\0',
   /* "bangkok.dating", true */ 'b', 'a', 'n', 'g', 'k', 'o', 'k', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
@@ -1341,17 +1340,16 @@ static const char kSTSHostTable[] = {
   /* "bcchack.com", true */ 'b', 'c', 'c', 'h', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "bcdonadio.com", true */ 'b', 'c', 'd', 'o', 'n', 'a', 'd', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "bcheng.cf", true */ 'b', 'c', 'h', 'e', 'n', 'g', '.', 'c', 'f', '\0',
   /* "bchep.com", true */ 'b', 'c', 'h', 'e', 'p', '.', 'c', 'o', 'm', '\0',
   /* "bcmguide.com", true */ 'b', 'c', 'm', 'g', 'u', 'i', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "bcmlu.org", true */ 'b', 'c', 'm', 'l', 'u', '.', 'o', 'r', 'g', '\0',
   /* "bcrook.com", false */ 'b', 'c', 'r', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "bcswampcabins.com", true */ 'b', 'c', 's', 'w', 'a', 'm', 'p', 'c', 'a', 'b', 'i', 'n', 's', '.', 'c', 'o', 'm', '\0',
-  /* "bcvps.com", true */ 'b', 'c', 'v', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "bdd.fi", true */ 'b', 'd', 'd', '.', 'f', 'i', '\0',
   /* "bddemir.com", true */ 'b', 'd', 'd', 'e', 'm', 'i', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bde-epitech.fr", true */ 'b', 'd', 'e', '-', 'e', 'p', 'i', 't', 'e', 'c', 'h', '.', 'f', 'r', '\0',
   /* "bdikaros-network.net", true */ 'b', 'd', 'i', 'k', 'a', 'r', 'o', 's', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'n', 'e', 't', '\0',
   /* "be-ka-tec.de", true */ 'b', 'e', '-', 'k', 'a', '-', 't', 'e', 'c', '.', 'd', 'e', '\0',
   /* "be-real.life", true */ 'b', 'e', '-', 'r', 'e', 'a', 'l', '.', 'l', 'i', 'f', 'e', '\0',
   /* "be-webdesign.com", true */ 'b', 'e', '-', 'w', 'e', 'b', 'd', 'e', 's', 'i', 'g', 'n', '.', 'c', 'o', 'm', '\0',
   /* "be2cloud.de", true */ 'b', 'e', '2', 'c', 'l', 'o', 'u', 'd', '.', 'd', 'e', '\0',
@@ -1638,17 +1636,16 @@ static const char kSTSHostTable[] = {
   /* "bitref.com", true */ 'b', 'i', 't', 'r', 'e', 'f', '.', 'c', 'o', 'm', '\0',
   /* "bitsensor.io", true */ 'b', 'i', 't', 's', 'e', 'n', 's', 'o', 'r', '.', 'i', 'o', '\0',
   /* "bitshaker.net", true */ 'b', 'i', 't', 's', 'h', 'a', 'k', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "bitskins.co", true */ 'b', 'i', 't', 's', 'k', 'i', 'n', 's', '.', 'c', 'o', '\0',
   /* "bitskrieg.net", true */ 'b', 'i', 't', 's', 'k', 'r', 'i', 'e', 'g', '.', 'n', 'e', 't', '\0',
   /* "bitstorm.nl", true */ 'b', 'i', 't', 's', 't', 'o', 'r', 'm', '.', 'n', 'l', '\0',
   /* "bitstorm.org", true */ 'b', 'i', 't', 's', 't', 'o', 'r', 'm', '.', 'o', 'r', 'g', '\0',
   /* "bittersweetcandybowl.com", true */ 'b', 'i', 't', 't', 'e', 'r', 's', 'w', 'e', 'e', 't', 'c', 'a', 'n', 'd', 'y', 'b', 'o', 'w', 'l', '.', 'c', 'o', 'm', '\0',
-  /* "bittmann.me", true */ 'b', 'i', 't', 't', 'm', 'a', 'n', 'n', '.', 'm', 'e', '\0',
   /* "bittylicious.com", true */ 'b', 'i', 't', 't', 'y', 'l', 'i', 'c', 'i', 'o', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "bitvest.io", true */ 'b', 'i', 't', 'v', 'e', 's', 't', '.', 'i', 'o', '\0',
   /* "bitwolk.nl", true */ 'b', 'i', 't', 'w', 'o', 'l', 'k', '.', 'n', 'l', '\0',
   /* "biurokarier.edu.pl", true */ 'b', 'i', 'u', 'r', 'o', 'k', 'a', 'r', 'i', 'e', 'r', '.', 'e', 'd', 'u', '.', 'p', 'l', '\0',
   /* "biyou-homme.com", true */ 'b', 'i', 'y', 'o', 'u', '-', 'h', 'o', 'm', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "biz4x.com", true */ 'b', 'i', 'z', '4', 'x', '.', 'c', 'o', 'm', '\0',
   /* "biznpro.ru", true */ 'b', 'i', 'z', 'n', 'p', 'r', 'o', '.', 'r', 'u', '\0',
   /* "biztera.com", true */ 'b', 'i', 'z', 't', 'e', 'r', 'a', '.', 'c', 'o', 'm', '\0',
@@ -2165,17 +2162,16 @@ static const char kSTSHostTable[] = {
   /* "calculator-imt.com", true */ 'c', 'a', 'l', 'c', 'u', 'l', 'a', 't', 'o', 'r', '-', 'i', 'm', 't', '.', 'c', 'o', 'm', '\0',
   /* "calculator.tf", true */ 'c', 'a', 'l', 'c', 'u', 'l', 'a', 't', 'o', 'r', '.', 't', 'f', '\0',
   /* "calebmorris.com", false */ 'c', 'a', 'l', 'e', 'b', 'm', 'o', 'r', 'r', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "caletka.cz", true */ 'c', 'a', 'l', 'e', 't', 'k', 'a', '.', 'c', 'z', '\0',
   /* "calgoty.com", true */ 'c', 'a', 'l', 'g', 'o', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "calibreapp.com", false */ 'c', 'a', 'l', 'i', 'b', 'r', 'e', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "calibso.net", true */ 'c', 'a', 'l', 'i', 'b', 's', 'o', '.', 'n', 'e', 't', '\0',
   /* "calixte-concept.fr", true */ 'c', 'a', 'l', 'i', 'x', 't', 'e', '-', 'c', 'o', 'n', 'c', 'e', 'p', 't', '.', 'f', 'r', '\0',
-  /* "call.me", false */ 'c', 'a', 'l', 'l', '.', 'm', 'e', '\0',
   /* "callabs.net", true */ 'c', 'a', 'l', 'l', 'a', 'b', 's', '.', 'n', 'e', 't', '\0',
   /* "callaction.co", true */ 'c', 'a', 'l', 'l', 'a', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', '\0',
   /* "callear.org", true */ 'c', 'a', 'l', 'l', 'e', 'a', 'r', '.', 'o', 'r', 'g', '\0',
   /* "callhub.io", true */ 'c', 'a', 'l', 'l', 'h', 'u', 'b', '.', 'i', 'o', '\0',
   /* "callision.com", true */ 'c', 'a', 'l', 'l', 'i', 's', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "callsigns.ca", true */ 'c', 'a', 'l', 'l', 's', 'i', 'g', 'n', 's', '.', 'c', 'a', '\0',
   /* "calomel.org", true */ 'c', 'a', 'l', 'o', 'm', 'e', 'l', '.', 'o', 'r', 'g', '\0',
   /* "calories.org", true */ 'c', 'a', 'l', 'o', 'r', 'i', 'e', 's', '.', 'o', 'r', 'g', '\0',
@@ -2496,16 +2492,17 @@ static const char kSTSHostTable[] = {
   /* "chippy.ch", false */ 'c', 'h', 'i', 'p', 'p', 'y', '.', 'c', 'h', '\0',
   /* "chiralsoftware.com", true */ 'c', 'h', 'i', 'r', 'a', 'l', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "chireiden.net", true */ 'c', 'h', 'i', 'r', 'e', 'i', 'd', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "chiropracticwpb.com", true */ 'c', 'h', 'i', 'r', 'o', 'p', 'r', 'a', 'c', 't', 'i', 'c', 'w', 'p', 'b', '.', 'c', 'o', 'm', '\0',
   /* "chirpstory.com", true */ 'c', 'h', 'i', 'r', 'p', 's', 't', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "chiru.no", true */ 'c', 'h', 'i', 'r', 'u', '.', 'n', 'o', '\0',
   /* "chiryotaisaku.com", true */ 'c', 'h', 'i', 'r', 'y', 'o', 't', 'a', 'i', 's', 'a', 'k', 'u', '.', 'c', 'o', 'm', '\0',
   /* "chit.search.yahoo.com", false */ 'c', 'h', 'i', 't', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
+  /* "chloe.re", true */ 'c', 'h', 'l', 'o', 'e', '.', 'r', 'e', '\0',
   /* "chloeallison.co.uk", true */ 'c', 'h', 'l', 'o', 'e', 'a', 'l', 'l', 'i', 's', 'o', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "chlouis.net", true */ 'c', 'h', 'l', 'o', 'u', 'i', 's', '.', 'n', 'e', 't', '\0',
   /* "chocolah.com.au", false */ 'c', 'h', 'o', 'c', 'o', 'l', 'a', 'h', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "chocotough.nl", false */ 'c', 'h', 'o', 'c', 'o', 't', 'o', 'u', 'g', 'h', '.', 'n', 'l', '\0',
   /* "choiralberta.ca", true */ 'c', 'h', 'o', 'i', 'r', 'a', 'l', 'b', 'e', 'r', 't', 'a', '.', 'c', 'a', '\0',
   /* "chokladfantasi.net", false */ 'c', 'h', 'o', 'k', 'l', 'a', 'd', 'f', 'a', 'n', 't', 'a', 's', 'i', '.', 'n', 'e', 't', '\0',
   /* "chonghe.org", true */ 'c', 'h', 'o', 'n', 'g', 'h', 'e', '.', 'o', 'r', 'g', '\0',
   /* "choosemypc.net", true */ 'c', 'h', 'o', 'o', 's', 'e', 'm', 'y', 'p', 'c', '.', 'n', 'e', 't', '\0',
@@ -2615,16 +2612,17 @@ static const char kSTSHostTable[] = {
   /* "classdojo.com", true */ 'c', 'l', 'a', 's', 's', 'd', 'o', 'j', 'o', '.', 'c', 'o', 'm', '\0',
   /* "classicalpilates.ca", true */ 'c', 'l', 'a', 's', 's', 'i', 'c', 'a', 'l', 'p', 'i', 'l', 'a', 't', 'e', 's', '.', 'c', 'a', '\0',
   /* "classicday.nl", true */ 'c', 'l', 'a', 's', 's', 'i', 'c', 'd', 'a', 'y', '.', 'n', 'l', '\0',
   /* "classicshop.ua", true */ 'c', 'l', 'a', 's', 's', 'i', 'c', 's', 'h', 'o', 'p', '.', 'u', 'a', '\0',
   /* "classifiedssa.co.za", true */ 'c', 'l', 'a', 's', 's', 'i', 'f', 'i', 'e', 'd', 's', 's', 'a', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "classpoint.cz", true */ 'c', 'l', 'a', 's', 's', 'p', 'o', 'i', 'n', 't', '.', 'c', 'z', '\0',
   /* "claudio4.com", true */ 'c', 'l', 'a', 'u', 'd', 'i', 'o', '4', '.', 'c', 'o', 'm', '\0',
   /* "clawe.de", true */ 'c', 'l', 'a', 'w', 'e', '.', 'd', 'e', '\0',
+  /* "cldly.com", true */ 'c', 'l', 'd', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "clearkonjac.com", true */ 'c', 'l', 'e', 'a', 'r', 'k', 'o', 'n', 'j', 'a', 'c', '.', 'c', 'o', 'm', '\0',
   /* "clearsettle-admin.com", true */ 'c', 'l', 'e', 'a', 'r', 's', 'e', 't', 't', 'l', 'e', '-', 'a', 'd', 'm', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "clearviewwealthprojector.com.au", true */ 'c', 'l', 'e', 'a', 'r', 'v', 'i', 'e', 'w', 'w', 'e', 'a', 'l', 't', 'h', 'p', 'r', 'o', 'j', 'e', 'c', 't', 'o', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "clevertarget.ru", true */ 'c', 'l', 'e', 'v', 'e', 'r', 't', 'a', 'r', 'g', 'e', 't', '.', 'r', 'u', '\0',
   /* "cleververmarkten.com", true */ 'c', 'l', 'e', 'v', 'e', 'r', 'v', 'e', 'r', 'm', 'a', 'r', 'k', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "cleververmarkten.de", true */ 'c', 'l', 'e', 'v', 'e', 'r', 'v', 'e', 'r', 'm', 'a', 'r', 'k', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "clevisto.com", true */ 'c', 'l', 'e', 'v', 'i', 's', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "clickclickphish.com", true */ 'c', 'l', 'i', 'c', 'k', 'c', 'l', 'i', 'c', 'k', 'p', 'h', 'i', 's', 'h', '.', 'c', 'o', 'm', '\0',
@@ -2661,17 +2659,16 @@ static const char kSTSHostTable[] = {
   /* "cloud.google.com", true */ 'c', 'l', 'o', 'u', 'd', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cloud.gov", false */ 'c', 'l', 'o', 'u', 'd', '.', 'g', 'o', 'v', '\0',
   /* "cloudapps.digital", true */ 'c', 'l', 'o', 'u', 'd', 'a', 'p', 'p', 's', '.', 'd', 'i', 'g', 'i', 't', 'a', 'l', '\0',
   /* "cloudbasedsite.com", true */ 'c', 'l', 'o', 'u', 'd', 'b', 'a', 's', 'e', 'd', 's', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cloudbolin.es", true */ 'c', 'l', 'o', 'u', 'd', 'b', 'o', 'l', 'i', 'n', '.', 'e', 's', '\0',
   /* "cloudcaprice.net", true */ 'c', 'l', 'o', 'u', 'd', 'c', 'a', 'p', 'r', 'i', 'c', 'e', '.', 'n', 'e', 't', '\0',
   /* "cloudflareonazure.com", true */ 'c', 'l', 'o', 'u', 'd', 'f', 'l', 'a', 'r', 'e', 'o', 'n', 'a', 'z', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cloudia.org", true */ 'c', 'l', 'o', 'u', 'd', 'i', 'a', '.', 'o', 'r', 'g', '\0',
-  /* "cloudily.com", true */ 'c', 'l', 'o', 'u', 'd', 'i', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "cloudmigrator365.com", true */ 'c', 'l', 'o', 'u', 'd', 'm', 'i', 'g', 'r', 'a', 't', 'o', 'r', '3', '6', '5', '.', 'c', 'o', 'm', '\0',
   /* "cloudoptimus.com", true */ 'c', 'l', 'o', 'u', 'd', 'o', 'p', 't', 'i', 'm', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "cloudpagesforwork.com", true */ 'c', 'l', 'o', 'u', 'd', 'p', 'a', 'g', 'e', 's', 'f', 'o', 'r', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "cloudpebble.net", true */ 'c', 'l', 'o', 'u', 'd', 'p', 'e', 'b', 'b', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "cloudpipes.com", true */ 'c', 'l', 'o', 'u', 'd', 'p', 'i', 'p', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "clouds.webcam", true */ 'c', 'l', 'o', 'u', 'd', 's', '.', 'w', 'e', 'b', 'c', 'a', 'm', '\0',
   /* "cloudsecurityalliance.org", true */ 'c', 'l', 'o', 'u', 'd', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "cloudspace-analytics.com", true */ 'c', 'l', 'o', 'u', 'd', 's', 'p', 'a', 'c', 'e', '-', 'a', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
@@ -2696,16 +2693,17 @@ static const char kSTSHostTable[] = {
   /* "cmahy.be", true */ 'c', 'm', 'a', 'h', 'y', '.', 'b', 'e', '\0',
   /* "cmdline.org", true */ 'c', 'm', 'd', 'l', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "cmylife.nl", true */ 'c', 'm', 'y', 'l', 'i', 'f', 'e', '.', 'n', 'l', '\0',
   /* "cnam.net", true */ 'c', 'n', 'a', 'm', '.', 'n', 'e', 't', '\0',
   /* "cnc-lehrgang.de", true */ 'c', 'n', 'c', '-', 'l', 'e', 'h', 'r', 'g', 'a', 'n', 'g', '.', 'd', 'e', '\0',
   /* "cncn.us", true */ 'c', 'n', 'c', 'n', '.', 'u', 's', '\0',
   /* "cnlic.com", true */ 'c', 'n', 'l', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "cnwage.com", true */ 'c', 'n', 'w', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "cnwarn.com", true */ 'c', 'n', 'w', 'a', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "co.search.yahoo.com", false */ 'c', 'o', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "coachingconsultancy.com", true */ 'c', 'o', 'a', 'c', 'h', 'i', 'n', 'g', 'c', 'o', 'n', 's', 'u', 'l', 't', 'a', 'n', 'c', 'y', '.', 'c', 'o', 'm', '\0',
   /* "coalpointcottage.com", true */ 'c', 'o', 'a', 'l', 'p', 'o', 'i', 'n', 't', 'c', 'o', 't', 't', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "coam.co", true */ 'c', 'o', 'a', 'm', '.', 'c', 'o', '\0',
   /* "coatl-industries.com", true */ 'c', 'o', 'a', 't', 'l', '-', 'i', 'n', 'd', 'u', 's', 't', 'r', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "cobalt.io", true */ 'c', 'o', 'b', 'a', 'l', 't', '.', 'i', 'o', '\0',
   /* "cobrasystems.nl", true */ 'c', 'o', 'b', 'r', 'a', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'n', 'l', '\0',
   /* "cocaine.ninja", true */ 'c', 'o', 'c', 'a', 'i', 'n', 'e', '.', 'n', 'i', 'n', 'j', 'a', '\0',
@@ -3035,17 +3033,16 @@ static const char kSTSHostTable[] = {
   /* "crosscom.ch", true */ 'c', 'r', 'o', 's', 's', 'c', 'o', 'm', '.', 'c', 'h', '\0',
   /* "crossfitblackwater.com", true */ 'c', 'r', 'o', 's', 's', 'f', 'i', 't', 'b', 'l', 'a', 'c', 'k', 'w', 'a', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "crosssellguide.com", true */ 'c', 'r', 'o', 's', 's', 's', 'e', 'l', 'l', 'g', 'u', 'i', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "crowdsupply.com", true */ 'c', 'r', 'o', 'w', 'd', 's', 'u', 'p', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "crownruler.com", true */ 'c', 'r', 'o', 'w', 'n', 'r', 'u', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "crrev.com", true */ 'c', 'r', 'r', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "crstat.ru", true */ 'c', 'r', 's', 't', 'a', 't', '.', 'r', 'u', '\0',
   /* "crt.sh", true */ 'c', 'r', 't', '.', 's', 'h', '\0',
-  /* "crufad.org", true */ 'c', 'r', 'u', 'f', 'a', 'd', '.', 'o', 'r', 'g', '\0',
   /* "crumbcontrol.com", true */ 'c', 'r', 'u', 'm', 'b', 'c', 'o', 'n', 't', 'r', 'o', 'l', '.', 'c', 'o', 'm', '\0',
   /* "crushroom.com", true */ 'c', 'r', 'u', 's', 'h', 'r', 'o', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "crustytoothpaste.net", true */ 'c', 'r', 'u', 's', 't', 'y', 't', 'o', 'o', 't', 'h', 'p', 'a', 's', 't', 'e', '.', 'n', 'e', 't', '\0',
   /* "crute.me", true */ 'c', 'r', 'u', 't', 'e', '.', 'm', 'e', '\0',
   /* "crvv.me", true */ 'c', 'r', 'v', 'v', '.', 'm', 'e', '\0',
   /* "cryptearth.de", true */ 'c', 'r', 'y', 'p', 't', 'e', 'a', 'r', 't', 'h', '.', 'd', 'e', '\0',
   /* "crypto.cat", false */ 'c', 'r', 'y', 'p', 't', 'o', '.', 'c', 'a', 't', '\0',
   /* "crypto.graphics", true */ 'c', 'r', 'y', 'p', 't', 'o', '.', 'g', 'r', 'a', 'p', 'h', 'i', 'c', 's', '\0',
@@ -3184,17 +3181,16 @@ static const char kSTSHostTable[] = {
   /* "cybertorsk.org", true */ 'c', 'y', 'b', 'e', 'r', 't', 'o', 'r', 's', 'k', '.', 'o', 'r', 'g', '\0',
   /* "cybertu.be", true */ 'c', 'y', 'b', 'e', 'r', 't', 'u', '.', 'b', 'e', '\0',
   /* "cyberwire.nl", true */ 'c', 'y', 'b', 'e', 'r', 'w', 'i', 'r', 'e', '.', 'n', 'l', '\0',
   /* "cyberxpert.nl", true */ 'c', 'y', 'b', 'e', 'r', 'x', 'p', 'e', 'r', 't', '.', 'n', 'l', '\0',
   /* "cybozu.cn", true */ 'c', 'y', 'b', 'o', 'z', 'u', '.', 'c', 'n', '\0',
   /* "cybozu.com", true */ 'c', 'y', 'b', 'o', 'z', 'u', '.', 'c', 'o', 'm', '\0',
   /* "cybozulive-dev.com", true */ 'c', 'y', 'b', 'o', 'z', 'u', 'l', 'i', 'v', 'e', '-', 'd', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "cybozulive.com", true */ 'c', 'y', 'b', 'o', 'z', 'u', 'l', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "cyclebeads.com", true */ 'c', 'y', 'c', 'l', 'e', 'b', 'e', 'a', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "cyclehackluxembourgcity.lu", true */ 'c', 'y', 'c', 'l', 'e', 'h', 'a', 'c', 'k', 'l', 'u', 'x', 'e', 'm', 'b', 'o', 'u', 'r', 'g', 'c', 'i', 't', 'y', '.', 'l', 'u', '\0',
   /* "cyfly.org", true */ 'c', 'y', 'f', 'l', 'y', '.', 'o', 'r', 'g', '\0',
   /* "cygnius.net", true */ 'c', 'y', 'g', 'n', 'i', 'u', 's', '.', 'n', 'e', 't', '\0',
   /* "cyhour.com", true */ 'c', 'y', 'h', 'o', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "cymtech.net", true */ 'c', 'y', 'm', 't', 'e', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "cyon.ch", true */ 'c', 'y', 'o', 'n', '.', 'c', 'h', '\0',
   /* "cyph.audio", true */ 'c', 'y', 'p', 'h', '.', 'a', 'u', 'd', 'i', 'o', '\0',
   /* "cyph.com", true */ 'c', 'y', 'p', 'h', '.', 'c', 'o', 'm', '\0',
@@ -3552,49 +3548,49 @@ static const char kSTSHostTable[] = {
   /* "deuxsol.com", true */ 'd', 'e', 'u', 'x', 's', 'o', 'l', '.', 'c', 'o', 'm', '\0',
   /* "deuxsolutions.com", true */ 'd', 'e', 'u', 'x', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "deuxvia.com", true */ 'd', 'e', 'u', 'x', 'v', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "dev-tek.de", true */ 'd', 'e', 'v', '-', 't', 'e', 'k', '.', 'd', 'e', '\0',
   /* "devafterdark.com", true */ 'd', 'e', 'v', 'a', 'f', 't', 'e', 'r', 'd', 'a', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "devb.nl", true */ 'd', 'e', 'v', 'b', '.', 'n', 'l', '\0',
   /* "devct.cz", true */ 'd', 'e', 'v', 'c', 't', '.', 'c', 'z', '\0',
   /* "devcu.com", true */ 'd', 'e', 'v', 'c', 'u', '.', 'c', 'o', 'm', '\0',
+  /* "devdesco.com", true */ 'd', 'e', 'v', 'd', 'e', 's', 'c', 'o', '.', 'c', 'o', 'm', '\0',
   /* "devdom.io", true */ 'd', 'e', 'v', 'd', 'o', 'm', '.', 'i', 'o', '\0',
   /* "devdoodle.net", true */ 'd', 'e', 'v', 'd', 'o', 'o', 'd', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "developer.mydigipass.com", false */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', '.', 'm', 'y', 'd', 'i', 'g', 'i', 'p', 'a', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "developerfair.com", true */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 'f', 'a', 'i', 'r', '.', 'c', 'o', 'm', '\0',
   /* "developers.facebook.com", false */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', '.', 'f', 'a', 'c', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "developfx.com", true */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'f', 'x', '.', 'c', 'o', 'm', '\0',
   /* "developmentaid.org", true */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'm', 'e', 'n', 't', 'a', 'i', 'd', '.', 'o', 'r', 'g', '\0',
   /* "developmentsites.melbourne", true */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'm', 'e', 'n', 't', 's', 'i', 't', 'e', 's', '.', 'm', 'e', 'l', 'b', 'o', 'u', 'r', 'n', 'e', '\0',
   /* "develux.com", true */ 'd', 'e', 'v', 'e', 'l', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "develux.net", true */ 'd', 'e', 'v', 'e', 'l', 'u', 'x', '.', 'n', 'e', 't', '\0',
   /* "devh.de", true */ 'd', 'e', 'v', 'h', '.', 'd', 'e', '\0',
+  /* "devh.net", true */ 'd', 'e', 'v', 'h', '.', 'n', 'e', 't', '\0',
   /* "deviant.email", true */ 'd', 'e', 'v', 'i', 'a', 'n', 't', '.', 'e', 'm', 'a', 'i', 'l', '\0',
   /* "devilshakerz.com", true */ 'd', 'e', 'v', 'i', 'l', 's', 'h', 'a', 'k', 'e', 'r', 'z', '.', 'c', 'o', 'm', '\0',
   /* "deviltraxxx.de", true */ 'd', 'e', 'v', 'i', 'l', 't', 'r', 'a', 'x', 'x', 'x', '.', 'd', 'e', '\0',
   /* "devinfo.net", false */ 'd', 'e', 'v', 'i', 'n', 'f', 'o', '.', 'n', 'e', 't', '\0',
   /* "devisnow.fr", true */ 'd', 'e', 'v', 'i', 's', 'n', 'o', 'w', '.', 'f', 'r', '\0',
   /* "devistravaux.org", true */ 'd', 'e', 'v', 'i', 's', 't', 'r', 'a', 'v', 'a', 'u', 'x', '.', 'o', 'r', 'g', '\0',
   /* "devklog.net", true */ 'd', 'e', 'v', 'k', 'l', 'o', 'g', '.', 'n', 'e', 't', '\0',
   /* "devlogr.com", true */ 'd', 'e', 'v', 'l', 'o', 'g', 'r', '.', 'c', 'o', 'm', '\0',
   /* "devlux.ch", true */ 'd', 'e', 'v', 'l', 'u', 'x', '.', 'c', 'h', '\0',
   /* "devmsg.com", true */ 'd', 'e', 'v', 'm', 's', 'g', '.', 'c', 'o', 'm', '\0',
   /* "devnsec.com", true */ 'd', 'e', 'v', 'n', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "devnull.team", true */ 'd', 'e', 'v', 'n', 'u', 'l', 'l', '.', 't', 'e', 'a', 'm', '\0',
   /* "devolution.ws", true */ 'd', 'e', 'v', 'o', 'l', 'u', 't', 'i', 'o', 'n', '.', 'w', 's', '\0',
   /* "devonsawatzky.ca", true */ 'd', 'e', 'v', 'o', 'n', 's', 'a', 'w', 'a', 't', 'z', 'k', 'y', '.', 'c', 'a', '\0',
   /* "devopps.me", true */ 'd', 'e', 'v', 'o', 'p', 'p', 's', '.', 'm', 'e', '\0',
   /* "devops-survey.com", true */ 'd', 'e', 'v', 'o', 'p', 's', '-', 's', 'u', 'r', 'v', 'e', 'y', '.', 'c', 'o', 'm', '\0',
-  /* "devopsconnected.com", false */ 'd', 'e', 'v', 'o', 'p', 's', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "devpsy.info", true */ 'd', 'e', 'v', 'p', 's', 'y', '.', 'i', 'n', 'f', 'o', '\0',
   /* "devstaff.gr", true */ 'd', 'e', 'v', 's', 't', 'a', 'f', 'f', '.', 'g', 'r', '\0',
   /* "devzero.io", true */ 'd', 'e', 'v', 'z', 'e', 'r', 'o', '.', 'i', 'o', '\0',
   /* "dewalch.net", true */ 'd', 'e', 'w', 'a', 'l', 'c', 'h', '.', 'n', 'e', 't', '\0',
-  /* "dewin.io", true */ 'd', 'e', 'w', 'i', 'n', '.', 'i', 'o', '\0',
   /* "dexalo.de", true */ 'd', 'e', 'x', 'a', 'l', 'o', '.', 'd', 'e', '\0',
   /* "dezeregio.nl", true */ 'd', 'e', 'z', 'e', 'r', 'e', 'g', 'i', 'o', '.', 'n', 'l', '\0',
   /* "dezmembrariromania.ro", true */ 'd', 'e', 'z', 'm', 'e', 'm', 'b', 'r', 'a', 'r', 'i', 'r', 'o', 'm', 'a', 'n', 'i', 'a', '.', 'r', 'o', '\0',
   /* "dfctaiwan.org", true */ 'd', 'f', 'c', 't', 'a', 'i', 'w', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "dfekt.no", true */ 'd', 'f', 'e', 'k', 't', '.', 'n', 'o', '\0',
   /* "dfektlan.no", true */ 'd', 'f', 'e', 'k', 't', 'l', 'a', 'n', '.', 'n', 'o', '\0',
   /* "dfl.mn", true */ 'd', 'f', 'l', '.', 'm', 'n', '\0',
   /* "dfranke.com", true */ 'd', 'f', 'r', 'a', 'n', 'k', 'e', '.', 'c', 'o', 'm', '\0',
@@ -3799,16 +3795,17 @@ static const char kSTSHostTable[] = {
   /* "docucopies.com", true */ 'd', 'o', 'c', 'u', 'c', 'o', 'p', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "doculus.io", true */ 'd', 'o', 'c', 'u', 'l', 'u', 's', '.', 'i', 'o', '\0',
   /* "docupet.com", true */ 'd', 'o', 'c', 'u', 'p', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "doesmycodehavebugs.today", true */ 'd', 'o', 'e', 's', 'm', 'y', 'c', 'o', 'd', 'e', 'h', 'a', 'v', 'e', 'b', 'u', 'g', 's', '.', 't', 'o', 'd', 'a', 'y', '\0',
   /* "dogan.ch", false */ 'd', 'o', 'g', 'a', 'n', '.', 'c', 'h', '\0',
   /* "dogespeed.ga", true */ 'd', 'o', 'g', 'e', 's', 'p', 'e', 'e', 'd', '.', 'g', 'a', '\0',
   /* "dogfi.sh", true */ 'd', 'o', 'g', 'f', 'i', '.', 's', 'h', '\0',
   /* "doggieholic.net", true */ 'd', 'o', 'g', 'g', 'i', 'e', 'h', 'o', 'l', 'i', 'c', '.', 'n', 'e', 't', '\0',
+  /* "dogmap.jp", true */ 'd', 'o', 'g', 'm', 'a', 'p', '.', 'j', 'p', '\0',
   /* "dognlife.com", true */ 'd', 'o', 'g', 'n', 'l', 'i', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "dogoodbehappyllc.com", true */ 'd', 'o', 'g', 'o', 'o', 'd', 'b', 'e', 'h', 'a', 'p', 'p', 'y', 'l', 'l', 'c', '.', 'c', 'o', 'm', '\0',
   /* "doked.io", true */ 'd', 'o', 'k', 'e', 'd', '.', 'i', 'o', '\0',
   /* "dokelio-idf.fr", true */ 'd', 'o', 'k', 'e', 'l', 'i', 'o', '-', 'i', 'd', 'f', '.', 'f', 'r', '\0',
   /* "doku-gilde.de", true */ 'd', 'o', 'k', 'u', '-', 'g', 'i', 'l', 'd', 'e', '.', 'd', 'e', '\0',
   /* "dokuboard.com", true */ 'd', 'o', 'k', 'u', 'b', 'o', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
   /* "dokuraum.de", true */ 'd', 'o', 'k', 'u', 'r', 'a', 'u', 'm', '.', 'd', 'e', '\0',
   /* "dolarcanadense.com.br", true */ 'd', 'o', 'l', 'a', 'r', 'c', 'a', 'n', 'a', 'd', 'e', 'n', 's', 'e', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
@@ -3921,17 +3918,16 @@ static const char kSTSHostTable[] = {
   /* "dreamsforabetterworld.com.au", true */ 'd', 'r', 'e', 'a', 'm', 's', 'f', 'o', 'r', 'a', 'b', 'e', 't', 't', 'e', 'r', 'w', 'o', 'r', 'l', 'd', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "dreamtechie.com", true */ 'd', 'r', 'e', 'a', 'm', 't', 'e', 'c', 'h', 'i', 'e', '.', 'c', 'o', 'm', '\0',
   /* "dredgepress.com", true */ 'd', 'r', 'e', 'd', 'g', 'e', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "dreid.org", true */ 'd', 'r', 'e', 'i', 'd', '.', 'o', 'r', 'g', '\0',
   /* "dreizwosechs.de", true */ 'd', 'r', 'e', 'i', 'z', 'w', 'o', 's', 'e', 'c', 'h', 's', '.', 'd', 'e', '\0',
   /* "dress-cons.com", true */ 'd', 'r', 'e', 's', 's', '-', 'c', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "drew.red", true */ 'd', 'r', 'e', 'w', '.', 'r', 'e', 'd', '\0',
   /* "dreweryinc.com", true */ 'd', 'r', 'e', 'w', 'e', 'r', 'y', 'i', 'n', 'c', '.', 'c', 'o', 'm', '\0',
-  /* "drewgle.net", true */ 'd', 'r', 'e', 'w', 'g', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "drgn.no", true */ 'd', 'r', 'g', 'n', '.', 'n', 'o', '\0',
   /* "driesjtuver.nl", true */ 'd', 'r', 'i', 'e', 's', 'j', 't', 'u', 'v', 'e', 'r', '.', 'n', 'l', '\0',
   /* "driftdude.nl", true */ 'd', 'r', 'i', 'f', 't', 'd', 'u', 'd', 'e', '.', 'n', 'l', '\0',
   /* "drighes.com", true */ 'd', 'r', 'i', 'g', 'h', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "drinkplanet.eu", true */ 'd', 'r', 'i', 'n', 'k', 'p', 'l', 'a', 'n', 'e', 't', '.', 'e', 'u', '\0',
   /* "drinkvabeer.com", true */ 'd', 'r', 'i', 'n', 'k', 'v', 'a', 'b', 'e', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "drino.org", false */ 'd', 'r', 'i', 'n', 'o', '.', 'o', 'r', 'g', '\0',
   /* "drive.google.com", true */ 'd', 'r', 'i', 'v', 'e', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
@@ -4037,16 +4033,17 @@ static const char kSTSHostTable[] = {
   /* "dynamicnet.net", false */ 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'n', 'e', 't', '.', 'n', 'e', 't', '\0',
   /* "dynamicsnetwork.net", true */ 'd', 'y', 'n', 'a', 'm', 'i', 'c', 's', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'n', 'e', 't', '\0',
   /* "dynamictostatic.com", true */ 'd', 'y', 'n', 'a', 'm', 'i', 'c', 't', 'o', 's', 't', 'a', 't', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "dynamize.solutions", true */ 'd', 'y', 'n', 'a', 'm', 'i', 'z', 'e', '.', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '\0',
   /* "dyrenesverden.no", true */ 'd', 'y', 'r', 'e', 'n', 'e', 's', 'v', 'e', 'r', 'd', 'e', 'n', '.', 'n', 'o', '\0',
   /* "dyrkar.com", true */ 'd', 'y', 'r', 'k', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "dziekonski.com", true */ 'd', 'z', 'i', 'e', 'k', 'o', 'n', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "dzndk.com", true */ 'd', 'z', 'n', 'd', 'k', '.', 'c', 'o', 'm', '\0',
+  /* "dzndk.net", true */ 'd', 'z', 'n', 'd', 'k', '.', 'n', 'e', 't', '\0',
   /* "dzyabchenko.com", true */ 'd', 'z', 'y', 'a', 'b', 'c', 'h', 'e', 'n', 'k', 'o', '.', 'c', 'o', 'm', '\0',
   /* "e-biografias.net", true */ 'e', '-', 'b', 'i', 'o', 'g', 'r', 'a', 'f', 'i', 'a', 's', '.', 'n', 'e', 't', '\0',
   /* "e-isfa.eu", true */ 'e', '-', 'i', 's', 'f', 'a', '.', 'e', 'u', '\0',
   /* "e-kontakti.fi", true */ 'e', '-', 'k', 'o', 'n', 't', 'a', 'k', 't', 'i', '.', 'f', 'i', '\0',
   /* "e-learningbs.com", true */ 'e', '-', 'l', 'e', 'a', 'r', 'n', 'i', 'n', 'g', 'b', 's', '.', 'c', 'o', 'm', '\0',
   /* "e-lifetechnology.com", true */ 'e', '-', 'l', 'i', 'f', 'e', 't', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', 'y', '.', 'c', 'o', 'm', '\0',
   /* "e-mak.eu", true */ 'e', '-', 'm', 'a', 'k', '.', 'e', 'u', '\0',
   /* "e-rickroll-r.pw", true */ 'e', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'r', '.', 'p', 'w', '\0',
@@ -4321,43 +4318,47 @@ static const char kSTSHostTable[] = {
   /* "empathy.ca", true */ 'e', 'm', 'p', 'a', 't', 'h', 'y', '.', 'c', 'a', '\0',
   /* "empowerdb.com", true */ 'e', 'm', 'p', 'o', 'w', 'e', 'r', 'd', 'b', '.', 'c', 'o', 'm', '\0',
   /* "emprego.pt", true */ 'e', 'm', 'p', 'r', 'e', 'g', 'o', '.', 'p', 't', '\0',
   /* "emptypath.com", true */ 'e', 'm', 'p', 't', 'y', 'p', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "emrenovation.com", true */ 'e', 'm', 'r', 'e', 'n', 'o', 'v', 'a', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "emyr.net", true */ 'e', 'm', 'y', 'r', '.', 'n', 'e', 't', '\0',
   /* "en-booster.jp", true */ 'e', 'n', '-', 'b', 'o', 'o', 's', 't', 'e', 'r', '.', 'j', 'p', '\0',
   /* "en-maktoob.search.yahoo.com", false */ 'e', 'n', '-', 'm', 'a', 'k', 't', 'o', 'o', 'b', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "enaia.fr", true */ 'e', 'n', 'a', 'i', 'a', '.', 'f', 'r', '\0',
   /* "enaim.de", true */ 'e', 'n', 'a', 'i', 'm', '.', 'd', 'e', '\0',
   /* "encfs.win", true */ 'e', 'n', 'c', 'f', 's', '.', 'w', 'i', 'n', '\0',
   /* "encircleapp.com", true */ 'e', 'n', 'c', 'i', 'r', 'c', 'l', 'e', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "encnet.de", true */ 'e', 'n', 'c', 'n', 'e', 't', '.', 'd', 'e', '\0',
   /* "encode.uk.com", true */ 'e', 'n', 'c', 'o', 'd', 'e', '.', 'u', 'k', '.', 'c', 'o', 'm', '\0',
   /* "encredible.de", false */ 'e', 'n', 'c', 'r', 'e', 'd', 'i', 'b', 'l', 'e', '.', 'd', 'e', '\0',
   /* "encredible.org", false */ 'e', 'n', 'c', 'r', 'e', 'd', 'i', 'b', 'l', 'e', '.', 'o', 'r', 'g', '\0',
   /* "encryptallthethings.net", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'a', 'l', 'l', 't', 'h', 'e', 't', 'h', 'i', 'n', 'g', 's', '.', 'n', 'e', 't', '\0',
   /* "encrypted.google.com", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'e', 'd', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "encryptedaudience.com", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'e', 'd', 'a', 'u', 'd', 'i', 'e', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "encryptio.com", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "endeal.nl", true */ 'e', 'n', 'd', 'e', 'a', 'l', '.', 'n', 'l', '\0',
   /* "ender.co.at", true */ 'e', 'n', 'd', 'e', 'r', '.', 'c', 'o', '.', 'a', 't', '\0',
   /* "endlesshorizon.net", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'h', 'o', 'r', 'i', 'z', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "endlessvideo.com", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'v', 'i', 'd', 'e', 'o', '.', 'c', 'o', 'm', '\0',
   /* "endofnet.org", true */ 'e', 'n', 'd', 'o', 'f', 'n', 'e', 't', '.', 'o', 'r', 'g', '\0',
+  /* "endohaus.ca", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'c', 'a', '\0',
+  /* "endohaus.com", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'c', 'o', 'm', '\0',
+  /* "endohaus.eu", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'e', 'u', '\0',
+  /* "endohaus.us", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'u', 's', '\0',
   /* "endzeit-architekten.com", false */ 'e', 'n', 'd', 'z', 'e', 'i', 't', '-', 'a', 'r', 'c', 'h', 'i', 't', 'e', 'k', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "enecoshop.nl", true */ 'e', 'n', 'e', 'c', 'o', 's', 'h', 'o', 'p', '.', 'n', 'l', '\0',
   /* "enefan.jp", true */ 'e', 'n', 'e', 'f', 'a', 'n', '.', 'j', 'p', '\0',
   /* "energiekeurplus.nl", true */ 'e', 'n', 'e', 'r', 'g', 'i', 'e', 'k', 'e', 'u', 'r', 'p', 'l', 'u', 's', '.', 'n', 'l', '\0',
   /* "energy-drink-magazin.de", true */ 'e', 'n', 'e', 'r', 'g', 'y', '-', 'd', 'r', 'i', 'n', 'k', '-', 'm', 'a', 'g', 'a', 'z', 'i', 'n', '.', 'd', 'e', '\0',
   /* "energy-infra.nl", true */ 'e', 'n', 'e', 'r', 'g', 'y', '-', 'i', 'n', 'f', 'r', 'a', '.', 'n', 'l', '\0',
   /* "energy.eu", true */ 'e', 'n', 'e', 'r', 'g', 'y', '.', 'e', 'u', '\0',
   /* "energyatlas.com", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'a', 't', 'l', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "energyaupair.se", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'a', 'u', 'p', 'a', 'i', 'r', '.', 's', 'e', '\0',
   /* "energydrinkblog.de", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'd', 'r', 'i', 'n', 'k', 'b', 'l', 'o', 'g', '.', 'd', 'e', '\0',
+  /* "enfoqueseguro.com", true */ 'e', 'n', 'f', 'o', 'q', 'u', 'e', 's', 'e', 'g', 'u', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "engaugetools.com", true */ 'e', 'n', 'g', 'a', 'u', 'g', 'e', 't', 'o', 'o', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "engelundlicht.ch", true */ 'e', 'n', 'g', 'e', 'l', 'u', 'n', 'd', 'l', 'i', 'c', 'h', 't', '.', 'c', 'h', '\0',
   /* "engg.ca", true */ 'e', 'n', 'g', 'g', '.', 'c', 'a', '\0',
   /* "engineeryourmarketing.com", false */ 'e', 'n', 'g', 'i', 'n', 'e', 'e', 'r', 'y', 'o', 'u', 'r', 'm', 'a', 'r', 'k', 'e', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "engineowning.com", true */ 'e', 'n', 'g', 'i', 'n', 'e', 'o', 'w', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "enginepit.com", true */ 'e', 'n', 'g', 'i', 'n', 'e', 'p', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "enginx.net", true */ 'e', 'n', 'g', 'i', 'n', 'x', '.', 'n', 'e', 't', '\0',
   /* "englerts.de", true */ 'e', 'n', 'g', 'l', 'e', 'r', 't', 's', '.', 'd', 'e', '\0',
@@ -4490,16 +4491,17 @@ static const char kSTSHostTable[] = {
   /* "essoduke.org", true */ 'e', 's', 's', 'o', 'd', 'u', 'k', 'e', '.', 'o', 'r', 'g', '\0',
   /* "estaciona.guru", true */ 'e', 's', 't', 'a', 'c', 'i', 'o', 'n', 'a', '.', 'g', 'u', 'r', 'u', '\0',
   /* "estaleiro.org", true */ 'e', 's', 't', 'a', 'l', 'e', 'i', 'r', 'o', '.', 'o', 'r', 'g', '\0',
   /* "estan.cn", true */ 'e', 's', 't', 'a', 'n', '.', 'c', 'n', '\0',
   /* "estateczech-eu.ru", true */ 'e', 's', 't', 'a', 't', 'e', 'c', 'z', 'e', 'c', 'h', '-', 'e', 'u', '.', 'r', 'u', '\0',
   /* "estcequonmetenprodaujourdhui.info", true */ 'e', 's', 't', 'c', 'e', 'q', 'u', 'o', 'n', 'm', 'e', 't', 'e', 'n', 'p', 'r', 'o', 'd', 'a', 'u', 'j', 'o', 'u', 'r', 'd', 'h', 'u', 'i', '.', 'i', 'n', 'f', 'o', '\0',
   /* "esteam.se", true */ 'e', 's', 't', 'e', 'a', 'm', '.', 's', 'e', '\0',
   /* "estebanborges.com", true */ 'e', 's', 't', 'e', 'b', 'a', 'n', 'b', 'o', 'r', 'g', 'e', 's', '.', 'c', 'o', 'm', '\0',
+  /* "estoic.net", true */ 'e', 's', 't', 'o', 'i', 'c', '.', 'n', 'e', 't', '\0',
   /* "estonoentraenelexamen.com", true */ 'e', 's', 't', 'o', 'n', 'o', 'e', 'n', 't', 'r', 'a', 'e', 'n', 'e', 'l', 'e', 'x', 'a', 'm', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "estrietoit.com", false */ 'e', 's', 't', 'r', 'i', 'e', 't', 'o', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "et180.com", true */ 'e', 't', '1', '8', '0', '.', 'c', 'o', 'm', '\0',
   /* "etaes.eu", true */ 'e', 't', 'a', 'e', 's', '.', 'e', 'u', '\0',
   /* "etaoinwu.tk", true */ 'e', 't', 'a', 'o', 'i', 'n', 'w', 'u', '.', 't', 'k', '\0',
   /* "etath.com", true */ 'e', 't', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "etaxi.tn", true */ 'e', 't', 'a', 'x', 'i', '.', 't', 'n', '\0',
   /* "eteesheet.com", true */ 'e', 't', 'e', 'e', 's', 'h', 'e', 'e', 't', '.', 'c', 'o', 'm', '\0',
@@ -4733,16 +4735,17 @@ static const char kSTSHostTable[] = {
   /* "fanz.pro", true */ 'f', 'a', 'n', 'z', '.', 'p', 'r', 'o', '\0',
   /* "fap.no", true */ 'f', 'a', 'p', '.', 'n', 'o', '\0',
   /* "faq.ie", true */ 'f', 'a', 'q', '.', 'i', 'e', '\0',
   /* "faq.lookout.com", false */ 'f', 'a', 'q', '.', 'l', 'o', 'o', 'k', 'o', 'u', 't', '.', 'c', 'o', 'm', '\0',
   /* "fara.gov", true */ 'f', 'a', 'r', 'a', '.', 'g', 'o', 'v', '\0',
   /* "faretravel.co.uk", true */ 'f', 'a', 'r', 'e', 't', 'r', 'a', 'v', 'e', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "farfetchos.com", true */ 'f', 'a', 'r', 'f', 'e', 't', 'c', 'h', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "fargtorget.se", true */ 'f', 'a', 'r', 'g', 't', 'o', 'r', 'g', 'e', 't', '.', 's', 'e', '\0',
+  /* "farhood.org", true */ 'f', 'a', 'r', 'h', 'o', 'o', 'd', '.', 'o', 'r', 'g', '\0',
   /* "farmacia.pt", true */ 'f', 'a', 'r', 'm', 'a', 'c', 'i', 'a', '.', 'p', 't', '\0',
   /* "farmacialaboratorio.it", true */ 'f', 'a', 'r', 'm', 'a', 'c', 'i', 'a', 'l', 'a', 'b', 'o', 'r', 'a', 't', 'o', 'r', 'i', 'o', '.', 'i', 't', '\0',
   /* "farmer.dating", true */ 'f', 'a', 'r', 'm', 'e', 'r', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "farmkazuto.com", true */ 'f', 'a', 'r', 'm', 'k', 'a', 'z', 'u', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "fasdoutreach.ca", true */ 'f', 'a', 's', 'd', 'o', 'u', 't', 'r', 'e', 'a', 'c', 'h', '.', 'c', 'a', '\0',
   /* "fashion.net", true */ 'f', 'a', 's', 'h', 'i', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "fashionholic.my", true */ 'f', 'a', 's', 'h', 'i', 'o', 'n', 'h', 'o', 'l', 'i', 'c', '.', 'm', 'y', '\0',
   /* "fashionunited.cl", true */ 'f', 'a', 's', 'h', 'i', 'o', 'n', 'u', 'n', 'i', 't', 'e', 'd', '.', 'c', 'l', '\0',
@@ -4755,16 +4758,17 @@ static const char kSTSHostTable[] = {
   /* "fashionunited.nz", true */ 'f', 'a', 's', 'h', 'i', 'o', 'n', 'u', 'n', 'i', 't', 'e', 'd', '.', 'n', 'z', '\0',
   /* "fashionunited.se", true */ 'f', 'a', 's', 'h', 'i', 'o', 'n', 'u', 'n', 'i', 't', 'e', 'd', '.', 's', 'e', '\0',
   /* "faspirits.co.uk", true */ 'f', 'a', 's', 'p', 'i', 'r', 'i', 't', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "faspirits.com", true */ 'f', 'a', 's', 'p', 'i', 'r', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "fassadenverkleidung24.de", true */ 'f', 'a', 's', 's', 'a', 'd', 'e', 'n', 'v', 'e', 'r', 'k', 'l', 'e', 'i', 'd', 'u', 'n', 'g', '2', '4', '.', 'd', 'e', '\0',
   /* "fastaim.de", true */ 'f', 'a', 's', 't', 'a', 'i', 'm', '.', 'd', 'e', '\0',
   /* "fastcomcorp.com", true */ 'f', 'a', 's', 't', 'c', 'o', 'm', 'c', 'o', 'r', 'p', '.', 'c', 'o', 'm', '\0',
   /* "fastcomcorp.net", true */ 'f', 'a', 's', 't', 'c', 'o', 'm', 'c', 'o', 'r', 'p', '.', 'n', 'e', 't', '\0',
+  /* "fastconfirm.com", true */ 'f', 'a', 's', 't', 'c', 'o', 'n', 'f', 'i', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "fastdigitizing.com", true */ 'f', 'a', 's', 't', 'd', 'i', 'g', 'i', 't', 'i', 'z', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "fastmail.com", false */ 'f', 'a', 's', 't', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "fatwin.pw", true */ 'f', 'a', 't', 'w', 'i', 'n', '.', 'p', 'w', '\0',
   /* "fatzebra.com.au", false */ 'f', 'a', 't', 'z', 'e', 'b', 'r', 'a', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "faucetbox.com", true */ 'f', 'a', 'u', 'c', 'e', 't', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "favorit.club", true */ 'f', 'a', 'v', 'o', 'r', 'i', 't', '.', 'c', 'l', 'u', 'b', '\0',
   /* "fawkex.me", true */ 'f', 'a', 'w', 'k', 'e', 'x', '.', 'm', 'e', '\0',
   /* "fawong.com", true */ 'f', 'a', 'w', 'o', 'n', 'g', '.', 'c', 'o', 'm', '\0',
@@ -4794,16 +4798,17 @@ static const char kSTSHostTable[] = {
   /* "feel.aero", true */ 'f', 'e', 'e', 'l', '.', 'a', 'e', 'r', 'o', '\0',
   /* "feen.us", true */ 'f', 'e', 'e', 'n', '.', 'u', 's', '\0',
   /* "fehngarten.de", true */ 'f', 'e', 'h', 'n', 'g', 'a', 'r', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "fehnladen.de", true */ 'f', 'e', 'h', 'n', 'l', 'a', 'd', 'e', 'n', '.', 'd', 'e', '\0',
   /* "feirlane.org", false */ 'f', 'e', 'i', 'r', 'l', 'a', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "feistyduck.com", true */ 'f', 'e', 'i', 's', 't', 'y', 'd', 'u', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "feld.saarland", true */ 'f', 'e', 'l', 'd', '.', 's', 'a', 'a', 'r', 'l', 'a', 'n', 'd', '\0',
   /* "felixhefner.de", true */ 'f', 'e', 'l', 'i', 'x', 'h', 'e', 'f', 'n', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "felixklein.at", false */ 'f', 'e', 'l', 'i', 'x', 'k', 'l', 'e', 'i', 'n', '.', 'a', 't', '\0',
   /* "felixrr.pro", true */ 'f', 'e', 'l', 'i', 'x', 'r', 'r', '.', 'p', 'r', 'o', '\0',
   /* "felixsanz.com", true */ 'f', 'e', 'l', 'i', 'x', 's', 'a', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "felixseele.de", true */ 'f', 'e', 'l', 'i', 'x', 's', 'e', 'e', 'l', 'e', '.', 'd', 'e', '\0',
   /* "fenno.net", true */ 'f', 'e', 'n', 'n', 'o', '.', 'n', 'e', 't', '\0',
   /* "fenster-bank.at", true */ 'f', 'e', 'n', 's', 't', 'e', 'r', '-', 'b', 'a', 'n', 'k', '.', 'a', 't', '\0',
   /* "fenster-bank.de", true */ 'f', 'e', 'n', 's', 't', 'e', 'r', '-', 'b', 'a', 'n', 'k', '.', 'd', 'e', '\0',
   /* "feriahuamantla.com", true */ 'f', 'e', 'r', 'i', 'a', 'h', 'u', 'a', 'm', 'a', 'n', 't', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "ferien-netzwerk.de", true */ 'f', 'e', 'r', 'i', 'e', 'n', '-', 'n', 'e', 't', 'z', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
@@ -4840,17 +4845,16 @@ static const char kSTSHostTable[] = {
   /* "fidel.uk", true */ 'f', 'i', 'd', 'e', 'l', '.', 'u', 'k', '\0',
   /* "fidelapp.com", true */ 'f', 'i', 'd', 'e', 'l', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "fieldclockapp.com", true */ 'f', 'i', 'e', 'l', 'd', 'c', 'l', 'o', 'c', 'k', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "fiendishmasterplan.com", true */ 'f', 'i', 'e', 'n', 'd', 'i', 's', 'h', 'm', 'a', 's', 't', 'e', 'r', 'p', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "fierlafijn.net", true */ 'f', 'i', 'e', 'r', 'l', 'a', 'f', 'i', 'j', 'n', '.', 'n', 'e', 't', '\0',
   /* "fierman.eu", false */ 'f', 'i', 'e', 'r', 'm', 'a', 'n', '.', 'e', 'u', '\0',
   /* "fierman.net", false */ 'f', 'i', 'e', 'r', 'm', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "fierman.us", false */ 'f', 'i', 'e', 'r', 'm', 'a', 'n', '.', 'u', 's', '\0',
-  /* "fifieldtech.com", true */ 'f', 'i', 'f', 'i', 'e', 'l', 'd', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "figurasdelinguagem.com.br", true */ 'f', 'i', 'g', 'u', 'r', 'a', 's', 'd', 'e', 'l', 'i', 'n', 'g', 'u', 'a', 'g', 'e', 'm', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "figuurzagers.nl", false */ 'f', 'i', 'g', 'u', 'u', 'r', 'z', 'a', 'g', 'e', 'r', 's', '.', 'n', 'l', '\0',
   /* "fiilr.com", true */ 'f', 'i', 'i', 'l', 'r', '.', 'c', 'o', 'm', '\0',
   /* "fiix.io", true */ 'f', 'i', 'i', 'x', '.', 'i', 'o', '\0',
   /* "fiken.no", true */ 'f', 'i', 'k', 'e', 'n', '.', 'n', 'o', '\0',
   /* "fiksel.info", true */ 'f', 'i', 'k', 's', 'e', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "file-pdf.it", true */ 'f', 'i', 'l', 'e', '-', 'p', 'd', 'f', '.', 'i', 't', '\0',
   /* "filedir.com", false */ 'f', 'i', 'l', 'e', 'd', 'i', 'r', '.', 'c', 'o', 'm', '\0',
@@ -4938,17 +4942,16 @@ static const char kSTSHostTable[] = {
   /* "flat.io", true */ 'f', 'l', 'a', 't', '.', 'i', 'o', '\0',
   /* "flauschig.net", true */ 'f', 'l', 'a', 'u', 's', 'c', 'h', 'i', 'g', '.', 'n', 'e', 't', '\0',
   /* "flawlesscowboy.xyz", true */ 'f', 'l', 'a', 'w', 'l', 'e', 's', 's', 'c', 'o', 'w', 'b', 'o', 'y', '.', 'x', 'y', 'z', '\0',
   /* "flazznetworks.com", false */ 'f', 'l', 'a', 'z', 'z', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "fleep.io", true */ 'f', 'l', 'e', 'e', 'p', '.', 'i', 'o', '\0',
   /* "fleisch.club", true */ 'f', 'l', 'e', 'i', 's', 'c', 'h', '.', 'c', 'l', 'u', 'b', '\0',
   /* "fletchto99.com", true */ 'f', 'l', 'e', 't', 'c', 'h', 't', 'o', '9', '9', '.', 'c', 'o', 'm', '\0',
   /* "flexapplications.se", true */ 'f', 'l', 'e', 'x', 'a', 'p', 'p', 'l', 'i', 'c', 'a', 't', 'i', 'o', 'n', 's', '.', 's', 'e', '\0',
-  /* "fleximus.org", false */ 'f', 'l', 'e', 'x', 'i', 'm', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "flexinvesting.fi", true */ 'f', 'l', 'e', 'x', 'i', 'n', 'v', 'e', 's', 't', 'i', 'n', 'g', '.', 'f', 'i', '\0',
   /* "flexport.com", true */ 'f', 'l', 'e', 'x', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "flexstart.me", true */ 'f', 'l', 'e', 'x', 's', 't', 'a', 'r', 't', '.', 'm', 'e', '\0',
   /* "flightschoolbooking.com", true */ 'f', 'l', 'i', 'g', 'h', 't', 's', 'c', 'h', 'o', 'o', 'l', 'b', 'o', 'o', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "flightschoolcandidates.gov", true */ 'f', 'l', 'i', 'g', 'h', 't', 's', 'c', 'h', 'o', 'o', 'l', 'c', 'a', 'n', 'd', 'i', 'd', 'a', 't', 'e', 's', '.', 'g', 'o', 'v', '\0',
   /* "fling.dating", true */ 'f', 'l', 'i', 'n', 'g', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "flipagram.com", false */ 'f', 'l', 'i', 'p', 'a', 'g', 'r', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "flipkey.com", true */ 'f', 'l', 'i', 'p', 'k', 'e', 'y', '.', 'c', 'o', 'm', '\0',
@@ -5255,25 +5258,27 @@ static const char kSTSHostTable[] = {
   /* "g-marketing.ro", true */ 'g', '-', 'm', 'a', 'r', 'k', 'e', 't', 'i', 'n', 'g', '.', 'r', 'o', '\0',
   /* "g-o.pl", true */ 'g', '-', 'o', '.', 'p', 'l', '\0',
   /* "g-rickroll-o.pw", true */ 'g', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'o', '.', 'p', 'w', '\0',
   /* "g2links.com", true */ 'g', '2', 'l', 'i', 'n', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "g2pla.net", true */ 'g', '2', 'p', 'l', 'a', '.', 'n', 'e', 't', '\0',
   /* "g2soft.net", true */ 'g', '2', 's', 'o', 'f', 't', '.', 'n', 'e', 't', '\0',
   /* "g3rv4.com", true */ 'g', '3', 'r', 'v', '4', '.', 'c', 'o', 'm', '\0',
   /* "g4w.co", true */ 'g', '4', 'w', '.', 'c', 'o', '\0',
+  /* "gabi.com.es", true */ 'g', 'a', 'b', 'i', '.', 'c', 'o', 'm', '.', 'e', 's', '\0',
+  /* "gabi.soy", true */ 'g', 'a', 'b', 'i', '.', 's', 'o', 'y', '\0',
+  /* "gabi.uno", true */ 'g', 'a', 'b', 'i', '.', 'u', 'n', 'o', '\0',
   /* "gablaxian.com", true */ 'g', 'a', 'b', 'l', 'a', 'x', 'i', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "gabriele-kluge.de", true */ 'g', 'a', 'b', 'r', 'i', 'e', 'l', 'e', '-', 'k', 'l', 'u', 'g', 'e', '.', 'd', 'e', '\0',
   /* "gaestehaus-monika.com", true */ 'g', 'a', 'e', 's', 't', 'e', 'h', 'a', 'u', 's', '-', 'm', 'o', 'n', 'i', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "gagniard.org", true */ 'g', 'a', 'g', 'n', 'i', 'a', 'r', 'd', '.', 'o', 'r', 'g', '\0',
   /* "gagor.pl", true */ 'g', 'a', 'g', 'o', 'r', '.', 'p', 'l', '\0',
   /* "gagstempel.de", true */ 'g', 'a', 'g', 's', 't', 'e', 'm', 'p', 'e', 'l', '.', 'd', 'e', '\0',
   /* "gaichon.com", true */ 'g', 'a', 'i', 'c', 'h', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "gaireg.de", true */ 'g', 'a', 'i', 'r', 'e', 'g', '.', 'd', 'e', '\0',
-  /* "gaiserik.com", false */ 'g', 'a', 'i', 's', 'e', 'r', 'i', 'k', '.', 'c', 'o', 'm', '\0',
   /* "gakkainavi-epsilon.jp", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '-', 'e', 'p', 's', 'i', 'l', 'o', 'n', '.', 'j', 'p', '\0',
   /* "gakkainavi-epsilon.net", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '-', 'e', 'p', 's', 'i', 'l', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "gakkainavi.net", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '.', 'n', 'e', 't', '\0',
   /* "gakkainavi4.jp", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '4', '.', 'j', 'p', '\0',
   /* "galactic-crew.org", true */ 'g', 'a', 'l', 'a', 'c', 't', 'i', 'c', '-', 'c', 'r', 'e', 'w', '.', 'o', 'r', 'g', '\0',
   /* "galena.io", true */ 'g', 'a', 'l', 'e', 'n', 'a', '.', 'i', 'o', '\0',
   /* "galgoafegao.com.br", true */ 'g', 'a', 'l', 'g', 'o', 'a', 'f', 'e', 'g', 'a', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "galgoingles.com.br", true */ 'g', 'a', 'l', 'g', 'o', 'i', 'n', 'g', 'l', 'e', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
@@ -5294,17 +5299,16 @@ static const char kSTSHostTable[] = {
   /* "gameclue.jp", true */ 'g', 'a', 'm', 'e', 'c', 'l', 'u', 'e', '.', 'j', 'p', '\0',
   /* "gamecollector.be", true */ 'g', 'a', 'm', 'e', 'c', 'o', 'l', 'l', 'e', 'c', 't', 'o', 'r', '.', 'b', 'e', '\0',
   /* "gamedevelopers.pl", true */ 'g', 'a', 'm', 'e', 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', '.', 'p', 'l', '\0',
   /* "gamegix.com", true */ 'g', 'a', 'm', 'e', 'g', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "gameguardian.net", true */ 'g', 'a', 'm', 'e', 'g', 'u', 'a', 'r', 'd', 'i', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "gameisbest.jp", true */ 'g', 'a', 'm', 'e', 'i', 's', 'b', 'e', 's', 't', '.', 'j', 'p', '\0',
   /* "gamek.es", true */ 'g', 'a', 'm', 'e', 'k', '.', 'e', 's', '\0',
   /* "gameofbay.org", true */ 'g', 'a', 'm', 'e', 'o', 'f', 'b', 'a', 'y', '.', 'o', 'r', 'g', '\0',
-  /* "gameofpwnz.com", true */ 'g', 'a', 'm', 'e', 'o', 'f', 'p', 'w', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "gamepad.com.br", true */ 'g', 'a', 'm', 'e', 'p', 'a', 'd', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "gamepad.vg", true */ 'g', 'a', 'm', 'e', 'p', 'a', 'd', '.', 'v', 'g', '\0',
   /* "gamercredo.com", true */ 'g', 'a', 'm', 'e', 'r', 'c', 'r', 'e', 'd', 'o', '.', 'c', 'o', 'm', '\0',
   /* "gamercredo.net", true */ 'g', 'a', 'm', 'e', 'r', 'c', 'r', 'e', 'd', 'o', '.', 'n', 'e', 't', '\0',
   /* "gamers-life.fr", true */ 'g', 'a', 'm', 'e', 'r', 's', '-', 'l', 'i', 'f', 'e', '.', 'f', 'r', '\0',
   /* "gamesurferapp.com", true */ 'g', 'a', 'm', 'e', 's', 'u', 'r', 'f', 'e', 'r', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "gametium.com", true */ 'g', 'a', 'm', 'e', 't', 'i', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "gametium.es", true */ 'g', 'a', 'm', 'e', 't', 'i', 'u', 'm', '.', 'e', 's', '\0',
@@ -5589,16 +5593,17 @@ static const char kSTSHostTable[] = {
   /* "goldpreisfinder.at", true */ 'g', 'o', 'l', 'd', 'p', 'r', 'e', 'i', 's', 'f', 'i', 'n', 'd', 'e', 'r', '.', 'a', 't', '\0',
   /* "goldpros.com", true */ 'g', 'o', 'l', 'd', 'p', 'r', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "goldsecurity.com", true */ 'g', 'o', 'l', 'd', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "golf18network.com", true */ 'g', 'o', 'l', 'f', '1', '8', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "golfburn.com", false */ 'g', 'o', 'l', 'f', 'b', 'u', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "golfhausmallorca.com", true */ 'g', 'o', 'l', 'f', 'h', 'a', 'u', 's', 'm', 'a', 'l', 'l', 'o', 'r', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "golfscape.com", true */ 'g', 'o', 'l', 'f', 's', 'c', 'a', 'p', 'e', '.', 'c', 'o', 'm', '\0',
   /* "gong8.win", true */ 'g', 'o', 'n', 'g', '8', '.', 'w', 'i', 'n', '\0',
+  /* "gonkar.com", true */ 'g', 'o', 'n', 'k', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "goo.gl", true */ 'g', 'o', 'o', '.', 'g', 'l', '\0',
   /* "gooby.co", false */ 'g', 'o', 'o', 'b', 'y', '.', 'c', 'o', '\0',
   /* "goodmengroup.de", true */ 'g', 'o', 'o', 'd', 'm', 'e', 'n', 'g', 'r', 'o', 'u', 'p', '.', 'd', 'e', '\0',
   /* "goodtech.com.br", true */ 'g', 'o', 'o', 'd', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "google", true */ 'g', 'o', 'o', 'g', 'l', 'e', '\0',
   /* "google-analytics.com", true */ 'g', 'o', 'o', 'g', 'l', 'e', '-', 'a', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "google.ax", true */ 'g', 'o', 'o', 'g', 'l', 'e', '.', 'a', 'x', '\0',
   /* "googlemail.com", false */ 'g', 'o', 'o', 'g', 'l', 'e', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
@@ -5634,17 +5639,16 @@ static const char kSTSHostTable[] = {
   /* "gotomi.info", true */ 'g', 'o', 't', 'o', 'm', 'i', '.', 'i', 'n', 'f', 'o', '\0',
   /* "goudenharynck.be", true */ 'g', 'o', 'u', 'd', 'e', 'n', 'h', 'a', 'r', 'y', 'n', 'c', 'k', '.', 'b', 'e', '\0',
   /* "goverage.org", true */ 'g', 'o', 'v', 'e', 'r', 'a', 'g', 'e', '.', 'o', 'r', 'g', '\0',
   /* "governmentjobs.gov", true */ 'g', 'o', 'v', 'e', 'r', 'n', 'm', 'e', 'n', 't', 'j', 'o', 'b', 's', '.', 'g', 'o', 'v', '\0',
   /* "governorhub.com", true */ 'g', 'o', 'v', 'e', 'r', 'n', 'o', 'r', 'h', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "govtrack.us", true */ 'g', 'o', 'v', 't', 'r', 'a', 'c', 'k', '.', 'u', 's', '\0',
   /* "gowe.wang", false */ 'g', 'o', 'w', 'e', '.', 'w', 'a', 'n', 'g', '\0',
   /* "gpcsolutions.fr", true */ 'g', 'p', 'c', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'f', 'r', '\0',
-  /* "gpfclan.de", true */ 'g', 'p', 'f', 'c', 'l', 'a', 'n', '.', 'd', 'e', '\0',
   /* "gplintegratedit.com", true */ 'g', 'p', 'l', 'i', 'n', 't', 'e', 'g', 'r', 'a', 't', 'e', 'd', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "gpo.gov", false */ 'g', 'p', 'o', '.', 'g', 'o', 'v', '\0',
   /* "gprs.uk.com", true */ 'g', 'p', 'r', 's', '.', 'u', 'k', '.', 'c', 'o', 'm', '\0',
   /* "gps.com.br", true */ 'g', 'p', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "gpsvideocanada.com", true */ 'g', 'p', 's', 'v', 'i', 'd', 'e', 'o', 'c', 'a', 'n', 'a', 'd', 'a', '.', 'c', 'o', 'm', '\0',
   /* "gr.search.yahoo.com", false */ 'g', 'r', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "gra2.com", true */ 'g', 'r', 'a', '2', '.', 'c', 'o', 'm', '\0',
   /* "graasp.net", true */ 'g', 'r', 'a', 'a', 's', 'p', '.', 'n', 'e', 't', '\0',
@@ -5835,17 +5839,16 @@ static const char kSTSHostTable[] = {
   /* "gyas.nl", true */ 'g', 'y', 'a', 's', '.', 'n', 'l', '\0',
   /* "gymnasium-farmsen.de", true */ 'g', 'y', 'm', 'n', 'a', 's', 'i', 'u', 'm', '-', 'f', 'a', 'r', 'm', 's', 'e', 'n', '.', 'd', 'e', '\0',
   /* "gypsycatdreams.com", true */ 'g', 'y', 'p', 's', 'y', 'c', 'a', 't', 'd', 'r', 'e', 'a', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "gyu-raku.jp", true */ 'g', 'y', 'u', '-', 'r', 'a', 'k', 'u', '.', 'j', 'p', '\0',
   /* "gz-architekten.de", true */ 'g', 'z', '-', 'a', 'r', 'c', 'h', 'i', 't', 'e', 'k', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "gz-benz.com", true */ 'g', 'z', '-', 'b', 'e', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "gz-bmw.com", true */ 'g', 'z', '-', 'b', 'm', 'w', '.', 'c', 'o', 'm', '\0',
   /* "gza.jp", true */ 'g', 'z', 'a', '.', 'j', 'p', '\0',
-  /* "gzitech.com", true */ 'g', 'z', 'i', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "h-jo.net", true */ 'h', '-', 'j', 'o', '.', 'n', 'e', 't', '\0',
   /* "h-og.com", true */ 'h', '-', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "h-rickroll-n.pw", true */ 'h', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'n', '.', 'p', 'w', '\0',
   /* "h11.io", true */ 'h', '1', '1', '.', 'i', 'o', '\0',
   /* "h11.moe", true */ 'h', '1', '1', '.', 'm', 'o', 'e', '\0',
   /* "h3artbl33d.nl", true */ 'h', '3', 'a', 'r', 't', 'b', 'l', '3', '3', 'd', '.', 'n', 'l', '\0',
   /* "h404bi.com", false */ 'h', '4', '0', '4', 'b', 'i', '.', 'c', 'o', 'm', '\0',
   /* "haavard.me", true */ 'h', 'a', 'a', 'v', 'a', 'r', 'd', '.', 'm', 'e', '\0',
@@ -5883,17 +5886,16 @@ static const char kSTSHostTable[] = {
   /* "hailer.com", true */ 'h', 'a', 'i', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "haircrazy.com", true */ 'h', 'a', 'i', 'r', 'c', 'r', 'a', 'z', 'y', '.', 'c', 'o', 'm', '\0',
   /* "hajnzic.at", true */ 'h', 'a', 'j', 'n', 'z', 'i', 'c', '.', 'a', 't', '\0',
   /* "hakase.kr", true */ 'h', 'a', 'k', 'a', 's', 'e', '.', 'k', 'r', '\0',
   /* "hakatabijin-mind.com", true */ 'h', 'a', 'k', 'a', 't', 'a', 'b', 'i', 'j', 'i', 'n', '-', 'm', 'i', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "hake.me", true */ 'h', 'a', 'k', 'e', '.', 'm', 'e', '\0',
   /* "haktec.de", true */ 'h', 'a', 'k', 't', 'e', 'c', '.', 'd', 'e', '\0',
   /* "hakugin.me", true */ 'h', 'a', 'k', 'u', 'g', 'i', 'n', '.', 'm', 'e', '\0',
-  /* "halcyonsbastion.com", true */ 'h', 'a', 'l', 'c', 'y', 'o', 'n', 's', 'b', 'a', 's', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "halkyon.net", true */ 'h', 'a', 'l', 'k', 'y', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "hallelujahsoftware.com", true */ 'h', 'a', 'l', 'l', 'e', 'l', 'u', 'j', 'a', 'h', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hallhuber.com", true */ 'h', 'a', 'l', 'l', 'h', 'u', 'b', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "hallmarkestates.ca", true */ 'h', 'a', 'l', 'l', 'm', 'a', 'r', 'k', 'e', 's', 't', 'a', 't', 'e', 's', '.', 'c', 'a', '\0',
   /* "hallucinogen.com", true */ 'h', 'a', 'l', 'l', 'u', 'c', 'i', 'n', 'o', 'g', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "halo.fr", true */ 'h', 'a', 'l', 'o', '.', 'f', 'r', '\0',
   /* "halongbaybackpackertour.com", true */ 'h', 'a', 'l', 'o', 'n', 'g', 'b', 'a', 'y', 'b', 'a', 'c', 'k', 'p', 'a', 'c', 'k', 'e', 'r', 't', 'o', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "hamacho-kyudo.com", true */ 'h', 'a', 'm', 'a', 'c', 'h', 'o', '-', 'k', 'y', 'u', 'd', 'o', '.', 'c', 'o', 'm', '\0',
@@ -5931,29 +5933,27 @@ static const char kSTSHostTable[] = {
   /* "happytiger.eu", true */ 'h', 'a', 'p', 'p', 'y', 't', 'i', 'g', 'e', 'r', '.', 'e', 'u', '\0',
   /* "happyukgo.com", true */ 'h', 'a', 'p', 'p', 'y', 'u', 'k', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "hapvm.com", true */ 'h', 'a', 'p', 'v', 'm', '.', 'c', 'o', 'm', '\0',
   /* "haraj.com.sa", true */ 'h', 'a', 'r', 'a', 'j', '.', 'c', 'o', 'm', '.', 's', 'a', '\0',
   /* "harambe.site", true */ 'h', 'a', 'r', 'a', 'm', 'b', 'e', '.', 's', 'i', 't', 'e', '\0',
   /* "hardeman.nu", true */ 'h', 'a', 'r', 'd', 'e', 'm', 'a', 'n', '.', 'n', 'u', '\0',
   /* "hardenize.com", true */ 'h', 'a', 'r', 'd', 'e', 'n', 'i', 'z', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hardertimes.com", true */ 'h', 'a', 'r', 'd', 'e', 'r', 't', 'i', 'm', 'e', 's', '.', 'c', 'o', 'm', '\0',
-  /* "hardfalcon.net", true */ 'h', 'a', 'r', 'd', 'f', 'a', 'l', 'c', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "hardh.at", true */ 'h', 'a', 'r', 'd', 'h', '.', 'a', 't', '\0',
   /* "hardtfrieden.de", true */ 'h', 'a', 'r', 'd', 't', 'f', 'r', 'i', 'e', 'd', 'e', 'n', '.', 'd', 'e', '\0',
   /* "harlentimberproducts.co.uk", true */ 'h', 'a', 'r', 'l', 'e', 'n', 't', 'i', 'm', 'b', 'e', 'r', 'p', 'r', 'o', 'd', 'u', 'c', 't', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "harmoney.co.nz", true */ 'h', 'a', 'r', 'm', 'o', 'n', 'e', 'y', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "harmoney.com", true */ 'h', 'a', 'r', 'm', 'o', 'n', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "harmoney.com.au", true */ 'h', 'a', 'r', 'm', 'o', 'n', 'e', 'y', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "harringtonca.com", true */ 'h', 'a', 'r', 'r', 'i', 'n', 'g', 't', 'o', 'n', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "harrisonsand.com", false */ 'h', 'a', 'r', 'r', 'i', 's', 'o', 'n', 's', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "harrisonsdirect.co.uk", true */ 'h', 'a', 'r', 'r', 'i', 's', 'o', 'n', 's', 'd', 'i', 'r', 'e', 'c', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "harrisonswebsites.com", true */ 'h', 'a', 'r', 'r', 'i', 's', 'o', 'n', 's', 'w', 'e', 'b', 's', 'i', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "harrysmallbones.co.uk", true */ 'h', 'a', 'r', 'r', 'y', 's', 'm', 'a', 'l', 'l', 'b', 'o', 'n', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
-  /* "hartie95.de", true */ 'h', 'a', 'r', 't', 'i', 'e', '9', '5', '.', 'd', 'e', '\0',
   /* "hartlep.email", true */ 'h', 'a', 'r', 't', 'l', 'e', 'p', '.', 'e', 'm', 'a', 'i', 'l', '\0',
   /* "harvestapp.com", true */ 'h', 'a', 'r', 'v', 'e', 's', 't', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "harvester.fr", true */ 'h', 'a', 'r', 'v', 'e', 's', 't', 'e', 'r', '.', 'f', 'r', '\0',
   /* "hasdf.de", true */ 'h', 'a', 's', 'd', 'f', '.', 'd', 'e', '\0',
   /* "haselsteiner.me", true */ 'h', 'a', 's', 'e', 'l', 's', 't', 'e', 'i', 'n', 'e', 'r', '.', 'm', 'e', '\0',
   /* "hash-archive.org", true */ 'h', 'a', 's', 'h', '-', 'a', 'r', 'c', 'h', 'i', 'v', 'e', '.', 'o', 'r', 'g', '\0',
   /* "hashiconf.com", true */ 'h', 'a', 's', 'h', 'i', 'c', 'o', 'n', 'f', '.', 'c', 'o', 'm', '\0',
   /* "hashiconf.eu", true */ 'h', 'a', 's', 'h', 'i', 'c', 'o', 'n', 'f', '.', 'e', 'u', '\0',
@@ -6094,16 +6094,17 @@ static const char kSTSHostTable[] = {
   /* "herbweb.net", true */ 'h', 'e', 'r', 'b', 'w', 'e', 'b', '.', 'n', 'e', 't', '\0',
   /* "herbweb.org", true */ 'h', 'e', 'r', 'b', 'w', 'e', 'b', '.', 'o', 'r', 'g', '\0',
   /* "herculex.fi", true */ 'h', 'e', 'r', 'c', 'u', 'l', 'e', 'x', '.', 'f', 'i', '\0',
   /* "herds.eu", true */ 'h', 'e', 'r', 'd', 's', '.', 'e', 'u', '\0',
   /* "herebedragons.io", true */ 'h', 'e', 'r', 'e', 'b', 'e', 'd', 'r', 'a', 'g', 'o', 'n', 's', '.', 'i', 'o', '\0',
   /* "herecsrymy.cz", true */ 'h', 'e', 'r', 'e', 'c', 's', 'r', 'y', 'm', 'y', '.', 'c', 'z', '\0',
   /* "heritagedentistry.ca", true */ 'h', 'e', 'r', 'i', 't', 'a', 'g', 'e', 'd', 'e', 'n', 't', 'i', 's', 't', 'r', 'y', '.', 'c', 'a', '\0',
   /* "herocentral.de", true */ 'h', 'e', 'r', 'o', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'd', 'e', '\0',
+  /* "herpaderp.net", true */ 'h', 'e', 'r', 'p', 'a', 'd', 'e', 'r', 'p', '.', 'n', 'e', 't', '\0',
   /* "herr-webdesign.de", true */ 'h', 'e', 'r', 'r', '-', 'w', 'e', 'b', 'd', 'e', 's', 'i', 'g', 'n', '.', 'd', 'e', '\0',
   /* "herringsresidence.be", true */ 'h', 'e', 'r', 'r', 'i', 'n', 'g', 's', 'r', 'e', 's', 'i', 'd', 'e', 'n', 'c', 'e', '.', 'b', 'e', '\0',
   /* "herrsmith.com", true */ 'h', 'e', 'r', 'r', 's', 'm', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "hesaplama.net", true */ 'h', 'e', 's', 'a', 'p', 'l', 'a', 'm', 'a', '.', 'n', 'e', 't', '\0',
   /* "hethely.ch", true */ 'h', 'e', 't', 'h', 'e', 'l', 'y', '.', 'c', 'h', '\0',
   /* "hetmer.com", true */ 'h', 'e', 't', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "heute-kaufen.de", true */ 'h', 'e', 'u', 't', 'e', '-', 'k', 'a', 'u', 'f', 'e', 'n', '.', 'd', 'e', '\0',
   /* "hex2013.com", true */ 'h', 'e', 'x', '2', '0', '1', '3', '.', 'c', 'o', 'm', '\0',
@@ -6113,17 +6114,16 @@ static const char kSTSHostTable[] = {
   /* "hexed.it", true */ 'h', 'e', 'x', 'e', 'd', '.', 'i', 't', '\0',
   /* "hexicurity.com", true */ 'h', 'e', 'x', 'i', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "hexid.me", true */ 'h', 'e', 'x', 'i', 'd', '.', 'm', 'e', '\0',
   /* "hexo.io", true */ 'h', 'e', 'x', 'o', '.', 'i', 'o', '\0',
   /* "hexony.com", true */ 'h', 'e', 'x', 'o', 'n', 'y', '.', 'c', 'o', 'm', '\0',
   /* "heycms.com", true */ 'h', 'e', 'y', 'c', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "heyfringe.com", true */ 'h', 'e', 'y', 'f', 'r', 'i', 'n', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "heyguevara.com", true */ 'h', 'e', 'y', 'g', 'u', 'e', 'v', 'a', 'r', 'a', '.', 'c', 'o', 'm', '\0',
-  /* "heywoodtown.co.uk", true */ 'h', 'e', 'y', 'w', 'o', 'o', 'd', 't', 'o', 'w', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "hg.python.org", true */ 'h', 'g', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "hhhdb.com", true */ 'h', 'h', 'h', 'd', 'b', '.', 'c', 'o', 'm', '\0',
   /* "hhmmmm.de", true */ 'h', 'h', 'm', 'm', 'm', 'm', '.', 'd', 'e', '\0',
   /* "hhs.gov", true */ 'h', 'h', 's', '.', 'g', 'o', 'v', '\0',
   /* "hicl.org", true */ 'h', 'i', 'c', 'l', '.', 'o', 'r', 'g', '\0',
   /* "hicoria.com", true */ 'h', 'i', 'c', 'o', 'r', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "hidbo.de", true */ 'h', 'i', 'd', 'b', 'o', '.', 'd', 'e', '\0',
   /* "hideftv.deals", true */ 'h', 'i', 'd', 'e', 'f', 't', 'v', '.', 'd', 'e', 'a', 'l', 's', '\0',
@@ -6340,16 +6340,17 @@ static const char kSTSHostTable[] = {
   /* "hudingyuan.cn", true */ 'h', 'u', 'd', 'i', 'n', 'g', 'y', 'u', 'a', 'n', '.', 'c', 'n', '\0',
   /* "huendeleskopfhuette.de", true */ 'h', 'u', 'e', 'n', 'd', 'e', 'l', 'e', 's', 'k', 'o', 'p', 'f', 'h', 'u', 'e', 't', 't', 'e', '.', 'd', 'e', '\0',
   /* "huersch.com", true */ 'h', 'u', 'e', 'r', 's', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "huffduffer.com", true */ 'h', 'u', 'f', 'f', 'd', 'u', 'f', 'f', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "hugofs.com", true */ 'h', 'u', 'g', 'o', 'f', 's', '.', 'c', 'o', 'm', '\0',
   /* "huguesblanchard.paris", true */ 'h', 'u', 'g', 'u', 'e', 's', 'b', 'l', 'a', 'n', 'c', 'h', 'a', 'r', 'd', '.', 'p', 'a', 'r', 'i', 's', '\0',
   /* "huihui.moe", true */ 'h', 'u', 'i', 'h', 'u', 'i', '.', 'm', 'o', 'e', '\0',
   /* "huiser.nl", true */ 'h', 'u', 'i', 's', 'e', 'r', '.', 'n', 'l', '\0',
+  /* "humankode.com", true */ 'h', 'u', 'm', 'a', 'n', 'k', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hump.dk", true */ 'h', 'u', 'm', 'p', '.', 'd', 'k', '\0',
   /* "humpi.at", true */ 'h', 'u', 'm', 'p', 'i', '.', 'a', 't', '\0',
   /* "hund.io", true */ 'h', 'u', 'n', 'd', '.', 'i', 'o', '\0',
   /* "hundeformel.de", true */ 'h', 'u', 'n', 'd', 'e', 'f', 'o', 'r', 'm', 'e', 'l', '.', 'd', 'e', '\0',
   /* "hunger.im", true */ 'h', 'u', 'n', 'g', 'e', 'r', '.', 'i', 'm', '\0',
   /* "hunter.io", true */ 'h', 'u', 'n', 't', 'e', 'r', '.', 'i', 'o', '\0',
   /* "huodongweb.com", true */ 'h', 'u', 'o', 'd', 'o', 'n', 'g', 'w', 'e', 'b', '.', 'c', 'o', 'm', '\0',
   /* "hup.blue", true */ 'h', 'u', 'p', '.', 'b', 'l', 'u', 'e', '\0',
@@ -6401,16 +6402,17 @@ static const char kSTSHostTable[] = {
   /* "i28s.com", true */ 'i', '2', '8', 's', '.', 'c', 'o', 'm', '\0',
   /* "i5y.co.uk", true */ 'i', '5', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "i95.me", false */ 'i', '9', '5', '.', 'm', 'e', '\0',
   /* "iactu.info", true */ 'i', 'a', 'c', 't', 'u', '.', 'i', 'n', 'f', 'o', '\0',
   /* "iainsimms.me", true */ 'i', 'a', 'i', 'n', 's', 'i', 'm', 'm', 's', '.', 'm', 'e', '\0',
   /* "iamcarrico.com", true */ 'i', 'a', 'm', 'c', 'a', 'r', 'r', 'i', 'c', 'o', '.', 'c', 'o', 'm', '\0',
   /* "iamjoshellis.com", true */ 'i', 'a', 'm', 'j', 'o', 's', 'h', 'e', 'l', 'l', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "iamreubin.co.uk", true */ 'i', 'a', 'm', 'r', 'e', 'u', 'b', 'i', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "iamusingtheinter.net", true */ 'i', 'a', 'm', 'u', 's', 'i', 'n', 'g', 't', 'h', 'e', 'i', 'n', 't', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "ian.sh", true */ 'i', 'a', 'n', '.', 's', 'h', '\0',
   /* "iandouglasscott.com", true */ 'i', 'a', 'n', 'd', 'o', 'u', 'g', 'l', 'a', 's', 's', 'c', 'o', 't', 't', '.', 'c', 'o', 'm', '\0',
   /* "ianix.com", true */ 'i', 'a', 'n', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "iavian.com", true */ 'i', 'a', 'v', 'i', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "ib-wedler.de", false */ 'i', 'b', '-', 'w', 'e', 'd', 'l', 'e', 'r', '.', 'd', 'e', '\0',
   /* "iba.community", true */ 'i', 'b', 'a', '.', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '\0',
   /* "ibase.com", true */ 'i', 'b', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "ibenchu.com", true */ 'i', 'b', 'e', 'n', 'c', 'h', 'u', '.', 'c', 'o', 'm', '\0',
@@ -6672,16 +6674,17 @@ static const char kSTSHostTable[] = {
   /* "instant-hack.com", true */ 'i', 'n', 's', 't', 'a', 'n', 't', '-', 'h', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "instant.io", true */ 'i', 'n', 's', 't', 'a', 'n', 't', '.', 'i', 'o', '\0',
   /* "instantkhabar.com", false */ 'i', 'n', 's', 't', 'a', 'n', 't', 'k', 'h', 'a', 'b', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "instantsubs.de", true */ 'i', 'n', 's', 't', 'a', 'n', 't', 's', 'u', 'b', 's', '.', 'd', 'e', '\0',
   /* "instasex.ch", true */ 'i', 'n', 's', 't', 'a', 's', 'e', 'x', '.', 'c', 'h', '\0',
   /* "instics.com", true */ 'i', 'n', 's', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "instinctiveads.com", true */ 'i', 'n', 's', 't', 'i', 'n', 'c', 't', 'i', 'v', 'e', 'a', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "institut-confucius-montpellier.org", true */ 'i', 'n', 's', 't', 'i', 't', 'u', 't', '-', 'c', 'o', 'n', 'f', 'u', 'c', 'i', 'u', 's', '-', 'm', 'o', 'n', 't', 'p', 'e', 'l', 'l', 'i', 'e', 'r', '.', 'o', 'r', 'g', '\0',
+  /* "institutolancaster.com", true */ 'i', 'n', 's', 't', 'i', 't', 'u', 't', 'o', 'l', 'a', 'n', 'c', 'a', 's', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "institutulcultural.ro", true */ 'i', 'n', 's', 't', 'i', 't', 'u', 't', 'u', 'l', 'c', 'u', 'l', 't', 'u', 'r', 'a', 'l', '.', 'r', 'o', '\0',
   /* "instruktor.io", true */ 'i', 'n', 's', 't', 'r', 'u', 'k', 't', 'o', 'r', '.', 'i', 'o', '\0',
   /* "insurance321.com", true */ 'i', 'n', 's', 'u', 'r', 'a', 'n', 'c', 'e', '3', '2', '1', '.', 'c', 'o', 'm', '\0',
   /* "intafe.co.jp", true */ 'i', 'n', 't', 'a', 'f', 'e', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "intarweb.ca", true */ 'i', 'n', 't', 'a', 'r', 'w', 'e', 'b', '.', 'c', 'a', '\0',
   /* "integraelchen.de", true */ 'i', 'n', 't', 'e', 'g', 'r', 'a', 'e', 'l', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "integralblue.com", true */ 'i', 'n', 't', 'e', 'g', 'r', 'a', 'l', 'b', 'l', 'u', 'e', '.', 'c', 'o', 'm', '\0',
   /* "integrationinc.com", false */ 'i', 'n', 't', 'e', 'g', 'r', 'a', 't', 'i', 'o', 'n', 'i', 'n', 'c', '.', 'c', 'o', 'm', '\0',
@@ -6907,16 +6910,17 @@ static const char kSTSHostTable[] = {
   /* "itpol.dk", true */ 'i', 't', 'p', 'o', 'l', '.', 'd', 'k', '\0',
   /* "itpro.ua", true */ 'i', 't', 'p', 'r', 'o', '.', 'u', 'a', '\0',
   /* "itpros.ru", true */ 'i', 't', 'p', 'r', 'o', 's', '.', 'r', 'u', '\0',
   /* "its-gutachten.de", true */ 'i', 't', 's', '-', 'g', 'u', 't', 'a', 'c', 'h', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "its-schindler.de", true */ 'i', 't', 's', '-', 's', 'c', 'h', 'i', 'n', 'd', 'l', 'e', 'r', '.', 'd', 'e', '\0',
   /* "its-v.de", true */ 'i', 't', 's', '-', 'v', '.', 'd', 'e', '\0',
   /* "its4living.com", true */ 'i', 't', 's', '4', 'l', 'i', 'v', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "itsanicedoor.co.uk", true */ 'i', 't', 's', 'a', 'n', 'i', 'c', 'e', 'd', 'o', 'o', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "itsatrap.nl", false */ 'i', 't', 's', 'a', 't', 'r', 'a', 'p', '.', 'n', 'l', '\0',
   /* "itsecguy.com", true */ 'i', 't', 's', 'e', 'c', 'g', 'u', 'y', '.', 'c', 'o', 'm', '\0',
   /* "itsgoingdown.org", true */ 'i', 't', 's', 'g', 'o', 'i', 'n', 'g', 'd', 'o', 'w', 'n', '.', 'o', 'r', 'g', '\0',
   /* "itskayla.com", false */ 'i', 't', 's', 'k', 'a', 'y', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "itsok.de", true */ 'i', 't', 's', 'o', 'k', '.', 'd', 'e', '\0',
   /* "itspawned.com", true */ 'i', 't', 's', 'p', 'a', 'w', 'n', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "itspersonaltraining.nl", true */ 'i', 't', 's', 'p', 'e', 'r', 's', 'o', 'n', 'a', 'l', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "itsryan.com", false */ 'i', 't', 's', 'r', 'y', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "itu2015.de", true */ 'i', 't', 'u', '2', '0', '1', '5', '.', 'd', 'e', '\0',
@@ -6971,16 +6975,17 @@ static const char kSTSHostTable[] = {
   /* "jabber.at", true */ 'j', 'a', 'b', 'b', 'e', 'r', '.', 'a', 't', '\0',
   /* "jabberfr.org", true */ 'j', 'a', 'b', 'b', 'e', 'r', 'f', 'r', '.', 'o', 'r', 'g', '\0',
   /* "jabberzac.org", true */ 'j', 'a', 'b', 'b', 'e', 'r', 'z', 'a', 'c', '.', 'o', 'r', 'g', '\0',
   /* "jacekowski.org", true */ 'j', 'a', 'c', 'e', 'k', 'o', 'w', 's', 'k', 'i', '.', 'o', 'r', 'g', '\0',
   /* "jackdelik.de", true */ 'j', 'a', 'c', 'k', 'd', 'e', 'l', 'i', 'k', '.', 'd', 'e', '\0',
   /* "jackf.me", true */ 'j', 'a', 'c', 'k', 'f', '.', 'm', 'e', '\0',
   /* "jackfahnestock.com", true */ 'j', 'a', 'c', 'k', 'f', 'a', 'h', 'n', 'e', 's', 't', 'o', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "jackrusselterrier.com.br", true */ 'j', 'a', 'c', 'k', 'r', 'u', 's', 's', 'e', 'l', 't', 'e', 'r', 'r', 'i', 'e', 'r', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
+  /* "jackyyf.com", false */ 'j', 'a', 'c', 'k', 'y', 'y', 'f', '.', 'c', 'o', 'm', '\0',
   /* "jaco.by", true */ 'j', 'a', 'c', 'o', '.', 'b', 'y', '\0',
   /* "jacobhaug.com", true */ 'j', 'a', 'c', 'o', 'b', 'h', 'a', 'u', 'g', '.', 'c', 'o', 'm', '\0',
   /* "jacobian.org", true */ 'j', 'a', 'c', 'o', 'b', 'i', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "jacobphono.com", true */ 'j', 'a', 'c', 'o', 'b', 'p', 'h', 'o', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "jacuzziprozone.com", true */ 'j', 'a', 'c', 'u', 'z', 'z', 'i', 'p', 'r', 'o', 'z', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "jadopado.com", true */ 'j', 'a', 'd', 'o', 'p', 'a', 'd', 'o', '.', 'c', 'o', 'm', '\0',
   /* "jaegerlacke.de", true */ 'j', 'a', 'e', 'g', 'e', 'r', 'l', 'a', 'c', 'k', 'e', '.', 'd', 'e', '\0',
   /* "jagerman.com", true */ 'j', 'a', 'g', 'e', 'r', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
@@ -7311,16 +7316,17 @@ static const char kSTSHostTable[] = {
   /* "jutella.de", true */ 'j', 'u', 't', 'e', 'l', 'l', 'a', '.', 'd', 'e', '\0',
   /* "juxstempel.de", true */ 'j', 'u', 'x', 's', 't', 'e', 'm', 'p', 'e', 'l', '.', 'd', 'e', '\0',
   /* "juzgalo.com", true */ 'j', 'u', 'z', 'g', 'a', 'l', 'o', '.', 'c', 'o', 'm', '\0',
   /* "jva-wuerzburg.de", true */ 'j', 'v', 'a', '-', 'w', 'u', 'e', 'r', 'z', 'b', 'u', 'r', 'g', '.', 'd', 'e', '\0',
   /* "jvwdev.nl", true */ 'j', 'v', 'w', 'd', 'e', 'v', '.', 'n', 'l', '\0',
   /* "jwilsson.com", true */ 'j', 'w', 'i', 'l', 's', 's', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "jwnotifier.org", true */ 'j', 'w', 'n', 'o', 't', 'i', 'f', 'i', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "jym.fit", true */ 'j', 'y', 'm', '.', 'f', 'i', 't', '\0',
+  /* "jyoti-fairworks.org", true */ 'j', 'y', 'o', 't', 'i', '-', 'f', 'a', 'i', 'r', 'w', 'o', 'r', 'k', 's', '.', 'o', 'r', 'g', '\0',
   /* "jysperm.me", true */ 'j', 'y', 's', 'p', 'e', 'r', 'm', '.', 'm', 'e', '\0',
   /* "k-netz.de", true */ 'k', '-', 'n', 'e', 't', 'z', '.', 'd', 'e', '\0',
   /* "k-rickroll-g.pw", true */ 'k', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'g', '.', 'p', 'w', '\0',
   /* "k-scr.me", true */ 'k', '-', 's', 'c', 'r', '.', 'm', 'e', '\0',
   /* "k-tube.com", true */ 'k', '-', 't', 'u', 'b', 'e', '.', 'c', 'o', 'm', '\0',
   /* "k-wallet.com", true */ 'k', '-', 'w', 'a', 'l', 'l', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "k2mts.org", true */ 'k', '2', 'm', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "kaangenc.me", true */ 'k', 'a', 'a', 'n', 'g', 'e', 'n', 'c', '.', 'm', 'e', '\0',
@@ -7467,16 +7473,17 @@ static const char kSTSHostTable[] = {
   /* "kendra.io", true */ 'k', 'e', 'n', 'd', 'r', 'a', '.', 'i', 'o', '\0',
   /* "kendu.si", true */ 'k', 'e', 'n', 'd', 'u', '.', 's', 'i', '\0',
   /* "kengilmour.com", true */ 'k', 'e', 'n', 'g', 'i', 'l', 'm', 'o', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "kenguntokku.jp", true */ 'k', 'e', 'n', 'g', 'u', 'n', 't', 'o', 'k', 'k', 'u', '.', 'j', 'p', '\0',
   /* "kenkoelectric.com", false */ 'k', 'e', 'n', 'k', 'o', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "kennedy.ie", true */ 'k', 'e', 'n', 'n', 'e', 'd', 'y', '.', 'i', 'e', '\0',
   /* "kenners.org", true */ 'k', 'e', 'n', 'n', 'e', 'r', 's', '.', 'o', 'r', 'g', '\0',
   /* "kennethaasan.no", true */ 'k', 'e', 'n', 'n', 'e', 't', 'h', 'a', 'a', 's', 'a', 'n', '.', 'n', 'o', '\0',
+  /* "kennethlim.me", true */ 'k', 'e', 'n', 'n', 'e', 't', 'h', 'l', 'i', 'm', '.', 'm', 'e', '\0',
   /* "kenny-peck.com", true */ 'k', 'e', 'n', 'n', 'y', '-', 'p', 'e', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "kenoschwalb.com", true */ 'k', 'e', 'n', 'o', 's', 'c', 'h', 'w', 'a', 'l', 'b', '.', 'c', 'o', 'm', '\0',
   /* "kentacademiestrust.org.uk", true */ 'k', 'e', 'n', 't', 'a', 'c', 'a', 'd', 'e', 'm', 'i', 'e', 's', 't', 'r', 'u', 's', 't', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "kentec.net", true */ 'k', 'e', 'n', 't', 'e', 'c', '.', 'n', 'e', 't', '\0',
   /* "keops-spine.fr", true */ 'k', 'e', 'o', 'p', 's', '-', 's', 'p', 'i', 'n', 'e', '.', 'f', 'r', '\0',
   /* "keops-spine.us", true */ 'k', 'e', 'o', 'p', 's', '-', 's', 'p', 'i', 'n', 'e', '.', 'u', 's', '\0',
   /* "kepkonyvtar.hu", true */ 'k', 'e', 'p', 'k', 'o', 'n', 'y', 'v', 't', 'a', 'r', '.', 'h', 'u', '\0',
   /* "kepler-seminar.de", true */ 'k', 'e', 'p', 'l', 'e', 'r', '-', 's', 'e', 'm', 'i', 'n', 'a', 'r', '.', 'd', 'e', '\0',
@@ -7501,17 +7508,16 @@ static const char kSTSHostTable[] = {
   /* "keybored.me", true */ 'k', 'e', 'y', 'b', 'o', 'r', 'e', 'd', '.', 'm', 'e', '\0',
   /* "keycdn.com", true */ 'k', 'e', 'y', 'c', 'd', 'n', '.', 'c', 'o', 'm', '\0',
   /* "keyerror.com", true */ 'k', 'e', 'y', 'e', 'r', 'r', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "keys.fedoraproject.org", true */ 'k', 'e', 'y', 's', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "keyserver.sexy", true */ 'k', 'e', 'y', 's', 'e', 'r', 'v', 'e', 'r', '.', 's', 'e', 'x', 'y', '\0',
   /* "keysupport.org", true */ 'k', 'e', 'y', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'o', 'r', 'g', '\0',
   /* "kfbrussels.be", true */ 'k', 'f', 'b', 'r', 'u', 's', 's', 'e', 'l', 's', '.', 'b', 'e', '\0',
   /* "kfz-hantschel.de", true */ 'k', 'f', 'z', '-', 'h', 'a', 'n', 't', 's', 'c', 'h', 'e', 'l', '.', 'd', 'e', '\0',
-  /* "kg-rating.com", false */ 'k', 'g', '-', 'r', 'a', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "kgm-irm.be", true */ 'k', 'g', 'm', '-', 'i', 'r', 'm', '.', 'b', 'e', '\0',
   /* "kgnk.ru", true */ 'k', 'g', 'n', 'k', '.', 'r', 'u', '\0',
   /* "khanovaskola.cz", true */ 'k', 'h', 'a', 'n', 'o', 'v', 'a', 's', 'k', 'o', 'l', 'a', '.', 'c', 'z', '\0',
   /* "khetzal.info", true */ 'k', 'h', 'e', 't', 'z', 'a', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "khipu.com", true */ 'k', 'h', 'i', 'p', 'u', '.', 'c', 'o', 'm', '\0',
   /* "khmath.com", true */ 'k', 'h', 'm', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "khmb.ru", true */ 'k', 'h', 'm', 'b', '.', 'r', 'u', '\0',
   /* "kiadoapartman.hu", true */ 'k', 'i', 'a', 'd', 'o', 'a', 'p', 'a', 'r', 't', 'm', 'a', 'n', '.', 'h', 'u', '\0',
@@ -7756,16 +7762,17 @@ static const char kSTSHostTable[] = {
   /* "kredite24.de", true */ 'k', 'r', 'e', 'd', 'i', 't', 'e', '2', '4', '.', 'd', 'e', '\0',
   /* "kreditkacs.cz", true */ 'k', 'r', 'e', 'd', 'i', 't', 'k', 'a', 'c', 's', '.', 'c', 'z', '\0',
   /* "kreen.org", true */ 'k', 'r', 'e', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "kriechel.de", true */ 'k', 'r', 'i', 'e', 'c', 'h', 'e', 'l', '.', 'd', 'e', '\0',
   /* "kriegskindernothilfe.de", true */ 'k', 'r', 'i', 'e', 'g', 's', 'k', 'i', 'n', 'd', 'e', 'r', 'n', 'o', 't', 'h', 'i', 'l', 'f', 'e', '.', 'd', 'e', '\0',
   /* "kriptosec.com", true */ 'k', 'r', 'i', 'p', 't', 'o', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "krislamoureux.com", true */ 'k', 'r', 'i', 's', 'l', 'a', 'm', 'o', 'u', 'r', 'e', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "krisstarkey.co.uk", true */ 'k', 'r', 'i', 's', 's', 't', 'a', 'r', 'k', 'e', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "kristikala.nl", true */ 'k', 'r', 'i', 's', 't', 'i', 'k', 'a', 'l', 'a', '.', 'n', 'l', '\0',
   /* "kristinbailey.com", true */ 'k', 'r', 'i', 's', 't', 'i', 'n', 'b', 'a', 'i', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "kristjanrang.eu", true */ 'k', 'r', 'i', 's', 't', 'j', 'a', 'n', 'r', 'a', 'n', 'g', '.', 'e', 'u', '\0',
   /* "krizek.cc", true */ 'k', 'r', 'i', 'z', 'e', 'k', '.', 'c', 'c', '\0',
   /* "krizevackapajdasija.hr", true */ 'k', 'r', 'i', 'z', 'e', 'v', 'a', 'c', 'k', 'a', 'p', 'a', 'j', 'd', 'a', 's', 'i', 'j', 'a', '.', 'h', 'r', '\0',
   /* "krizevci.info", true */ 'k', 'r', 'i', 'z', 'e', 'v', 'c', 'i', '.', 'i', 'n', 'f', 'o', '\0',
   /* "krk-media.pl", false */ 'k', 'r', 'k', '-', 'm', 'e', 'd', 'i', 'a', '.', 'p', 'l', '\0',
   /* "krmeni.cz", true */ 'k', 'r', 'm', 'e', 'n', 'i', '.', 'c', 'z', '\0',
   /* "kromonos.net", true */ 'k', 'r', 'o', 'm', 'o', 'n', 'o', 's', '.', 'n', 'e', 't', '\0',
@@ -7806,17 +7813,16 @@ static const char kSTSHostTable[] = {
   /* "kumalog.com", true */ 'k', 'u', 'm', 'a', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "kumasanda.jp", true */ 'k', 'u', 'm', 'a', 's', 'a', 'n', 'd', 'a', '.', 'j', 'p', '\0',
   /* "kundenerreichen.com", true */ 'k', 'u', 'n', 'd', 'e', 'n', 'e', 'r', 'r', 'e', 'i', 'c', 'h', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "kundenerreichen.de", true */ 'k', 'u', 'n', 'd', 'e', 'n', 'e', 'r', 'r', 'e', 'i', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "kunstundunrat.de", true */ 'k', 'u', 'n', 's', 't', 'u', 'n', 'd', 'u', 'n', 'r', 'a', 't', '.', 'd', 'e', '\0',
   /* "kuoruan.com", true */ 'k', 'u', 'o', 'r', 'u', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "kuponrazzi.com", true */ 'k', 'u', 'p', 'o', 'n', 'r', 'a', 'z', 'z', 'i', '.', 'c', 'o', 'm', '\0',
   /* "kupschke.net", true */ 'k', 'u', 'p', 's', 'c', 'h', 'k', 'e', '.', 'n', 'e', 't', '\0',
-  /* "kurofuku.me", true */ 'k', 'u', 'r', 'o', 'f', 'u', 'k', 'u', '.', 'm', 'e', '\0',
   /* "kurswahl-online.de", true */ 'k', 'u', 'r', 's', 'w', 'a', 'h', 'l', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "kurz.pw", true */ 'k', 'u', 'r', 'z', '.', 'p', 'w', '\0',
   /* "kuschelmikroben.de", true */ 'k', 'u', 's', 'c', 'h', 'e', 'l', 'm', 'i', 'k', 'r', 'o', 'b', 'e', 'n', '.', 'd', 'e', '\0',
   /* "kuschelmonster.de", true */ 'k', 'u', 's', 'c', 'h', 'e', 'l', 'm', 'o', 'n', 's', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "kuschelmonstershop.de", true */ 'k', 'u', 's', 'c', 'h', 'e', 'l', 'm', 'o', 'n', 's', 't', 'e', 'r', 's', 'h', 'o', 'p', '.', 'd', 'e', '\0',
   /* "kuschelviren.de", true */ 'k', 'u', 's', 'c', 'h', 'e', 'l', 'v', 'i', 'r', 'e', 'n', '.', 'd', 'e', '\0',
   /* "kuschku.de", true */ 'k', 'u', 's', 'c', 'h', 'k', 'u', '.', 'd', 'e', '\0',
   /* "kutukupret.com", true */ 'k', 'u', 't', 'u', 'k', 'u', 'p', 'r', 'e', 't', '.', 'c', 'o', 'm', '\0',
@@ -7856,17 +7862,16 @@ static const char kSTSHostTable[] = {
   /* "labrat.mobi", true */ 'l', 'a', 'b', 'r', 'a', 't', '.', 'm', 'o', 'b', 'i', '\0',
   /* "labs.directory", true */ 'l', 'a', 'b', 's', '.', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\0',
   /* "lacasa.fr", true */ 'l', 'a', 'c', 'a', 's', 'a', '.', 'f', 'r', '\0',
   /* "lacasabelucci.com", true */ 'l', 'a', 'c', 'a', 's', 'a', 'b', 'e', 'l', 'u', 'c', 'c', 'i', '.', 'c', 'o', 'm', '\0',
   /* "lacasseroy.com", true */ 'l', 'a', 'c', 'a', 's', 's', 'e', 'r', 'o', 'y', '.', 'c', 'o', 'm', '\0',
   /* "lacaverne.nl", true */ 'l', 'a', 'c', 'a', 'v', 'e', 'r', 'n', 'e', '.', 'n', 'l', '\0',
   /* "lacentral.com", false */ 'l', 'a', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "lacicloud.net", true */ 'l', 'a', 'c', 'i', 'c', 'l', 'o', 'u', 'd', '.', 'n', 'e', 't', '\0',
-  /* "lacledeslan.com", false */ 'l', 'a', 'c', 'l', 'e', 'd', 'e', 's', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "lacliniquefinanciere.com", true */ 'l', 'a', 'c', 'l', 'i', 'n', 'i', 'q', 'u', 'e', 'f', 'i', 'n', 'a', 'n', 'c', 'i', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "lacyc3.eu", true */ 'l', 'a', 'c', 'y', 'c', '3', '.', 'e', 'u', '\0',
   /* "laextra.mx", true */ 'l', 'a', 'e', 'x', 't', 'r', 'a', '.', 'm', 'x', '\0',
   /* "lafeemam.fr", true */ 'l', 'a', 'f', 'e', 'e', 'm', 'a', 'm', '.', 'f', 'r', '\0',
   /* "lafillepolyvalente.ca", true */ 'l', 'a', 'f', 'i', 'l', 'l', 'e', 'p', 'o', 'l', 'y', 'v', 'a', 'l', 'e', 'n', 't', 'e', '.', 'c', 'a', '\0',
   /* "lafillepolyvalente.com", true */ 'l', 'a', 'f', 'i', 'l', 'l', 'e', 'p', 'o', 'l', 'y', 'v', 'a', 'l', 'e', 'n', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "lafka.org", true */ 'l', 'a', 'f', 'k', 'a', '.', 'o', 'r', 'g', '\0',
   /* "lafkor.de", true */ 'l', 'a', 'f', 'k', 'o', 'r', '.', 'd', 'e', '\0',
@@ -7973,17 +7978,16 @@ static const char kSTSHostTable[] = {
   /* "laventainnhotel-mailing.com", true */ 'l', 'a', 'v', 'e', 'n', 't', 'a', 'i', 'n', 'n', 'h', 'o', 't', 'e', 'l', '-', 'm', 'a', 'i', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "lavita.de", true */ 'l', 'a', 'v', 'i', 't', 'a', '.', 'd', 'e', '\0',
   /* "lavito.cz", true */ 'l', 'a', 'v', 'i', 't', 'o', '.', 'c', 'z', '\0',
   /* "lavoieducoeur.be", true */ 'l', 'a', 'v', 'o', 'i', 'e', 'd', 'u', 'c', 'o', 'e', 'u', 'r', '.', 'b', 'e', '\0',
   /* "lavoiepharmd.com", true */ 'l', 'a', 'v', 'o', 'i', 'e', 'p', 'h', 'a', 'r', 'm', 'd', '.', 'c', 'o', 'm', '\0',
   /* "lawly.org", true */ 'l', 'a', 'w', 'l', 'y', '.', 'o', 'r', 'g', '\0',
   /* "lawrencemurgatroyd.com", true */ 'l', 'a', 'w', 'r', 'e', 'n', 'c', 'e', 'm', 'u', 'r', 'g', 'a', 't', 'r', 'o', 'y', 'd', '.', 'c', 'o', 'm', '\0',
   /* "layer8.tk", true */ 'l', 'a', 'y', 'e', 'r', '8', '.', 't', 'k', '\0',
-  /* "laylo.nl", true */ 'l', 'a', 'y', 'l', 'o', '.', 'n', 'l', '\0',
   /* "layoutsatzunddruck.de", true */ 'l', 'a', 'y', 'o', 'u', 't', 's', 'a', 't', 'z', 'u', 'n', 'd', 'd', 'r', 'u', 'c', 'k', '.', 'd', 'e', '\0',
   /* "lazerus.net", true */ 'l', 'a', 'z', 'e', 'r', 'u', 's', '.', 'n', 'e', 't', '\0',
   /* "lazowik.pl", true */ 'l', 'a', 'z', 'o', 'w', 'i', 'k', '.', 'p', 'l', '\0',
   /* "lazurit.com", true */ 'l', 'a', 'z', 'u', 'r', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "lb-toner.de", true */ 'l', 'b', '-', 't', 'o', 'n', 'e', 'r', '.', 'd', 'e', '\0',
   /* "lbayer.com", true */ 'l', 'b', 'a', 'y', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "lbihrhelpdesk.com", true */ 'l', 'b', 'i', 'h', 'r', 'h', 'e', 'l', 'p', 'd', 'e', 's', 'k', '.', 'c', 'o', 'm', '\0',
   /* "lbs-logics.com", true */ 'l', 'b', 's', '-', 'l', 'o', 'g', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
@@ -8082,16 +8086,17 @@ static const char kSTSHostTable[] = {
   /* "lesliekearney.com", true */ 'l', 'e', 's', 'l', 'i', 'e', 'k', 'e', 'a', 'r', 'n', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "lesnet.co.uk", true */ 'l', 'e', 's', 'n', 'e', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "lesquerda.cat", true */ 'l', 'e', 's', 'q', 'u', 'e', 'r', 'd', 'a', '.', 'c', 'a', 't', '\0',
   /* "lesscloud.com", true */ 'l', 'e', 's', 's', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '\0',
   /* "lessing.consulting", true */ 'l', 'e', 's', 's', 'i', 'n', 'g', '.', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '\0',
   /* "let-go.cc", true */ 'l', 'e', 't', '-', 'g', 'o', '.', 'c', 'c', '\0',
   /* "leticiagomeztagle.com", true */ 'l', 'e', 't', 'i', 'c', 'i', 'a', 'g', 'o', 'm', 'e', 'z', 't', 'a', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "letitfly.me", true */ 'l', 'e', 't', 'i', 't', 'f', 'l', 'y', '.', 'm', 'e', '\0',
+  /* "lets.ninja", true */ 'l', 'e', 't', 's', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "letsencrypt-for-cpanel.com", true */ 'l', 'e', 't', 's', 'e', 'n', 'c', 'r', 'y', 'p', 't', '-', 'f', 'o', 'r', '-', 'c', 'p', 'a', 'n', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "letsgame.nl", true */ 'l', 'e', 't', 's', 'g', 'a', 'm', 'e', '.', 'n', 'l', '\0',
   /* "letstox.com", true */ 'l', 'e', 't', 's', 't', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "lettersblogatory.com", true */ 'l', 'e', 't', 't', 'e', 'r', 's', 'b', 'l', 'o', 'g', 'a', 't', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "lettori.club", true */ 'l', 'e', 't', 't', 'o', 'r', 'i', '.', 'c', 'l', 'u', 'b', '\0',
   /* "leu.to", true */ 'l', 'e', 'u', '.', 't', 'o', '\0',
   /* "leuthardtfamily.com", true */ 'l', 'e', 'u', 't', 'h', 'a', 'r', 'd', 't', 'f', 'a', 'm', 'i', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "levans.fr", true */ 'l', 'e', 'v', 'a', 'n', 's', '.', 'f', 'r', '\0',
@@ -8265,17 +8270,16 @@ static const char kSTSHostTable[] = {
   /* "lm-pumpen.de", true */ 'l', 'm', '-', 'p', 'u', 'm', 'p', 'e', 'n', '.', 'd', 'e', '\0',
   /* "lmddgtfy.net", true */ 'l', 'm', 'd', 'd', 'g', 't', 'f', 'y', '.', 'n', 'e', 't', '\0',
   /* "lmerza.com", true */ 'l', 'm', 'e', 'r', 'z', 'a', '.', 'c', 'o', 'm', '\0',
   /* "lmintlcx.com", true */ 'l', 'm', 'i', 'n', 't', 'l', 'c', 'x', '.', 'c', 'o', 'm', '\0',
   /* "lmkts.com", true */ 'l', 'm', 'k', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "lmmtfy.io", true */ 'l', 'm', 'm', 't', 'f', 'y', '.', 'i', 'o', '\0',
   /* "lmsptfy.com", true */ 'l', 'm', 's', 'p', 't', 'f', 'y', '.', 'c', 'o', 'm', '\0',
   /* "lmtm.eu", true */ 'l', 'm', 't', 'm', '.', 'e', 'u', '\0',
-  /* "lnoldan.com", true */ 'l', 'n', 'o', 'l', 'd', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "lntu.org", true */ 'l', 'n', 't', 'u', '.', 'o', 'r', 'g', '\0',
   /* "lnx.li", true */ 'l', 'n', 'x', '.', 'l', 'i', '\0',
   /* "loacg.com", true */ 'l', 'o', 'a', 'c', 'g', '.', 'c', 'o', 'm', '\0',
   /* "loadlow.me", true */ 'l', 'o', 'a', 'd', 'l', 'o', 'w', '.', 'm', 'e', '\0',
   /* "loancompare.co.za", true */ 'l', 'o', 'a', 'n', 'c', 'o', 'm', 'p', 'a', 'r', 'e', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "loansonline.today", true */ 'l', 'o', 'a', 'n', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 't', 'o', 'd', 'a', 'y', '\0',
   /* "loanstreet.be", true */ 'l', 'o', 'a', 'n', 's', 't', 'r', 'e', 'e', 't', '.', 'b', 'e', '\0',
   /* "loanstreet.nl", true */ 'l', 'o', 'a', 'n', 's', 't', 'r', 'e', 'e', 't', '.', 'n', 'l', '\0',
@@ -8561,16 +8565,17 @@ static const char kSTSHostTable[] = {
   /* "mainlywrenches.co", true */ 'm', 'a', 'i', 'n', 'l', 'y', 'w', 'r', 'e', 'n', 'c', 'h', 'e', 's', '.', 'c', 'o', '\0',
   /* "mainzelmaennchen.net", true */ 'm', 'a', 'i', 'n', 'z', 'e', 'l', 'm', 'a', 'e', 'n', 'n', 'c', 'h', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "maisgasolina.com", true */ 'm', 'a', 'i', 's', 'g', 'a', 's', 'o', 'l', 'i', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "majaweb.cz", true */ 'm', 'a', 'j', 'a', 'w', 'e', 'b', '.', 'c', 'z', '\0',
   /* "majemedia.com", true */ 'm', 'a', 'j', 'e', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "majesnix.org", true */ 'm', 'a', 'j', 'e', 's', 'n', 'i', 'x', '.', 'o', 'r', 'g', '\0',
   /* "make-pizza.info", true */ 'm', 'a', 'k', 'e', '-', 'p', 'i', 'z', 'z', 'a', '.', 'i', 'n', 'f', 'o', '\0',
   /* "makedin.net", true */ 'm', 'a', 'k', 'e', 'd', 'i', 'n', '.', 'n', 'e', 't', '\0',
+  /* "makeuplove.nl", true */ 'm', 'a', 'k', 'e', 'u', 'p', 'l', 'o', 'v', 'e', '.', 'n', 'l', '\0',
   /* "makeyourank.com", true */ 'm', 'a', 'k', 'e', 'y', 'o', 'u', 'r', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "makeyourlaws.org", true */ 'm', 'a', 'k', 'e', 'y', 'o', 'u', 'r', 'l', 'a', 'w', 's', '.', 'o', 'r', 'g', '\0',
   /* "makkusu.photo", true */ 'm', 'a', 'k', 'k', 'u', 's', 'u', '.', 'p', 'h', 'o', 't', 'o', '\0',
   /* "makowitz.cz", true */ 'm', 'a', 'k', 'o', 'w', 'i', 't', 'z', '.', 'c', 'z', '\0',
   /* "maktoob.search.yahoo.com", false */ 'm', 'a', 'k', 't', 'o', 'o', 'b', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "malamutedoalasca.com.br", true */ 'm', 'a', 'l', 'a', 'm', 'u', 't', 'e', 'd', 'o', 'a', 'l', 'a', 's', 'c', 'a', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "malash.me", true */ 'm', 'a', 'l', 'a', 's', 'h', '.', 'm', 'e', '\0',
   /* "malaysia.search.yahoo.com", false */ 'm', 'a', 'l', 'a', 'y', 's', 'i', 'a', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
@@ -9483,17 +9488,16 @@ static const char kSTSHostTable[] = {
   /* "mydnaresults.com", true */ 'm', 'y', 'd', 'n', 'a', 'r', 'e', 's', 'u', 'l', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "mydnatest.com", true */ 'm', 'y', 'd', 'n', 'a', 't', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "mydocserve.com", true */ 'm', 'y', 'd', 'o', 'c', 's', 'e', 'r', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mydreamlifelab.com", true */ 'm', 'y', 'd', 'r', 'e', 'a', 'm', 'l', 'i', 'f', 'e', 'l', 'a', 'b', '.', 'c', 'o', 'm', '\0',
   /* "myeberspaecher.com", true */ 'm', 'y', 'e', 'b', 'e', 'r', 's', 'p', 'a', 'e', 'c', 'h', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "myepass.de", true */ 'm', 'y', 'e', 'p', 'a', 's', 's', '.', 'd', 'e', '\0',
   /* "myfedloan.org", true */ 'm', 'y', 'f', 'e', 'd', 'l', 'o', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "myfrenchtattoo.fr", true */ 'm', 'y', 'f', 'r', 'e', 'n', 'c', 'h', 't', 'a', 't', 't', 'o', 'o', '.', 'f', 'r', '\0',
-  /* "myg21.com", true */ 'm', 'y', 'g', '2', '1', '.', 'c', 'o', 'm', '\0',
   /* "mygadgetguardian.lookout.com", false */ 'm', 'y', 'g', 'a', 'd', 'g', 'e', 't', 'g', 'u', 'a', 'r', 'd', 'i', 'a', 'n', '.', 'l', 'o', 'o', 'k', 'o', 'u', 't', '.', 'c', 'o', 'm', '\0',
   /* "mygalgame.com", true */ 'm', 'y', 'g', 'a', 'l', 'g', 'a', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mygallery.homelinux.net", true */ 'm', 'y', 'g', 'a', 'l', 'l', 'e', 'r', 'y', '.', 'h', 'o', 'm', 'e', 'l', 'i', 'n', 'u', 'x', '.', 'n', 'e', 't', '\0',
   /* "mygivingcircle.org", true */ 'm', 'y', 'g', 'i', 'v', 'i', 'n', 'g', 'c', 'i', 'r', 'c', 'l', 'e', '.', 'o', 'r', 'g', '\0',
   /* "mygpsite.com", true */ 'm', 'y', 'g', 'p', 's', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mygreatjobs.de", true */ 'm', 'y', 'g', 'r', 'e', 'a', 't', 'j', 'o', 'b', 's', '.', 'd', 'e', '\0',
   /* "mygretchen.de", true */ 'm', 'y', 'g', 'r', 'e', 't', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "myhostname.net", true */ 'm', 'y', 'h', 'o', 's', 't', 'n', 'a', 'm', 'e', '.', 'n', 'e', 't', '\0',
@@ -9541,16 +9545,17 @@ static const char kSTSHostTable[] = {
   /* "mysqldump-secure.org", true */ 'm', 'y', 's', 'q', 'l', 'd', 'u', 'm', 'p', '-', 's', 'e', 'c', 'u', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "mysterysear.ch", true */ 'm', 'y', 's', 't', 'e', 'r', 'y', 's', 'e', 'a', 'r', '.', 'c', 'h', '\0',
   /* "mysticplumes.com", true */ 'm', 'y', 's', 't', 'i', 'c', 'p', 'l', 'u', 'm', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "mystown.org", true */ 'm', 'y', 's', 't', 'o', 'w', 'n', '.', 'o', 'r', 'g', '\0',
   /* "mystudy.me", true */ 'm', 'y', 's', 't', 'u', 'd', 'y', '.', 'm', 'e', '\0',
   /* "mytc.fr", true */ 'm', 'y', 't', 'c', '.', 'f', 'r', '\0',
   /* "mythengay.ch", true */ 'm', 'y', 't', 'h', 'e', 'n', 'g', 'a', 'y', '.', 'c', 'h', '\0',
   /* "mythlogic.com", true */ 'm', 'y', 't', 'h', 'l', 'o', 'g', 'i', 'c', '.', 'c', 'o', 'm', '\0',
+  /* "mythslegendscollection.com", true */ 'm', 'y', 't', 'h', 's', 'l', 'e', 'g', 'e', 'n', 'd', 's', 'c', 'o', 'l', 'l', 'e', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "mytraiteurs.com", true */ 'm', 'y', 't', 'r', 'a', 'i', 't', 'e', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "mytripcar.co.uk", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "mytripcar.de", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'd', 'e', '\0',
   /* "mytripcar.es", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'e', 's', '\0',
   /* "mytty.net", true */ 'm', 'y', 't', 't', 'y', '.', 'n', 'e', 't', '\0',
   /* "mytweeps.com", true */ 'm', 'y', 't', 'w', 'e', 'e', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "myvoipnews.com", true */ 'm', 'y', 'v', 'o', 'i', 'p', 'n', 'e', 'w', 's', '.', 'c', 'o', 'm', '\0',
   /* "myvpl.com", true */ 'm', 'y', 'v', 'p', 'l', '.', 'c', 'o', 'm', '\0',
@@ -9651,16 +9656,18 @@ static const char kSTSHostTable[] = {
   /* "ncpw.gov", true */ 'n', 'c', 'p', 'w', '.', 'g', 'o', 'v', '\0',
   /* "ncrmnt.org", true */ 'n', 'c', 'r', 'm', 'n', 't', '.', 'o', 'r', 'g', '\0',
   /* "ncstep.org", true */ 'n', 'c', 's', 't', 'e', 'p', '.', 'o', 'r', 'g', '\0',
   /* "ndarville.com", true */ 'n', 'd', 'a', 'r', 'v', 'i', 'l', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "ndbt.com", true */ 'n', 'd', 'b', 't', '.', 'c', 'o', 'm', '\0',
   /* "ndeoffshore.com", true */ 'n', 'd', 'e', 'o', 'f', 'f', 's', 'h', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "nder.be", true */ 'n', 'd', 'e', 'r', '.', 'b', 'e', '\0',
   /* "ndmath.club", true */ 'n', 'd', 'm', 'a', 't', 'h', '.', 'c', 'l', 'u', 'b', '\0',
+  /* "ndtblog.com", true */ 'n', 'd', 't', 'b', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
+  /* "ndtmarket.place", true */ 'n', 'd', 't', 'm', 'a', 'r', 'k', 'e', 't', '.', 'p', 'l', 'a', 'c', 'e', '\0',
   /* "ndy.sex", true */ 'n', 'd', 'y', '.', 's', 'e', 'x', '\0',
   /* "ne-on.org", true */ 'n', 'e', '-', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "ne1home.dyndns.org", true */ 'n', 'e', '1', 'h', 'o', 'm', 'e', '.', 'd', 'y', 'n', 'd', 'n', 's', '.', 'o', 'r', 'g', '\0',
   /* "neap.io", true */ 'n', 'e', 'a', 'p', '.', 'i', 'o', '\0',
   /* "nearby.in.th", true */ 'n', 'e', 'a', 'r', 'b', 'y', '.', 'i', 'n', '.', 't', 'h', '\0',
   /* "neartothesky.com", true */ 'n', 'e', 'a', 'r', 't', 'o', 't', 'h', 'e', 's', 'k', 'y', '.', 'c', 'o', 'm', '\0',
   /* "neatous.cz", true */ 'n', 'e', 'a', 't', 'o', 'u', 's', '.', 'c', 'z', '\0',
   /* "neatous.net", true */ 'n', 'e', 'a', 't', 'o', 'u', 's', '.', 'n', 'e', 't', '\0',
@@ -9912,16 +9919,17 @@ static const char kSTSHostTable[] = {
   /* "nkadvertising.online", true */ 'n', 'k', 'a', 'd', 'v', 'e', 'r', 't', 'i', 's', 'i', 'n', 'g', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
   /* "nkp-media.de", true */ 'n', 'k', 'p', '-', 'm', 'e', 'd', 'i', 'a', '.', 'd', 'e', '\0',
   /* "nl-ix.net", true */ 'n', 'l', '-', 'i', 'x', '.', 'n', 'e', 't', '\0',
   /* "nl.search.yahoo.com", false */ 'n', 'l', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "nll.fi", true */ 'n', 'l', 'l', '.', 'f', 'i', '\0',
   /* "nmd.so", true */ 'n', 'm', 'd', '.', 's', 'o', '\0',
   /* "nmsnj.com", true */ 'n', 'm', 's', 'n', 'j', '.', 'c', 'o', 'm', '\0',
   /* "nn.cz", true */ 'n', 'n', '.', 'c', 'z', '\0',
+  /* "nnote.net", true */ 'n', 'n', 'o', 't', 'e', '.', 'n', 'e', 't', '\0',
   /* "nnqc.nl", true */ 'n', 'n', 'q', 'c', '.', 'n', 'l', '\0',
   /* "no-ip.cz", true */ 'n', 'o', '-', 'i', 'p', '.', 'c', 'z', '\0',
   /* "no.search.yahoo.com", false */ 'n', 'o', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "nobly.de", true */ 'n', 'o', 'b', 'l', 'y', '.', 'd', 'e', '\0',
   /* "nocit.dk", true */ 'n', 'o', 'c', 'i', 't', '.', 'd', 'k', '\0',
   /* "noclegi-online.pl", true */ 'n', 'o', 'c', 'l', 'e', 'g', 'i', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'p', 'l', '\0',
   /* "nocs.cn", true */ 'n', 'o', 'c', 's', '.', 'c', 'n', '\0',
   /* "nodari.com.ar", true */ 'n', 'o', 'd', 'a', 'r', 'i', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
@@ -10003,17 +10011,19 @@ static const char kSTSHostTable[] = {
   /* "novavoidhowl.com", true */ 'n', 'o', 'v', 'a', 'v', 'o', 'i', 'd', 'h', 'o', 'w', 'l', '.', 'c', 'o', 'm', '\0',
   /* "novawave.ca", true */ 'n', 'o', 'v', 'a', 'w', 'a', 'v', 'e', '.', 'c', 'a', '\0',
   /* "novelfeed.com", true */ 'n', 'o', 'v', 'e', 'l', 'f', 'e', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "novelshouse.com", true */ 'n', 'o', 'v', 'e', 'l', 's', 'h', 'o', 'u', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "novoresume.com", false */ 'n', 'o', 'v', 'o', 'r', 'e', 's', 'u', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "novurania.com", true */ 'n', 'o', 'v', 'u', 'r', 'a', 'n', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "nowhere.dk", true */ 'n', 'o', 'w', 'h', 'e', 'r', 'e', '.', 'd', 'k', '\0',
   /* "nowlas.org", true */ 'n', 'o', 'w', 'l', 'a', 's', '.', 'o', 'r', 'g', '\0',
+  /* "noxlogic.nl", true */ 'n', 'o', 'x', 'l', 'o', 'g', 'i', 'c', '.', 'n', 'l', '\0',
   /* "npath.de", true */ 'n', 'p', 'a', 't', 'h', '.', 'd', 'e', '\0',
+  /* "npm.li", true */ 'n', 'p', 'm', '.', 'l', 'i', '\0',
   /* "npmcdn.com", true */ 'n', 'p', 'm', 'c', 'd', 'n', '.', 'c', 'o', 'm', '\0',
   /* "npw.net", true */ 'n', 'p', 'w', '.', 'n', 'e', 't', '\0',
   /* "nq7.pl", true */ 'n', 'q', '7', '.', 'p', 'l', '\0',
   /* "nrechn.de", true */ 'n', 'r', 'e', 'c', 'h', 'n', '.', 'd', 'e', '\0',
   /* "nrizzio.me", true */ 'n', 'r', 'i', 'z', 'z', 'i', 'o', '.', 'm', 'e', '\0',
   /* "nrkn.fr", true */ 'n', 'r', 'k', 'n', '.', 'f', 'r', '\0',
   /* "nsa.lol", true */ 'n', 's', 'a', '.', 'l', 'o', 'l', '\0',
   /* "nsa.wtf", true */ 'n', 's', 'a', '.', 'w', 't', 'f', '\0',
@@ -10464,17 +10474,16 @@ static const char kSTSHostTable[] = {
   /* "partiono.com", true */ 'p', 'a', 'r', 't', 'i', 'o', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "partirkyoto.jp", true */ 'p', 'a', 'r', 't', 'i', 'r', 'k', 'y', 'o', 't', 'o', '.', 'j', 'p', '\0',
   /* "partnerbeam.com", true */ 'p', 'a', 'r', 't', 'n', 'e', 'r', 'b', 'e', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "partnercardservices.com", true */ 'p', 'a', 'r', 't', 'n', 'e', 'r', 'c', 'a', 'r', 'd', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "partnersfcu.org", true */ 'p', 'a', 'r', 't', 'n', 'e', 'r', 's', 'f', 'c', 'u', '.', 'o', 'r', 'g', '\0',
   /* "partridge.tech", true */ 'p', 'a', 'r', 't', 'r', 'i', 'd', 'g', 'e', '.', 't', 'e', 'c', 'h', '\0',
   /* "partyhaus.ovh", true */ 'p', 'a', 'r', 't', 'y', 'h', 'a', 'u', 's', '.', 'o', 'v', 'h', '\0',
   /* "partyvan.eu", true */ 'p', 'a', 'r', 't', 'y', 'v', 'a', 'n', '.', 'e', 'u', '\0',
-  /* "partyvan.io", true */ 'p', 'a', 'r', 't', 'y', 'v', 'a', 'n', '.', 'i', 'o', '\0',
   /* "pasadenapooch.org", false */ 'p', 'a', 's', 'a', 'd', 'e', 'n', 'a', 'p', 'o', 'o', 'c', 'h', '.', 'o', 'r', 'g', '\0',
   /* "pasarella.eu", true */ 'p', 'a', 's', 'a', 'r', 'e', 'l', 'l', 'a', '.', 'e', 'u', '\0',
   /* "pascal-wittmann.de", true */ 'p', 'a', 's', 'c', 'a', 'l', '-', 'w', 'i', 't', 't', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "pascalleguern.com", true */ 'p', 'a', 's', 'c', 'a', 'l', 'l', 'e', 'g', 'u', 'e', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "passieposse.nl", true */ 'p', 'a', 's', 's', 'i', 'e', 'p', 'o', 's', 's', 'e', '.', 'n', 'l', '\0',
   /* "passionatefoodie.co.uk", true */ 'p', 'a', 's', 's', 'i', 'o', 'n', 'a', 't', 'e', 'f', 'o', 'o', 'd', 'i', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "passphrase.today", true */ 'p', 'a', 's', 's', 'p', 'h', 'r', 'a', 's', 'e', '.', 't', 'o', 'd', 'a', 'y', '\0',
   /* "passport.yandex.by", true */ 'p', 'a', 's', 's', 'p', 'o', 'r', 't', '.', 'y', 'a', 'n', 'd', 'e', 'x', '.', 'b', 'y', '\0',
@@ -10740,17 +10749,16 @@ static const char kSTSHostTable[] = {
   /* "phpprime.com", true */ 'p', 'h', 'p', 'p', 'r', 'i', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "phpsecure.info", true */ 'p', 'h', 'p', 's', 'e', 'c', 'u', 'r', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "phra.gs", true */ 'p', 'h', 'r', 'a', '.', 'g', 's', '\0',
   /* "phryanjr.com", false */ 'p', 'h', 'r', 'y', 'a', 'n', 'j', 'r', '.', 'c', 'o', 'm', '\0',
   /* "phryneas.de", true */ 'p', 'h', 'r', 'y', 'n', 'e', 'a', 's', '.', 'd', 'e', '\0',
   /* "phunehehe.net", true */ 'p', 'h', 'u', 'n', 'e', 'h', 'e', 'h', 'e', '.', 'n', 'e', 't', '\0',
   /* "phurl.io", true */ 'p', 'h', 'u', 'r', 'l', '.', 'i', 'o', '\0',
   /* "physicalism.com", true */ 'p', 'h', 'y', 's', 'i', 'c', 'a', 'l', 'i', 's', 'm', '.', 'c', 'o', 'm', '\0',
-  /* "physicalist.com", true */ 'p', 'h', 'y', 's', 'i', 'c', 'a', 'l', 'i', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "physicaltherapist.com", true */ 'p', 'h', 'y', 's', 'i', 'c', 'a', 'l', 't', 'h', 'e', 'r', 'a', 'p', 'i', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "pi-control.de", true */ 'p', 'i', '-', 'c', 'o', 'n', 't', 'r', 'o', 'l', '.', 'd', 'e', '\0',
   /* "pi-eng.fr", true */ 'p', 'i', '-', 'e', 'n', 'g', '.', 'f', 'r', '\0',
   /* "pi-supply.com", true */ 'p', 'i', '-', 's', 'u', 'p', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "pic.gov", true */ 'p', 'i', 'c', '.', 'g', 'o', 'v', '\0',
   /* "pic2map.com", true */ 'p', 'i', 'c', '2', 'm', 'a', 'p', '.', 'c', 'o', 'm', '\0',
   /* "picallo.es", true */ 'p', 'i', 'c', 'a', 'l', 'l', 'o', '.', 'e', 's', '\0',
   /* "picardiascr.com", true */ 'p', 'i', 'c', 'a', 'r', 'd', 'i', 'a', 's', 'c', 'r', '.', 'c', 'o', 'm', '\0',
@@ -10758,17 +10766,16 @@ static const char kSTSHostTable[] = {
   /* "picksin.club", true */ 'p', 'i', 'c', 'k', 's', 'i', 'n', '.', 'c', 'l', 'u', 'b', '\0',
   /* "picoauto.com", true */ 'p', 'i', 'c', 'o', 'a', 'u', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "picone.com.au", true */ 'p', 'i', 'c', 'o', 'n', 'e', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "piconepress.com", true */ 'p', 'i', 'c', 'o', 'n', 'e', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "picotech.com", true */ 'p', 'i', 'c', 'o', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "picotronic.de", true */ 'p', 'i', 'c', 'o', 't', 'r', 'o', 'n', 'i', 'c', '.', 'd', 'e', '\0',
   /* "picsandtours.com", true */ 'p', 'i', 'c', 's', 'a', 'n', 'd', 't', 'o', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "picster.at", true */ 'p', 'i', 'c', 's', 't', 'e', 'r', '.', 'a', 't', '\0',
-  /* "picsto.re", true */ 'p', 'i', 'c', 's', 't', 'o', '.', 'r', 'e', '\0',
   /* "picturingjordan.com", true */ 'p', 'i', 'c', 't', 'u', 'r', 'i', 'n', 'g', 'j', 'o', 'r', 'd', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "pidomex.com", true */ 'p', 'i', 'd', 'o', 'm', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "piekacz.co.uk", true */ 'p', 'i', 'e', 'k', 'a', 'c', 'z', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "piekacz.eu.org", true */ 'p', 'i', 'e', 'k', 'a', 'c', 'z', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "piekacz.net", true */ 'p', 'i', 'e', 'k', 'a', 'c', 'z', '.', 'n', 'e', 't', '\0',
   /* "piem.org", true */ 'p', 'i', 'e', 'm', '.', 'o', 'r', 'g', '\0',
   /* "pieq.eu", true */ 'p', 'i', 'e', 'q', '.', 'e', 'u', '\0',
   /* "pieq.eu.org", true */ 'p', 'i', 'e', 'q', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
@@ -10822,30 +10829,30 @@ static const char kSTSHostTable[] = {
   /* "pirman.es", true */ 'p', 'i', 'r', 'm', 'a', 'n', '.', 'e', 's', '\0',
   /* "pirxpilot.me", true */ 'p', 'i', 'r', 'x', 'p', 'i', 'l', 'o', 't', '.', 'm', 'e', '\0',
   /* "pissblau.com", true */ 'p', 'i', 's', 's', 'b', 'l', 'a', 'u', '.', 'c', 'o', 'm', '\0',
   /* "pisupp.ly", true */ 'p', 'i', 's', 'u', 'p', 'p', '.', 'l', 'y', '\0',
   /* "pitchpinecapital.com", true */ 'p', 'i', 't', 'c', 'h', 'p', 'i', 'n', 'e', 'c', 'a', 'p', 'i', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "pitchup.com", true */ 'p', 'i', 't', 'c', 'h', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "pitfire.io", false */ 'p', 'i', 't', 'f', 'i', 'r', 'e', '.', 'i', 'o', '\0',
   /* "pitonarms.com", true */ 'p', 'i', 't', 'o', 'n', 'a', 'r', 'm', 's', '.', 'c', 'o', 'm', '\0',
-  /* "pittaya.com", true */ 'p', 'i', 't', 't', 'a', 'y', 'a', '.', 'c', 'o', 'm', '\0',
   /* "piwko.co", true */ 'p', 'i', 'w', 'k', 'o', '.', 'c', 'o', '\0',
   /* "pixdigital.net", true */ 'p', 'i', 'x', 'd', 'i', 'g', 'i', 't', 'a', 'l', '.', 'n', 'e', 't', '\0',
   /* "pixel.facebook.com", false */ 'p', 'i', 'x', 'e', 'l', '.', 'f', 'a', 'c', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "pixel.google.com", true */ 'p', 'i', 'x', 'e', 'l', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pixelbash.de", true */ 'p', 'i', 'x', 'e', 'l', 'b', 'a', 's', 'h', '.', 'd', 'e', '\0',
   /* "pixelcubed.com", true */ 'p', 'i', 'x', 'e', 'l', 'c', 'u', 'b', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "pixelminers.net", true */ 'p', 'i', 'x', 'e', 'l', 'm', 'i', 'n', 'e', 'r', 's', '.', 'n', 'e', 't', '\0',
   /* "pixipics.com", false */ 'p', 'i', 'x', 'i', 'p', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "pixiv.moe", false */ 'p', 'i', 'x', 'i', 'v', '.', 'm', 'o', 'e', '\0',
   /* "piyabute.com", true */ 'p', 'i', 'y', 'a', 'b', 'u', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pizala.de", true */ 'p', 'i', 'z', 'a', 'l', 'a', '.', 'd', 'e', '\0',
   /* "pjili.com", true */ 'p', 'j', 'i', 'l', 'i', '.', 'c', 'o', 'm', '\0',
   /* "pjuu.com", false */ 'p', 'j', 'u', 'u', '.', 'c', 'o', 'm', '\0',
+  /* "pkgt.de", false */ 'p', 'k', 'g', 't', '.', 'd', 'e', '\0',
   /* "pl.search.yahoo.com", false */ 'p', 'l', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "placehold.co", true */ 'p', 'l', 'a', 'c', 'e', 'h', 'o', 'l', 'd', '.', 'c', 'o', '\0',
   /* "placker.com", true */ 'p', 'l', 'a', 'c', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "plainjs.com", false */ 'p', 'l', 'a', 'i', 'n', 'j', 's', '.', 'c', 'o', 'm', '\0',
   /* "plaintech.net.au", true */ 'p', 'l', 'a', 'i', 'n', 't', 'e', 'c', 'h', '.', 'n', 'e', 't', '.', 'a', 'u', '\0',
   /* "plaintray.com", true */ 'p', 'l', 'a', 'i', 'n', 't', 'r', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "planboardapp.com", true */ 'p', 'l', 'a', 'n', 'b', 'o', 'a', 'r', 'd', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "planet-work.com", true */ 'p', 'l', 'a', 'n', 'e', 't', '-', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
@@ -10940,39 +10947,36 @@ static const char kSTSHostTable[] = {
   /* "pontokay.com.br", false */ 'p', 'o', 'n', 't', 'o', 'k', 'a', 'y', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "ponythread.com", false */ 'p', 'o', 'n', 'y', 't', 'h', 'r', 'e', 'a', 'd', '.', 'c', 'o', 'm', '\0',
   /* "poollicht.be", true */ 'p', 'o', 'o', 'l', 'l', 'i', 'c', 'h', 't', '.', 'b', 'e', '\0',
   /* "poolvilla-margarita.net", false */ 'p', 'o', 'o', 'l', 'v', 'i', 'l', 'l', 'a', '-', 'm', 'a', 'r', 'g', 'a', 'r', 'i', 't', 'a', '.', 'n', 'e', 't', '\0',
   /* "poon.io", true */ 'p', 'o', 'o', 'n', '.', 'i', 'o', '\0',
   /* "poris.web.id", false */ 'p', 'o', 'r', 'i', 's', '.', 'w', 'e', 'b', '.', 'i', 'd', '\0',
   /* "pornbase.info", true */ 'p', 'o', 'r', 'n', 'b', 'a', 's', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "pornbay.org", true */ 'p', 'o', 'r', 'n', 'b', 'a', 'y', '.', 'o', 'r', 'g', '\0',
-  /* "porno-gif.ru", true */ 'p', 'o', 'r', 'n', 'o', '-', 'g', 'i', 'f', '.', 'r', 'u', '\0',
   /* "pornstars.me", true */ 'p', 'o', 'r', 'n', 's', 't', 'a', 'r', 's', '.', 'm', 'e', '\0',
   /* "porschen.fr", true */ 'p', 'o', 'r', 's', 'c', 'h', 'e', 'n', '.', 'f', 'r', '\0',
   /* "port443.hamburg", true */ 'p', 'o', 'r', 't', '4', '4', '3', '.', 'h', 'a', 'm', 'b', 'u', 'r', 'g', '\0',
   /* "port80.hamburg", true */ 'p', 'o', 'r', 't', '8', '0', '.', 'h', 'a', 'm', 'b', 'u', 'r', 'g', '\0',
   /* "portal.tirol.gv.at", true */ 'p', 'o', 'r', 't', 'a', 'l', '.', 't', 'i', 'r', 'o', 'l', '.', 'g', 'v', '.', 'a', 't', '\0',
-  /* "portalzine.de", true */ 'p', 'o', 'r', 't', 'a', 'l', 'z', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "portercup.com", true */ 'p', 'o', 'r', 't', 'e', 'r', 'c', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "portofrotterdam.com", true */ 'p', 'o', 'r', 't', 'o', 'f', 'r', 'o', 't', 't', 'e', 'r', 'd', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "portosonline.pl", true */ 'p', 'o', 'r', 't', 'o', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'p', 'l', '\0',
   /* "portraitsystem.biz", true */ 'p', 'o', 'r', 't', 'r', 'a', 'i', 't', 's', 'y', 's', 't', 'e', 'm', '.', 'b', 'i', 'z', '\0',
   /* "portvaletickets.com", true */ 'p', 'o', 'r', 't', 'v', 'a', 'l', 'e', 't', 'i', 'c', 'k', 'e', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "porybox.com", true */ 'p', 'o', 'r', 'y', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "posaunenchor-senden.de", true */ 'p', 'o', 's', 'a', 'u', 'n', 'e', 'n', 'c', 'h', 'o', 'r', '-', 's', 'e', 'n', 'd', 'e', 'n', '.', 'd', 'e', '\0',
   /* "positivesobrietyinstitute.com", true */ 'p', 'o', 's', 'i', 't', 'i', 'v', 'e', 's', 'o', 'b', 'r', 'i', 'e', 't', 'y', 'i', 'n', 's', 't', 'i', 't', 'u', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "posobota.cz", true */ 'p', 'o', 's', 'o', 'b', 'o', 't', 'a', '.', 'c', 'z', '\0',
   /* "post4me.at", true */ 'p', 'o', 's', 't', '4', 'm', 'e', '.', 'a', 't', '\0',
   /* "postal.dk", true */ 'p', 'o', 's', 't', 'a', 'l', '.', 'd', 'k', '\0',
   /* "postblue.info", true */ 'p', 'o', 's', 't', 'b', 'l', 'u', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "postbox.life", true */ 'p', 'o', 's', 't', 'b', 'o', 'x', '.', 'l', 'i', 'f', 'e', '\0',
   /* "postcodegarant.nl", true */ 'p', 'o', 's', 't', 'c', 'o', 'd', 'e', 'g', 'a', 'r', 'a', 'n', 't', '.', 'n', 'l', '\0',
   /* "posteo.de", false */ 'p', 'o', 's', 't', 'e', 'o', '.', 'd', 'e', '\0',
-  /* "posterspy.com", true */ 'p', 'o', 's', 't', 'e', 'r', 's', 'p', 'y', '.', 'c', 'o', 'm', '\0',
   /* "postfinance.ch", true */ 'p', 'o', 's', 't', 'f', 'i', 'n', 'a', 'n', 'c', 'e', '.', 'c', 'h', '\0',
   /* "postmatescode.com", true */ 'p', 'o', 's', 't', 'm', 'a', 't', 'e', 's', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "postn.eu", true */ 'p', 'o', 's', 't', 'n', '.', 'e', 'u', '\0',
   /* "posttigo.com", true */ 'p', 'o', 's', 't', 't', 'i', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "potatofrom.space", false */ 'p', 'o', 't', 'a', 't', 'o', 'f', 'r', 'o', 'm', '.', 's', 'p', 'a', 'c', 'e', '\0',
   /* "potatoheads.net", true */ 'p', 'o', 't', 'a', 't', 'o', 'h', 'e', 'a', 'd', 's', '.', 'n', 'e', 't', '\0',
   /* "potbar.com", true */ 'p', 'o', 't', 'b', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "potbox.com", true */ 'p', 'o', 't', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
@@ -11134,16 +11138,17 @@ static const char kSTSHostTable[] = {
   /* "proteus-tech.com", true */ 'p', 'r', 'o', 't', 'e', 'u', 's', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "protonmail.ch", true */ 'p', 'r', 'o', 't', 'o', 'n', 'm', 'a', 'i', 'l', '.', 'c', 'h', '\0',
   /* "protonmail.com", true */ 'p', 'r', 'o', 't', 'o', 'n', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "protoxin.net", false */ 'p', 'r', 'o', 't', 'o', 'x', 'i', 'n', '.', 'n', 'e', 't', '\0',
   /* "protoyou.de", true */ 'p', 'r', 'o', 't', 'o', 'y', 'o', 'u', '.', 'd', 'e', '\0',
   /* "proust.ch", false */ 'p', 'r', 'o', 'u', 's', 't', '.', 'c', 'h', '\0',
   /* "proust.media", false */ 'p', 'r', 'o', 'u', 's', 't', '.', 'm', 'e', 'd', 'i', 'a', '\0',
   /* "proustmedia.de", false */ 'p', 'r', 'o', 'u', 's', 't', 'm', 'e', 'd', 'i', 'a', '.', 'd', 'e', '\0',
+  /* "proweser.de", true */ 'p', 'r', 'o', 'w', 'e', 's', 'e', 'r', '.', 'd', 'e', '\0',
   /* "prowise.com", true */ 'p', 'r', 'o', 'w', 'i', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "proxybay.co", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 'c', 'o', '\0',
   /* "proxybay.la", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 'l', 'a', '\0',
   /* "proxybay.one", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 'o', 'n', 'e', '\0',
   /* "proxybay.top", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 't', 'o', 'p', '\0',
   /* "proxybay.tv", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 't', 'v', '\0',
   /* "proxyowl.pw", true */ 'p', 'r', 'o', 'x', 'y', 'o', 'w', 'l', '.', 'p', 'w', '\0',
   /* "proxyportal.org", true */ 'p', 'r', 'o', 'x', 'y', 'p', 'o', 'r', 't', 'a', 'l', '.', 'o', 'r', 'g', '\0',
@@ -11312,16 +11317,17 @@ static const char kSTSHostTable[] = {
   /* "qubyte.codes", true */ 'q', 'u', 'b', 'y', 't', 'e', '.', 'c', 'o', 'd', 'e', 's', '\0',
   /* "quchao.com", true */ 'q', 'u', 'c', 'h', 'a', 'o', '.', 'c', 'o', 'm', '\0',
   /* "queercinema.ch", true */ 'q', 'u', 'e', 'e', 'r', 'c', 'i', 'n', 'e', 'm', 'a', '.', 'c', 'h', '\0',
   /* "queminventou.com.br", true */ 'q', 'u', 'e', 'm', 'i', 'n', 'v', 'e', 'n', 't', 'o', 'u', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "quemmeliga.com", true */ 'q', 'u', 'e', 'm', 'm', 'e', 'l', 'i', 'g', 'a', '.', 'c', 'o', 'm', '\0',
   /* "quera.ir", true */ 'q', 'u', 'e', 'r', 'a', '.', 'i', 'r', '\0',
   /* "questionable.host", true */ 'q', 'u', 'e', 's', 't', 'i', 'o', 'n', 'a', 'b', 'l', 'e', '.', 'h', 'o', 's', 't', '\0',
   /* "questsocial.it", true */ 'q', 'u', 'e', 's', 't', 's', 'o', 'c', 'i', 'a', 'l', '.', 'i', 't', '\0',
+  /* "quickboysvrouwen2.nl", true */ 'q', 'u', 'i', 'c', 'k', 'b', 'o', 'y', 's', 'v', 'r', 'o', 'u', 'w', 'e', 'n', '2', '.', 'n', 'l', '\0',
   /* "quickpayservice.com", true */ 'q', 'u', 'i', 'c', 'k', 'p', 'a', 'y', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "quietapple.org", true */ 'q', 'u', 'i', 'e', 't', 'a', 'p', 'p', 'l', 'e', '.', 'o', 'r', 'g', '\0',
   /* "quikchange.net", true */ 'q', 'u', 'i', 'k', 'c', 'h', 'a', 'n', 'g', 'e', '.', 'n', 'e', 't', '\0',
   /* "quikpay.com.au", true */ 'q', 'u', 'i', 'k', 'p', 'a', 'y', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "quinnlabs.com", true */ 'q', 'u', 'i', 'n', 'n', 'l', 'a', 'b', 's', '.', 'c', 'o', 'm', '\0',
   /* "quintessa.org", true */ 'q', 'u', 'i', 'n', 't', 'e', 's', 's', 'a', '.', 'o', 'r', 'g', '\0',
   /* "quire.io", true */ 'q', 'u', 'i', 'r', 'e', '.', 'i', 'o', '\0',
   /* "quirino.ch", true */ 'q', 'u', 'i', 'r', 'i', 'n', 'o', '.', 'c', 'h', '\0',
@@ -11403,17 +11409,16 @@ static const char kSTSHostTable[] = {
   /* "rapenroer.nl", true */ 'r', 'a', 'p', 'e', 'n', 'r', 'o', 'e', 'r', '.', 'n', 'l', '\0',
   /* "raphael.li", true */ 'r', 'a', 'p', 'h', 'a', 'e', 'l', '.', 'l', 'i', '\0',
   /* "rapidshit.net", true */ 'r', 'a', 'p', 'i', 'd', 's', 'h', 'i', 't', '.', 'n', 'e', 't', '\0',
   /* "rasagiline.com", true */ 'r', 'a', 's', 'a', 'g', 'i', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "rasebo.ro", true */ 'r', 'a', 's', 'e', 'b', 'o', '.', 'r', 'o', '\0',
   /* "raspberry.us", true */ 'r', 'a', 's', 'p', 'b', 'e', 'r', 'r', 'y', '.', 'u', 's', '\0',
   /* "ratd.net", true */ 'r', 'a', 't', 'd', '.', 'n', 'e', 't', '\0',
   /* "rathorian.fr", true */ 'r', 'a', 't', 'h', 'o', 'r', 'i', 'a', 'n', '.', 'f', 'r', '\0',
-  /* "rationalism.com", true */ 'r', 'a', 't', 'i', 'o', 'n', 'a', 'l', 'i', 's', 'm', '.', 'c', 'o', 'm', '\0',
   /* "rationalops.com", true */ 'r', 'a', 't', 'i', 'o', 'n', 'a', 'l', 'o', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "ratuseks.com", false */ 'r', 'a', 't', 'u', 's', 'e', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "ratuseks.net", false */ 'r', 'a', 't', 'u', 's', 'e', 'k', 's', '.', 'n', 'e', 't', '\0',
   /* "ratuseks.us", false */ 'r', 'a', 't', 'u', 's', 'e', 'k', 's', '.', 'u', 's', '\0',
   /* "raumzeitlabor.de", true */ 'r', 'a', 'u', 'm', 'z', 'e', 'i', 't', 'l', 'a', 'b', 'o', 'r', '.', 'd', 'e', '\0',
   /* "rauros.net", true */ 'r', 'a', 'u', 'r', 'o', 's', '.', 'n', 'e', 't', '\0',
   /* "rautermods.net", true */ 'r', 'a', 'u', 't', 'e', 'r', 'm', 'o', 'd', 's', '.', 'n', 'e', 't', '\0',
   /* "ravage.fm", true */ 'r', 'a', 'v', 'a', 'g', 'e', '.', 'f', 'm', '\0',
@@ -11512,16 +11517,17 @@ static const char kSTSHostTable[] = {
   /* "redwoodpaddle.es", true */ 'r', 'e', 'd', 'w', 'o', 'o', 'd', 'p', 'a', 'd', 'd', 'l', 'e', '.', 'e', 's', '\0',
   /* "redy.host", true */ 'r', 'e', 'd', 'y', '.', 'h', 'o', 's', 't', '\0',
   /* "redzurl.com", true */ 'r', 'e', 'd', 'z', 'u', 'r', 'l', '.', 'c', 'o', 'm', '\0',
   /* "reed-sensor.com", true */ 'r', 'e', 'e', 'd', '-', 's', 'e', 'n', 's', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "reedloden.com", true */ 'r', 'e', 'e', 'd', 'l', 'o', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "reezer.org", true */ 'r', 'e', 'e', 'z', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "refactor.zone", true */ 'r', 'e', 'f', 'a', 'c', 't', 'o', 'r', '.', 'z', 'o', 'n', 'e', '\0',
   /* "refill-roboter.de", true */ 'r', 'e', 'f', 'i', 'l', 'l', '-', 'r', 'o', 'b', 'o', 't', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "refitplanner.com", true */ 'r', 'e', 'f', 'i', 't', 'p', 'l', 'a', 'n', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "refreshingserum.com", true */ 'r', 'e', 'f', 'r', 'e', 's', 'h', 'i', 'n', 'g', 's', 'e', 'r', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "refundo.cz", true */ 'r', 'e', 'f', 'u', 'n', 'd', 'o', '.', 'c', 'z', '\0',
   /* "refundo.sk", true */ 'r', 'e', 'f', 'u', 'n', 'd', 'o', '.', 's', 'k', '\0',
   /* "reg.ru", false */ 'r', 'e', 'g', '.', 'r', 'u', '\0',
   /* "regain.us", true */ 'r', 'e', 'g', 'a', 'i', 'n', '.', 'u', 's', '\0',
   /* "regalosymuestrasgratis.com", true */ 'r', 'e', 'g', 'a', 'l', 'o', 's', 'y', 'm', 'u', 'e', 's', 't', 'r', 'a', 's', 'g', 'r', 'a', 't', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "reganclassics.co.uk", true */ 'r', 'e', 'g', 'a', 'n', 'c', 'l', 'a', 's', 's', 'i', 'c', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "reganclassics.com", true */ 'r', 'e', 'g', 'a', 'n', 'c', 'l', 'a', 's', 's', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
@@ -11772,17 +11778,16 @@ static const char kSTSHostTable[] = {
   /* "rointe.online", true */ 'r', 'o', 'i', 'n', 't', 'e', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
   /* "roketix.co.uk", true */ 'r', 'o', 'k', 'e', 't', 'i', 'x', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "rokki.ch", true */ 'r', 'o', 'k', 'k', 'i', '.', 'c', 'h', '\0',
   /* "rokort.dk", true */ 'r', 'o', 'k', 'o', 'r', 't', '.', 'd', 'k', '\0',
   /* "rokudenashi.de", true */ 'r', 'o', 'k', 'u', 'd', 'e', 'n', 'a', 's', 'h', 'i', '.', 'd', 'e', '\0',
   /* "roland.io", true */ 'r', 'o', 'l', 'a', 'n', 'd', '.', 'i', 'o', '\0',
   /* "rolandreed.cn", true */ 'r', 'o', 'l', 'a', 'n', 'd', 'r', 'e', 'e', 'd', '.', 'c', 'n', '\0',
   /* "rolandszabo.com", true */ 'r', 'o', 'l', 'a', 'n', 'd', 's', 'z', 'a', 'b', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "rolemaster.net", true */ 'r', 'o', 'l', 'e', 'm', 'a', 's', 't', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "roleplayhome.com", true */ 'r', 'o', 'l', 'e', 'p', 'l', 'a', 'y', 'h', 'o', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "rolodato.com", true */ 'r', 'o', 'l', 'o', 'd', 'a', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "romab.com", true */ 'r', 'o', 'm', 'a', 'b', '.', 'c', 'o', 'm', '\0',
   /* "romaimperator.com", true */ 'r', 'o', 'm', 'a', 'i', 'm', 'p', 'e', 'r', 'a', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "romainmuller.xyz", true */ 'r', 'o', 'm', 'a', 'i', 'n', 'm', 'u', 'l', 'l', 'e', 'r', '.', 'x', 'y', 'z', '\0',
   /* "roman-pavlik.cz", true */ 'r', 'o', 'm', 'a', 'n', '-', 'p', 'a', 'v', 'l', 'i', 'k', '.', 'c', 'z', '\0',
   /* "romanpavlodar.kz", true */ 'r', 'o', 'm', 'a', 'n', 'p', 'a', 'v', 'l', 'o', 'd', 'a', 'r', '.', 'k', 'z', '\0',
   /* "romanticvillas.com.au", true */ 'r', 'o', 'm', 'a', 'n', 't', 'i', 'c', 'v', 'i', 'l', 'l', 'a', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
@@ -11792,17 +11797,16 @@ static const char kSTSHostTable[] = {
   /* "ron2k.za.net", true */ 'r', 'o', 'n', '2', 'k', '.', 'z', 'a', '.', 'n', 'e', 't', '\0',
   /* "rondommen.nl", true */ 'r', 'o', 'n', 'd', 'o', 'm', 'm', 'e', 'n', '.', 'n', 'l', '\0',
   /* "ronomon.com", true */ 'r', 'o', 'n', 'o', 'm', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "roo.ie", true */ 'r', 'o', 'o', '.', 'i', 'e', '\0',
   /* "room208.org", true */ 'r', 'o', 'o', 'm', '2', '0', '8', '.', 'o', 'r', 'g', '\0',
   /* "room3b.eu", true */ 'r', 'o', 'o', 'm', '3', 'b', '.', 'e', 'u', '\0',
   /* "roombase.nl", true */ 'r', 'o', 'o', 'm', 'b', 'a', 's', 'e', '.', 'n', 'l', '\0',
   /* "roomhub.jp", true */ 'r', 'o', 'o', 'm', 'h', 'u', 'b', '.', 'j', 'p', '\0',
-  /* "roosterpgplus.nl", true */ 'r', 'o', 'o', 's', 't', 'e', 'r', 'p', 'g', 'p', 'l', 'u', 's', '.', 'n', 'l', '\0',
   /* "root.eu.org", true */ 'r', 'o', 'o', 't', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "rootrelativity.com", true */ 'r', 'o', 'o', 't', 'r', 'e', 'l', 'a', 't', 'i', 'v', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "roots-example-project.com", true */ 'r', 'o', 'o', 't', 's', '-', 'e', 'x', 'a', 'm', 'p', 'l', 'e', '-', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "roots.io", true */ 'r', 'o', 'o', 't', 's', '.', 'i', 'o', '\0',
   /* "rootswitch.com", true */ 'r', 'o', 'o', 't', 's', 'w', 'i', 't', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "rootusers.com", true */ 'r', 'o', 'o', 't', 'u', 's', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "roquecenter.org", true */ 'r', 'o', 'q', 'u', 'e', 'c', 'e', 'n', 't', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "rose-prism.org", true */ 'r', 'o', 's', 'e', '-', 'p', 'r', 'i', 's', 'm', '.', 'o', 'r', 'g', '\0',
@@ -12035,17 +12039,16 @@ static const char kSTSHostTable[] = {
   /* "sapk.fr", true */ 's', 'a', 'p', 'k', '.', 'f', 'r', '\0',
   /* "sapporobeer.com", true */ 's', 'a', 'p', 'p', 'o', 'r', 'o', 'b', 'e', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sarahbeckettharpist.com", true */ 's', 'a', 'r', 'a', 'h', 'b', 'e', 'c', 'k', 'e', 't', 't', 'h', 'a', 'r', 'p', 'i', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "sarahlicity.co.uk", false */ 's', 'a', 'r', 'a', 'h', 'l', 'i', 'c', 'i', 't', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "sarahlicity.me.uk", true */ 's', 'a', 'r', 'a', 'h', 'l', 'i', 'c', 'i', 't', 'y', '.', 'm', 'e', '.', 'u', 'k', '\0',
   /* "sarahs-roestcafe.de", false */ 's', 'a', 'r', 'a', 'h', 's', '-', 'r', 'o', 'e', 's', 't', 'c', 'a', 'f', 'e', '.', 'd', 'e', '\0',
   /* "sarahsweger.com", true */ 's', 'a', 'r', 'a', 'h', 's', 'w', 'e', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sarahvictor.co.uk", true */ 's', 'a', 'r', 'a', 'h', 'v', 'i', 'c', 't', 'o', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
-  /* "sarakas.com", true */ 's', 'a', 'r', 'a', 'k', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "saraleebread.com", true */ 's', 'a', 'r', 'a', 'l', 'e', 'e', 'b', 'r', 'e', 'a', 'd', '.', 'c', 'o', 'm', '\0',
   /* "sarangsemutbandung.com", true */ 's', 'a', 'r', 'a', 'n', 'g', 's', 'e', 'm', 'u', 't', 'b', 'a', 'n', 'd', 'u', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "sarasturdivant.com", true */ 's', 'a', 'r', 'a', 's', 't', 'u', 'r', 'd', 'i', 'v', 'a', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "sardegnatirocini.it", true */ 's', 'a', 'r', 'd', 'e', 'g', 'n', 'a', 't', 'i', 'r', 'o', 'c', 'i', 'n', 'i', '.', 'i', 't', '\0',
   /* "sarindia.com", true */ 's', 'a', 'r', 'i', 'n', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "sarindia.de", true */ 's', 'a', 'r', 'i', 'n', 'd', 'i', 'a', '.', 'd', 'e', '\0',
   /* "saro.me", true */ 's', 'a', 'r', 'o', '.', 'm', 'e', '\0',
   /* "sas-snowboarding.sk", true */ 's', 'a', 's', '-', 's', 'n', 'o', 'w', 'b', 'o', 'a', 'r', 'd', 'i', 'n', 'g', '.', 's', 'k', '\0',
@@ -12085,17 +12088,16 @@ static const char kSTSHostTable[] = {
   /* "sbssoft.ru", true */ 's', 'b', 's', 's', 'o', 'f', 't', '.', 'r', 'u', '\0',
   /* "scaling.solutions", true */ 's', 'c', 'a', 'l', 'i', 'n', 'g', '.', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '\0',
   /* "scandicom.fi", true */ 's', 'c', 'a', 'n', 'd', 'i', 'c', 'o', 'm', '.', 'f', 'i', '\0',
   /* "scandinavia.dating", true */ 's', 'c', 'a', 'n', 'd', 'i', 'n', 'a', 'v', 'i', 'a', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "scanleasing.net", true */ 's', 'c', 'a', 'n', 'l', 'e', 'a', 's', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0',
   /* "scannabi.com", true */ 's', 'c', 'a', 'n', 'n', 'a', 'b', 'i', '.', 'c', 'o', 'm', '\0',
   /* "scanpay.dk", true */ 's', 'c', 'a', 'n', 'p', 'a', 'y', '.', 'd', 'k', '\0',
   /* "scenester.tv", true */ 's', 'c', 'e', 'n', 'e', 's', 't', 'e', 'r', '.', 't', 'v', '\0',
-  /* "scepticism.com", true */ 's', 'c', 'e', 'p', 't', 'i', 'c', 'i', 's', 'm', '.', 'c', 'o', 'm', '\0',
   /* "schachburg.de", true */ 's', 'c', 'h', 'a', 'c', 'h', 'b', 'u', 'r', 'g', '.', 'd', 'e', '\0',
   /* "schallert.com", false */ 's', 'c', 'h', 'a', 'l', 'l', 'e', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "schamlosharmlos.de", true */ 's', 'c', 'h', 'a', 'm', 'l', 'o', 's', 'h', 'a', 'r', 'm', 'l', 'o', 's', '.', 'd', 'e', '\0',
   /* "schauer.so", true */ 's', 'c', 'h', 'a', 'u', 'e', 'r', '.', 's', 'o', '\0',
   /* "schawe.me", true */ 's', 'c', 'h', 'a', 'w', 'e', '.', 'm', 'e', '\0',
   /* "schd.io", true */ 's', 'c', 'h', 'd', '.', 'i', 'o', '\0',
   /* "scheidtweiler.de", true */ 's', 'c', 'h', 'e', 'i', 'd', 't', 'w', 'e', 'i', 'l', 'e', 'r', '.', 'd', 'e', '\0',
   /* "schelberts.de", true */ 's', 'c', 'h', 'e', 'l', 'b', 'e', 'r', 't', 's', '.', 'd', 'e', '\0',
@@ -12454,16 +12456,17 @@ static const char kSTSHostTable[] = {
   /* "shh.sh", true */ 's', 'h', 'h', '.', 's', 'h', '\0',
   /* "shiawasedo.co.jp", true */ 's', 'h', 'i', 'a', 'w', 'a', 's', 'e', 'd', 'o', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "shibainu.com.br", true */ 's', 'h', 'i', 'b', 'a', 'i', 'n', 'u', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "shiftdevices.com", true */ 's', 'h', 'i', 'f', 't', 'd', 'e', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "shiftj.is", true */ 's', 'h', 'i', 'f', 't', 'j', '.', 'i', 's', '\0',
   /* "shiftnrg.org", true */ 's', 'h', 'i', 'f', 't', 'n', 'r', 'g', '.', 'o', 'r', 'g', '\0',
   /* "shiftplanning.com", true */ 's', 'h', 'i', 'f', 't', 'p', 'l', 'a', 'n', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "shinnyosangha.org", false */ 's', 'h', 'i', 'n', 'n', 'y', 'o', 's', 'a', 'n', 'g', 'h', 'a', '.', 'o', 'r', 'g', '\0',
+  /* "shinobi-fansub.ro", true */ 's', 'h', 'i', 'n', 'o', 'b', 'i', '-', 'f', 'a', 'n', 's', 'u', 'b', '.', 'r', 'o', '\0',
   /* "shinyuu.net", true */ 's', 'h', 'i', 'n', 'y', 'u', 'u', '.', 'n', 'e', 't', '\0',
   /* "shipard.com", true */ 's', 'h', 'i', 'p', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
   /* "shipard.cz", true */ 's', 'h', 'i', 'p', 'a', 'r', 'd', '.', 'c', 'z', '\0',
   /* "shipcloud.io", true */ 's', 'h', 'i', 'p', 'c', 'l', 'o', 'u', 'd', '.', 'i', 'o', '\0',
   /* "shipping24h.com", true */ 's', 'h', 'i', 'p', 'p', 'i', 'n', 'g', '2', '4', 'h', '.', 'c', 'o', 'm', '\0',
   /* "shiroki-k.net", true */ 's', 'h', 'i', 'r', 'o', 'k', 'i', '-', 'k', '.', 'n', 'e', 't', '\0',
   /* "shirtsofholland.com", true */ 's', 'h', 'i', 'r', 't', 's', 'o', 'f', 'h', 'o', 'l', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "shishkin.link", true */ 's', 'h', 'i', 's', 'h', 'k', 'i', 'n', '.', 'l', 'i', 'n', 'k', '\0',
@@ -12708,17 +12711,16 @@ static const char kSTSHostTable[] = {
   /* "slneighbors.org", true */ 's', 'l', 'n', 'e', 'i', 'g', 'h', 'b', 'o', 'r', 's', '.', 'o', 'r', 'g', '\0',
   /* "slo-tech.com", true */ 's', 'l', 'o', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "sloancom.com", true */ 's', 'l', 'o', 'a', 'n', 'c', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "slotboss.co.uk", true */ 's', 'l', 'o', 't', 'b', 'o', 's', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "slotcar.com", false */ 's', 'l', 'o', 't', 'c', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "slovoice.org", true */ 's', 'l', 'o', 'v', 'o', 'i', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "slow.zone", true */ 's', 'l', 'o', 'w', '.', 'z', 'o', 'n', 'e', '\0',
   /* "slowb.ro", true */ 's', 'l', 'o', 'w', 'b', '.', 'r', 'o', '\0',
-  /* "slowfood.es", true */ 's', 'l', 'o', 'w', 'f', 'o', 'o', 'd', '.', 'e', 's', '\0',
   /* "slse.ca", true */ 's', 'l', 's', 'e', '.', 'c', 'a', '\0',
   /* "slxh.eu", true */ 's', 'l', 'x', 'h', '.', 'e', 'u', '\0',
   /* "slxh.nl", true */ 's', 'l', 'x', 'h', '.', 'n', 'l', '\0',
   /* "sm.ms", true */ 's', 'm', '.', 'm', 's', '\0',
   /* "smablo.com", true */ 's', 'm', 'a', 'b', 'l', 'o', '.', 'c', 'o', 'm', '\0',
   /* "smallcdn.rocks", true */ 's', 'm', 'a', 'l', 'l', 'c', 'd', 'n', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "smallchat.nl", true */ 's', 'm', 'a', 'l', 'l', 'c', 'h', 'a', 't', '.', 'n', 'l', '\0',
   /* "smalldata.tech", true */ 's', 'm', 'a', 'l', 'l', 'd', 'a', 't', 'a', '.', 't', 'e', 'c', 'h', '\0',
@@ -12740,16 +12742,17 @@ static const char kSTSHostTable[] = {
   /* "smarthouse.de", true */ 's', 'm', 'a', 'r', 't', 'h', 'o', 'u', 's', 'e', '.', 'd', 'e', '\0',
   /* "smartit.pro", true */ 's', 'm', 'a', 'r', 't', 'i', 't', '.', 'p', 'r', 'o', '\0',
   /* "smartlocksmith.com", true */ 's', 'm', 'a', 'r', 't', 'l', 'o', 'c', 'k', 's', 'm', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "smartmessages.net", true */ 's', 'm', 'a', 'r', 't', 'm', 'e', 's', 's', 'a', 'g', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "smartpass.government.ae", true */ 's', 'm', 'a', 'r', 't', 'p', 'a', 's', 's', '.', 'g', 'o', 'v', 'e', 'r', 'n', 'm', 'e', 'n', 't', '.', 'a', 'e', '\0',
   /* "smartphone.continental.com", false */ 's', 'm', 'a', 'r', 't', 'p', 'h', 'o', 'n', 'e', '.', 'c', 'o', 'n', 't', 'i', 'n', 'e', 'n', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "smartpolicingplatform.com", true */ 's', 'm', 'a', 'r', 't', 'p', 'o', 'l', 'i', 'c', 'i', 'n', 'g', 'p', 'l', 'a', 't', 'f', 'o', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "smartrade.tech", true */ 's', 'm', 'a', 'r', 't', 'r', 'a', 'd', 'e', '.', 't', 'e', 'c', 'h', '\0',
+  /* "smartshiftme.com", true */ 's', 'm', 'a', 'r', 't', 's', 'h', 'i', 'f', 't', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "smartship.co.jp", true */ 's', 'm', 'a', 'r', 't', 's', 'h', 'i', 'p', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "smartsparrow.com", true */ 's', 'm', 'a', 'r', 't', 's', 'p', 'a', 'r', 'r', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "smartviewing.com", true */ 's', 'm', 'a', 'r', 't', 'v', 'i', 'e', 'w', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "smartwelve.com", true */ 's', 'm', 'a', 'r', 't', 'w', 'e', 'l', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "smartwurk.nl", true */ 's', 'm', 'a', 'r', 't', 'w', 'u', 'r', 'k', '.', 'n', 'l', '\0',
   /* "smb445.com", true */ 's', 'm', 'b', '4', '4', '5', '.', 'c', 'o', 'm', '\0',
   /* "smdavis.us", true */ 's', 'm', 'd', 'a', 'v', 'i', 's', '.', 'u', 's', '\0',
   /* "smdcn.net", true */ 's', 'm', 'd', 'c', 'n', '.', 'n', 'e', 't', '\0',
@@ -12827,16 +12830,17 @@ static const char kSTSHostTable[] = {
   /* "socialworkout.org", true */ 's', 'o', 'c', 'i', 'a', 'l', 'w', 'o', 'r', 'k', 'o', 'u', 't', '.', 'o', 'r', 'g', '\0',
   /* "socialworkout.tv", true */ 's', 'o', 'c', 'i', 'a', 'l', 'w', 'o', 'r', 'k', 'o', 'u', 't', '.', 't', 'v', '\0',
   /* "societyhilldance.com", true */ 's', 'o', 'c', 'i', 'e', 't', 'y', 'h', 'i', 'l', 'l', 'd', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "socioambiental.org", true */ 's', 'o', 'c', 'i', 'o', 'a', 'm', 'b', 'i', 'e', 'n', 't', 'a', 'l', '.', 'o', 'r', 'g', '\0',
   /* "socketize.com", true */ 's', 'o', 'c', 'k', 'e', 't', 'i', 'z', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sockeye.io", true */ 's', 'o', 'c', 'k', 'e', 'y', 'e', '.', 'i', 'o', '\0',
   /* "sodi.nl", true */ 's', 'o', 'd', 'i', '.', 'n', 'l', '\0',
   /* "sodiao.cc", true */ 's', 'o', 'd', 'i', 'a', 'o', '.', 'c', 'c', '\0',
+  /* "soe-server.com", true */ 's', 'o', 'e', '-', 's', 'e', 'r', 'v', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sofabedshop.de", true */ 's', 'o', 'f', 'a', 'b', 'e', 'd', 's', 'h', 'o', 'p', '.', 'd', 'e', '\0',
   /* "sofort.com", true */ 's', 'o', 'f', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "sofortueberweisung.de", true */ 's', 'o', 'f', 'o', 'r', 't', 'u', 'e', 'b', 'e', 'r', 'w', 'e', 'i', 's', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "softanka.com", true */ 's', 'o', 'f', 't', 'a', 'n', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "software.rocks", true */ 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "softwarebetrieb.de", true */ 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', 'b', 'e', 't', 'r', 'i', 'e', 'b', '.', 'd', 'e', '\0',
   /* "softwaredesign.foundation", true */ 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', 'd', 'e', 's', 'i', 'g', 'n', '.', 'f', 'o', 'u', 'n', 'd', 'a', 't', 'i', 'o', 'n', '\0',
   /* "softwerk-edv.de", true */ 's', 'o', 'f', 't', 'w', 'e', 'r', 'k', '-', 'e', 'd', 'v', '.', 'd', 'e', '\0',
@@ -12890,16 +12894,17 @@ static const char kSTSHostTable[] = {
   /* "sophiakligys.com", true */ 's', 'o', 'p', 'h', 'i', 'a', 'k', 'l', 'i', 'g', 'y', 's', '.', 'c', 'o', 'm', '\0',
   /* "soply.com", true */ 's', 'o', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "soporte.cc", true */ 's', 'o', 'p', 'o', 'r', 't', 'e', '.', 'c', 'c', '\0',
   /* "sor.so", true */ 's', 'o', 'r', '.', 's', 'o', '\0',
   /* "sorcix.com", true */ 's', 'o', 'r', 'c', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "sorenstudios.com", true */ 's', 'o', 'r', 'e', 'n', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "sorincocorada.ro", true */ 's', 'o', 'r', 'i', 'n', 'c', 'o', 'c', 'o', 'r', 'a', 'd', 'a', '.', 'r', 'o', '\0',
   /* "sorn.service.gov.uk", true */ 's', 'o', 'r', 'n', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0',
+  /* "sortaweird.net", false */ 's', 'o', 'r', 't', 'a', 'w', 'e', 'i', 'r', 'd', '.', 'n', 'e', 't', '\0',
   /* "soruly.com", true */ 's', 'o', 'r', 'u', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "sorz.org", true */ 's', 'o', 'r', 'z', '.', 'o', 'r', 'g', '\0',
   /* "sos.sk", false */ 's', 'o', 's', '.', 's', 'k', '\0',
   /* "sosaka.ml", true */ 's', 'o', 's', 'a', 'k', 'a', '.', 'm', 'l', '\0',
   /* "sosecu.red", true */ 's', 'o', 's', 'e', 'c', 'u', '.', 'r', 'e', 'd', '\0',
   /* "sostacancun.com", true */ 's', 'o', 's', 't', 'a', 'c', 'a', 'n', 'c', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "sotar.us", true */ 's', 'o', 't', 'a', 'r', '.', 'u', 's', '\0',
   /* "sotavasara.net", true */ 's', 'o', 't', 'a', 'v', 'a', 's', 'a', 'r', 'a', '.', 'n', 'e', 't', '\0',
@@ -12970,17 +12975,16 @@ static const char kSTSHostTable[] = {
   /* "speeds.vip", true */ 's', 'p', 'e', 'e', 'd', 's', '.', 'v', 'i', 'p', '\0',
   /* "speedyprep.com", true */ 's', 'p', 'e', 'e', 'd', 'y', 'p', 'r', 'e', 'p', '.', 'c', 'o', 'm', '\0',
   /* "speich.net", true */ 's', 'p', 'e', 'i', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "spenglerei-shop.de", true */ 's', 'p', 'e', 'n', 'g', 'l', 'e', 'r', 'e', 'i', '-', 's', 'h', 'o', 'p', '.', 'd', 'e', '\0',
   /* "sperohub.com", true */ 's', 'p', 'e', 'r', 'o', 'h', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "sperohub.lt", true */ 's', 'p', 'e', 'r', 'o', 'h', 'u', 'b', '.', 'l', 't', '\0',
   /* "sperrstun.de", true */ 's', 'p', 'e', 'r', 'r', 's', 't', 'u', 'n', '.', 'd', 'e', '\0',
   /* "sphereblur.com", true */ 's', 'p', 'h', 'e', 'r', 'e', 'b', 'l', 'u', 'r', '.', 'c', 'o', 'm', '\0',
-  /* "spibe.is", true */ 's', 'p', 'i', 'b', 'e', '.', 'i', 's', '\0',
   /* "spicydog.org", true */ 's', 'p', 'i', 'c', 'y', 'd', 'o', 'g', '.', 'o', 'r', 'g', '\0',
   /* "spicymatch.com", true */ 's', 'p', 'i', 'c', 'y', 'm', 'a', 't', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "spicywombat.com", true */ 's', 'p', 'i', 'c', 'y', 'w', 'o', 'm', 'b', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "spideroak.com", true */ 's', 'p', 'i', 'd', 'e', 'r', 'o', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "spielcasinos.com", true */ 's', 'p', 'i', 'e', 'l', 'c', 'a', 's', 'i', 'n', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "spiet.nl", true */ 's', 'p', 'i', 'e', 't', '.', 'n', 'l', '\0',
   /* "spinalien.net", true */ 's', 'p', 'i', 'n', 'a', 'l', 'i', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "spins.fedoraproject.org", true */ 's', 'p', 'i', 'n', 's', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
@@ -13151,16 +13155,17 @@ static const char kSTSHostTable[] = {
   /* "stats.g.doubleclick.net", true */ 's', 't', 'a', 't', 's', '.', 'g', '.', 'd', 'o', 'u', 'b', 'l', 'e', 'c', 'l', 'i', 'c', 'k', '.', 'n', 'e', 't', '\0',
   /* "status-sprueche.de", true */ 's', 't', 'a', 't', 'u', 's', '-', 's', 'p', 'r', 'u', 'e', 'c', 'h', 'e', '.', 'd', 'e', '\0',
   /* "statuscode.ch", true */ 's', 't', 'a', 't', 'u', 's', 'c', 'o', 'd', 'e', '.', 'c', 'h', '\0',
   /* "stav.io", true */ 's', 't', 'a', 'v', '.', 'i', 'o', '\0',
   /* "stay.black", true */ 's', 't', 'a', 'y', '.', 'b', 'l', 'a', 'c', 'k', '\0',
   /* "stbennett.org", true */ 's', 't', 'b', 'e', 'n', 'n', 'e', 't', 't', '.', 'o', 'r', 'g', '\0',
   /* "stcable.net", true */ 's', 't', 'c', 'a', 'b', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "stcu.org", true */ 's', 't', 'c', 'u', '.', 'o', 'r', 'g', '\0',
+  /* "stderr.cc", false */ 's', 't', 'd', 'e', 'r', 'r', '.', 'c', 'c', '\0',
   /* "steakovercooked.com", true */ 's', 't', 'e', 'a', 'k', 'o', 'v', 'e', 'r', 'c', 'o', 'o', 'k', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "stealsaga.net", true */ 's', 't', 'e', 'a', 'l', 's', 'a', 'g', 'a', '.', 'n', 'e', 't', '\0',
   /* "steamdb.info", true */ 's', 't', 'e', 'a', 'm', 'd', 'b', '.', 'i', 'n', 'f', 'o', '\0',
   /* "steckregal-super.de", true */ 's', 't', 'e', 'c', 'k', 'r', 'e', 'g', 'a', 'l', '-', 's', 'u', 'p', 'e', 'r', '.', 'd', 'e', '\0',
   /* "steelephys.com.au", true */ 's', 't', 'e', 'e', 'l', 'e', 'p', 'h', 'y', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "steemit.com", true */ 's', 't', 'e', 'e', 'm', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "steenackers.be", true */ 's', 't', 'e', 'e', 'n', 'a', 'c', 'k', 'e', 'r', 's', '.', 'b', 'e', '\0',
   /* "stefanovski.io", true */ 's', 't', 'e', 'f', 'a', 'n', 'o', 'v', 's', 'k', 'i', '.', 'i', 'o', '\0',
@@ -13337,16 +13342,17 @@ static const char kSTSHostTable[] = {
   /* "supermarx.nl", true */ 's', 'u', 'p', 'e', 'r', 'm', 'a', 'r', 'x', '.', 'n', 'l', '\0',
   /* "supernt.lt", true */ 's', 'u', 'p', 'e', 'r', 'n', 't', '.', 'l', 't', '\0',
   /* "superpase.com", true */ 's', 'u', 'p', 'e', 'r', 'p', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "superschnappchen.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'c', 'h', 'n', 'a', 'p', 'p', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "supersonnig-festival.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', '-', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
   /* "supersonnigfestival.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
   /* "supersu.kr", true */ 's', 'u', 'p', 'e', 'r', 's', 'u', '.', 'k', 'r', '\0',
   /* "superswingtrainer.com", true */ 's', 'u', 'p', 'e', 'r', 's', 'w', 'i', 'n', 'g', 't', 'r', 'a', 'i', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "superuser.fi", true */ 's', 'u', 'p', 'e', 'r', 'u', 's', 'e', 'r', '.', 'f', 'i', '\0',
   /* "supinbot.ovh", false */ 's', 'u', 'p', 'i', 'n', 'b', 'o', 't', '.', 'o', 'v', 'h', '\0',
   /* "supplies24.at", true */ 's', 'u', 'p', 'p', 'l', 'i', 'e', 's', '2', '4', '.', 'a', 't', '\0',
   /* "supplies24.es", true */ 's', 'u', 'p', 'p', 'l', 'i', 'e', 's', '2', '4', '.', 'e', 's', '\0',
   /* "support.mayfirst.org", false */ 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'm', 'a', 'y', 'f', 'i', 'r', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "sur-v.com", true */ 's', 'u', 'r', '-', 'v', '.', 'c', 'o', 'm', '\0',
   /* "surasak.org", true */ 's', 'u', 'r', 'a', 's', 'a', 'k', '.', 'o', 'r', 'g', '\0',
   /* "surasak.xyz", true */ 's', 'u', 'r', 'a', 's', 'a', 'k', '.', 'x', 'y', 'z', '\0',
   /* "surgenet.nl", true */ 's', 'u', 'r', 'g', 'e', 'n', 'e', 't', '.', 'n', 'l', '\0',
@@ -13449,27 +13455,24 @@ static const char kSTSHostTable[] = {
   /* "szaydon.me", false */ 's', 'z', 'a', 'y', 'd', 'o', 'n', '.', 'm', 'e', '\0',
   /* "szechenyi2020.hu", true */ 's', 'z', 'e', 'c', 'h', 'e', 'n', 'y', 'i', '2', '0', '2', '0', '.', 'h', 'u', '\0',
   /* "szentistvanpt.sk", true */ 's', 'z', 'e', 'n', 't', 'i', 's', 't', 'v', 'a', 'n', 'p', 't', '.', 's', 'k', '\0',
   /* "szongott.net", true */ 's', 'z', 'o', 'n', 'g', 'o', 't', 't', '.', 'n', 'e', 't', '\0',
   /* "t-complex.space", true */ 't', '-', 'c', 'o', 'm', 'p', 'l', 'e', 'x', '.', 's', 'p', 'a', 'c', 'e', '\0',
   /* "t-hawk.com", true */ 't', '-', 'h', 'a', 'w', 'k', '.', 'c', 'o', 'm', '\0',
   /* "t-ken.xyz", true */ 't', '-', 'k', 'e', 'n', '.', 'x', 'y', 'z', '\0',
   /* "t-point.eu", true */ 't', '-', 'p', 'o', 'i', 'n', 't', '.', 'e', 'u', '\0',
-  /* "t-shirts4less.nl", true */ 't', '-', 's', 'h', 'i', 'r', 't', 's', '4', 'l', 'e', 's', 's', '.', 'n', 'l', '\0',
   /* "t-stonegroup.com", true */ 't', '-', 's', 't', 'o', 'n', 'e', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "t.facebook.com", false */ 't', '.', 'f', 'a', 'c', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "t0dd.eu", false */ 't', '0', 'd', 'd', '.', 'e', 'u', '\0',
   /* "t0ne.net", true */ 't', '0', 'n', 'e', '.', 'n', 'e', 't', '\0',
   /* "t23m-navi.jp", false */ 't', '2', '3', 'm', '-', 'n', 'a', 'v', 'i', '.', 'j', 'p', '\0',
   /* "t3rror.net", true */ 't', '3', 'r', 'r', 'o', 'r', '.', 'n', 'e', 't', '\0',
   /* "t7e.de", false */ 't', '7', 'e', '.', 'd', 'e', '\0',
-  /* "ta-65.com", true */ 't', 'a', '-', '6', '5', '.', 'c', 'o', 'm', '\0',
   /* "ta-sports.net", true */ 't', 'a', '-', 's', 'p', 'o', 'r', 't', 's', '.', 'n', 'e', 't', '\0',
-  /* "ta65.com", true */ 't', 'a', '6', '5', '.', 'c', 'o', 'm', '\0',
   /* "tabelfirme.ro", true */ 't', 'a', 'b', 'e', 'l', 'f', 'i', 'r', 'm', 'e', '.', 'r', 'o', '\0',
   /* "tabla-periodica.com", true */ 't', 'a', 'b', 'l', 'a', '-', 'p', 'e', 'r', 'i', 'o', 'd', 'i', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "tablet.facebook.com", false */ 't', 'a', 'b', 'l', 'e', 't', '.', 'f', 'a', 'c', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "tablotv.com", false */ 't', 'a', 'b', 'l', 'o', 't', 'v', '.', 'c', 'o', 'm', '\0',
   /* "taboragroup.com", false */ 't', 'a', 'b', 'o', 'r', 'a', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "taborsky.cz", true */ 't', 'a', 'b', 'o', 'r', 's', 'k', 'y', '.', 'c', 'z', '\0',
   /* "tacticalsquare.com", true */ 't', 'a', 'c', 't', 'i', 'c', 'a', 'l', 's', 'q', 'u', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "tadata.me", true */ 't', 'a', 'd', 'a', 't', 'a', '.', 'm', 'e', '\0',
@@ -13654,17 +13657,16 @@ static const char kSTSHostTable[] = {
   /* "tenderstem.co.uk", true */ 't', 'e', 'n', 'd', 'e', 'r', 's', 't', 'e', 'm', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "tendoryu-aikido.org", true */ 't', 'e', 'n', 'd', 'o', 'r', 'y', 'u', '-', 'a', 'i', 'k', 'i', 'd', 'o', '.', 'o', 'r', 'g', '\0',
   /* "tenenz.com", true */ 't', 'e', 'n', 'e', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "tengroup.com", true */ 't', 'e', 'n', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "tenisservis.eu", true */ 't', 'e', 'n', 'i', 's', 's', 'e', 'r', 'v', 'i', 's', '.', 'e', 'u', '\0',
   /* "tenkofx.com", true */ 't', 'e', 'n', 'k', 'o', 'f', 'x', '.', 'c', 'o', 'm', '\0',
   /* "tennisadmin.com", true */ 't', 'e', 'n', 'n', 'i', 's', 'a', 'd', 'm', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "tenpolab.com", true */ 't', 'e', 'n', 'p', 'o', 'l', 'a', 'b', '.', 'c', 'o', 'm', '\0',
-  /* "tensei-slime.com", true */ 't', 'e', 'n', 's', 'e', 'i', '-', 's', 'l', 'i', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "tenshoku-hanashi.com", true */ 't', 'e', 'n', 's', 'h', 'o', 'k', 'u', '-', 'h', 'a', 'n', 'a', 's', 'h', 'i', '.', 'c', 'o', 'm', '\0',
   /* "tent.io", true */ 't', 'e', 'n', 't', '.', 'i', 'o', '\0',
   /* "tenta.com", true */ 't', 'e', 'n', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "tentations-voyages.com", true */ 't', 'e', 'n', 't', 'a', 't', 'i', 'o', 'n', 's', '-', 'v', 'o', 'y', 'a', 'g', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "tentins.com", true */ 't', 'e', 'n', 't', 'i', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "tenyx.de", true */ 't', 'e', 'n', 'y', 'x', '.', 'd', 'e', '\0',
   /* "teodio.cl", true */ 't', 'e', 'o', 'd', 'i', 'o', '.', 'c', 'l', '\0',
   /* "teoskanta.fi", true */ 't', 'e', 'o', 's', 'k', 'a', 'n', 't', 'a', '.', 'f', 'i', '\0',
@@ -13927,16 +13929,17 @@ static const char kSTSHostTable[] = {
   /* "timdoug.com", true */ 't', 'i', 'm', 'd', 'o', 'u', 'g', '.', 'c', 'o', 'm', '\0',
   /* "time2060.ru", true */ 't', 'i', 'm', 'e', '2', '0', '6', '0', '.', 'r', 'u', '\0',
   /* "time22.com", true */ 't', 'i', 'm', 'e', '2', '2', '.', 'c', 'o', 'm', '\0',
   /* "timersuite.com", true */ 't', 'i', 'm', 'e', 'r', 's', 'u', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "timetab.org", true */ 't', 'i', 'm', 'e', 't', 'a', 'b', '.', 'o', 'r', 'g', '\0',
   /* "timetotrade.com", true */ 't', 'i', 'm', 'e', 't', 'o', 't', 'r', 'a', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "timewasters.nl", true */ 't', 'i', 'm', 'e', 'w', 'a', 's', 't', 'e', 'r', 's', '.', 'n', 'l', '\0',
   /* "timmersgems.com", true */ 't', 'i', 'm', 'm', 'e', 'r', 's', 'g', 'e', 'm', 's', '.', 'c', 'o', 'm', '\0',
+  /* "timmy.ws", true */ 't', 'i', 'm', 'm', 'y', '.', 'w', 's', '\0',
   /* "timroes.de", true */ 't', 'i', 'm', 'r', 'o', 'e', 's', '.', 'd', 'e', '\0',
   /* "timstoffel.net", false */ 't', 'i', 'm', 's', 't', 'o', 'f', 'f', 'e', 'l', '.', 'n', 'e', 't', '\0',
   /* "timtaubert.de", true */ 't', 'i', 'm', 't', 'a', 'u', 'b', 'e', 'r', 't', '.', 'd', 'e', '\0',
   /* "timvandekamp.nl", true */ 't', 'i', 'm', 'v', 'a', 'n', 'd', 'e', 'k', 'a', 'm', 'p', '.', 'n', 'l', '\0',
   /* "tinastahlschmidt.de", true */ 't', 'i', 'n', 'a', 's', 't', 'a', 'h', 'l', 's', 'c', 'h', 'm', 'i', 'd', 't', '.', 'd', 'e', '\0',
   /* "tindewen.net", true */ 't', 'i', 'n', 'd', 'e', 'w', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "tinfoilsecurity.com", false */ 't', 'i', 'n', 'f', 'o', 'i', 'l', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tink.network", true */ 't', 'i', 'n', 'k', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '\0',
@@ -13960,16 +13963,17 @@ static const char kSTSHostTable[] = {
   /* "titanous.com", true */ 't', 'i', 't', 'a', 'n', 'o', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "titiansgirlphotography.com", true */ 't', 'i', 't', 'i', 'a', 'n', 's', 'g', 'i', 'r', 'l', 'p', 'h', 'o', 't', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tjc.host", true */ 't', 'j', 'c', '.', 'h', 'o', 's', 't', '\0',
   /* "tjc.wiki", true */ 't', 'j', 'c', '.', 'w', 'i', 'k', 'i', '\0',
   /* "tjenestetorvet.dk", true */ 't', 'j', 'e', 'n', 'e', 's', 't', 'e', 't', 'o', 'r', 'v', 'e', 't', '.', 'd', 'k', '\0',
   /* "tjs.me", true */ 't', 'j', 's', '.', 'm', 'e', '\0',
   /* "tkappertjedemetamorfose.nl", true */ 't', 'k', 'a', 'p', 'p', 'e', 'r', 't', 'j', 'e', 'd', 'e', 'm', 'e', 't', 'a', 'm', 'o', 'r', 'f', 'o', 's', 'e', '.', 'n', 'l', '\0',
   /* "tkat.ch", true */ 't', 'k', 'a', 't', '.', 'c', 'h', '\0',
+  /* "tlach.cz", true */ 't', 'l', 'a', 'c', 'h', '.', 'c', 'z', '\0',
   /* "tlo.xyz", true */ 't', 'l', 'o', '.', 'x', 'y', 'z', '\0',
   /* "tls.builders", true */ 't', 'l', 's', '.', 'b', 'u', 'i', 'l', 'd', 'e', 'r', 's', '\0',
   /* "tls.care", true */ 't', 'l', 's', '.', 'c', 'a', 'r', 'e', '\0',
   /* "tls1914.org", true */ 't', 'l', 's', '1', '9', '1', '4', '.', 'o', 'r', 'g', '\0',
   /* "tlthings.net", true */ 't', 'l', 't', 'h', 'i', 'n', 'g', 's', '.', 'n', 'e', 't', '\0',
   /* "tm.id.au", true */ 't', 'm', '.', 'i', 'd', '.', 'a', 'u', '\0',
   /* "tmberg.cf", true */ 't', 'm', 'b', 'e', 'r', 'g', '.', 'c', 'f', '\0',
   /* "tmberg.ga", true */ 't', 'm', 'b', 'e', 'r', 'g', '.', 'g', 'a', '\0',
@@ -14033,16 +14037,17 @@ static const char kSTSHostTable[] = {
   /* "tomabrafix.de", true */ 't', 'o', 'm', 'a', 'b', 'r', 'a', 'f', 'i', 'x', '.', 'd', 'e', '\0',
   /* "tomandshirley.com", true */ 't', 'o', 'm', 'a', 'n', 'd', 's', 'h', 'i', 'r', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tomasjacik.cz", true */ 't', 'o', 'm', 'a', 's', 'j', 'a', 'c', 'i', 'k', '.', 'c', 'z', '\0',
   /* "tomaskavalek.cz", true */ 't', 'o', 'm', 'a', 's', 'k', 'a', 'v', 'a', 'l', 'e', 'k', '.', 'c', 'z', '\0',
   /* "tomaspialek.cz", true */ 't', 'o', 'm', 'a', 's', 'p', 'i', 'a', 'l', 'e', 'k', '.', 'c', 'z', '\0',
   /* "tomatenaufdenaugen.de", true */ 't', 'o', 'm', 'a', 't', 'e', 'n', 'a', 'u', 'f', 'd', 'e', 'n', 'a', 'u', 'g', 'e', 'n', '.', 'd', 'e', '\0',
   /* "tomaw.net", true */ 't', 'o', 'm', 'a', 'w', '.', 'n', 'e', 't', '\0',
   /* "tombaker.me", true */ 't', 'o', 'm', 'b', 'a', 'k', 'e', 'r', '.', 'm', 'e', '\0',
+  /* "tomberek.info", true */ 't', 'o', 'm', 'b', 'e', 'r', 'e', 'k', '.', 'i', 'n', 'f', 'o', '\0',
   /* "tombrossman.com", true */ 't', 'o', 'm', 'b', 'r', 'o', 's', 's', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "tomcort.com", true */ 't', 'o', 'm', 'c', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "tomend.es", true */ 't', 'o', 'm', 'e', 'n', 'd', '.', 'e', 's', '\0',
   /* "tomfisher.eu", true */ 't', 'o', 'm', 'f', 'i', 's', 'h', 'e', 'r', '.', 'e', 'u', '\0',
   /* "tomjonsson.se", true */ 't', 'o', 'm', 'j', 'o', 'n', 's', 's', 'o', 'n', '.', 's', 'e', '\0',
   /* "tomli.blog", true */ 't', 'o', 'm', 'l', 'i', '.', 'b', 'l', 'o', 'g', '\0',
   /* "tomli.me", true */ 't', 'o', 'm', 'l', 'i', '.', 'm', 'e', '\0',
   /* "tomm.yt", true */ 't', 'o', 'm', 'm', '.', 'y', 't', '\0',
@@ -14300,17 +14305,16 @@ static const char kSTSHostTable[] = {
   /* "tsumegumi.net", true */ 't', 's', 'u', 'm', 'e', 'g', 'u', 'm', 'i', '.', 'n', 'e', 't', '\0',
   /* "tsumi.it", true */ 't', 's', 'u', 'm', 'i', '.', 'i', 't', '\0',
   /* "tsurimap.com", true */ 't', 's', 'u', 'r', 'i', 'm', 'a', 'p', '.', 'c', 'o', 'm', '\0',
   /* "tsuyuzakihiroyuki.com", true */ 't', 's', 'u', 'y', 'u', 'z', 'a', 'k', 'i', 'h', 'i', 'r', 'o', 'y', 'u', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "tsv-1894.de", true */ 't', 's', 'v', '-', '1', '8', '9', '4', '.', 'd', 'e', '\0',
   /* "ttb.gov", true */ 't', 't', 'b', '.', 'g', 'o', 'v', '\0',
   /* "ttbonline.gov", true */ 't', 't', 'b', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'g', 'o', 'v', '\0',
   /* "ttcf.ca", true */ 't', 't', 'c', 'f', '.', 'c', 'a', '\0',
-  /* "ttchan.org", true */ 't', 't', 'c', 'h', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "tts.co.nz", true */ 't', 't', 's', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "ttsoft.pl", true */ 't', 't', 's', 'o', 'f', 't', '.', 'p', 'l', '\0',
   /* "ttt.tt", true */ 't', 't', 't', '.', 't', 't', '\0',
   /* "ttuwiki.ee", true */ 't', 't', 'u', 'w', 'i', 'k', 'i', '.', 'e', 'e', '\0',
   /* "ttuwiki.org", true */ 't', 't', 'u', 'w', 'i', 'k', 'i', '.', 'o', 'r', 'g', '\0',
   /* "tty.space", true */ 't', 't', 'y', '.', 's', 'p', 'a', 'c', 'e', '\0',
   /* "ttz.im", true */ 't', 't', 'z', '.', 'i', 'm', '\0',
   /* "tubbutec.de", true */ 't', 'u', 'b', 'b', 'u', 't', 'e', 'c', '.', 'd', 'e', '\0',
@@ -14625,17 +14629,16 @@ static const char kSTSHostTable[] = {
   /* "uttnetgroup.fr", false */ 'u', 't', 't', 'n', 'e', 't', 'g', 'r', 'o', 'u', 'p', '.', 'f', 'r', '\0',
   /* "uygindir.ml", true */ 'u', 'y', 'g', 'i', 'n', 'd', 'i', 'r', '.', 'm', 'l', '\0',
   /* "uzmandroid.com", true */ 'u', 'z', 'm', 'a', 'n', 'd', 'r', 'o', 'i', 'd', '.', 'c', 'o', 'm', '\0',
   /* "v-u-z.ru", true */ 'v', '-', 'u', '-', 'z', '.', 'r', 'u', '\0',
   /* "v0rtex.xyz", true */ 'v', '0', 'r', 't', 'e', 'x', '.', 'x', 'y', 'z', '\0',
   /* "v0tti.com", false */ 'v', '0', 't', 't', 'i', '.', 'c', 'o', 'm', '\0',
   /* "v2bv.win", true */ 'v', '2', 'b', 'v', '.', 'w', 'i', 'n', '\0',
   /* "v2ex.com", true */ 'v', '2', 'e', 'x', '.', 'c', 'o', 'm', '\0',
-  /* "v2ex.us", true */ 'v', '2', 'e', 'x', '.', 'u', 's', '\0',
   /* "va-reitartikel.com", true */ 'v', 'a', '-', 'r', 'e', 'i', 't', 'a', 'r', 't', 'i', 'k', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "vaccines.gov", true */ 'v', 'a', 'c', 'c', 'i', 'n', 'e', 's', '.', 'g', 'o', 'v', '\0',
   /* "vadik.me", true */ 'v', 'a', 'd', 'i', 'k', '.', 'm', 'e', '\0',
   /* "vagrantup.com", true */ 'v', 'a', 'g', 'r', 'a', 'n', 't', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "vakuutuskanava.fi", true */ 'v', 'a', 'k', 'u', 'u', 't', 'u', 's', 'k', 'a', 'n', 'a', 'v', 'a', '.', 'f', 'i', '\0',
   /* "val-sec.com", true */ 'v', 'a', 'l', '-', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "valbonne-consulting.com", true */ 'v', 'a', 'l', 'b', 'o', 'n', 'n', 'e', '-', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "valentin-sundermann.de", true */ 'v', 'a', 'l', 'e', 'n', 't', 'i', 'n', '-', 's', 'u', 'n', 'd', 'e', 'r', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
@@ -14807,17 +14810,16 @@ static const char kSTSHostTable[] = {
   /* "vinciconps4.it", true */ 'v', 'i', 'n', 'c', 'i', 'c', 'o', 'n', 'p', 's', '4', '.', 'i', 't', '\0',
   /* "vincitraining.com", true */ 'v', 'i', 'n', 'c', 'i', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "vineright.com", true */ 'v', 'i', 'n', 'e', 'r', 'i', 'g', 'h', 't', '.', 'c', 'o', 'm', '\0',
   /* "vinesauce.info", true */ 'v', 'i', 'n', 'e', 's', 'a', 'u', 'c', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "vinicius.sl", true */ 'v', 'i', 'n', 'i', 'c', 'i', 'u', 's', '.', 's', 'l', '\0',
   /* "vinilosdecorativos.net", true */ 'v', 'i', 'n', 'i', 'l', 'o', 's', 'd', 'e', 'c', 'o', 'r', 'a', 't', 'i', 'v', 'o', 's', '.', 'n', 'e', 't', '\0',
   /* "vinner.com.au", true */ 'v', 'i', 'n', 'n', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "vintagetrailerbuyers.com", true */ 'v', 'i', 'n', 't', 'a', 'g', 'e', 't', 'r', 'a', 'i', 'l', 'e', 'r', 'b', 'u', 'y', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
-  /* "vinyculture.com", true */ 'v', 'i', 'n', 'y', 'c', 'u', 'l', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "violenceinterrupted.org", true */ 'v', 'i', 'o', 'l', 'e', 'n', 'c', 'e', 'i', 'n', 't', 'e', 'r', 'r', 'u', 'p', 't', 'e', 'd', '.', 'o', 'r', 'g', '\0',
   /* "violin4fun.nl", true */ 'v', 'i', 'o', 'l', 'i', 'n', '4', 'f', 'u', 'n', '.', 'n', 'l', '\0',
   /* "viosey.com", true */ 'v', 'i', 'o', 's', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "viphospitality.se", true */ 'v', 'i', 'p', 'h', 'o', 's', 'p', 'i', 't', 'a', 'l', 'i', 't', 'y', '.', 's', 'e', '\0',
   /* "virginiacrimeanalysisnetwork.org", true */ 'v', 'i', 'r', 'g', 'i', 'n', 'i', 'a', 'c', 'r', 'i', 'm', 'e', 'a', 'n', 'a', 'l', 'y', 's', 'i', 's', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'o', 'r', 'g', '\0',
   /* "virtualdesignmedia.com", false */ 'v', 'i', 'r', 't', 'u', 'a', 'l', 'd', 'e', 's', 'i', 'g', 'n', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "virtuallifestyle.nl", true */ 'v', 'i', 'r', 't', 'u', 'a', 'l', 'l', 'i', 'f', 'e', 's', 't', 'y', 'l', 'e', '.', 'n', 'l', '\0',
   /* "virtualperez.com", true */ 'v', 'i', 'r', 't', 'u', 'a', 'l', 'p', 'e', 'r', 'e', 'z', '.', 'c', 'o', 'm', '\0',
@@ -14836,25 +14838,25 @@ static const char kSTSHostTable[] = {
   /* "vispaleistexel.nl", true */ 'v', 'i', 's', 'p', 'a', 'l', 'e', 'i', 's', 't', 'e', 'x', 'e', 'l', '.', 'n', 'l', '\0',
   /* "vissersgrootboek.nl", true */ 'v', 'i', 's', 's', 'e', 'r', 's', 'g', 'r', 'o', 'o', 't', 'b', 'o', 'e', 'k', '.', 'n', 'l', '\0',
   /* "vistaalmar.es", true */ 'v', 'i', 's', 't', 'a', 'a', 'l', 'm', 'a', 'r', '.', 'e', 's', '\0',
   /* "vistb.me", true */ 'v', 'i', 's', 't', 'b', '.', 'm', 'e', '\0',
   /* "visualideas.org", true */ 'v', 'i', 's', 'u', 'a', 'l', 'i', 'd', 'e', 'a', 's', '.', 'o', 'r', 'g', '\0',
   /* "vitalismaatjes.nl", true */ 'v', 'i', 't', 'a', 'l', 'i', 's', 'm', 'a', 'a', 't', 'j', 'e', 's', '.', 'n', 'l', '\0',
   /* "vitalita.cz", true */ 'v', 'i', 't', 'a', 'l', 'i', 't', 'a', '.', 'c', 'z', '\0',
   /* "vitalthings.de", true */ 'v', 'i', 't', 'a', 'l', 't', 'h', 'i', 'n', 'g', 's', '.', 'd', 'e', '\0',
-  /* "vitapingu.de", true */ 'v', 'i', 't', 'a', 'p', 'i', 'n', 'g', 'u', '.', 'd', 'e', '\0',
   /* "vitastic.nl", true */ 'v', 'i', 't', 'a', 's', 't', 'i', 'c', '.', 'n', 'l', '\0',
   /* "vitkausk.as", true */ 'v', 'i', 't', 'k', 'a', 'u', 's', 'k', '.', 'a', 's', '\0',
   /* "vitrado.de", true */ 'v', 'i', 't', 'r', 'a', 'd', 'o', '.', 'd', 'e', '\0',
   /* "vitsoft.by", true */ 'v', 'i', 't', 's', 'o', 'f', 't', '.', 'b', 'y', '\0',
   /* "vitta.me", true */ 'v', 'i', 't', 't', 'a', '.', 'm', 'e', '\0',
   /* "vivaldi.club", true */ 'v', 'i', 'v', 'a', 'l', 'd', 'i', '.', 'c', 'l', 'u', 'b', '\0',
   /* "vivatv.com.tw", true */ 'v', 'i', 'v', 'a', 't', 'v', '.', 'c', 'o', 'm', '.', 't', 'w', '\0',
   /* "vivendi.de", true */ 'v', 'i', 'v', 'e', 'n', 'd', 'i', '.', 'd', 'e', '\0',
+  /* "vivocloud.com", true */ 'v', 'i', 'v', 'o', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '\0',
   /* "vizeat.com", true */ 'v', 'i', 'z', 'e', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "vizional.com", true */ 'v', 'i', 'z', 'i', 'o', 'n', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "vizzboard.com", true */ 'v', 'i', 'z', 'z', 'b', 'o', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
   /* "vjeff.com", true */ 'v', 'j', 'e', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "vjirovsky.cz", false */ 'v', 'j', 'i', 'r', 'o', 'v', 's', 'k', 'y', '.', 'c', 'z', '\0',
   /* "vkox.com", true */ 'v', 'k', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "vksportphoto.com", true */ 'v', 'k', 's', 'p', 'o', 'r', 't', 'p', 'h', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "vldkn.net", true */ 'v', 'l', 'd', 'k', 'n', '.', 'n', 'e', 't', '\0',
@@ -14878,17 +14880,16 @@ static const char kSTSHostTable[] = {
   /* "vogler.name", true */ 'v', 'o', 'g', 'l', 'e', 'r', '.', 'n', 'a', 'm', 'e', '\0',
   /* "vogt.tech", true */ 'v', 'o', 'g', 't', '.', 't', 'e', 'c', 'h', '\0',
   /* "voidi.ca", true */ 'v', 'o', 'i', 'd', 'i', '.', 'c', 'a', '\0',
   /* "voidserv.net", true */ 'v', 'o', 'i', 'd', 's', 'e', 'r', 'v', '.', 'n', 'e', 't', '\0',
   /* "vokativy.cz", true */ 'v', 'o', 'k', 'a', 't', 'i', 'v', 'y', '.', 'c', 'z', '\0',
   /* "vokeapp.com", true */ 'v', 'o', 'k', 'e', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "volcain.io", true */ 'v', 'o', 'l', 'c', 'a', 'i', 'n', '.', 'i', 'o', '\0',
   /* "volgavibes.ru", true */ 'v', 'o', 'l', 'g', 'a', 'v', 'i', 'b', 'e', 's', '.', 'r', 'u', '\0',
-  /* "voliere-info.nl", false */ 'v', 'o', 'l', 'i', 'e', 'r', 'e', '-', 'i', 'n', 'f', 'o', '.', 'n', 'l', '\0',
   /* "volkden.com", true */ 'v', 'o', 'l', 'k', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "volker-gropp.de", true */ 'v', 'o', 'l', 'k', 'e', 'r', '-', 'g', 'r', 'o', 'p', 'p', '.', 'd', 'e', '\0',
   /* "volkergropp.de", true */ 'v', 'o', 'l', 'k', 'e', 'r', 'g', 'r', 'o', 'p', 'p', '.', 'd', 'e', '\0',
   /* "volkswurst.de", true */ 'v', 'o', 'l', 'k', 's', 'w', 'u', 'r', 's', 't', '.', 'd', 'e', '\0',
   /* "volto.io", true */ 'v', 'o', 'l', 't', 'o', '.', 'i', 'o', '\0',
   /* "voltotc.com", true */ 'v', 'o', 'l', 't', 'o', 't', 'c', '.', 'c', 'o', 'm', '\0',
   /* "vomitb.in", true */ 'v', 'o', 'm', 'i', 't', 'b', '.', 'i', 'n', '\0',
   /* "vonavy-cukor.sk", true */ 'v', 'o', 'n', 'a', 'v', 'y', '-', 'c', 'u', 'k', 'o', 'r', '.', 's', 'k', '\0',
@@ -15327,16 +15328,17 @@ static const char kSTSHostTable[] = {
   /* "wmawri.com", true */ 'w', 'm', 'a', 'w', 'r', 'i', '.', 'c', 'o', 'm', '\0',
   /* "wmfusercontent.org", true */ 'w', 'm', 'f', 'u', 's', 'e', 'r', 'c', 'o', 'n', 't', 'e', 'n', 't', '.', 'o', 'r', 'g', '\0',
   /* "wnmm.nl", true */ 'w', 'n', 'm', 'm', '.', 'n', 'l', '\0',
   /* "wnu.com", true */ 'w', 'n', 'u', '.', 'c', 'o', 'm', '\0',
   /* "wo2forum.nl", false */ 'w', 'o', '2', 'f', 'o', 'r', 'u', 'm', '.', 'n', 'l', '\0',
   /* "wobble.ninja", true */ 'w', 'o', 'b', 'b', 'l', 'e', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "wobblylang.org", true */ 'w', 'o', 'b', 'b', 'l', 'y', 'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '\0',
   /* "wochenentwicklung.com", true */ 'w', 'o', 'c', 'h', 'e', 'n', 'e', 'n', 't', 'w', 'i', 'c', 'k', 'l', 'u', 'n', 'g', '.', 'c', 'o', 'm', '\0',
+  /* "wod-stavby.cz", true */ 'w', 'o', 'd', '-', 's', 't', 'a', 'v', 'b', 'y', '.', 'c', 'z', '\0',
   /* "wodinaz.com", true */ 'w', 'o', 'd', 'i', 'n', 'a', 'z', '.', 'c', 'o', 'm', '\0',
   /* "wodka-division.de", true */ 'w', 'o', 'd', 'k', 'a', '-', 'd', 'i', 'v', 'i', 's', 'i', 'o', 'n', '.', 'd', 'e', '\0',
   /* "wofford-ecs.org", true */ 'w', 'o', 'f', 'f', 'o', 'r', 'd', '-', 'e', 'c', 's', '.', 'o', 'r', 'g', '\0',
   /* "woffs.de", true */ 'w', 'o', 'f', 'f', 's', '.', 'd', 'e', '\0',
   /* "wohlgemuth.rocks", false */ 'w', 'o', 'h', 'l', 'g', 'e', 'm', 'u', 't', 'h', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "wohnsitz-ausland.com", true */ 'w', 'o', 'h', 'n', 's', 'i', 't', 'z', '-', 'a', 'u', 's', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "wolfachtal-alpaka.de", true */ 'w', 'o', 'l', 'f', 'a', 'c', 'h', 't', 'a', 'l', '-', 'a', 'l', 'p', 'a', 'k', 'a', '.', 'd', 'e', '\0',
   /* "wolfemg.com", true */ 'w', 'o', 'l', 'f', 'e', 'm', 'g', '.', 'c', 'o', 'm', '\0',
@@ -15364,17 +15366,16 @@ static const char kSTSHostTable[] = {
   /* "wooviet.com", true */ 'w', 'o', 'o', 'v', 'i', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "worcesterfestival.co.uk", true */ 'w', 'o', 'r', 'c', 'e', 's', 't', 'e', 'r', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "word-grabber.com", true */ 'w', 'o', 'r', 'd', '-', 'g', 'r', 'a', 'b', 'b', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "wordpress.com", false */ 'w', 'o', 'r', 'd', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "wordsmart.it", true */ 'w', 'o', 'r', 'd', 's', 'm', 'a', 'r', 't', '.', 'i', 't', '\0',
   /* "wordxtra.net", true */ 'w', 'o', 'r', 'd', 'x', 't', 'r', 'a', '.', 'n', 'e', 't', '\0',
   /* "work-and-jockel.de", true */ 'w', 'o', 'r', 'k', '-', 'a', 'n', 'd', '-', 'j', 'o', 'c', 'k', 'e', 'l', '.', 'd', 'e', '\0',
   /* "workingclassmedia.com", true */ 'w', 'o', 'r', 'k', 'i', 'n', 'g', 'c', 'l', 'a', 's', 's', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
-  /* "workpermit.com.vn", true */ 'w', 'o', 'r', 'k', 'p', 'e', 'r', 'm', 'i', 't', '.', 'c', 'o', 'm', '.', 'v', 'n', '\0',
   /* "workray.com", true */ 'w', 'o', 'r', 'k', 'r', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "works-ginan.jp", true */ 'w', 'o', 'r', 'k', 's', '-', 'g', 'i', 'n', 'a', 'n', '.', 'j', 'p', '\0',
   /* "workwithgo.com", true */ 'w', 'o', 'r', 'k', 'w', 'i', 't', 'h', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "world-in-my-eyes.com", true */ 'w', 'o', 'r', 'l', 'd', '-', 'i', 'n', '-', 'm', 'y', '-', 'e', 'y', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "worldcubeassociation.org", true */ 'w', 'o', 'r', 'l', 'd', 'c', 'u', 'b', 'e', 'a', 's', 's', 'o', 'c', 'i', 'a', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "worldeventscalendars.com", true */ 'w', 'o', 'r', 'l', 'd', 'e', 'v', 'e', 'n', 't', 's', 'c', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "worldofbelia.de", true */ 'w', 'o', 'r', 'l', 'd', 'o', 'f', 'b', 'e', 'l', 'i', 'a', '.', 'd', 'e', '\0',
   /* "worldpovertysolutions.org", true */ 'w', 'o', 'r', 'l', 'd', 'p', 'o', 'v', 'e', 'r', 't', 'y', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'o', 'r', 'g', '\0',
@@ -15544,17 +15545,17 @@ static const char kSTSHostTable[] = {
   /* "xcentricmold.com", true */ 'x', 'c', 'e', 'n', 't', 'r', 'i', 'c', 'm', 'o', 'l', 'd', '.', 'c', 'o', 'm', '\0',
   /* "xclirion-support.de", true */ 'x', 'c', 'l', 'i', 'r', 'i', 'o', 'n', '-', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'd', 'e', '\0',
   /* "xd.cm", true */ 'x', 'd', '.', 'c', 'm', '\0',
   /* "xdd.io", true */ 'x', 'd', 'd', '.', 'i', 'o', '\0',
   /* "xdeftor.com", true */ 'x', 'd', 'e', 'f', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "xecureit.com", true */ 'x', 'e', 'c', 'u', 'r', 'e', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "xenophile.name", true */ 'x', 'e', 'n', 'o', 'p', 'h', 'i', 'l', 'e', '.', 'n', 'a', 'm', 'e', '\0',
   /* "xerhost.de", false */ 'x', 'e', 'r', 'h', 'o', 's', 't', '.', 'd', 'e', '\0',
-  /* "xetown.com", false */ 'x', 'e', 't', 'o', 'w', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "xetown.com", true */ 'x', 'e', 't', 'o', 'w', 'n', '.', 'c', 'o', 'm', '\0',
   /* "xfix.pw", true */ 'x', 'f', 'i', 'x', '.', 'p', 'w', '\0',
   /* "xfrag-networks.com", false */ 'x', 'f', 'r', 'a', 'g', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "xg3n1us.de", true */ 'x', 'g', '3', 'n', '1', 'u', 's', '.', 'd', 'e', '\0',
   /* "xgclan.com", true */ 'x', 'g', 'c', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "xho.me", true */ 'x', 'h', 'o', '.', 'm', 'e', '\0',
   /* "xia100.xyz", true */ 'x', 'i', 'a', '1', '0', '0', '.', 'x', 'y', 'z', '\0',
   /* "xiamuzi.com", true */ 'x', 'i', 'a', 'm', 'u', 'z', 'i', '.', 'c', 'o', 'm', '\0',
   /* "xiangweiqing.co.uk", true */ 'x', 'i', 'a', 'n', 'g', 'w', 'e', 'i', 'q', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -15816,16 +15817,17 @@ static const char kSTSHostTable[] = {
   /* "zakr.es", true */ 'z', 'a', 'k', 'r', '.', 'e', 's', '\0',
   /* "zalan.do", true */ 'z', 'a', 'l', 'a', 'n', '.', 'd', 'o', '\0',
   /* "zandcell.com", true */ 'z', 'a', 'n', 'd', 'c', 'e', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "zanthra.com", true */ 'z', 'a', 'n', 't', 'h', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "zao.fi", true */ 'z', 'a', 'o', '.', 'f', 'i', '\0',
   /* "zaoshanghao-dajia.rhcloud.com", true */ 'z', 'a', 'o', 's', 'h', 'a', 'n', 'g', 'h', 'a', 'o', '-', 'd', 'a', 'j', 'i', 'a', '.', 'r', 'h', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '\0',
   /* "zapier.com", true */ 'z', 'a', 'p', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "zappbuildapps.com", true */ 'z', 'a', 'p', 'p', 'b', 'u', 'i', 'l', 'd', 'a', 'p', 'p', 's', '.', 'c', 'o', 'm', '\0',
+  /* "zary.me", true */ 'z', 'a', 'r', 'y', '.', 'm', 'e', '\0',
   /* "zaufanatrzeciastrona.pl", true */ 'z', 'a', 'u', 'f', 'a', 'n', 'a', 't', 'r', 'z', 'e', 'c', 'i', 'a', 's', 't', 'r', 'o', 'n', 'a', '.', 'p', 'l', '\0',
   /* "zavca.com", true */ 'z', 'a', 'v', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "zbasenem.pl", true */ 'z', 'b', 'a', 's', 'e', 'n', 'e', 'm', '.', 'p', 'l', '\0',
   /* "zbchen.com", true */ 'z', 'b', 'c', 'h', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "zberger.com", true */ 'z', 'b', 'e', 'r', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "zbrane-doplnky.cz", true */ 'z', 'b', 'r', 'a', 'n', 'e', '-', 'd', 'o', 'p', 'l', 'n', 'k', 'y', '.', 'c', 'z', '\0',
   /* "zbyga.cz", true */ 'z', 'b', 'y', 'g', 'a', '.', 'c', 'z', '\0',
   /* "zcarot.com", true */ 'z', 'c', 'a', 'r', 'o', 't', '.', 'c', 'o', 'm', '\0',
@@ -16056,94 +16058,94 @@ static const nsSTSPreload kSTSPreloadLis
   { 843, true },
   { 853, true },
   { 864, true },
   { 875, true },
   { 889, true },
   { 911, true },
   { 923, true },
   { 930, true },
-  { 941, true },
-  { 948, true },
-  { 959, true },
-  { 970, true },
-  { 977, true },
-  { 984, true },
-  { 995, true },
-  { 1002, true },
-  { 1014, true },
-  { 1031, true },
-  { 1049, true },
-  { 1063, true },
-  { 1075, true },
-  { 1086, true },
+  { 939, true },
+  { 950, true },
+  { 957, true },
+  { 968, true },
+  { 979, true },
+  { 986, true },
+  { 993, true },
+  { 1004, true },
+  { 1011, true },
+  { 1023, true },
+  { 1040, true },
+  { 1058, true },
+  { 1072, true },
+  { 1084, true },
   { 1095, true },
-  { 1101, true },
-  { 1116, true },
-  { 1124, true },
+  { 1104, true },
+  { 1110, true },
+  { 1125, true },
   { 1133, true },
-  { 1141, true },
-  { 1152, true },
-  { 1162, true },
-  { 1180, true },
-  { 1196, true },
+  { 1142, true },
+  { 1150, true },
+  { 1161, true },
+  { 1171, true },
+  { 1189, true },
   { 1205, true },
-  { 1213, true },
-  { 1221, true },
-  { 1232, true },
-  { 1250, true },
-  { 1261, true },
+  { 1214, true },
+  { 1222, true },
+  { 1230, false },
+  { 1241, true },
+  { 1259, true },
   { 1270, true },
-  { 1282, true },
-  { 1296, true },
-  { 1304, true },
-  { 1314, false },
-  { 1327, true },
+  { 1279, true },
+  { 1291, true },
+  { 1305, true },
+  { 1313, true },
+  { 1323, false },
   { 1336, true },
-  { 1350, true },
+  { 1345, true },
   { 1359, true },
-  { 1380, true },
-  { 1400, true },
+  { 1368, true },
+  { 1389, true },
   { 1409, true },
-  { 1419, true },
-  { 1434, true },
-  { 1442, true },
-  { 1459, true },
-  { 1475, true },
-  { 1488, true },
-  { 1497, false },
-  { 1509, true },
-  { 1517, true },
-  { 1528, true },
-  { 1535, true },
+  { 1418, true },
+  { 1428, true },
+  { 1443, true },
+  { 1451, true },
+  { 1468, true },
+  { 1484, true },
+  { 1497, true },
+  { 1506, false },
+  { 1518, true },
+  { 1526, true },
+  { 1537, true },
   { 1544, true },
   { 1553, true },
-  { 1566, true },
+  { 1562, true },
   { 1575, true },
-  { 1594, true },
-  { 1613, true },
-  { 1625, true },
-  { 1639, true },
-  { 1651, true },
-  { 1662, true },
+  { 1584, true },
+  { 1603, true },
+  { 1622, true },
+  { 1634, true },
+  { 1648, true },
+  { 1660, false },
   { 1671, true },
-  { 1682, true },
-  { 1695, true },
-  { 1703, true },
-  { 1718, true },
-  { 1730, true },
-  { 1743, true },
-  { 1753, true },
-  { 1767, true },
-  { 1781, true },
-  { 1795, true },
-  { 1803, true },
-  { 1810, true },
-  { 1821, true },
-  { 1834, true },
+  { 1680, false },
+  { 1691, true },
+  { 1704, true },
+  { 1712, true },
+  { 1727, true },
+  { 1739, true },
+  { 1752, true },
+  { 1762, true },
+  { 1776, true },
+  { 1790, true },
+  { 1804, true },
+  { 1812, true },
+  { 1819, true },
+  { 1830, true },
   { 1843, true },
   { 1855, true },
   { 1866, true },
   { 1876, true },
   { 1887, true },
   { 1898, true },
   { 1911, true },
   { 1919, false },
@@ -16949,5440 +16951,5442 @@ static const nsSTSPreload kSTSPreloadLis
   { 13469, true },
   { 13483, true },
   { 13495, true },
   { 13513, true },
   { 13525, true },
   { 13536, true },
   { 13547, true },
   { 13560, true },
-  { 13575, true },
-  { 13586, true },
-  { 13597, true },
-  { 13608, true },
-  { 13618, true },
-  { 13639, true },
-  { 13648, true },
-  { 13655, true },
-  { 13669, false },
-  { 13682, true },
-  { 13692, true },
+  { 13573, true },
+  { 13588, true },
+  { 13599, true },
+  { 13610, true },
+  { 13621, true },
+  { 13631, true },
+  { 13652, true },
+  { 13661, true },
+  { 13668, true },
+  { 13682, false },
+  { 13695, true },
   { 13705, true },
   { 13718, true },
-  { 13730, true },
-  { 13747, true },
-  { 13758, true },
-  { 13772, true },
-  { 13782, true },
-  { 13800, true },
-  { 13810, true },
-  { 13822, true },
-  { 13836, true },
-  { 13853, true },
-  { 13867, true },
-  { 13877, true },
-  { 13893, true },
-  { 13904, true },
-  { 13921, true },
-  { 13933, true },
-  { 13955, true },
-  { 13981, true },
-  { 13996, true },
+  { 13731, true },
+  { 13743, true },
+  { 13760, true },
+  { 13771, true },
+  { 13785, true },
+  { 13795, true },
+  { 13813, true },
+  { 13823, true },
+  { 13835, true },
+  { 13849, true },
+  { 13866, true },
+  { 13880, true },
+  { 13890, true },
+  { 13906, true },
+  { 13917, true },
+  { 13934, true },
+  { 13946, true },
+  { 13968, true },
+  { 13994, true },
   { 14009, true },
-  { 14027, true },
-  { 14038, true },
-  { 14048, true },
-  { 14058, true },
-  { 14077, true },
-  { 14097, true },
-  { 14109, true },
-  { 14123, true },
-  { 14130, true },
-  { 14140, true },
-  { 14150, true },
-  { 14172, true },
-  { 14184, true },
-  { 14202, true },
-  { 14214, true },
+  { 14022, true },
+  { 14040, true },
+  { 14051, true },
+  { 14061, true },
+  { 14071, true },
+  { 14090, true },
+  { 14110, true },
+  { 14122, true },
+  { 14136, true },
+  { 14143, true },
+  { 14153, true },
+  { 14163, true },
+  { 14185, true },
+  { 14197, true },
+  { 14215, true },
   { 14227, true },
-  { 14255, true },
-  { 14264, true },
-  { 14274, true },
-  { 14282, true },
-  { 14294, false },
-  { 14314, true },
-  { 14321, true },
-  { 14337, true },
-  { 14353, true },
-  { 14368, true },
-  { 14378, true },
-  { 14396, true },
-  { 14411, true },
-  { 14438, true },
-  { 14455, true },
-  { 14473, true },
-  { 14481, true },
-  { 14495, true },
-  { 14506, true },
-  { 14515, true },
-  { 14542, true },
-  { 14550, true },
-  { 14560, true },
-  { 14576, true },
-  { 14588, true },
-  { 14603, true },
-  { 14615, true },
-  { 14630, true },
-  { 14645, true },
-  { 14657, true },
-  { 14678, true },
-  { 14695, true },
-  { 14709, true },
-  { 14721, true },
-  { 14735, true },
-  { 14745, true },
-  { 14755, true },
-  { 14770, true },
-  { 14785, true },
-  { 14796, true },
+  { 14240, true },
+  { 14268, true },
+  { 14277, true },
+  { 14287, true },
+  { 14295, true },
+  { 14307, false },
+  { 14327, true },
+  { 14334, true },
+  { 14350, true },
+  { 14366, true },
+  { 14381, true },
+  { 14391, true },
+  { 14409, true },
+  { 14424, true },
+  { 14451, true },
+  { 14468, true },
+  { 14486, true },
+  { 14494, true },
+  { 14508, true },
+  { 14519, true },
+  { 14528, true },
+  { 14555, true },
+  { 14563, true },
+  { 14573, true },
+  { 14589, true },
+  { 14601, true },
+  { 14616, true },
+  { 14628, true },
+  { 14643, true },
+  { 14658, true },
+  { 14670, true },
+  { 14691, true },
+  { 14708, true },
+  { 14722, true },
+  { 14734, true },
+  { 14748, true },
+  { 14758, true },
+  { 14768, true },
+  { 14783, true },
+  { 14798, true },
   { 14809, true },
   { 14822, true },
-  { 14834, true },
-  { 14842, true },
+  { 14835, true },
+  { 14847, true },
   { 14855, true },
-  { 14873, true },
-  { 14894, true },
-  { 14908, true },
-  { 14924, true },
-  { 14936, true },
-  { 14948, true },
-  { 14960, true },
-  { 14972, true },
-  { 14982, true },
-  { 14992, true },
-  { 15003, true },
-  { 15018, true },
+  { 14868, true },
+  { 14886, true },
+  { 14907, true },
+  { 14921, true },
+  { 14937, true },
+  { 14949, true },
+  { 14961, true },
+  { 14973, true },
+  { 14985, true },
+  { 14995, true },
+  { 15005, true },
+  { 15016, true },
   { 15031, true },
-  { 15050, true },
-  { 15062, true },
-  { 15078, true },
-  { 15090, true },
-  { 15106, true },
-  { 15125, true },
+  { 15044, true },
+  { 15063, true },
+  { 15075, true },
+  { 15091, true },
+  { 15103, true },
+  { 15119, true },
   { 15138, true },
-  { 15149, true },
-  { 15160, true },
-  { 15178, true },
-  { 15208, true },
-  { 15231, true },
-  { 15244, false },
-  { 15252, true },
-  { 15264, true },
-  { 15274, true },
-  { 15284, true },
-  { 15298, true },
-  { 15314, true },
-  { 15343, true },
-  { 15359, true },
-  { 15375, true },
-  { 15393, true },
-  { 15414, true },
-  { 15425, true },
-  { 15437, true },
-  { 15449, true },
-  { 15467, true },
-  { 15485, true },
-  { 15506, true },
-  { 15531, true },
-  { 15549, true },
-  { 15563, true },
-  { 15588, true },
-  { 15601, true },
-  { 15616, true },
-  { 15631, true },
-  { 15644, true },
-  { 15657, true },
-  { 15670, true },
-  { 15683, true },
-  { 15696, true },
-  { 15709, true },
-  { 15720, true },
-  { 15736, true },
-  { 15746, true },
-  { 15758, true },
-  { 15775, true },
-  { 15787, true },
-  { 15800, true },
-  { 15808, true },
-  { 15819, true },
-  { 15830, true },
-  { 15848, true },
-  { 15863, true },
-  { 15881, true },
-  { 15891, true },
-  { 15901, true },
-  { 15910, true },
-  { 15932, true },
-  { 15946, true },
-  { 15957, true },
-  { 15965, true },
-  { 15975, true },
-  { 15987, true },
-  { 15995, true },
-  { 16005, true },
-  { 16020, true },
-  { 16040, true },
-  { 16048, true },
-  { 16073, true },
-  { 16089, true },
-  { 16113, true },
-  { 16120, true },
-  { 16128, true },
-  { 16137, true },
+  { 15151, true },
+  { 15162, true },
+  { 15173, true },
+  { 15191, true },
+  { 15221, true },
+  { 15244, true },
+  { 15257, false },
+  { 15265, true },
+  { 15277, true },
+  { 15287, true },
+  { 15297, true },
+  { 15311, true },
+  { 15327, true },
+  { 15356, true },
+  { 15372, true },
+  { 15390, true },
+  { 15411, true },
+  { 15422, true },
+  { 15434, true },
+  { 15446, true },
+  { 15464, true },
+  { 15482, true },
+  { 15503, true },
+  { 15528, true },
+  { 15546, true },
+  { 15560, true },
+  { 15585, true },
+  { 15598, true },
+  { 15613, true },
+  { 15628, true },
+  { 15641, true },
+  { 15654, true },
+  { 15667, true },
+  { 15680, true },
+  { 15693, true },
+  { 15706, true },
+  { 15717, true },
+  { 15733, true },
+  { 15743, true },
+  { 15755, true },
+  { 15772, true },
+  { 15784, true },
+  { 15797, true },
+  { 15805, true },
+  { 15816, true },
+  { 15827, true },
+  { 15845, true },
+  { 15860, true },
+  { 15878, true },
+  { 15888, true },
+  { 15898, true },
+  { 15907, true },
+  { 15929, true },
+  { 15943, true },
+  { 15954, true },
+  { 15962, true },
+  { 15972, true },
+  { 15984, true },
+  { 15992, true },
+  { 16002, true },
+  { 16017, true },
+  { 16025, true },
+  { 16050, true },
+  { 16066, true },
+  { 16090, true },
+  { 16097, true },
+  { 16105, true },
+  { 16114, true },
+  { 16121, true },
+  { 16133, true },
   { 16144, true },
-  { 16156, true },
+  { 16155, true },
   { 16167, true },
-  { 16178, true },
-  { 16190, true },
-  { 16202, false },
-  { 16211, true },
-  { 16227, true },
-  { 16240, true },
-  { 16249, true },
-  { 16258, true },
-  { 16273, true },
-  { 16283, true },
-  { 16295, true },
-  { 16313, false },
-  { 16329, true },
-  { 16341, true },
-  { 16351, true },
-  { 16361, true },
-  { 16371, true },
-  { 16383, true },
+  { 16179, false },
+  { 16188, true },
+  { 16204, true },
+  { 16217, true },
+  { 16226, true },
+  { 16235, true },
+  { 16250, true },
+  { 16260, true },
+  { 16272, true },
+  { 16290, false },
+  { 16306, true },
+  { 16318, true },
+  { 16328, true },
+  { 16338, true },
+  { 16348, true },
+  { 16360, true },
+  { 16373, true },
+  { 16386, true },
   { 16396, true },
-  { 16409, true },
-  { 16419, true },
-  { 16429, true },
-  { 16437, true },
-  { 16449, true },
-  { 16461, true },
-  { 16474, true },
-  { 16490, true },
-  { 16506, true },
-  { 16517, false },
-  { 16527, true },
-  { 16544, true },
-  { 16552, true },
-  { 16566, true },
-  { 16596, true },
-  { 16611, false },
-  { 16620, true },
-  { 16634, true },
-  { 16648, true },
-  { 16669, true },
-  { 16680, true },
-  { 16693, true },
-  { 16717, true },
-  { 16731, true },
-  { 16744, true },
-  { 16756, true },
+  { 16406, true },
+  { 16414, true },
+  { 16426, true },
+  { 16438, true },
+  { 16451, true },
+  { 16467, true },
+  { 16483, true },
+  { 16494, false },
+  { 16504, true },
+  { 16521, true },
+  { 16535, true },
+  { 16565, true },
+  { 16580, false },
+  { 16589, true },
+  { 16603, true },
+  { 16617, true },
+  { 16638, true },
+  { 16649, true },
+  { 16662, true },
+  { 16686, true },
+  { 16700, true },
+  { 16713, true },
+  { 16725, true },
+  { 16748, true },
+  { 16759, true },
   { 16779, true },
-  { 16790, true },
-  { 16810, true },
-  { 16828, true },
-  { 16846, true },
-  { 16861, true },
-  { 16876, true },
-  { 16900, true },
-  { 16910, true },
-  { 16920, true },
-  { 16930, true },
-  { 16943, true },
-  { 16954, true },
-  { 16979, true },
+  { 16797, true },
+  { 16815, true },
+  { 16830, true },
+  { 16845, true },
+  { 16869, true },
+  { 16879, true },
+  { 16889, true },
+  { 16899, true },
+  { 16912, true },
+  { 16923, true },
+  { 16948, true },
+  { 16977, true },
+  { 16990, true },
+  { 17000, true },
   { 17008, true },
-  { 17021, true },
-  { 17031, true },
-  { 17039, true },
+  { 17017, true },
+  { 17031, false },
   { 17048, true },
-  { 17062, false },
-  { 17079, true },
-  { 17091, true },
-  { 17106, true },
-  { 17113, true },
-  { 17126, true },
+  { 17060, true },
+  { 17075, true },
+  { 17082, true },
+  { 17095, true },
+  { 17107, true },
+  { 17121, true },
+  { 17129, true },
   { 17138, true },
-  { 17152, true },
-  { 17160, true },
-  { 17169, true },
-  { 17182, true },
-  { 17194, true },
-  { 17205, true },
-  { 17215, true },
-  { 17230, true },
-  { 17247, true },
-  { 17260, true },
-  { 17270, true },
-  { 17283, true },
-  { 17297, true },
-  { 17311, true },
+  { 17151, true },
+  { 17163, true },
+  { 17174, true },
+  { 17184, true },
+  { 17199, true },
+  { 17216, true },
+  { 17229, true },
+  { 17239, true },
+  { 17252, true },
+  { 17266, true },
+  { 17280, true },
+  { 17292, true },
+  { 17307, true },
   { 17323, true },
   { 17338, true },
-  { 17354, true },
-  { 17369, true },
-  { 17383, true },
-  { 17399, true },
-  { 17411, true },
-  { 17425, true },
-  { 17437, true },
-  { 17449, true },
-  { 17460, true },
-  { 17471, true },
-  { 17486, false },
-  { 17501, false },
-  { 17517, true },
+  { 17352, true },
+  { 17365, true },
+  { 17381, true },
+  { 17393, true },
+  { 17407, true },
+  { 17419, true },
+  { 17431, true },
+  { 17442, true },
+  { 17453, true },
+  { 17468, false },
+  { 17483, false },
+  { 17499, true },
+  { 17521, true },
   { 17539, true },
-  { 17557, true },
+  { 17556, true },
   { 17574, true },
-  { 17592, true },
-  { 17603, true },
-  { 17616, true },
-  { 17633, true },
-  { 17649, true },
-  { 17669, true },
-  { 17684, true },
-  { 17699, true },
-  { 17713, true },
-  { 17724, true },
-  { 17736, true },
-  { 17749, true },
-  { 17762, true },
-  { 17776, true },
+  { 17585, true },
+  { 17598, true },
+  { 17615, true },
+  { 17631, true },
+  { 17651, true },
+  { 17666, true },
+  { 17681, true },
+  { 17695, true },
+  { 17706, true },
+  { 17718, true },
+  { 17731, true },
+  { 17744, true },
+  { 17758, true },
+  { 17771, true },
   { 17789, true },
   { 17807, true },
   { 17825, true },
-  { 17843, true },
-  { 17860, true },
-  { 17870, true },
-  { 17883, true },
-  { 17892, true },
-  { 17907, true },
-  { 17918, false },
-  { 17928, true },
-  { 17939, true },
-  { 17953, true },
-  { 17966, true },
-  { 17976, true },
-  { 17989, true },
-  { 18003, true },
-  { 18014, true },
+  { 17842, true },
+  { 17852, true },
+  { 17865, true },
+  { 17874, true },
+  { 17889, true },
+  { 17900, false },
+  { 17910, true },
+  { 17921, true },
+  { 17935, true },
+  { 17948, true },
+  { 17958, true },
+  { 17971, true },
+  { 17985, true },
+  { 17996, true },
+  { 18006, true },
   { 18024, true },
-  { 18042, true },
-  { 18051, true },
-  { 18068, true },
-  { 18088, true },
-  { 18107, true },
-  { 18122, true },
+  { 18033, true },
+  { 18050, true },
+  { 18070, true },
+  { 18089, true },
+  { 18104, true },
+  { 18124, true },
   { 18142, true },
-  { 18160, true },
-  { 18171, true },
-  { 18184, true },
-  { 18199, true },
-  { 18212, true },
-  { 18223, true },
-  { 18237, true },
-  { 18261, true },
+  { 18153, true },
+  { 18166, true },
+  { 18181, true },
+  { 18194, true },
+  { 18205, true },
+  { 18219, true },
+  { 18243, true },
+  { 18269, true },
+  { 18277, true },
   { 18287, true },
-  { 18295, true },
-  { 18305, true },
-  { 18316, true },
-  { 18327, true },
-  { 18354, true },
-  { 18366, true },
+  { 18298, true },
+  { 18309, true },
+  { 18336, true },
+  { 18348, true },
+  { 18360, true },
+  { 18369, true },
   { 18378, true },
   { 18387, true },
-  { 18396, true },
-  { 18405, true },
-  { 18420, false },
-  { 18431, true },
-  { 18440, true },
-  { 18452, true },
-  { 18461, true },
-  { 18471, true },
-  { 18482, true },
-  { 18494, true },
-  { 18504, true },
-  { 18516, true },
-  { 18530, true },
-  { 18540, true },
-  { 18550, true },
-  { 18563, true },
-  { 18573, false },
+  { 18402, false },
+  { 18413, true },
+  { 18422, true },
+  { 18434, true },
+  { 18443, true },
+  { 18453, true },
+  { 18464, true },
+  { 18476, true },
+  { 18486, true },
+  { 18498, true },
+  { 18512, true },
+  { 18522, true },
+  { 18532, true },
+  { 18545, true },
+  { 18555, false },
+  { 18566, true },
   { 18584, true },
-  { 18602, true },
-  { 18612, true },
-  { 18619, true },
-  { 18631, true },
-  { 18646, true },
-  { 18667, true },
-  { 18680, true },
-  { 18693, true },
-  { 18710, true },
-  { 18722, true },
-  { 18735, false },
-  { 18749, true },
-  { 18761, true },
-  { 18775, true },
-  { 18793, true },
-  { 18805, true },
-  { 18818, true },
-  { 18827, true },
-  { 18845, true },
-  { 18856, true },
-  { 18867, true },
-  { 18892, true },
-  { 18906, true },
-  { 18919, true },
-  { 18933, true },
-  { 18946, true },
-  { 18960, true },
-  { 18972, true },
-  { 18988, false },
+  { 18591, true },
+  { 18603, true },
+  { 18618, true },
+  { 18639, true },
+  { 18652, true },
+  { 18665, true },
+  { 18682, true },
+  { 18694, true },
+  { 18707, false },
+  { 18721, true },
+  { 18733, true },
+  { 18747, true },
+  { 18765, true },
+  { 18777, true },
+  { 18790, true },
+  { 18799, true },
+  { 18817, true },
+  { 18828, true },
+  { 18839, true },
+  { 18864, true },
+  { 18878, true },
+  { 18891, true },
+  { 18905, true },
+  { 18918, true },
+  { 18932, true },
+  { 18944, true },
+  { 18960, false },
+  { 18971, true },
+  { 18986, true },
   { 18999, true },
-  { 19014, true },
-  { 19027, true },
-  { 19040, true },
-  { 19056, true },
-  { 19078, true },
+  { 19012, true },
+  { 19028, true },
+  { 19050, true },
+  { 19062, true },
+  { 19075, true },
   { 19090, true },
-  { 19103, true },
+  { 19102, true },
   { 19118, true },
-  { 19130, true },
-  { 19146, true },
-  { 19159, true },
+  { 19131, true },
+  { 19141, true },
   { 19169, true },
-  { 19197, true },
-  { 19212, true },
-  { 19228, true },
-  { 19239, true },
-  { 19250, true },
-  { 19260, true },
-  { 19273, true },
-  { 19283, false },
-  { 19297, true },
-  { 19306, true },
-  { 19318, false },
-  { 19337, true },
-  { 19364, true },
-  { 19385, true },
-  { 19401, true },
-  { 19412, true },
-  { 19430, true },
-  { 19445, true },
-  { 19456, true },
-  { 19471, false },
-  { 19486, true },
-  { 19496, true },
-  { 19507, true },
-  { 19521, true },
+  { 19184, true },
+  { 19200, true },
+  { 19211, true },
+  { 19222, true },
+  { 19232, true },
+  { 19245, true },
+  { 19255, false },
+  { 19269, true },
+  { 19278, true },
+  { 19290, false },
+  { 19309, true },
+  { 19336, true },
+  { 19357, true },
+  { 19373, true },
+  { 19384, true },
+  { 19402, true },
+  { 19417, true },
+  { 19428, true },
+  { 19443, false },
+  { 19458, true },
+  { 19468, true },
+  { 19479, true },
+  { 19493, true },
+  { 19515, true },
+  { 19528, true },
   { 19543, true },
-  { 19556, true },
-  { 19571, true },
-  { 19586, true },
-  { 19607, true },
-  { 19617, true },
+  { 19558, true },
+  { 19579, true },
+  { 19589, true },
+  { 19603, true },
+  { 19616, true },
   { 19631, true },
-  { 19644, true },
-  { 19659, true },
-  { 19680, true },
-  { 19698, true },
-  { 19710, true },
-  { 19728, true },
-  { 19746, true },
-  { 19760, true },
-  { 19779, false },
-  { 19793, true },
-  { 19803, true },
-  { 19814, true },
+  { 19652, true },
+  { 19670, true },
+  { 19682, true },
+  { 19700, true },
+  { 19718, true },
+  { 19732, true },
+  { 19751, false },
+  { 19765, true },
+  { 19775, true },
+  { 19786, true },
+  { 19796, true },
+  { 19809, true },
   { 19824, true },
-  { 19837, true },
-  { 19852, true },
-  { 19866, true },
-  { 19879, true },
-  { 19892, true },
-  { 19909, true },
-  { 19925, true },
-  { 19935, true },
-  { 19948, true },
-  { 19965, true },
-  { 19979, true },
-  { 19997, true },
-  { 20017, true },
-  { 20031, true },
-  { 20047, true },
-  { 20056, true },
-  { 20064, true },
-  { 20073, true },
-  { 20082, true },
-  { 20099, true },
-  { 20112, true },
-  { 20122, true },
+  { 19838, true },
+  { 19851, true },
+  { 19864, true },
+  { 19881, true },
+  { 19897, true },
+  { 19907, true },
+  { 19920, true },
+  { 19937, true },
+  { 19951, true },
+  { 19969, true },
+  { 19989, true },
+  { 20003, true },
+  { 20019, true },
+  { 20028, true },
+  { 20036, true },
+  { 20045, true },
+  { 20054, true },
+  { 20071, true },
+  { 20084, true },
+  { 20094, true },
+  { 20104, true },
+  { 20114, true },
   { 20132, true },
-  { 20142, true },
-  { 20160, true },
-  { 20179, true },
-  { 20203, true },
-  { 20218, true },
-  { 20236, true },
-  { 20252, true },
-  { 20270, true },
-  { 20282, true },
-  { 20305, true },
-  { 20327, true },
-  { 20353, true },
-  { 20371, true },
-  { 20393, true },
-  { 20407, true },
-  { 20420, true },
-  { 20432, true },
-  { 20444, true },
-  { 20458, true },
-  { 20476, true },
-  { 20491, true },
-  { 20503, true },
-  { 20525, true },
-  { 20542, true },
-  { 20557, true },
-  { 20578, true },
-  { 20592, true },
-  { 20611, true },
-  { 20632, true },
-  { 20649, true },
-  { 20663, true },
-  { 20684, true },
-  { 20697, true },
-  { 20713, true },
-  { 20726, true },
-  { 20745, true },
-  { 20762, true },
-  { 20780, true },
-  { 20798, true },
-  { 20807, true },
-  { 20823, true },
-  { 20839, true },
-  { 20858, true },
-  { 20876, true },
-  { 20892, true },
-  { 20906, true },
-  { 20918, true },
-  { 20929, true },
-  { 20943, true },
-  { 20953, true },
-  { 20964, true },
-  { 20973, false },
+  { 20151, true },
+  { 20175, true },
+  { 20190, true },
+  { 20208, true },
+  { 20224, true },
+  { 20242, true },
+  { 20254, true },
+  { 20277, true },
+  { 20299, true },
+  { 20325, true },
+  { 20343, true },
+  { 20365, true },
+  { 20379, true },
+  { 20392, true },
+  { 20404, true },
+  { 20416, true },
+  { 20430, true },
+  { 20448, true },
+  { 20463, true },
+  { 20475, true },
+  { 20497, true },
+  { 20514, true },
+  { 20529, true },
+  { 20550, true },
+  { 20564, true },
+  { 20583, true },
+  { 20604, true },
+  { 20621, true },
+  { 20635, true },
+  { 20656, true },
+  { 20669, true },
+  { 20685, true },
+  { 20698, true },
+  { 20717, true },
+  { 20734, true },
+  { 20752, true },
+  { 20770, true },
+  { 20779, true },
+  { 20795, true },
+  { 20811, true },
+  { 20830, true },
+  { 20848, true },
+  { 20864, true },
+  { 20878, true },
+  { 20890, true },
+  { 20901, true },
+  { 20915, true },
+  { 20925, true },
+  { 20936, true },
+  { 20945, false },
+  { 20954, true },
+  { 20968, true },
   { 20982, true },
-  { 20996, true },
-  { 21010, true },
-  { 21022, true },
-  { 21037, true },
+  { 20994, true },
+  { 21009, true },
+  { 21021, true },
+  { 21036, true },
   { 21049, true },
-  { 21064, true },
-  { 21077, true },
-  { 21088, true },
-  { 21111, true },
-  { 21123, true },
-  { 21138, true },
-  { 21154, true },
-  { 21163, true },
-  { 21178, true },
+  { 21060, true },
+  { 21083, true },
+  { 21095, true },
+  { 21110, true },
+  { 21126, true },
+  { 21135, true },
+  { 21150, true },
+  { 21166, true },
+  { 21179, true },
   { 21194, true },
   { 21207, true },
-  { 21222, true },
-  { 21235, true },
-  { 21245, true },
-  { 21265, true },
-  { 21278, true },
-  { 21297, true },
-  { 21307, true },
-  { 21317, true },
-  { 21329, true },
-  { 21344, true },
-  { 21359, true },
-  { 21374, true },
-  { 21384, true },
-  { 21399, true },
+  { 21217, true },
+  { 21237, true },
+  { 21250, true },
+  { 21269, true },
+  { 21279, true },
+  { 21289, true },
+  { 21301, true },
+  { 21316, true },
+  { 21331, true },
+  { 21346, true },
+  { 21356, true },
+  { 21371, true },
+  { 21387, true },
+  { 21406, true },
   { 21415, true },
-  { 21434, true },
-  { 21443, true },
-  { 21472, true },
-  { 21485, true },
+  { 21444, true },
+  { 21457, true },
+  { 21477, true },
+  { 21492, true },
   { 21505, true },
   { 21520, true },
-  { 21533, true },
-  { 21548, true },
-  { 21563, true },
-  { 21578, true },
-  { 21588, true },
-  { 21598, true },
-  { 21613, true },
+  { 21535, true },
+  { 21550, true },
+  { 21560, true },
+  { 21570, true },
+  { 21585, true },
+  { 21607, true },
+  { 21622, true },
   { 21635, true },
-  { 21650, true },
-  { 21663, true },
-  { 21690, true },
-  { 21704, true },
-  { 21716, true },
-  { 21731, true },
-  { 21745, true },
-  { 21755, true },
-  { 21776, true },
-  { 21793, true },
-  { 21815, true },
-  { 21833, false },
-  { 21852, true },
-  { 21866, true },
-  { 21878, true },
-  { 21893, true },
-  { 21910, true },
-  { 21925, true },
-  { 21936, true },
-  { 21946, true },
-  { 21962, true },
-  { 21980, true },
-  { 21992, true },
-  { 22004, true },
-  { 22034, true },
-  { 22048, false },
-  { 22061, true },
-  { 22079, true },
-  { 22092, true },
-  { 22104, true },
-  { 22127, true },
-  { 22146, true },
-  { 22159, true },
-  { 22167, false },
-  { 22178, true },
-  { 22196, true },
-  { 22220, true },
-  { 22240, true },
-  { 22252, true },
+  { 21662, true },
+  { 21676, true },
+  { 21688, true },
+  { 21703, true },
+  { 21717, true },
+  { 21727, true },
+  { 21748, true },
+  { 21765, true },
+  { 21787, true },
+  { 21805, false },
+  { 21824, true },
+  { 21838, true },
+  { 21850, true },
+  { 21865, true },
+  { 21882, true },
+  { 21897, true },
+  { 21908, true },
+  { 21918, true },
+  { 21934, true },
+  { 21952, true },
+  { 21964, true },
+  { 21976, true },
+  { 22006, true },
+  { 22020, false },
+  { 22033, true },
+  { 22051, true },
+  { 22064, true },
+  { 22076, true },
+  { 22099, true },
+  { 22118, true },
+  { 22131, true },
+  { 22139, false },
+  { 22150, true },
+  { 22168, true },
+  { 22192, true },
+  { 22212, true },
+  { 22224, true },
+  { 22245, true },
+  { 22256, true },
   { 22273, true },
-  { 22284, true },
-  { 22301, true },
-  { 22319, true },
-  { 22332, true },
+  { 22291, true },
+  { 22304, true },
+  { 22318, true },
+  { 22335, true },
   { 22346, true },
-  { 22363, true },
-  { 22374, true },
-  { 22383, true },
-  { 22395, true },
-  { 22406, true },
-  { 22416, true },
-  { 22430, true },
-  { 22448, true },
-  { 22461, true },
-  { 22472, true },
-  { 22486, true },
-  { 22498, true },
-  { 22509, true },
-  { 22520, true },
-  { 22533, true },
-  { 22545, true },
-  { 22556, true },
-  { 22575, true },
-  { 22591, true },
-  { 22605, true },
-  { 22617, true },
-  { 22632, true },
-  { 22641, true },
-  { 22656, true },
-  { 22670, true },
-  { 22683, true },
-  { 22695, true },
-  { 22707, true },
-  { 22721, true },
-  { 22732, true },
-  { 22746, true },
-  { 22757, true },
-  { 22768, true },
-  { 22778, true },
-  { 22788, true },
-  { 22801, true },
-  { 22812, true },
-  { 22823, true },
-  { 22834, true },
-  { 22847, true },
-  { 22861, true },
-  { 22873, true },
-  { 22887, true },
-  { 22899, true },
-  { 22912, true },
+  { 22355, true },
+  { 22367, true },
+  { 22378, true },
+  { 22388, true },
+  { 22402, true },
+  { 22420, true },
+  { 22433, true },
+  { 22444, true },
+  { 22458, true },
+  { 22470, true },
+  { 22481, true },
+  { 22492, true },
+  { 22505, true },
+  { 22517, true },
+  { 22528, true },
+  { 22547, true },
+  { 22563, true },
+  { 22577, true },
+  { 22589, true },
+  { 22604, true },
+  { 22613, true },
+  { 22628, true },
+  { 22642, true },
+  { 22655, true },
+  { 22667, true },
+  { 22679, true },
+  { 22693, true },
+  { 22704, true },
+  { 22718, true },
+  { 22729, true },
+  { 22740, true },
+  { 22750, true },
+  { 22760, true },
+  { 22773, true },
+  { 22784, true },
+  { 22795, true },
+  { 22806, true },
+  { 22819, true },
+  { 22833, true },
+  { 22845, true },
+  { 22859, true },
+  { 22871, true },
+  { 22884, true },
+  { 22909, true },
+  { 22926, true },
   { 22937, true },
-  { 22949, true },
-  { 22966, true },
-  { 22977, true },
-  { 22988, true },
-  { 23007, true },
-  { 23023, true },
-  { 23033, true },
-  { 23044, true },
-  { 23056, true },
-  { 23071, true },
-  { 23090, true },
-  { 23107, true },
-  { 23125, false },
-  { 23133, true },
-  { 23146, true },
-  { 23158, true },
+  { 22948, true },
+  { 22967, true },
+  { 22983, true },
+  { 22993, true },
+  { 23004, true },
+  { 23016, true },
+  { 23031, true },
+  { 23050, true },
+  { 23067, true },
+  { 23085, false },
+  { 23093, true },
+  { 23106, true },
+  { 23118, true },
+  { 23130, true },
+  { 23144, true },
+  { 23157, true },
   { 23170, true },
-  { 23184, true },
-  { 23197, true },
-  { 23210, true },
-  { 23226, true },
-  { 23240, true },
-  { 23257, true },
-  { 23274, true },
-  { 23287, true },
-  { 23300, true },
-  { 23313, true },
-  { 23326, true },
-  { 23339, true },
-  { 23352, true },
-  { 23365, true },
-  { 23378, true },
-  { 23391, true },
-  { 23404, true },
-  { 23417, true },
-  { 23430, true },
-  { 23443, true },
-  { 23456, true },
-  { 23473, true },
-  { 23488, true },
-  { 23505, true },
-  { 23518, true },
-  { 23530, true },
-  { 23552, true },
-  { 23564, true },
-  { 23587, true },
-  { 23611, true },
-  { 23629, true },
+  { 23186, true },
+  { 23200, true },
+  { 23217, true },
+  { 23234, true },
+  { 23247, true },
+  { 23260, true },
+  { 23273, true },
+  { 23286, true },
+  { 23299, true },
+  { 23312, true },
+  { 23325, true },
+  { 23338, true },
+  { 23351, true },
+  { 23364, true },
+  { 23377, true },
+  { 23390, true },
+  { 23403, true },
+  { 23416, true },
+  { 23433, true },
+  { 23448, true },
+  { 23465, true },
+  { 23478, true },
+  { 23490, true },
+  { 23512, true },
+  { 23524, true },
+  { 23547, true },
+  { 23571, true },
+  { 23589, true },
+  { 23602, true },
+  { 23621, true },
   { 23642, true },
-  { 23661, true },
-  { 23682, true },
-  { 23695, true },
-  { 23710, true },
-  { 23728, true },
+  { 23655, true },
+  { 23670, true },
+  { 23688, true },
+  { 23704, true },
+  { 23720, true },
+  { 23730, true },
   { 23744, true },
-  { 23760, true },
-  { 23770, true },
-  { 23784, true },
-  { 23799, true },
-  { 23818, true },
-  { 23835, true },
-  { 23846, true },
-  { 23862, true },
-  { 23874, true },
-  { 23884, true },
-  { 23900, true },
-  { 23910, true },
-  { 23931, true },
-  { 23953, true },
-  { 23965, true },
-  { 23976, true },
-  { 23991, true },
-  { 24002, true },
-  { 24017, true },
-  { 24032, true },
-  { 24044, true },
-  { 24063, true },
-  { 24076, true },
-  { 24090, true },
-  { 24112, true },
-  { 24131, true },
-  { 24151, true },
-  { 24159, true },
-  { 24172, true },
-  { 24186, true },
-  { 24197, true },
-  { 24210, true },
-  { 24225, true },
-  { 24241, true },
-  { 24256, true },
-  { 24270, true },
-  { 24282, true },
-  { 24299, false },
-  { 24315, false },
-  { 24335, true },
-  { 24348, true },
-  { 24364, true },
-  { 24389, true },
-  { 24402, true },
-  { 24415, true },
-  { 24426, true },
-  { 24435, true },
-  { 24444, true },
-  { 24460, true },
+  { 23759, true },
+  { 23778, true },
+  { 23795, true },
+  { 23806, true },
+  { 23822, true },
+  { 23834, true },
+  { 23844, true },
+  { 23860, true },
+  { 23870, true },
+  { 23891, true },
+  { 23913, true },
+  { 23925, true },
+  { 23936, true },
+  { 23951, true },
+  { 23962, true },
+  { 23977, true },
+  { 23992, true },
+  { 24004, true },
+  { 24023, true },
+  { 24036, true },
+  { 24050, true },
+  { 24072, true },
+  { 24091, true },
+  { 24111, true },
+  { 24119, true },
+  { 24132, true },
+  { 24146, true },
+  { 24157, true },
+  { 24170, true },
+  { 24185, true },
+  { 24201, true },
+  { 24216, true },
+  { 24230, true },
+  { 24242, true },
+  { 24259, false },
+  { 24275, false },
+  { 24295, true },
+  { 24308, true },
+  { 24324, true },
+  { 24349, true },
+  { 24362, true },
+  { 24375, true },
+  { 24386, true },
+  { 24395, true },
+  { 24404, true },
+  { 24420, true },
+  { 24434, true },
+  { 24450, true },
+  { 24461, true },
   { 24474, true },
-  { 24490, true },
-  { 24501, true },
-  { 24514, true },
-  { 24529, true },
-  { 24543, true },
-  { 24555, true },
-  { 24567, true },
-  { 24591, true },
-  { 24604, true },
-  { 24617, true },
-  { 24638, true },
-  { 24658, true },
-  { 24672, true },
+  { 24489, true },
+  { 24503, true },
+  { 24515, true },
+  { 24527, true },
+  { 24551, true },
+  { 24564, true },
+  { 24577, true },
+  { 24598, true },
+  { 24618, true },
+  { 24632, true },
+  { 24647, true },
+  { 24656, true },
+  { 24667, true },
+  { 24677, true },
   { 24687, true },
-  { 24696, true },
-  { 24707, true },
-  { 24717, true },
-  { 24727, true },
-  { 24745, true },
-  { 24770, true },
-  { 24792, true },
-  { 24805, true },
-  { 24818, true },
-  { 24829, true },
-  { 24837, true },
+  { 24705, true },
+  { 24730, true },
+  { 24752, true },
+  { 24765, true },
+  { 24778, true },
+  { 24789, true },
+  { 24797, true },
+  { 24816, true },
+  { 24826, true },
+  { 24839, true },
   { 24856, true },
-  { 24866, true },
-  { 24879, true },
-  { 24896, true },
+  { 24873, true },
+  { 24889, true },
+  { 24901, true },
   { 24913, true },
-  { 24929, true },
-  { 24941, true },
-  { 24953, true },
-  { 24964, true },
-  { 24978, true },
-  { 25002, true },
-  { 25017, true },
-  { 25032, true },
-  { 25054, true },
-  { 25064, true },
-  { 25080, true },
-  { 25091, true },
-  { 25112, true },
-  { 25125, true },
-  { 25145, true },
-  { 25156, true },
-  { 25164, false },
-  { 25176, true },
-  { 25188, true },
-  { 25207, true },
-  { 25221, true },
-  { 25236, true },
+  { 24924, true },
+  { 24938, true },
+  { 24962, true },
+  { 24977, true },
+  { 24992, true },
+  { 25014, true },
+  { 25024, true },
+  { 25040, true },
+  { 25051, true },
+  { 25072, true },
+  { 25085, true },
+  { 25105, true },
+  { 25116, true },
+  { 25124, false },
+  { 25136, true },
+  { 25148, true },
+  { 25167, true },
+  { 25181, true },
+  { 25196, true },
+  { 25211, true },
+  { 25226, true },
+  { 25241, true },
   { 25251, true },
-  { 25266, true },
-  { 25281, true },
-  { 25291, true },
-  { 25301, true },
-  { 25313, false },
-  { 25322, true },
-  { 25336, true },
-  { 25348, true },
-  { 25374, true },
-  { 25382, true },
-  { 25397, true },
-  { 25409, true },
-  { 25421, true },
-  { 25439, true },
-  { 25459, true },
-  { 25475, true },
-  { 25487, true },
-  { 25505, true },
-  { 25517, true },
-  { 25531, true },
-  { 25551, true },
+  { 25261, true },
+  { 25273, false },
+  { 25282, true },
+  { 25296, true },
+  { 25308, true },
+  { 25334, true },
+  { 25342, true },
+  { 25357, true },
+  { 25369, true },
+  { 25381, true },
+  { 25399, true },
+  { 25419, true },
+  { 25435, true },
+  { 25447, true },
+  { 25465, true },
+  { 25477, true },
+  { 25491, true },
+  { 25511, true },
+  { 25523, true },
+  { 25537, true },
+  { 25554, true },
   { 25563, true },
-  { 25577, true },
-  { 25594, true },
-  { 25603, true },
-  { 25613, true },
-  { 25625, true },
-  { 25647, false },
-  { 25661, true },
-  { 25677, true },
-  { 25694, true },
-  { 25706, true },
-  { 25724, false },
-  { 25746, false },
-  { 25771, false },
-  { 25795, true },
-  { 25807, true },
-  { 25817, true },
+  { 25573, true },
+  { 25585, true },
+  { 25607, false },
+  { 25621, true },
+  { 25637, true },
+  { 25654, true },
+  { 25666, true },
+  { 25684, false },
+  { 25706, false },
+  { 25731, false },
+  { 25755, true },
+  { 25767, true },
+  { 25777, true },
+  { 25790, true },
+  { 25800, true },
+  { 25810, true },
+  { 25820, true },
   { 25830, true },
   { 25840, true },
   { 25850, true },
   { 25860, true },
-  { 25870, true },
-  { 25880, true },
-  { 25890, true },
-  { 25900, true },
-  { 25914, true },
-  { 25932, true },
-  { 25947, true },
-  { 25961, true },
-  { 25973, true },
+  { 25874, true },
+  { 25892, true },
+  { 25907, true },
+  { 25921, true },
+  { 25933, true },
+  { 25945, true },
+  { 25956, true },
+  { 25970, true },
   { 25985, true },
-  { 25996, true },
-  { 26010, true },
-  { 26025, true },
-  { 26039, true },
-  { 26046, true },
-  { 26060, false },
+  { 25999, true },
+  { 26006, true },
+  { 26020, false },
+  { 26040, true },
+  { 26061, true },
   { 26080, true },
-  { 26101, true },
-  { 26120, true },
-  { 26135, true },
-  { 26147, true },
-  { 26172, true },
-  { 26183, true },
-  { 26194, true },
-  { 26206, true },
-  { 26219, false },
-  { 26232, true },
-  { 26249, true },
+  { 26095, true },
+  { 26107, true },
+  { 26132, true },
+  { 26143, true },
+  { 26154, true },
+  { 26166, true },
+  { 26179, false },
+  { 26192, true },
+  { 26209, true },
+  { 26225, true },
+  { 26238, true },
+  { 26250, true },
   { 26265, true },
-  { 26278, true },
-  { 26290, true },
-  { 26305, true },
-  { 26315, true },
-  { 26340, true },
-  { 26356, true },
-  { 26370, true },
-  { 26387, true },
-  { 26406, true },
-  { 26416, true },
-  { 26436, true },
-  { 26448, true },
+  { 26275, true },
+  { 26300, true },
+  { 26316, true },
+  { 26330, true },
+  { 26347, true },
+  { 26366, true },
+  { 26376, true },
+  { 26396, true },
+  { 26408, true },
+  { 26424, true },
+  { 26452, false },
   { 26464, true },
-  { 26492, false },
-  { 26504, true },
-  { 26517, true },
-  { 26534, true },
-  { 26551, true },
-  { 26560, true },
-  { 26570, true },
-  { 26579, true },
-  { 26596, true },
-  { 26605, true },
-  { 26612, true },
-  { 26627, true },
-  { 26638, false },
-  { 26654, true },
-  { 26671, true },
+  { 26477, true },
+  { 26494, true },
+  { 26511, true },
+  { 26520, true },
+  { 26530, true },
+  { 26539, true },
+  { 26556, true },
+  { 26565, true },
+  { 26572, true },
+  { 26587, true },
+  { 26598, false },
+  { 26614, true },
+  { 26631, true },
+  { 26645, true },
+  { 26655, true },
+  { 26665, true },
   { 26685, true },
-  { 26695, true },
   { 26705, true },
-  { 26725, true },
-  { 26745, true },
-  { 26756, true },
-  { 26774, true },
-  { 26789, true },
-  { 26802, true },
-  { 26817, true },
-  { 26833, true },
-  { 26859, true },
-  { 26876, true },
-  { 26889, true },
-  { 26897, true },
-  { 26920, true },
-  { 26934, true },
-  { 26946, true },
-  { 26956, true },
-  { 26981, true },
-  { 26998, false },
-  { 27019, false },
-  { 27041, false },
-  { 27060, false },
-  { 27078, true },
-  { 27094, true },
-  { 27122, true },
-  { 27133, true },
-  { 27148, true },
-  { 27167, true },
-  { 27190, true },
-  { 27214, true },
-  { 27228, true },
+  { 26716, true },
+  { 26734, true },
+  { 26749, true },
+  { 26762, true },
+  { 26777, true },
+  { 26793, true },
+  { 26819, true },
+  { 26836, true },
+  { 26849, true },
+  { 26857, true },
+  { 26880, true },
+  { 26894, true },
+  { 26906, true },
+  { 26916, true },
+  { 26941, true },
+  { 26958, false },
+  { 26979, false },
+  { 27001, false },
+  { 27020, false },
+  { 27038, true },
+  { 27054, true },
+  { 27082, true },
+  { 27093, true },
+  { 27108, true },
+  { 27127, true },
+  { 27150, true },
+  { 27174, true },
+  { 27188, true },
+  { 27199, true },
+  { 27221, true },
   { 27239, true },
-  { 27261, true },
-  { 27279, true },
-  { 27294, true },
-  { 27309, true },
-  { 27322, true },
-  { 27335, true },
-  { 27350, true },
-  { 27365, true },
-  { 27380, true },
-  { 27407, true },
-  { 27419, true },
-  { 27434, true },
-  { 27453, true },
+  { 27254, true },
+  { 27269, true },
+  { 27282, true },
+  { 27295, true },
+  { 27310, true },
+  { 27325, true },
+  { 27340, true },
+  { 27367, true },
+  { 27379, true },
+  { 27394, true },
+  { 27413, true },
+  { 27431, true },
+  { 27439, true },
+  { 27447, true },
+  { 27459, true },
   { 27471, true },
-  { 27479, true },
-  { 27487, true },
-  { 27499, true },
-  { 27511, true },
-  { 27525, true },
-  { 27543, true },
-  { 27561, true },
-  { 27576, true },
-  { 27591, true },
-  { 27606, true },
-  { 27622, true },
-  { 27639, true },
-  { 27648, true },
-  { 27659, true },
-  { 27672, true },
-  { 27682, true },
-  { 27695, false },
-  { 27709, true },
-  { 27721, true },
-  { 27731, true },
-  { 27747, false },
-  { 27754, true },
-  { 27764, true },
-  { 27778, true },
-  { 27793, true },
-  { 27801, true },
-  { 27814, true },
-  { 27822, true },
-  { 27832, true },
-  { 27850, true },
-  { 27868, true },
+  { 27485, true },
+  { 27503, true },
+  { 27521, true },
+  { 27536, true },
+  { 27551, true },
+  { 27566, true },
+  { 27582, true },
+  { 27599, true },
+  { 27608, true },
+  { 27619, true },
+  { 27632, true },
+  { 27642, true },
+  { 27655, false },
+  { 27669, true },
+  { 27681, true },
+  { 27691, true },
+  { 27707, false },
+  { 27714, true },
+  { 27724, true },
+  { 27738, true },
+  { 27753, true },
+  { 27761, true },
+  { 27774, true },
+  { 27782, true },
+  { 27792, true },
+  { 27810, true },
+  { 27828, true },
+  { 27839, true },
+  { 27852, true },
+  { 27865, true },
   { 27879, true },
-  { 27892, true },
-  { 27905, true },
-  { 27919, true },
-  { 27928, true },
-  { 27943, true },
-  { 27972, true },
-  { 27989, true },
-  { 28007, true },
-  { 28017, true },
-  { 28031, true },
-  { 28042, true },
-  { 28069, true },
-  { 28089, true },
-  { 28106, true },
-  { 28120, true },
-  { 28142, true },
-  { 28167, true },
-  { 28180, true },
-  { 28193, true },
-  { 28210, true },
-  { 28228, true },
-  { 28243, true },
-  { 28258, true },
-  { 28269, true },
-  { 28279, true },
-  { 28300, true },
-  { 28310, false },
-  { 28329, true },
-  { 28341, true },
-  { 28370, true },
-  { 28388, true },
-  { 28406, true },
-  { 28424, true },
-  { 28445, true },
-  { 28459, true },
-  { 28473, true },
-  { 28481, true },
-  { 28491, true },
+  { 27888, true },
+  { 27903, true },
+  { 27932, true },
+  { 27949, true },
+  { 27967, true },
+  { 27977, true },
+  { 27991, true },
+  { 28002, true },
+  { 28029, true },
+  { 28049, true },
+  { 28066, true },
+  { 28080, true },
+  { 28102, true },
+  { 28127, true },
+  { 28140, true },
+  { 28153, true },
+  { 28170, true },
+  { 28188, true },
+  { 28203, true },
+  { 28218, true },
+  { 28229, true },
+  { 28239, true },
+  { 28260, true },
+  { 28270, false },
+  { 28289, true },
+  { 28301, true },
+  { 28330, true },
+  { 28348, true },
+  { 28366, true },
+  { 28384, true },
+  { 28405, true },
+  { 28419, true },
+  { 28433, true },
+  { 28441, true },
+  { 28451, true },
+  { 28464, true },
+  { 28476, true },
+  { 28488, true },
   { 28504, true },
-  { 28516, true },
-  { 28528, true },
-  { 28544, true },
-  { 28558, true },
-  { 28580, true },
-  { 28599, true },
-  { 28612, true },
-  { 28625, true },
-  { 28644, true },
-  { 28659, true },
-  { 28677, true },
-  { 28690, false },
-  { 28700, true },
-  { 28722, true },
-  { 28736, true },
-  { 28759, true },
-  { 28775, true },
-  { 28790, true },
-  { 28806, true },
-  { 28823, true },
-  { 28834, false },
-  { 28842, true },
-  { 28858, true },
-  { 28878, true },
-  { 28892, true },
-  { 28907, true },
+  { 28518, true },
+  { 28540, true },
+  { 28559, true },
+  { 28572, true },
+  { 28585, true },
+  { 28604, true },
+  { 28619, true },
+  { 28637, true },
+  { 28650, false },
+  { 28660, true },
+  { 28682, true },
+  { 28696, true },
+  { 28719, true },
+  { 28735, true },
+  { 28750, true },
+  { 28766, true },
+  { 28783, true },
+  { 28794, false },
+  { 28802, true },
+  { 28818, true },
+  { 28838, true },
+  { 28852, true },
+  { 28867, true },
+  { 28875, true },
+  { 28890, true },
+  { 28903, true },
   { 28915, true },
-  { 28930, true },
-  { 28943, true },
-  { 28955, true },
-  { 28968, true },
-  { 28981, false },
-  { 29003, true },
-  { 29027, true },
-  { 29050, true },
-  { 29068, true },
-  { 29083, true },
-  { 29110, true },
-  { 29136, true },
-  { 29163, true },
-  { 29179, true },
-  { 29197, true },
-  { 29226, true },
-  { 29242, true },
-  { 29258, true },
-  { 29270, true },
-  { 29283, true },
+  { 28928, true },
+  { 28941, false },
+  { 28963, true },
+  { 28987, true },
+  { 29010, true },
+  { 29028, true },
+  { 29043, true },
+  { 29070, true },
+  { 29096, true },
+  { 29123, true },
+  { 29139, true },
+  { 29157, true },
+  { 29186, true },
+  { 29202, true },
+  { 29218, true },
+  { 29230, true },
+  { 29243, true },
+  { 29254, true },
+  { 29272, true },
+  { 29285, true },
   { 29294, true },
-  { 29312, true },
-  { 29325, true },
-  { 29334, true },
-  { 29343, true },
-  { 29360, true },
-  { 29373, true },
-  { 29382, true },
-  { 29399, true },
-  { 29407, true },
-  { 29416, true },
-  { 29425, false },
-  { 29436, true },
-  { 29460, true },
-  { 29470, true },
-  { 29480, true },
-  { 29489, true },
-  { 29502, true },
+  { 29303, true },
+  { 29320, true },
+  { 29333, true },
+  { 29342, true },
+  { 29359, true },
+  { 29367, true },
+  { 29376, true },
+  { 29385, false },
+  { 29396, true },
+  { 29420, true },
+  { 29430, true },
+  { 29440, true },
+  { 29449, true },
+  { 29462, true },
+  { 29475, true },
+  { 29487, true },
+  { 29501, true },
   { 29515, true },
-  { 29527, true },
-  { 29541, true },
-  { 29555, true },
-  { 29573, true },
-  { 29588, true },
-  { 29602, true },
-  { 29614, true },
+  { 29533, true },
+  { 29548, true },
+  { 29562, true },
+  { 29574, true },
+  { 29590, true },
+  { 29603, true },
+  { 29618, true },
   { 29630, true },
-  { 29643, true },
-  { 29658, true },
-  { 29670, true },
-  { 29685, true },
-  { 29699, true },
-  { 29708, true },
-  { 29717, true },
-  { 29731, true },
-  { 29740, true },
-  { 29754, true },
-  { 29764, true },
-  { 29777, true },
+  { 29645, true },
+  { 29659, true },
+  { 29668, true },
+  { 29677, true },
+  { 29691, true },
+  { 29700, true },
+  { 29714, true },
+  { 29724, true },
+  { 29737, true },
+  { 29747, true },
+  { 29757, true },
+  { 29772, true },
   { 29787, true },
-  { 29797, true },
-  { 29812, true },
-  { 29827, true },
-  { 29841, true },
-  { 29856, true },
-  { 29875, true },
-  { 29891, true },
-  { 29905, true },
-  { 29921, true },
-  { 29932, true },
-  { 29946, true },
-  { 29956, true },
-  { 29967, true },
-  { 29983, true },
-  { 29995, true },
-  { 30011, true },
-  { 30025, true },
+  { 29801, true },
+  { 29816, true },
+  { 29835, true },
+  { 29851, true },
+  { 29865, true },
+  { 29881, true },
+  { 29892, true },
+  { 29906, true },
+  { 29916, true },
+  { 29927, true },
+  { 29943, true },
+  { 29955, true },
+  { 29971, true },
+  { 29985, true },
+  { 29990, true },
+  { 30001, true },
+  { 30009, true },
+  { 30017, true },
+  { 30024, true },
   { 30030, true },
-  { 30041, true },
+  { 30040, true },
   { 30049, true },
-  { 30057, true },
-  { 30064, true },
-  { 30070, true },
-  { 30080, true },
-  { 30089, true },
-  { 30099, true },
-  { 30128, true },
-  { 30143, false },
-  { 30163, true },
-  { 30173, tr