Merge mozilla-central to inbound. r=merge a=merge on a CLOSED TREE
authorNarcis Beleuzu <nbeleuzu@mozilla.com>
Wed, 10 Jan 2018 02:02:13 +0200
changeset 450264 9812c5d6f760aa9aafeee791692f9a056335053a
parent 450263 c21d8dfed525fb64b318127c13b9679c62d337d7 (current diff)
parent 450166 e4de69553e3faf8136eb9bb7f2f741e1b7e6f866 (diff)
child 450265 fa08ddd9db32181167c5823fc20cdb2c3fb980ce
push id8527
push userCallek@gmail.com
push dateThu, 11 Jan 2018 21:05:50 +0000
treeherdermozilla-beta@95342d212a7a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge, merge
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-central to inbound. r=merge a=merge on a CLOSED TREE
devtools/client/shared/components/Tree.js
toolkit/components/telemetry/Histograms.json
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -964,20 +964,16 @@
     <emItem blockID="i226" id="{462be121-2b54-4218-bf00-b9bf8135b23f}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
     <emItem blockID="i44" id="sigma@labs.mozilla">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
-    <emItem blockID="i258" id="helperbar@helperbar.com">
-      <prefs/>
-      <versionRange minVersion="0" maxVersion="1.0" severity="1"/>
-    </emItem>
     <emItem blockID="i96" id="youtubeee@youtuber3.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i564" id="/^(firefox@vebergreat\.net|EFGLQA@78ETGYN-0W7FN789T87\.COM)$/">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
@@ -1459,16 +1455,20 @@
     <emItem blockID="i68" id="flashupdate@adobe.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i492" id="{af95cc15-3b9b-45ae-8d9b-98d08eda3111}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
+    <emItem blockID="674b6e19-f087-4706-a91d-1e723ed6f79e" id="{1490068c-d8b7-4bd2-9621-a648942b312c}">
+      <prefs/>
+      <versionRange minVersion="0" maxVersion="*" severity="3"/>
+    </emItem>
     <emItem blockID="i488" id="jid1-4P0kohSJxU1qGg@jetpack">
       <prefs/>
       <versionRange minVersion="1.2.50" maxVersion="1.2.50" severity="1"/>
     </emItem>
     <emItem blockID="i314" id="crossriderapp8812@crossrider.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
@@ -2146,16 +2146,20 @@
     <emItem blockID="i13" id="{E8E88AB0-7182-11DF-904E-6045E0D72085}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i117" id="{ce7e73df-6a44-4028-8079-5927a588c948}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="1.0.8" severity="1"/>
     </emItem>
+    <emItem blockID="i258" id="helperbar@helperbar.com">
+      <prefs/>
+      <versionRange minVersion="0" maxVersion="1.0" severity="1"/>
+    </emItem>
   </emItems>
   <pluginItems>
     <pluginItem blockID="p416">
       <match exp="JavaAppletPlugin\.plugin" name="filename"/>
       <versionRange maxVersion="Java 6 Update 45" minVersion="Java 6 Update 42" severity="0" vulnerabilitystatus="1">
         <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
           <versionRange maxVersion="*" minVersion="17.0"/>
         </targetApplication>
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -247,34 +247,37 @@ def get_tool(config, key):
     # Assume that we have the name of some program that should be on PATH.
     try:
         return which.which(f) if f else which.which(key)
     except which.WhichError:
         raise ValueError("%s not found on PATH" % f)
 
 
 # This function is intended to be called on the final build directory when
-# building clang-tidy.  Its job is to remove all of the files which won't
-# be used for clang-tidy to reduce the download size.  Currently when this
-# function finishes its job, it will leave final_dir with a layout like this:
+# building clang-tidy. Also clang-format binaries are included that can be used
+# in conjunction with clang-tidy.
+# Its job is to remove all of the files which won't be used for clang-tidy or
+# clang-format to reduce the download size.  Currently when this function
+# finishes its job, it will leave final_dir with a layout like this:
 #
 # clang/
 #   bin/
 #     clang-apply-replacements
 #     clang-format
 #     clang-tidy
 #   include/
 #     * (nothing will be deleted here)
 #   lib/
 #     clang/
 #       4.0.0/
 #         include/
 #           * (nothing will be deleted here)
 #   share/
 #     clang/
+#       clang-format-diff.py
 #       clang-tidy-diff.py
 #       run-clang-tidy.py
 def prune_final_dir_for_clang_tidy(final_dir):
     # Make sure we only have what we expect.
     dirs = ("bin", "include", "lib", "libexec", "msbuild-bin", "share", "tools")
     for f in glob.glob("%s/*" % final_dir):
         if os.path.basename(f) not in dirs:
             raise Exception("Found unknown file %s in the final directory" % f)
@@ -306,17 +309,17 @@ def prune_final_dir_for_clang_tidy(final
     # Completely remove libexec/, msbuilld-bin and tools, if it exists.
     shutil.rmtree(os.path.join(final_dir, "libexec"))
     for d in ("msbuild-bin", "tools"):
         d = os.path.join(final_dir, d)
         if os.path.exists(d):
             shutil.rmtree(d)
 
     # In share/, only keep share/clang/*tidy*
-    re_clang_tidy = re.compile(r"tidy", re.I)
+    re_clang_tidy = re.compile(r"format|tidy", re.I)
     for f in glob.glob("%s/share/*" % final_dir):
         if os.path.basename(f) != "clang":
             delete(f)
     for f in glob.glob("%s/share/clang/*" % final_dir):
         if re_clang_tidy.search(os.path.basename(f)) is None:
             delete(f)
 
 
--- a/devtools/client/inspector/markup/test/browser.ini
+++ b/devtools/client/inspector/markup/test/browser.ini
@@ -14,16 +14,18 @@ support-files =
   doc_markup_events_04.html
   doc_markup_events_form.html
   doc_markup_events_jquery.html
   doc_markup_events-overflow.html
   doc_markup_events_react_development_15.4.1.html
   doc_markup_events_react_development_15.4.1_jsx.html
   doc_markup_events_react_production_15.3.1.html
   doc_markup_events_react_production_15.3.1_jsx.html
+  doc_markup_events_react_production_16.2.0.html
+  doc_markup_events_react_production_16.2.0_jsx.html
   doc_markup_events-source_map.html
   doc_markup_flashing.html
   doc_markup_html_mixed_case.html
   doc_markup_image_and_canvas.html
   doc_markup_image_and_canvas_2.html
   doc_markup_links.html
   doc_markup_mutation.html
   doc_markup_navigation.html
@@ -55,18 +57,20 @@ support-files =
   lib_jquery_1.1.js
   lib_jquery_1.2_min.js
   lib_jquery_1.3_min.js
   lib_jquery_1.4_min.js
   lib_jquery_1.6_min.js
   lib_jquery_1.7_min.js
   lib_jquery_1.11.1_min.js
   lib_jquery_2.1.1_min.js
+  lib_react_16.2.0_min.js
   lib_react_dom_15.3.1_min.js
   lib_react_dom_15.4.1.js
+  lib_react_dom_16.2.0_min.js
   lib_react_with_addons_15.3.1_min.js
   lib_react_with_addons_15.4.1.js
   react_external_listeners.js
   !/devtools/client/commandline/test/helpers.js
   !/devtools/client/framework/test/shared-head.js
   !/devtools/client/inspector/test/head.js
   !/devtools/client/inspector/test/shared-head.js
   !/devtools/client/shared/test/test-actor.js
@@ -116,16 +120,18 @@ skip-if = (os == 'linux' && bits == 32 &
 [browser_markup_events_jquery_1.11.1.js]
 [browser_markup_events_jquery_2.1.1.js]
 [browser_markup_events-overflow.js]
 skip-if = true # Bug 1177550
 [browser_markup_events_react_development_15.4.1.js]
 [browser_markup_events_react_development_15.4.1_jsx.js]
 [browser_markup_events_react_production_15.3.1.js]
 [browser_markup_events_react_production_15.3.1_jsx.js]
+[browser_markup_events_react_production_16.2.0.js]
+[browser_markup_events_react_production_16.2.0_jsx.js]
 [browser_markup_events_source_map.js]
 [browser_markup_events-windowed-host.js]
 [browser_markup_links_01.js]
 [browser_markup_links_02.js]
 [browser_markup_links_03.js]
 [browser_markup_links_04.js]
 subsuite = clipboard
 skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/browser_markup_events_react_production_16.2.0.js
@@ -0,0 +1,132 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+/* import-globals-from helper_events_test_runner.js */
+"use strict";
+
+requestLongerTimeout(4);
+
+// Test that markup view event bubbles show the correct event info for React
+// events (React production version 16.2.0) without JSX.
+
+const TEST_LIB = URL_ROOT + "lib_react_dom_16.2.0_min.js";
+const TEST_EXTERNAL_LISTENERS = URL_ROOT + "react_external_listeners.js";
+const TEST_URL = URL_ROOT + "doc_markup_events_react_production_16.2.0.html";
+
+loadHelperScript("helper_events_test_runner.js");
+
+/*eslint-disable */
+const TEST_DATA = [
+  {
+    selector: "#inline",
+    expected: [
+      {
+        type: "click",
+        filename: TEST_LIB + ":93",
+        attributes: [
+          "Bubbling",
+          "DOM2"
+        ],
+        handler: "function() {}"
+      },
+      {
+        type: "onClick",
+        filename: TEST_URL + ":21",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`inlineFunction() {
+  alert("inlineFunction");
+}`
+      }
+    ]
+  },
+  {
+    selector: "#external",
+    expected: [
+      {
+        type: "click",
+        filename: TEST_LIB + ":93",
+        attributes: [
+          "Bubbling",
+          "DOM2"
+        ],
+        handler: "function() {}"
+      },
+      {
+        type: "onClick",
+        filename: TEST_EXTERNAL_LISTENERS + ":4",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`function externalFunction() {
+  alert("externalFunction");
+}`
+      }
+    ]
+  },
+  {
+    selector: "#externalinline",
+    expected: [
+      {
+        type: "click",
+        filename: TEST_LIB + ":93",
+        attributes: [
+          "Bubbling",
+          "DOM2"
+        ],
+        handler: "function() {}"
+      },
+      {
+        type: "onClick",
+        filename: TEST_EXTERNAL_LISTENERS + ":4",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`function externalFunction() {
+  alert("externalFunction");
+}`
+      },
+      {
+        type: "onMouseUp",
+        filename: TEST_URL + ":21",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`inlineFunction() {
+  alert("inlineFunction");
+}`
+      }
+    ]
+  },
+  {
+    selector: "#externalcapturing",
+    expected: [
+      {
+        type: "onClickCapture",
+        filename: TEST_EXTERNAL_LISTENERS + ":8",
+        attributes: [
+          "Capturing",
+          "React"
+        ],
+        handler:
+`function externalCapturingFunction() {
+  alert("externalCapturingFunction");
+}`
+      }
+    ]
+  }
+];
+/* eslint-enable */
+
+add_task(function* () {
+  yield runEventPopupTests(TEST_URL, TEST_DATA);
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/browser_markup_events_react_production_16.2.0_jsx.js
@@ -0,0 +1,132 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+/* import-globals-from helper_events_test_runner.js */
+"use strict";
+
+requestLongerTimeout(4);
+
+// Test that markup view event bubbles show the correct event info for React
+// events (React production version 16.2.0) using JSX.
+
+const TEST_LIB = URL_ROOT + "lib_react_dom_16.2.0_min.js";
+const TEST_EXTERNAL_LISTENERS = URL_ROOT + "react_external_listeners.js";
+const TEST_URL = URL_ROOT + "doc_markup_events_react_production_16.2.0_jsx.html";
+
+loadHelperScript("helper_events_test_runner.js");
+
+/*eslint-disable */
+const TEST_DATA = [
+  {
+    selector: "#inlinejsx",
+    expected: [
+      {
+        type: "click",
+        filename: TEST_LIB + ":93",
+        attributes: [
+          "Bubbling",
+          "DOM2"
+        ],
+        handler: "function() {}"
+      },
+      {
+        type: "onClick",
+        filename: TEST_URL + ":26",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`function inlineFunction() {
+  alert("inlineFunction");
+}`
+      }
+    ]
+  },
+  {
+    selector: "#externaljsx",
+    expected: [
+      {
+        type: "click",
+        filename: TEST_LIB + ":93",
+        attributes: [
+          "Bubbling",
+          "DOM2"
+        ],
+        handler: "function() {}"
+      },
+      {
+        type: "onClick",
+        filename: TEST_EXTERNAL_LISTENERS + ":4",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`function externalFunction() {
+  alert("externalFunction");
+}`
+      }
+    ]
+  },
+  {
+    selector: "#externalinlinejsx",
+    expected: [
+      {
+        type: "click",
+        filename: TEST_LIB + ":93",
+        attributes: [
+          "Bubbling",
+          "DOM2"
+        ],
+        handler: "function() {}"
+      },
+      {
+        type: "onClick",
+        filename: TEST_EXTERNAL_LISTENERS + ":4",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`function externalFunction() {
+  alert("externalFunction");
+}`
+      },
+      {
+        type: "onMouseUp",
+        filename: TEST_URL + ":26",
+        attributes: [
+          "Bubbling",
+          "React"
+        ],
+        handler:
+`function inlineFunction() {
+  alert("inlineFunction");
+}`
+      }
+    ]
+  },
+  {
+    selector: "#externalcapturingjsx",
+    expected: [
+      {
+        type: "onClickCapture",
+        filename: TEST_EXTERNAL_LISTENERS + ":8",
+        attributes: [
+          "Capturing",
+          "React"
+        ],
+        handler:
+`function externalCapturingFunction() {
+  alert("externalCapturingFunction");
+}`
+      }
+    ]
+  }
+];
+/* eslint-enable */
+
+add_task(function* () {
+  yield runEventPopupTests(TEST_URL, TEST_DATA);
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/doc_markup_events_react_production_16.2.0.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8" />
+
+    <script src="lib_react_16.2.0_min.js"></script>
+    <script src="lib_react_dom_16.2.0_min.js"></script>
+    <script src="react_external_listeners.js"></script>
+  </head>
+  <body>
+    <h1>doc_markup_events_react_production_16.2.0.html</h1>
+
+    <div id="container"></div>
+
+    <script>
+      "use strict";
+
+      /* global React, ReactDOM, externalCapturingFunction, externalFunction */
+
+      class ClickMe2 extends React.Component {
+        inlineFunction() {
+          alert("inlineFunction");
+        }
+
+        render() {
+          return React.createElement(
+            "div",
+            null,
+            React.createElement(
+              "h3",
+              {
+                id: "inline",
+                onClick: this.inlineFunction
+              },
+              "Click for inlineFunction"
+            ),
+            React.createElement(
+              "h3",
+              {
+                id: "external",
+                onClick: externalFunction
+              },
+              "Click for externalFunction"
+            ),
+            React.createElement(
+              "h3",
+              {
+                id: "externalinline",
+                onClick: externalFunction,
+                onMouseUp: this.inlineFunction
+              },
+              "Click for both"
+            ),
+            React.createElement(
+              "h3",
+              {
+                id: "externalcapturing",
+                onClickCapture: externalCapturingFunction
+              },
+              "Click for externalCapturingFunction"
+            )
+          );
+        }
+      }
+
+      ReactDOM.render(
+        React.createElement(ClickMe2),
+        document.getElementById("container")
+      );
+    </script>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/doc_markup_events_react_production_16.2.0_jsx.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8" />
+
+    <script src="lib_babel_6.21.0_min.js"></script>
+    <script src="lib_react_16.2.0_min.js"></script>
+    <script src="lib_react_dom_16.2.0_min.js"></script>
+    <script src="react_external_listeners.js"></script>
+  </head>
+  <body>
+    <h1>doc_markup_events_react_production_16.2.0_jsx.html</h1>
+
+    <div id="container"></div>
+
+    <script type="text/babel">
+      "use strict";
+
+      /* global React, ReactDOM, externalCapturingFunction, externalFunction */
+      /* exported ClickMe */
+
+      class ClickMe extends React.Component {
+        inlineFunction() {
+          alert("inlineFunction");
+        }
+
+        render() {
+          return (
+            <div>
+              <h3 id="inlinejsx" onClick={this.inlineFunction}>Click for inlineFunction</h3>
+              <h3 id="externaljsx" onClick={externalFunction}>Click for externalFunction</h3>
+              <h3 id="externalinlinejsx" onClick={externalFunction}
+                  onMouseUp={this.inlineFunction}>
+                Click for both
+              </h3>
+              <h3 id="externalcapturingjsx" onClickCapture={externalCapturingFunction}>
+                Click for externalCapturingFunction
+              </h3>
+            </div>
+          );
+        }
+      }
+
+      ReactDOM.render(
+        <ClickMe />,
+        document.getElementById("container")
+      );
+    </script>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/lib_react_16.2.0_min.js
@@ -0,0 +1,21 @@
+/** @license React v16.2.0
+ * react.production.min.js
+ *
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+'use strict';(function(q,k){"object"===typeof exports&&"undefined"!==typeof module?module.exports=k():"function"===typeof define&&define.amd?define(k):q.React=k()})(this,function(){function q(a){for(var b=arguments.length-1,c="Minified React error #"+a+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\x3d"+a,d=0;d<b;d++)c+="\x26args[]\x3d"+encodeURIComponent(arguments[d+1]);b=Error(c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.");
+b.name="Invariant Violation";b.framesToPop=1;throw b;}function k(a){return function(){return a}}function p(a,b,c){this.props=a;this.context=b;this.refs=w;this.updater=c||x}function y(a,b,c){this.props=a;this.context=b;this.refs=w;this.updater=c||x}function z(){}function A(a,b,c){this.props=a;this.context=b;this.refs=w;this.updater=c||x}function G(a,b,c){var d,f={},l=null,e=null;if(null!=b)for(d in void 0!==b.ref&&(e=b.ref),void 0!==b.key&&(l=""+b.key),b)H.call(b,d)&&!I.hasOwnProperty(d)&&(f[d]=b[d]);
+var g=arguments.length-2;if(1===g)f.children=c;else if(1<g){for(var h=Array(g),n=0;n<g;n++)h[n]=arguments[n+2];f.children=h}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===f[d]&&(f[d]=g[d]);return{$$typeof:r,type:a,key:l,ref:e,props:f,_owner:B.current}}function C(a){return"object"===typeof a&&null!==a&&a.$$typeof===r}function O(a){var b={"\x3d":"\x3d0",":":"\x3d2"};return"$"+(""+a).replace(/[=:]/g,function(a){return b[a]})}function J(a,b,c,d){if(u.length){var f=u.pop();f.result=a;f.keyPrefix=
+b;f.func=c;f.context=d;f.count=0;return f}return{result:a,keyPrefix:b,func:c,context:d,count:0}}function K(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>u.length&&u.push(a)}function t(a,b,c,d){var f=typeof a;if("undefined"===f||"boolean"===f)a=null;var l=!1;if(null===a)l=!0;else switch(f){case "string":case "number":l=!0;break;case "object":switch(a.$$typeof){case r:case P:case Q:case R:l=!0}}if(l)return c(d,a,""===b?"."+D(a,0):b),1;l=0;b=""===b?".":b+":";if(Array.isArray(a))for(var e=
+0;e<a.length;e++){f=a[e];var g=b+D(f,e);l+=t(f,g,c,d)}else if(null===a||"undefined"===typeof a?g=null:(g=L&&a[L]||a["@@iterator"],g="function"===typeof g?g:null),"function"===typeof g)for(a=g.call(a),e=0;!(f=a.next()).done;)f=f.value,g=b+D(f,e++),l+=t(f,g,c,d);else"object"===f&&(c=""+a,q("31","[object Object]"===c?"object with keys {"+Object.keys(a).join(", ")+"}":c,""));return l}function D(a,b){return"object"===typeof a&&null!==a&&null!=a.key?O(a.key):b.toString(36)}function S(a,b,c){a.func.call(a.context,
+b,a.count++)}function T(a,b,c){var d=a.result,f=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?E(a,d,c,F.thatReturnsArgument):null!=a&&(C(a)&&(b=f+(!a.key||b&&b.key===a.key?"":(""+a.key).replace(M,"$\x26/")+"/")+c,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),d.push(a))}function E(a,b,c,d,f){var e="";null!=c&&(e=(""+c).replace(M,"$\x26/")+"/");b=J(b,e,d,f);null==a||t(a,"",T,b);K(b)}var N=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,
+V=Object.prototype.propertyIsEnumerable,v=function(){try{if(!Object.assign)return!1;var a=new String("abc");a[5]="de";if("5"===Object.getOwnPropertyNames(a)[0])return!1;var b={};for(a=0;10>a;a++)b["_"+String.fromCharCode(a)]=a;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var c={};"abcdefghijklmnopqrst".split("").forEach(function(a){c[a]=a});return"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},c)).join("")?!1:!0}catch(d){return!1}}()?Object.assign:
+function(a,b){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");var c=Object(a);for(var d,f=1;f<arguments.length;f++){var e=Object(arguments[f]);for(var h in e)U.call(e,h)&&(c[h]=e[h]);if(N){d=N(e);for(var g=0;g<d.length;g++)V.call(e,d[g])&&(c[d[g]]=e[d[g]])}}return c},h="function"===typeof Symbol&&Symbol["for"],r=h?Symbol["for"]("react.element"):60103,P=h?Symbol["for"]("react.call"):60104,Q=h?Symbol["for"]("react.return"):60105,R=h?Symbol["for"]("react.portal"):
+60106;h=h?Symbol["for"]("react.fragment"):60107;var L="function"===typeof Symbol&&Symbol.iterator,w={},e=function(){};e.thatReturns=k;e.thatReturnsFalse=k(!1);e.thatReturnsTrue=k(!0);e.thatReturnsNull=k(null);e.thatReturnsThis=function(){return this};e.thatReturnsArgument=function(a){return a};var F=e,x={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,d){},enqueueSetState:function(a,b,c,d){}};p.prototype.isReactComponent={};p.prototype.setState=
+function(a,b){"object"!==typeof a&&"function"!==typeof a&&null!=a?q("85"):void 0;this.updater.enqueueSetState(this,a,b,"setState")};p.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};z.prototype=p.prototype;e=y.prototype=new z;e.constructor=y;v(e,p.prototype);e.isPureReactComponent=!0;e=A.prototype=new z;e.constructor=A;v(e,p.prototype);e.unstable_isAsyncReactComponent=!0;e.render=function(){return this.props.children};var B={current:null},H=Object.prototype.hasOwnProperty,
+I={key:!0,ref:!0,__self:!0,__source:!0},M=/\/+/g,u=[];h={Children:{map:function(a,b,c){if(null==a)return a;var d=[];E(a,d,null,b,c);return d},forEach:function(a,b,c){if(null==a)return a;b=J(null,null,b,c);null==a||t(a,"",S,b);K(b)},count:function(a,b){return null==a?0:t(a,"",F.thatReturnsNull,null)},toArray:function(a){var b=[];E(a,b,null,F.thatReturnsArgument);return b},only:function(a){C(a)?void 0:q("143");return a}},Component:p,PureComponent:y,unstable_AsyncComponent:A,Fragment:h,createElement:G,
+cloneElement:function(a,b,c){var d=v({},a.props),e=a.key,h=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(h=b.ref,k=B.current);void 0!==b.key&&(e=""+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(m in b)H.call(b,m)&&!I.hasOwnProperty(m)&&(d[m]=void 0===b[m]&&void 0!==g?g[m]:b[m])}var m=arguments.length-2;if(1===m)d.children=c;else if(1<m){g=Array(m);for(var n=0;n<m;n++)g[n]=arguments[n+2];d.children=g}return{$$typeof:r,type:a.type,key:e,ref:h,props:d,_owner:k}},createFactory:function(a){var b=
+G.bind(null,a);b.type=a;return b},isValidElement:C,version:"16.2.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:B,assign:v}};h=(e=Object.freeze({default:h}))&&h||e;return h["default"]?h["default"]:h});
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/lib_react_dom_16.2.0_min.js
@@ -0,0 +1,193 @@
+/** @license React v16.2.0
+ * react-dom.production.min.js
+ *
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+/*
+ Modernizr 3.0.0pre (Custom Build) | MIT
+*/
+'use strict';(function(na,l){"object"===typeof exports&&"undefined"!==typeof module?module.exports=l(require("react")):"function"===typeof define&&define.amd?define(["react"],l):na.ReactDOM=l(na.React)})(this,function(na){function l(a){for(var b=arguments.length-1,c="Minified React error #"+a+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\x3d"+a,d=0;d<b;d++)c+="\x26args[]\x3d"+encodeURIComponent(arguments[d+1]);b=Error(c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.");
+b.name="Invariant Violation";b.framesToPop=1;throw b;}function va(a,b){return(a&b)===b}function Xc(a,b){if(Yc.hasOwnProperty(a)||2<a.length&&("o"===a[0]||"O"===a[0])&&("n"===a[1]||"N"===a[1]))return!1;if(null===b)return!0;switch(typeof b){case "boolean":return Yc.hasOwnProperty(a)?a=!0:(b=Ub(a))?a=b.hasBooleanValue||b.hasStringBooleanValue||b.hasOverloadedBooleanValue:(a=a.toLowerCase().slice(0,5),a="data-"===a||"aria-"===a),a;case "undefined":case "number":case "string":case "object":return!0;default:return!1}}
+function Ub(a){return ib.hasOwnProperty(a)?ib[a]:null}function Zc(){if(jb)for(var a in ba){var b=ba[a],c=jb.indexOf(a);-1<c?void 0:l("96",a);if(!oa[c]){b.extractEvents?void 0:l("97",a);oa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;Vb.hasOwnProperty(h)?l("99",h):void 0;Vb[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&$c(k[e],g,h);e=!0}else f.registrationName?($c(f.registrationName,g,h),e=!0):e=!1;e?void 0:l("98",d,a)}}}}function $c(a,b,c){ca[a]?
+l("100",a):void 0;ca[a]=b;kb[a]=b.eventTypes[c].dependencies}function ad(a){jb?l("101"):void 0;jb=Array.prototype.slice.call(a);Zc()}function bd(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];ba.hasOwnProperty(c)&&ba[c]===d||(ba[c]?l("102",c):void 0,ba[c]=d,b=!0)}b&&Zc()}function lb(a){return function(){return a}}function cd(a,b,c,d){b=a.type||"unknown-event";a.currentTarget=dd(d);y.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a);a.currentTarget=null}function wa(a,b){null==b?l("30"):
+void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function da(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}function Wb(a,b){var c=a.stateNode;if(!c)return null;var d=Xb(c);if(!d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":(d=
+!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;c&&"function"!==typeof c?l("231",b,typeof c):void 0;return c}function ed(a,b,c,d){for(var e,f=0;f<oa.length;f++){var g=oa[f];g&&(g=g.extractEvents(a,b,c,d))&&(e=wa(e,g))}return e}function Yb(a){a&&(pa=wa(pa,a))}function Zb(a){var b=pa;pa=null;b&&(a?da(b,$e):da(b,af),pa?l("95"):void 0,y.rethrowCaughtError())}function W(a){if(a[O])return a[O];for(var b=[];!a[O];)if(b.push(a),
+a.parentNode)a=a.parentNode;else return null;var c=void 0,d=a[O];if(5===d.tag||6===d.tag)return d;for(;a&&(d=a[O]);a=b.pop())c=d;return c}function xa(a){if(5===a.tag||6===a.tag)return a.stateNode;l("33")}function fd(a){return a[ea]||null}function T(a){do a=a["return"];while(a&&5!==a.tag);return a?a:null}function gd(a,b,c){for(var d=[];a;)d.push(a),a=T(a);for(a=d.length;0<a--;)b(d[a],"captured",c);for(a=0;a<d.length;a++)b(d[a],"bubbled",c)}function hd(a,b,c){if(b=Wb(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=
+wa(c._dispatchListeners,b),c._dispatchInstances=wa(c._dispatchInstances,a)}function bf(a){a&&a.dispatchConfig.phasedRegistrationNames&&gd(a._targetInst,hd,a)}function cf(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?T(b):null;gd(b,hd,a)}}function $b(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Wb(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=wa(c._dispatchListeners,b),c._dispatchInstances=wa(c._dispatchInstances,a))}function df(a){a&&a.dispatchConfig.registrationName&&
+$b(a._targetInst,null,a)}function ya(a){da(a,bf)}function id(a,b,c,d){if(c&&d)a:{var e=c;for(var f=d,g=0,h=e;h;h=T(h))g++;h=0;for(var k=f;k;k=T(k))h++;for(;0<g-h;)e=T(e),g--;for(;0<h-g;)f=T(f),h--;for(;g--;){if(e===f||e===f.alternate)break a;e=T(e);f=T(f)}e=null}else e=null;f=e;for(e=[];c&&c!==f;){g=c.alternate;if(null!==g&&g===f)break;e.push(c);c=T(c)}for(c=[];d&&d!==f;){g=d.alternate;if(null!==g&&g===f)break;c.push(d);d=T(d)}for(d=0;d<e.length;d++)$b(e[d],"bubbled",a);for(a=c.length;0<a--;)$b(c[a],
+"captured",b)}function jd(){!ac&&P.canUseDOM&&(ac="textContent"in document.documentElement?"textContent":"innerText");return ac}function kd(){if(H._fallbackText)return H._fallbackText;var a,b=H._startText,c=b.length,d,e=ld(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);H._fallbackText=e.slice(a,1<d?1-d:void 0);return H._fallbackText}function ld(){return"value"in H._root?H._root.value:H._root[jd()]}function n(a,b,c,d){this.dispatchConfig=a;this._targetInst=
+b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):"target"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?G.thatReturnsTrue:G.thatReturnsFalse;this.isPropagationStopped=G.thatReturnsFalse;return this}function ef(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}function ff(a){a instanceof this?void 0:
+l("223");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function md(a){a.eventPool=[];a.getPooled=ef;a.release=ff}function nd(a,b,c,d){return n.call(this,a,b,c,d)}function od(a,b,c,d){return n.call(this,a,b,c,d)}function gf(){var a=window.opera;return"object"===typeof a&&"function"===typeof a.version&&12>=parseInt(a.version(),10)}function pd(a,b){switch(a){case "topKeyUp":return-1!==hf.indexOf(b.keyCode);case "topKeyDown":return 229!==b.keyCode;case "topKeyPress":case "topMouseDown":case "topBlur":return!0;
+default:return!1}}function qd(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}function jf(a,b){switch(a){case "topCompositionEnd":return qd(b);case "topKeyPress":if(32!==b.which)return null;rd=!0;return sd;case "topTextInput":return a=b.data,a===sd&&rd?null:a;default:return null}}function kf(a,b){if(za)return"topCompositionEnd"===a||!bc&&pd(a,b)?(a=kd(),H._root=null,H._startText=null,H._fallbackText=null,za=!1,a):null;switch(a){case "topPaste":return null;case "topKeyPress":if(!(b.ctrlKey||
+b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case "topCompositionEnd":return td?null:b.data;default:return null}}function ud(a){if(a=vd(a)){mb&&"function"===typeof mb.restoreControlledState?void 0:l("194");var b=Xb(a.stateNode);mb.restoreControlledState(a.stateNode,a.type,b)}}function wd(a){Ga?fa?fa.push(a):fa=[a]:Ga=a}function xd(){if(Ga){var a=Ga,b=fa;fa=Ga=null;ud(a);if(b)for(a=0;a<b.length;a++)ud(b[a])}}
+function cc(a,b){if(dc)return ec(a,b);dc=!0;try{return ec(a,b)}finally{dc=!1,xd()}}function yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!lf[a.type]:"textarea"===b?!0:!1}function fc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function gc(a,b){if(!P.canUseDOM||b&&!("addEventListener"in document))return!1;b="on"+a;var c=b in document;c||(c=document.createElement("div"),c.setAttribute(b,"return;"),
+c="function"===typeof c[b]);!c&&zd&&"wheel"===a&&(c=document.implementation.hasFeature("Events.wheel","3.0"));return c}function Ad(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function mf(a){var b=Ad(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"function"===typeof c.get&&"function"===typeof c.set)return Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:!0,get:function(){return c.get.call(this)},
+set:function(a){d=""+a;c.set.call(this,a)}}),{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}function nb(a){a._valueTracker||(a._valueTracker=mf(a))}function Bd(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ad(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Cd(a,b,c){a=n.getPooled(Dd.change,a,b,c);a.type="change";wd(c);ya(a);return a}function nf(a){Yb(a);
+Zb(!1)}function ob(a){var b=xa(a);if(Bd(b))return a}function of(a,b){if("topChange"===a)return b}function Ed(){Ha&&(Ha.detachEvent("onpropertychange",Fd),Oa=Ha=null)}function Fd(a){"value"===a.propertyName&&ob(Oa)&&(a=Cd(Oa,a,fc(a)),cc(nf,a))}function pf(a,b,c){"topFocus"===a?(Ed(),Ha=b,Oa=c,Ha.attachEvent("onpropertychange",Fd)):"topBlur"===a&&Ed()}function qf(a,b){if("topSelectionChange"===a||"topKeyUp"===a||"topKeyDown"===a)return ob(Oa)}function rf(a,b){if("topClick"===a)return ob(b)}function sf(a,
+b){if("topInput"===a||"topChange"===a)return ob(b)}function Aa(a,b,c,d){return n.call(this,a,b,c,d)}function tf(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=uf[a])?!!b[a]:!1}function hc(a){return tf}function qa(a,b,c,d){return n.call(this,a,b,c,d)}function Pa(a){a=a.type;return"string"===typeof a?a:"function"===typeof a?a.displayName||a.name:null}function Qa(a){var b=a;if(a.alternate)for(;b["return"];)b=b["return"];else{if(0!==(b.effectTag&2))return 1;for(;b["return"];)if(b=
+b["return"],0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function vf(a){return(a=a._reactInternalFiber)?2===Qa(a):!1}function Gd(a){2!==Qa(a)?l("188"):void 0}function Hd(a){var b=a.alternate;if(!b)return b=Qa(a),3===b?l("188"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c["return"],f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return Gd(e),a;if(g===d)return Gd(e),b;g=g.sibling}l("188")}if(c["return"]!==d["return"])c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===
+c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?void 0:l("189")}}c.alternate!==d?l("190"):void 0}3!==c.tag?l("188"):void 0;return c.stateNode.current===c?a:b}function wf(a){a=Hd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child["return"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b["return"]||b["return"]===a)return null;b=b["return"]}b.sibling["return"]=
+b["return"];b=b.sibling}}return null}function xf(a){a=Hd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child["return"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b["return"]||b["return"]===a)return null;b=b["return"]}b.sibling["return"]=b["return"];b=b.sibling}}return null}function yf(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c["return"];)c=c["return"];c=3!==c.tag?null:c.stateNode.containerInfo;if(!c)break;a.ancestors.push(b);
+b=W(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],pb(a.topLevelType,b,a.nativeEvent,fc(a.nativeEvent))}function ic(a){Ra=!!a}function r(a,b,c){return c?Id.listen(c,b,jc.bind(null,a)):null}function ha(a,b,c){return c?Id.capture(c,b,jc.bind(null,a)):null}function jc(a,b){if(Ra){var c=fc(b);c=W(c);null===c||"number"!==typeof c.tag||2===Qa(c)||(c=null);if(qb.length){var d=qb.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};
+try{cc(yf,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>qb.length&&qb.push(a)}}}function rb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;c["ms"+a]="MS"+b;c["O"+a]="o"+b.toLowerCase();return c}function sb(a){if(kc[a])return kc[a];if(!U[a])return a;var b=U[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Jd)return kc[a]=b[c];return""}function Kd(a){Object.prototype.hasOwnProperty.call(a,tb)||(a[tb]=zf++,Ld[a[tb]]=
+{});return Ld[a[tb]]}function Md(a,b){return a===b?0!==a||0!==b||1/a===1/b:a!==a&&b!==b}function Nd(a,b){return a&&b?a===b?!0:Od(a)?!1:Od(b)?Nd(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function Pd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function Qd(a,b){var c=Pd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=
+c.parentNode}c=void 0}c=Pd(c)}}function lc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&"text"===a.type||"textarea"===b||"true"===a.contentEditable)}function Rd(a,b){if(mc||null==X||X!==nc())return null;var c=X;"selectionStart"in c&&lc(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Sa&&oc(Sa,c)?null:(Sa=
+c,a=n.getPooled(Sd.select,pc,a,b),a.type="select",a.target=X,ya(a),a)}function Td(a,b,c,d){return n.call(this,a,b,c,d)}function Ud(a,b,c,d){return n.call(this,a,b,c,d)}function Vd(a,b,c,d){return n.call(this,a,b,c,d)}function ub(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;return 32<=a||13===a?a:0}function Wd(a,b,c,d){return n.call(this,a,b,c,d)}function Xd(a,b,c,d){return n.call(this,a,b,c,d)}function Yd(a,b,c,d){return n.call(this,a,b,c,d)}function Zd(a,b,c,d){return n.call(this,
+a,b,c,d)}function $d(a,b,c,d){return n.call(this,a,b,c,d)}function I(a,b){0>ra||(a.current=vb[ra],vb[ra]=null,ra--)}function M(a,b,c){ra++;vb[ra]=a.current;a.current=b}function Ta(a){return Ua(a)?wb:ia.current}function Va(a,b){var c=a.type.contextTypes;if(!c)return ja;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=
+e);return e}function Ua(a){return 2===a.tag&&null!=a.type.childContextTypes}function ae(a){Ua(a)&&(I(J,a),I(ia,a))}function be(a,b,c){null!=ia.cursor?l("168"):void 0;M(ia,b,a);M(J,c,a)}function ce(a,b){var c=a.stateNode,d=a.type.childContextTypes;if("function"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:l("108",Pa(a)||"Unknown",e);return C({},b,c)}function xb(a){if(!Ua(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||ja;wb=
+ia.current;M(ia,b,a);M(J,J.current,a);return!0}function de(a,b){var c=a.stateNode;c?void 0:l("169");if(b){var d=ce(a,wb);c.__reactInternalMemoizedMergedChildContext=d;I(J,a);I(ia,a);M(ia,d,a)}else I(J,a);M(J,b,a)}function Q(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this["return"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=
+this.nextEffect=null;this.expirationTime=0;this.alternate=null}function yb(a,b,c){var d=a.alternate;null===d?(d=new Q(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}function qc(a,
+b,c){var d=void 0,e=a.type,f=a.key;"function"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Q(2,f,b):new Q(0,f,b),d.type=e,d.pendingProps=a.props):"string"===typeof e?(d=new Q(5,f,b),d.type=e,d.pendingProps=a.props):"object"===typeof e&&null!==e&&"number"===typeof e.tag?(d=e,d.pendingProps=a.props):l("130",null==e?e:typeof e,"");d.expirationTime=c;return d}function zb(a,b,c,d){b=new Q(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}function rc(a,b,c){b=new Q(6,null,b);b.pendingProps=
+a;b.expirationTime=c;return b}function sc(a,b,c){b=new Q(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function tc(a,b,c){a=new Q(9,null,b);a.expirationTime=c;return a}function uc(a,b,c){b=new Q(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ee(a){return function(b){try{return a(b)}catch(c){}}}function Af(a){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;
+var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);vc=ee(function(a){return b.onCommitFiberRoot(c,a)});wc=ee(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function fe(a){"function"===typeof vc&&vc(a)}function ge(a){"function"===typeof wc&&wc(a)}function he(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ab(a,b){null===a.last?a.first=a.last=b:(a.last.next=
+b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}function Bb(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=he(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=he(null))):a=null;a=a!==d?a:null;null===a?Ab(d,b):null===d.last||null===a.last?(Ab(d,b),Ab(a,b)):(Ab(d,b),a.last=b)}function ie(a,b,c,d){a=a.partialState;return"function"===typeof a?a.call(b,c,d):a}function xc(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=
+b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var l=h.expirationTime;if(l>f){var D=c.expirationTime;if(0===D||D>l)c.expirationTime=l;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===c.first&&(c.last=null));if(h.isReplace)a=ie(h,d,a,e),g=!0;
+else if(l=ie(h,d,a,e))a=g?C({},a,l):C(a,l),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(l=c.callbackList,null===l&&(l=c.callbackList=[]),l.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}function je(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null;"function"!==typeof e?l("191",e):void 0;e.call(b)}}function Wa(a){if(null===
+a||"undefined"===typeof a)return null;a=ke&&a[ke]||a["@@iterator"];return"function"===typeof a?a:null}function Xa(a,b){var c=b.ref;if(null!==c&&"function"!==typeof c){if(b._owner){b=b._owner;var d=void 0;b&&(2!==b.tag?l("110"):void 0,d=b.stateNode);d?void 0:l("147",c);var e=""+c;if(null!==a&&null!==a.ref&&a.ref._stringRef===e)return a.ref;a=function(a){var b=d.refs===ja?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a};a._stringRef=e;return a}"string"!==typeof c?l("148"):void 0;b._owner?void 0:l("149",
+c)}return c}function Cb(a,b){"textarea"!==a.type&&l("31","[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+"}":b,"")}function le(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;
+return a}function e(a,b,c){a=yb(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=rc(c,a.internalContextTag,d),b["return"]=a,b;b=e(b,c,d);b["return"]=a;return b}function k(a,b,c,d){if(null!==b&&b.type===c.type)return d=e(b,c.props,d),d.ref=Xa(b,c),d["return"]=a,d;
+d=qc(c,a.internalContextTag,d);d.ref=Xa(b,c);d["return"]=a;return d}function m(a,b,c,d){if(null===b||7!==b.tag)return b=sc(c,a.internalContextTag,d),b["return"]=a,b;b=e(b,c,d);b["return"]=a;return b}function D(a,b,c,d){if(null===b||9!==b.tag)return b=tc(c,a.internalContextTag,d),b.type=c.value,b["return"]=a,b;b=e(b,null,d);b.type=c.value;b["return"]=a;return b}function A(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=
+uc(c,a.internalContextTag,d),b["return"]=a,b;b=e(b,c.children||[],d);b["return"]=a;return b}function v(a,b,c,d,g){if(null===b||10!==b.tag)return b=zb(c,a.internalContextTag,d,g),b["return"]=a,b;b=e(b,c,d);b["return"]=a;return b}function K(a,b,c){if("string"===typeof b||"number"===typeof b)return b=rc(""+b,a.internalContextTag,c),b["return"]=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case Db:if(b.type===sa)return b=zb(b.props.children,a.internalContextTag,c,b.key),b["return"]=a,b;c=qc(b,
+a.internalContextTag,c);c.ref=Xa(null,b);c["return"]=a;return c;case Eb:return b=sc(b,a.internalContextTag,c),b["return"]=a,b;case Fb:return c=tc(b,a.internalContextTag,c),c.type=b.value,c["return"]=a,c;case Ya:return b=uc(b,a.internalContextTag,c),b["return"]=a,b}if(Gb(b)||Wa(b))return b=zb(b,a.internalContextTag,c,null),b["return"]=a,b;Cb(a,b)}return null}function L(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&
+null!==c){switch(c.$$typeof){case Db:return c.key===e?c.type===sa?v(a,b,c.props.children,d,e):k(a,b,c,d):null;case Eb:return c.key===e?m(a,b,c,d):null;case Fb:return null===e?D(a,b,c,d):null;case Ya:return c.key===e?A(a,b,c,d):null}if(Gb(c)||Wa(c))return null!==e?null:v(a,b,c,d,null);Cb(a,c)}return null}function R(a,b,c,d,e){if("string"===typeof d||"number"===typeof d)return a=a.get(c)||null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case Db:return a=a.get(null===d.key?c:d.key)||
+null,d.type===sa?v(b,a,d.props.children,e,d.key):k(b,a,d,e);case Eb:return a=a.get(null===d.key?c:d.key)||null,m(b,a,d,e);case Fb:return a=a.get(c)||null,D(b,a,d,e);case Ya:return a=a.get(null===d.key?c:d.key)||null,A(b,a,d,e)}if(Gb(d)||Wa(d))return a=a.get(c)||null,v(b,a,d,e,null);Cb(b,d)}return null}function n(e,g,h,z){for(var t=null,q=null,p=g,x=g=0,k=null;null!==p&&x<h.length;x++){p.index>x?(k=p,p=null):k=p.sibling;var l=L(e,p,h[x],z);if(null===l){null===p&&(p=k);break}a&&p&&null===l.alternate&&
+b(e,p);g=f(l,g,x);null===q?t=l:q.sibling=l;q=l;p=k}if(x===h.length)return c(e,p),t;if(null===p){for(;x<h.length;x++)if(p=K(e,h[x],z))g=f(p,g,x),null===q?t=p:q.sibling=p,q=p;return t}for(p=d(e,p);x<h.length;x++)if(k=R(p,e,x,h[x],z)){if(a&&null!==k.alternate)p["delete"](null===k.key?x:k.key);g=f(k,g,x);null===q?t=k:q.sibling=k;q=k}a&&p.forEach(function(a){return b(e,a)});return t}function r(e,g,h,z){var t=Wa(h);"function"!==typeof t?l("150"):void 0;h=t.call(h);null==h?l("151"):void 0;for(var q=t=null,
+p=g,x=g=0,k=null,m=h.next();null!==p&&!m.done;x++,m=h.next()){p.index>x?(k=p,p=null):k=p.sibling;var La=L(e,p,m.value,z);if(null===La){p||(p=k);break}a&&p&&null===La.alternate&&b(e,p);g=f(La,g,x);null===q?t=La:q.sibling=La;q=La;p=k}if(m.done)return c(e,p),t;if(null===p){for(;!m.done;x++,m=h.next())m=K(e,m.value,z),null!==m&&(g=f(m,g,x),null===q?t=m:q.sibling=m,q=m);return t}for(p=d(e,p);!m.done;x++,m=h.next())if(m=R(p,e,x,m.value,z),null!==m){if(a&&null!==m.alternate)p["delete"](null===m.key?x:m.key);
+g=f(m,g,x);null===q?t=m:q.sibling=m;q=m}a&&p.forEach(function(a){return b(e,a)});return t}return function(a,d,f,h){"object"===typeof f&&null!==f&&f.type===sa&&null===f.key&&(f=f.props.children);var k="object"===typeof f&&null!==f;if(k)switch(f.$$typeof){case Db:a:{var q=f.key;for(k=d;null!==k;){if(k.key===q)if(10===k.tag?f.type===sa:k.type===f.type){c(a,k.sibling);d=e(k,f.type===sa?f.props.children:f.props,h);d.ref=Xa(k,f);d["return"]=a;a=d;break a}else{c(a,k);break}else b(a,k);k=k.sibling}f.type===
+sa?(d=zb(f.props.children,a.internalContextTag,h,f.key),d["return"]=a,a=d):(h=qc(f,a.internalContextTag,h),h.ref=Xa(d,f),h["return"]=a,a=h)}return g(a);case Eb:a:{for(k=f.key;null!==d;){if(d.key===k)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d["return"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=sc(f,a.internalContextTag,h);d["return"]=a;a=d}return g(a);case Fb:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d["return"]=a;a=d;break a}else c(a,d);d=tc(f,a.internalContextTag,
+h);d.type=f.value;d["return"]=a;a=d}return g(a);case Ya:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d["return"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=uc(f,a.internalContextTag,h);d["return"]=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=rc(f,a.internalContextTag,
+h)),d["return"]=a,a=d,g(a);if(Gb(f))return n(a,d,f,h);if(Wa(f))return r(a,d,f,h);k&&Cb(a,f);if("undefined"===typeof f)switch(a.tag){case 2:case 1:h=a.type,l("152",h.displayName||h.name||"Component")}return c(a,d)}}function Bf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ya,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function Cf(a){if(me.hasOwnProperty(a))return!0;if(ne.hasOwnProperty(a))return!1;if(Df.test(a))return me[a]=!0;ne[a]=
+!0;return!1}function zc(a,b,c){var d=Ub(b);if(d&&Xc(b,c)){var e=d.mutationMethod;e?e(a,c):null==c||d.hasBooleanValue&&!c||d.hasNumericValue&&isNaN(c)||d.hasPositiveNumericValue&&1>c||d.hasOverloadedBooleanValue&&!1===c?oe(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,""+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,""):a.setAttribute(b,""+c))}else Ac(a,b,Xc(b,c)?c:null)}function Ac(a,b,c){Cf(b)&&(null==c?a.removeAttribute(b):
+a.setAttribute(b,""+c))}function oe(a,b){var c=Ub(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:"":a.removeAttribute(c.attributeName):a.removeAttribute(b)}function Bc(a,b){var c=b.value,d=b.checked;return C({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function pe(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=
+b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function qe(a,b){b=b.checked;null!=b&&zc(a,"checked",b)}function Cc(a,b){qe(a,b);var c=b.value;if(null!=c)if(0===c&&""===a.value)a.value="0";else if("number"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==""+b.defaultValue&&(a.defaultValue=
+""+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function re(a,b){switch(b.type){case "submit":case "reset":break;case "color":case "date":case "datetime":case "datetime-local":case "month":case "time":case "week":a.value="";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;""!==b&&(a.name="");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;""!==b&&(a.name=b)}function Ef(a){var b="";na.Children.forEach(a,function(a){null==
+a||"string"!==typeof a&&"number"!==typeof a||(b+=a)});return b}function Dc(a,b){a=C({children:void 0},b);if(b=Ef(b.children))a.children=b;return a}function ka(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+c;b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=
+a[e])}null!==b&&(b.selected=!0)}}function se(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function Ec(a,b){null!=b.dangerouslySetInnerHTML?l("91"):void 0;return C({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function te(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?l("92"):void 0,Array.isArray(b)&&(1>=b.length?void 0:l("93"),b=b[0]),c=""+b),null==c&&(c=""));a._wrapperState={initialValue:""+
+c}}function ue(a,b){var c=b.value;null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function ve(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Fc(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?ve(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":
+a}function we(a,b,c){a=a.style;for(var d in b)if(b.hasOwnProperty(d)){c=0===d.indexOf("--");var e=d;var f=b[d];e=null==f||"boolean"===typeof f||""===f?"":c||"number"!==typeof f||0===f||Za.hasOwnProperty(e)&&Za[e]?(""+f).trim():f+"px";"float"===d&&(d="cssFloat");c?a.setProperty(d,e):a[d]=e}}function Gc(a,b,c){b&&(Ff[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?l("137",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?l("60"):void 0,"object"===typeof b.dangerouslySetInnerHTML&&
+"__html"in b.dangerouslySetInnerHTML?void 0:l("61")),null!=b.style&&"object"!==typeof b.style?l("62",c()):void 0)}function Hc(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function Y(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Kd(a);b=kb[b];for(var d=0;d<b.length;d++){var e=
+b[d];c.hasOwnProperty(e)&&c[e]||("topScroll"===e?ha("topScroll","scroll",a):"topFocus"===e||"topBlur"===e?(ha("topFocus","focus",a),ha("topBlur","blur",a),c.topBlur=!0,c.topFocus=!0):"topCancel"===e?(gc("cancel",!0)&&ha("topCancel","cancel",a),c.topCancel=!0):"topClose"===e?(gc("close",!0)&&ha("topClose","close",a),c.topClose=!0):xe.hasOwnProperty(e)&&r(e,xe[e],a),c[e]=!0)}}function ye(a,b,c,d){c=9===c.nodeType?c:c.ownerDocument;"http://www.w3.org/1999/xhtml"===d&&(d=ve(a));"http://www.w3.org/1999/xhtml"===
+d?"script"===a?(a=c.createElement("div"),a.innerHTML="\x3cscript\x3e\x3c/script\x3e",a=a.removeChild(a.firstChild)):a="string"===typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a);return a}function ze(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}function Ae(a,b,c,d){var e=Hc(b,c);switch(b){case "iframe":case "object":r("topLoad","load",a);var f=c;break;case "video":case "audio":for(f in Z)Z.hasOwnProperty(f)&&r(f,Z[f],a);f=c;break;case "source":r("topError",
+"error",a);f=c;break;case "img":case "image":r("topError","error",a);r("topLoad","load",a);f=c;break;case "form":r("topReset","reset",a);r("topSubmit","submit",a);f=c;break;case "details":r("topToggle","toggle",a);f=c;break;case "input":pe(a,c);f=Bc(a,c);r("topInvalid","invalid",a);Y(d,"onChange");break;case "option":f=Dc(a,c);break;case "select":se(a,c);f=C({},c,{value:void 0});r("topInvalid","invalid",a);Y(d,"onChange");break;case "textarea":te(a,c);f=Ec(a,c);r("topInvalid","invalid",a);Y(d,"onChange");
+break;default:f=c}Gc(b,f,$a);var g=f,h;for(h in g)if(g.hasOwnProperty(h)){var k=g[h];"style"===h?we(a,k,$a):"dangerouslySetInnerHTML"===h?(k=k?k.__html:void 0,null!=k&&Be(a,k)):"children"===h?"string"===typeof k?("textarea"!==b||""!==k)&&Ic(a,k):"number"===typeof k&&Ic(a,""+k):"suppressContentEditableWarning"!==h&&"suppressHydrationWarning"!==h&&"autoFocus"!==h&&(ca.hasOwnProperty(h)?null!=k&&Y(d,h):e?Ac(a,h,k):null!=k&&zc(a,h,k))}switch(b){case "input":nb(a);re(a,c);break;case "textarea":nb(a);c=
+a.textContent;c===a._wrapperState.initialValue&&(a.value=c);break;case "option":null!=c.value&&a.setAttribute("value",c.value);break;case "select":a.multiple=!!c.multiple;b=c.value;null!=b?ka(a,!!c.multiple,b,!1):null!=c.defaultValue&&ka(a,!!c.multiple,c.defaultValue,!0);break;default:"function"===typeof f.onClick&&(a.onclick=G)}}function Ce(a,b,c,d,e){var f=null;switch(b){case "input":c=Bc(a,c);d=Bc(a,d);f=[];break;case "option":c=Dc(a,c);d=Dc(a,d);f=[];break;case "select":c=C({},c,{value:void 0});
+d=C({},d,{value:void 0});f=[];break;case "textarea":c=Ec(a,c);d=Ec(a,d);f=[];break;default:"function"!==typeof c.onClick&&"function"===typeof d.onClick&&(a.onclick=G)}Gc(b,d,$a);var g,h;a=null;for(g in c)if(!d.hasOwnProperty(g)&&c.hasOwnProperty(g)&&null!=c[g])if("style"===g)for(h in b=c[g],b)b.hasOwnProperty(h)&&(a||(a={}),a[h]="");else"dangerouslySetInnerHTML"!==g&&"children"!==g&&"suppressContentEditableWarning"!==g&&"suppressHydrationWarning"!==g&&"autoFocus"!==g&&(ca.hasOwnProperty(g)?f||(f=
+[]):(f=f||[]).push(g,null));for(g in d){var k=d[g];b=null!=c?c[g]:void 0;if(d.hasOwnProperty(g)&&k!==b&&(null!=k||null!=b))if("style"===g)if(b){for(h in b)!b.hasOwnProperty(h)||k&&k.hasOwnProperty(h)||(a||(a={}),a[h]="");for(h in k)k.hasOwnProperty(h)&&b[h]!==k[h]&&(a||(a={}),a[h]=k[h])}else a||(f||(f=[]),f.push(g,a)),a=k;else"dangerouslySetInnerHTML"===g?(k=k?k.__html:void 0,b=b?b.__html:void 0,null!=k&&b!==k&&(f=f||[]).push(g,""+k)):"children"===g?b===k||"string"!==typeof k&&"number"!==typeof k||
+(f=f||[]).push(g,""+k):"suppressContentEditableWarning"!==g&&"suppressHydrationWarning"!==g&&(ca.hasOwnProperty(g)?(null!=k&&Y(e,g),f||b===k||(f=[])):(f=f||[]).push(g,k))}a&&(f=f||[]).push("style",a);return f}function De(a,b,c,d,e){"input"===c&&"radio"===e.type&&null!=e.name&&qe(a,e);Hc(c,d);d=Hc(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];"style"===g?we(a,h,$a):"dangerouslySetInnerHTML"===g?Be(a,h):"children"===g?Ic(a,h):d?null!=h?Ac(a,g,h):a.removeAttribute(g):null!=h?zc(a,g,h):oe(a,g)}switch(c){case "input":Cc(a,
+e);break;case "textarea":ue(a,e);break;case "select":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?ka(a,!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?ka(a,!!e.multiple,e.defaultValue,!0):ka(a,!!e.multiple,e.multiple?[]:"",!1))}}function Ee(a,b,c,d,e){switch(b){case "iframe":case "object":r("topLoad","load",a);break;case "video":case "audio":for(var f in Z)Z.hasOwnProperty(f)&&r(f,Z[f],a);break;case "source":r("topError",
+"error",a);break;case "img":case "image":r("topError","error",a);r("topLoad","load",a);break;case "form":r("topReset","reset",a);r("topSubmit","submit",a);break;case "details":r("topToggle","toggle",a);break;case "input":pe(a,c);r("topInvalid","invalid",a);Y(e,"onChange");break;case "select":se(a,c);r("topInvalid","invalid",a);Y(e,"onChange");break;case "textarea":te(a,c),r("topInvalid","invalid",a),Y(e,"onChange")}Gc(b,c,$a);d=null;for(var g in c)c.hasOwnProperty(g)&&(f=c[g],"children"===g?"string"===
+typeof f?a.textContent!==f&&(d=["children",f]):"number"===typeof f&&a.textContent!==""+f&&(d=["children",""+f]):ca.hasOwnProperty(g)&&null!=f&&Y(e,g));switch(b){case "input":nb(a);re(a,c);break;case "textarea":nb(a);b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b);break;case "select":case "option":break;default:"function"===typeof c.onClick&&(a.onclick=G)}return d}function Fe(a,b){return a.nodeValue!==b}function Jc(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==
+a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function Gf(a){a=a?9===a.nodeType?a.documentElement:a.firstChild:null;return!(!a||1!==a.nodeType||!a.hasAttribute("data-reactroot"))}function Hb(a,b,c,d,e){Jc(c)?void 0:l("200");var f=c._reactRootContainer;if(f)E.updateContainer(b,f,a,e);else{d=d||Gf(c);if(!d)for(f=void 0;f=c.lastChild;)c.removeChild(f);var g=E.createContainer(c,d);f=c._reactRootContainer=g;E.unbatchedUpdates(function(){E.updateContainer(b,g,a,e)})}return E.getPublicRootInstance(f)}
+function Ge(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Jc(b)?void 0:l("200");return Bf(a,b,null,c)}function He(a,b){this._reactRootContainer=E.createContainer(a,b)}na?void 0:l("227");var Yc={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0},Ie={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,
+HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(a){var b=Ie,c=a.Properties||{},d=a.DOMAttributeNamespaces||{},e=a.DOMAttributeNames||{};a=a.DOMMutationMethods||{};for(var f in c){ib.hasOwnProperty(f)?l("48",f):void 0;var g=f.toLowerCase(),h=c[f];g={attributeName:g,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:va(h,b.MUST_USE_PROPERTY),hasBooleanValue:va(h,b.HAS_BOOLEAN_VALUE),hasNumericValue:va(h,b.HAS_NUMERIC_VALUE),hasPositiveNumericValue:va(h,b.HAS_POSITIVE_NUMERIC_VALUE),
+hasOverloadedBooleanValue:va(h,b.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:va(h,b.HAS_STRING_BOOLEAN_VALUE)};1>=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:l("50",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ib[f]=g}}},ib={},aa=Ie,Ib=aa.MUST_USE_PROPERTY,w=aa.HAS_BOOLEAN_VALUE,Je=aa.HAS_NUMERIC_VALUE,Jb=aa.HAS_POSITIVE_NUMERIC_VALUE,Ke=aa.HAS_OVERLOADED_BOOLEAN_VALUE,
+Kb=aa.HAS_STRING_BOOLEAN_VALUE,Hf={Properties:{allowFullScreen:w,async:w,autoFocus:w,autoPlay:w,capture:Ke,checked:Ib|w,cols:Jb,contentEditable:Kb,controls:w,"default":w,defer:w,disabled:w,download:Ke,draggable:Kb,formNoValidate:w,hidden:w,loop:w,multiple:Ib|w,muted:Ib|w,noValidate:w,open:w,playsInline:w,readOnly:w,required:w,reversed:w,rows:Jb,rowSpan:Je,scoped:w,seamless:w,selected:Ib|w,size:Jb,start:Je,span:Jb,spellCheck:Kb,style:0,tabIndex:0,itemScope:w,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,
+value:Kb},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMMutationMethods:{value:function(a,b){if(null==b)return a.removeAttribute("value");"number"!==a.type||!1===a.hasAttribute("value")?a.setAttribute("value",""+b):a.validity&&!a.validity.badInput&&a.ownerDocument.activeElement!==a&&a.setAttribute("value",""+b)}}},Kc=aa.HAS_STRING_BOOLEAN_VALUE,Lc={Properties:{autoReverse:Kc,externalResourcesRequired:Kc,preserveAlpha:Kc},DOMAttributeNames:{autoReverse:"autoReverse",
+externalResourcesRequired:"externalResourcesRequired",preserveAlpha:"preserveAlpha"},DOMAttributeNamespaces:{xlinkActuate:"http://www.w3.org/1999/xlink",xlinkArcrole:"http://www.w3.org/1999/xlink",xlinkHref:"http://www.w3.org/1999/xlink",xlinkRole:"http://www.w3.org/1999/xlink",xlinkShow:"http://www.w3.org/1999/xlink",xlinkTitle:"http://www.w3.org/1999/xlink",xlinkType:"http://www.w3.org/1999/xlink",xmlBase:"http://www.w3.org/XML/1998/namespace",xmlLang:"http://www.w3.org/XML/1998/namespace",xmlSpace:"http://www.w3.org/XML/1998/namespace"}},
+If=/[\-\:]([a-z])/g,Jf=function(a){return a[1].toUpperCase()};"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space".split(" ").forEach(function(a){var b=
+a.replace(If,Jf);Lc.Properties[b]=0;Lc.DOMAttributeNames[b]=a});aa.injectDOMPropertyConfig(Hf);aa.injectDOMPropertyConfig(Lc);var y={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(a){"function"!==typeof a.invokeGuardedCallback?l("197"):void 0;Le=a.invokeGuardedCallback}},invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){Le.apply(y,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){y.invokeGuardedCallback.apply(this,
+arguments);if(y.hasCaughtError()){var l=y.clearCaughtError();y._hasRethrowError||(y._hasRethrowError=!0,y._rethrowError=l)}},rethrowCaughtError:function(){return Kf.apply(y,arguments)},hasCaughtError:function(){return y._hasCaughtError},clearCaughtError:function(){if(y._hasCaughtError){var a=y._caughtError;y._caughtError=null;y._hasCaughtError=!1;return a}l("198")}},Le=function(a,b,c,d,e,f,g,h,k){y._hasCaughtError=!1;y._caughtError=null;var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,
+l)}catch(D){y._caughtError=D,y._hasCaughtError=!0}},Kf=function(){if(y._hasRethrowError){var a=y._rethrowError;y._rethrowError=null;y._hasRethrowError=!1;throw a;}},jb=null,ba={},oa=[],Vb={},ca={},kb={},Lf=Object.freeze({plugins:oa,eventNameDispatchConfigs:Vb,registrationNameModules:ca,registrationNameDependencies:kb,possibleRegistrationNames:null,injectEventPluginOrder:ad,injectEventPluginsByName:bd}),ta=function(){};ta.thatReturns=lb;ta.thatReturnsFalse=lb(!1);ta.thatReturnsTrue=lb(!0);ta.thatReturnsNull=
+lb(null);ta.thatReturnsThis=function(){return this};ta.thatReturnsArgument=function(a){return a};var G=ta,Xb=null,vd=null,dd=null,pa=null,Me=function(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)cd(a,b,c[e],d[e]);else c&&cd(a,b,c,d);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}},$e=function(a){return Me(a,!0)},af=function(a){return Me(a,!1)},Mc={injectEventPluginOrder:ad,
+injectEventPluginsByName:bd},Mf=Object.freeze({injection:Mc,getListener:Wb,extractEvents:ed,enqueueEvents:Yb,processEventQueue:Zb}),Ne=Math.random().toString(36).slice(2),O="__reactInternalInstance$"+Ne,ea="__reactEventHandlers$"+Ne,Oe=Object.freeze({precacheFiberNode:function(a,b){b[O]=a},getClosestInstanceFromNode:W,getInstanceFromNode:function(a){a=a[O];return!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:xa,getFiberCurrentPropsFromNode:fd,updateFiberProps:function(a,b){a[ea]=b}}),Nf=Object.freeze({accumulateTwoPhaseDispatches:ya,
+accumulateTwoPhaseDispatchesSkipTarget:function(a){da(a,cf)},accumulateEnterLeaveDispatches:id,accumulateDirectDispatches:function(a){da(a,df)}}),Lb=!("undefined"===typeof window||!window.document||!window.document.createElement),P={canUseDOM:Lb,canUseWorkers:"undefined"!==typeof Worker,canUseEventListeners:Lb&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:Lb&&!!window.screen,isInWorker:!Lb},ac=null,H={_root:null,_startText:null,_fallbackText:null},C=na.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.assign,
+Pe="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),Of={type:null,target:null,currentTarget:G.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};C(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&(a.returnValue=
+!1),this.isDefaultPrevented=G.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=G.thatReturnsTrue)},persist:function(){this.isPersistent=G.thatReturnsTrue},isPersistent:G.thatReturnsFalse,destructor:function(){var a=this.constructor.Interface,b;for(b in a)this[b]=null;for(a=0;a<Pe.length;a++)this[Pe[a]]=null}});n.Interface=Of;n.augmentClass=function(a,b){var c=
+function(){};c.prototype=this.prototype;c=new c;C(c,a.prototype);a.prototype=c;a.prototype.constructor=a;a.Interface=C({},this.Interface,b);a.augmentClass=this.augmentClass;md(a)};md(n);n.augmentClass(nd,{data:null});n.augmentClass(od,{data:null});var hf=[9,13,27,32],bc=P.canUseDOM&&"CompositionEvent"in window,ab=null;P.canUseDOM&&"documentMode"in document&&(ab=document.documentMode);var Pf=P.canUseDOM&&"TextEvent"in window&&!ab&&!gf(),td=P.canUseDOM&&(!bc||ab&&8<ab&&11>=ab),sd=String.fromCharCode(32),
+V={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},
+compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")}},rd=!1,za=!1,Qf={eventTypes:V,extractEvents:function(a,b,c,d){var e;if(bc)b:{switch(a){case "topCompositionStart":var f=V.compositionStart;break b;case "topCompositionEnd":f=V.compositionEnd;break b;case "topCompositionUpdate":f=V.compositionUpdate;break b}f=void 0}else za?pd(a,c)&&(f=V.compositionEnd):
+"topKeyDown"===a&&229===c.keyCode&&(f=V.compositionStart);f?(td&&(za||f!==V.compositionStart?f===V.compositionEnd&&za&&(e=kd()):(H._root=d,H._startText=ld(),za=!0)),f=nd.getPooled(f,b,c,d),e?f.data=e:(e=qd(c),null!==e&&(f.data=e)),ya(f),e=f):e=null;(a=Pf?jf(a,c):kf(a,c))?(b=od.getPooled(V.beforeInput,b,c,d),b.data=a,ya(b)):b=null;return[e,b]}},mb=null,Ga=null,fa=null,Qe={injectFiberControlledHostComponent:function(a){mb=a}},Rf=Object.freeze({injection:Qe,enqueueStateRestore:wd,restoreStateIfNeeded:xd}),
+ec=function(a,b){return a(b)},dc=!1,lf={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},zd;P.canUseDOM&&(zd=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var Dd={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange".split(" ")}},
+Ha=null,Oa=null,Nc=!1;P.canUseDOM&&(Nc=gc("input")&&(!document.documentMode||9<document.documentMode));var Sf={eventTypes:Dd,_isInputEventSupported:Nc,extractEvents:function(a,b,c,d){var e=b?xa(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if("select"===f||"input"===f&&"file"===e.type)var g=of;else if(yd(e))if(Nc)g=sf;else{g=qf;var h=pf}else f=e.nodeName,!f||"input"!==f.toLowerCase()||"checkbox"!==e.type&&"radio"!==e.type||(g=rf);if(g&&(g=g(a,b)))return Cd(g,c,d);h&&h(a,e,b);"topBlur"===a&&null!=
+b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&"number"===e.type&&(a=""+e.value,e.getAttribute("value")!==a&&e.setAttribute("value",a))}};n.augmentClass(Aa,{view:null,detail:null});var uf={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};Aa.augmentClass(qa,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hc,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||
+(a.fromElement===a.srcElement?a.toElement:a.fromElement)}});var Oc={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},Tf={eventTypes:Oc,extractEvents:function(a,b,c,d){if("topMouseOver"===a&&(c.relatedTarget||c.fromElement)||"topMouseOut"!==a&&"topMouseOver"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;"topMouseOut"===a?(a=
+b,b=(b=c.relatedTarget||c.toElement)?W(b):null):a=null;if(a===b)return null;var f=null==a?e:xa(a);e=null==b?e:xa(b);var g=qa.getPooled(Oc.mouseLeave,a,c,d);g.type="mouseleave";g.target=f;g.relatedTarget=e;c=qa.getPooled(Oc.mouseEnter,b,c,d);c.type="mouseenter";c.target=e;c.relatedTarget=f;id(g,c,a,b);return[g,c]}},bb=na.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Id={listen:function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),{remove:function(){a.removeEventListener(b,
+c,!1)}};if(a.attachEvent)return a.attachEvent("on"+b,c),{remove:function(){a.detachEvent("on"+b,c)}}},capture:function(a,b,c){return a.addEventListener?(a.addEventListener(b,c,!0),{remove:function(){a.removeEventListener(b,c,!0)}}):{remove:G}},registerDefault:function(){}},qb=[],Ra=!0,pb=void 0,Uf=Object.freeze({get _enabled(){return Ra},get _handleTopLevel(){return pb},setHandleTopLevel:function(a){pb=a},setEnabled:ic,isEnabled:function(){return Ra},trapBubbledEvent:r,trapCapturedEvent:ha,dispatchEvent:jc}),
+U={animationend:rb("Animation","AnimationEnd"),animationiteration:rb("Animation","AnimationIteration"),animationstart:rb("Animation","AnimationStart"),transitionend:rb("Transition","TransitionEnd")},kc={},Jd={};P.canUseDOM&&(Jd=document.createElement("div").style,"AnimationEvent"in window||(delete U.animationend.animation,delete U.animationiteration.animation,delete U.animationstart.animation),"TransitionEvent"in window||delete U.transitionend.transition);var xe={topAbort:"abort",topAnimationEnd:sb("animationend")||
+"animationend",topAnimationIteration:sb("animationiteration")||"animationiteration",topAnimationStart:sb("animationstart")||"animationstart",topBlur:"blur",topCancel:"cancel",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topClose:"close",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",
+topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoad:"load",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",
+topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topToggle:"toggle",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:sb("transitionend")||
+"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},Ld={},zf=0,tb="_reactListenersID"+(""+Math.random()).slice(2),nc=function(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}},Vf=Object.prototype.hasOwnProperty,oc=function(a,b){if(Md(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==
+d.length)return!1;for(d=0;d<c.length;d++)if(!Vf.call(b,c[d])||!Md(a[c[d]],b[c[d]]))return!1;return!0},Od=function(a){var b=(a?a.ownerDocument||a:document).defaultView||window;return!!(a&&("function"===typeof b.Node?a instanceof b.Node:"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName))&&3==a.nodeType},Wf=P.canUseDOM&&"documentMode"in document&&11>=document.documentMode,Sd={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange".split(" ")}},
+X=null,pc=null,Sa=null,mc=!1,Xf={eventTypes:Sd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Kd(e);f=kb.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?xa(b):window;switch(a){case "topFocus":if(yd(e)||"true"===e.contentEditable)X=e,pc=b,Sa=null;break;case "topBlur":Sa=pc=X=null;break;case "topMouseDown":mc=!0;break;case "topContextMenu":case "topMouseUp":return mc=
+!1,Rd(c,d);case "topSelectionChange":if(Wf)break;case "topKeyDown":case "topKeyUp":return Rd(c,d)}return null}};n.augmentClass(Td,{animationName:null,elapsedTime:null,pseudoElement:null});n.augmentClass(Ud,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}});Aa.augmentClass(Vd,{relatedTarget:null});var Yf={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",
+MozPrintableKey:"Unidentified"},Zf={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};Aa.augmentClass(Wd,{key:function(a){if(a.key){var b=Yf[a.key]||
+a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=ub(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?Zf[a.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hc,charCode:function(a){return"keypress"===a.type?ub(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?ub(a):"keydown"===a.type||"keyup"===
+a.type?a.keyCode:0}});qa.augmentClass(Xd,{dataTransfer:null});Aa.augmentClass(Yd,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hc});n.augmentClass(Zd,{propertyName:null,elapsedTime:null,pseudoElement:null});qa.augmentClass($d,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:null,
+deltaMode:null});var Re={},Se={};"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel".split(" ").forEach(function(a){var b=
+a[0].toUpperCase()+a.slice(1),c="on"+b;b="top"+b;c={phasedRegistrationNames:{bubbled:c,captured:c+"Capture"},dependencies:[b]};Re[a]=c;Se[b]=c});var $f={eventTypes:Re,extractEvents:function(a,b,c,d){var e=Se[a];if(!e)return null;switch(a){case "topKeyPress":if(0===ub(c))return null;case "topKeyDown":case "topKeyUp":a=Wd;break;case "topBlur":case "topFocus":a=Vd;break;case "topClick":if(2===c.button)return null;case "topDoubleClick":case "topMouseDown":case "topMouseMove":case "topMouseUp":case "topMouseOut":case "topMouseOver":case "topContextMenu":a=
+qa;break;case "topDrag":case "topDragEnd":case "topDragEnter":case "topDragExit":case "topDragLeave":case "topDragOver":case "topDragStart":case "topDrop":a=Xd;break;case "topTouchCancel":case "topTouchEnd":case "topTouchMove":case "topTouchStart":a=Yd;break;case "topAnimationEnd":case "topAnimationIteration":case "topAnimationStart":a=Td;break;case "topTransitionEnd":a=Zd;break;case "topScroll":a=Aa;break;case "topWheel":a=$d;break;case "topCopy":case "topCut":case "topPaste":a=Ud;break;default:a=
+n}b=a.getPooled(e,b,c,d);ya(b);return b}};pb=function(a,b,c,d){a=ed(a,b,c,d);Yb(a);Zb(!1)};Mc.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" "));(function(a){Xb=a.getFiberCurrentPropsFromNode;vd=a.getInstanceFromNode;dd=a.getNodeFromInstance})(Oe);Mc.injectEventPluginsByName({SimpleEventPlugin:$f,EnterLeaveEventPlugin:Tf,ChangeEventPlugin:Sf,SelectEventPlugin:Xf,BeforeInputEventPlugin:Qf});
+var ja={},vb=[],ra=-1;new Set;var ia={current:ja},J={current:!1},wb=ja,vc=null,wc=null,ag=function(a,b,c,d){function e(a,b){b.updater=f;a.stateNode=b;b._reactInternalFiber=a}var f={isMounted:vf,enqueueSetState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var f=b(c);Bb(c,{expirationTime:f,partialState:d,callback:e,isReplace:!1,isForced:!1,nextCallback:null,next:null});a(c,f)},enqueueReplaceState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var f=b(c);Bb(c,{expirationTime:f,
+partialState:d,callback:e,isReplace:!0,isForced:!1,nextCallback:null,next:null});a(c,f)},enqueueForceUpdate:function(c,d){c=c._reactInternalFiber;d=void 0===d?null:d;var e=b(c);Bb(c,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,nextCallback:null,next:null});a(c,e)}};return{adoptClassInstance:e,constructClassInstance:function(a,b){var c=a.type,d=Ta(a),f=2===a.tag&&null!=a.type.contextTypes,g=f?Va(a,d):ja;b=new c(b,g);e(a,b);f&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=
+d,a.__reactInternalMemoizedMaskedChildContext=g);return b},mountClassInstance:function(a,b){var c=a.alternate,d=a.stateNode,e=d.state||null,h=a.pendingProps;h?void 0:l("158");var g=Ta(a);d.props=h;d.state=a.memoizedState=e;d.refs=ja;d.context=Va(a,g);null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent&&(a.internalContextTag|=1);"function"===typeof d.componentWillMount&&(e=d.state,d.componentWillMount(),e!==d.state&&f.enqueueReplaceState(d,d.state,null),e=a.updateQueue,
+null!==e&&(d.state=xc(c,a,e,d,h,b)));"function"===typeof d.componentDidMount&&(a.effectTag|=4)},updateClassInstance:function(a,b,e){var g=b.stateNode;g.props=b.memoizedProps;g.state=b.memoizedState;var h=b.memoizedProps,k=b.pendingProps;k||(k=h,null==k?l("159"):void 0);var v=g.context,K=Ta(b);K=Va(b,K);"function"!==typeof g.componentWillReceiveProps||h===k&&v===K||(v=g.state,g.componentWillReceiveProps(k,K),g.state!==v&&f.enqueueReplaceState(g,g.state,null));v=b.memoizedState;e=null!==b.updateQueue?
+xc(a,b,b.updateQueue,g,k,e):v;if(!(h!==k||v!==e||J.current||null!==b.updateQueue&&b.updateQueue.hasForceUpdate))return"function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&v===a.memoizedState||(b.effectTag|=4),!1;var L=k;if(null===h||null!==b.updateQueue&&b.updateQueue.hasForceUpdate)L=!0;else{var R=b.stateNode,n=b.type;L="function"===typeof R.shouldComponentUpdate?R.shouldComponentUpdate(L,e,K):n.prototype&&n.prototype.isPureReactComponent?!oc(h,L)||!oc(v,e):!0}L?("function"===typeof g.componentWillUpdate&&
+g.componentWillUpdate(k,e,K),"function"===typeof g.componentDidUpdate&&(b.effectTag|=4)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&v===a.memoizedState||(b.effectTag|=4),c(b,k),d(b,e));g.props=k;g.state=e;g.context=K;return L}}},cb="function"===typeof Symbol&&Symbol["for"],Db=cb?Symbol["for"]("react.element"):60103,Eb=cb?Symbol["for"]("react.call"):60104,Fb=cb?Symbol["for"]("react.return"):60105,Ya=cb?Symbol["for"]("react.portal"):60106,sa=cb?Symbol["for"]("react.fragment"):60107,
+ke="function"===typeof Symbol&&Symbol.iterator,Gb=Array.isArray,db=le(!0),Mb=le(!1),bg=function(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?Mb(b,null,c,d):db(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&de(b,!1),m(a,b);c=b.stateNode;bb.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&de(b,!0);return b.child}function k(a){var b=a.stateNode;
+b.pendingContext?be(a,b.pendingContext,b.pendingContext!==b.context):b.context&&be(a,b.context,!1);R(a,b.containerInfo)}function m(a,b){null!==a&&b.child!==a.child?l("153"):void 0;if(null!==b.child){a=b.child;var c=yb(a,a.pendingProps,a.expirationTime);b.child=c;for(c["return"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=yb(a,a.pendingProps,a.expirationTime),c["return"]=b;c.sibling=null}return b.child}function D(a,b){switch(b.tag){case 3:k(b);break;case 2:xb(b);break;case 4:R(b,b.stateNode.containerInfo)}return null}
+var A=a.shouldSetTextContent,v=a.useSyncScheduling,n=a.shouldDeprioritizeSubtree,L=b.pushHostContext,R=b.pushHostContainer,r=c.enterHydrationState,w=c.resetHydrationState,y=c.tryToClaimNextHydratableInstance;a=ag(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var x=a.adoptClassInstance,t=a.constructClassInstance,z=a.mountClassInstance,yc=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return D(a,b);switch(b.tag){case 0:null!==
+a?l("155"):void 0;var d=b.type,e=b.pendingProps,q=Ta(b);q=Va(b,q);d=d(e,q);b.effectTag|=1;"object"===typeof d&&null!==d&&"function"===typeof d.render?(b.tag=2,e=xb(b),x(b,d),z(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(J.current)null===c&&(c=d);else if(null===c||d===c){b=m(a,b);break a}d=Ta(b);d=Va(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=xb(b),d=void 0,null===
+a?b.stateNode?l("153"):(t(b,b.pendingProps),z(b,c),d=!0):d=yc(a,b,c),h(a,b,d,e);case 3:return k(b),e=b.updateQueue,null!==e?(d=b.memoizedState,e=xc(a,b,e,null,null,c),d===e?(w(),b=m(a,b)):(d=e.element,q=b.stateNode,(null===a||null===a.child)&&q.hydrate&&r(b)?(b.effectTag|=2,b.child=Mb(b,null,d,c)):(w(),f(a,b,d)),b.memoizedState=e,b=b.child)):(w(),b=m(a,b)),b;case 5:L(b);null===a&&y(b);e=b.type;var p=b.memoizedProps;d=b.pendingProps;null===d&&(d=p,null===d?l("154"):void 0);q=null!==a?a.memoizedProps:
+null;J.current||null!==d&&p!==d?(p=d.children,A(e,d)?p=null:q&&A(e,q)&&(b.effectTag|=16),g(a,b),2147483647!==c&&!v&&n(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,p),b.memoizedProps=d,b=b.child)):b=m(a,b);return b;case 6:return null===a&&y(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(J.current)null===e&&(e=a&&a.memoizedProps,null===e?l("154"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=
+null===a?Mb(b,b.stateNode,d,c):db(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;case 9:return null;case 4:a:{R(b,b.stateNode.containerInfo);e=b.pendingProps;if(J.current)null===e&&(e=a&&a.memoizedProps,null==e?l("154"):void 0);else if(null===e||b.memoizedProps===e){b=m(a,b);break a}null===a?b.child=db(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(J.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=m(a,b);break a}f(a,
+b,c);b.memoizedProps=c;b=b.child}return b;default:l("156")}},beginFailedWork:function(a,b,c){switch(b.tag){case 2:xb(b);break;case 3:k(b);break;default:l("157")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return D(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?Mb(b,null,null,c):db(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}},cg=function(a,b,c){function d(a){a.effectTag|=
+4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,m=a.persistence,D=b.getRootHostContainer,A=b.popHostContext,v=b.getHostContext,n=b.popHostContainer,L=c.prepareToHydrateHostInstance,R=c.prepareToHydrateHostTextInstance,r=c.popHydrationState,w=void 0,y=void 0,x=void 0;a.mutation?(w=function(a){},y=function(a,b,c,e,f,g,h){(b.updateQueue=c)&&d(b)},x=function(a,b,c,e){c!==e&&d(b)}):m?l("235"):l("236");return{completeWork:function(a,b,
+c){var t=b.pendingProps;if(null===t)t=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ae(b),null;case 3:n(b);I(J,b);I(ia,b);t=b.stateNode;t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null);if(null===a||null===a.child)r(b),b.effectTag&=-3;w(b);return null;case 5:A(b);c=D();var z=b.type;if(null!==a&&null!=b.stateNode){var m=a.memoizedProps,K=b.stateNode,yc=v();K=k(K,z,m,t,c,yc);y(a,b,K,z,m,t,c);
+a.ref!==b.ref&&(b.effectTag|=128)}else{if(!t)return null===b.stateNode?l("166"):void 0,null;a=v();if(r(b))L(b,c,a)&&d(b);else{a=e(z,t,c,a,b);a:for(m=b.child;null!==m;){if(5===m.tag||6===m.tag)g(a,m.stateNode);else if(4!==m.tag&&null!==m.child){m.child["return"]=m;m=m.child;continue}if(m===b)break;for(;null===m.sibling;){if(null===m["return"]||m["return"]===b)break a;m=m["return"]}m.sibling["return"]=m["return"];m=m.sibling}h(a,z,t,c)&&d(b);b.stateNode=a}null!==b.ref&&(b.effectTag|=128)}return null;
+case 6:if(a&&null!=b.stateNode)x(a,b,a.memoizedProps,t);else{if("string"!==typeof t)return null===b.stateNode?l("166"):void 0,null;a=D();c=v();r(b)?R(b)&&d(b):b.stateNode=f(t,a,c,b)}return null;case 7:(t=b.memoizedProps)?void 0:l("165");b.tag=8;z=[];a:for((m=b.stateNode)&&(m["return"]=b);null!==m;){if(5===m.tag||6===m.tag||4===m.tag)l("247");else if(9===m.tag)z.push(m.type);else if(null!==m.child){m.child["return"]=m;m=m.child;continue}for(;null===m.sibling;){if(null===m["return"]||m["return"]===
+b)break a;m=m["return"]}m.sibling["return"]=m["return"];m=m.sibling}m=t.handler;t=m(t.props,z);b.child=db(b,null!==a?a.child:null,t,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return n(b),w(b),null;case 0:l("167");default:l("156")}}}},dg=function(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(z){b(a,z)}}function d(a){"function"===typeof ge&&ge(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if("function"===typeof d.componentWillUnmount)try{d.props=
+a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(z){b(a,z)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b["return"]||b["return"]===a)return;b=b["return"]}b.sibling["return"]=b["return"];b=b.sibling}else b.child["return"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=
+b["return"];a:for(;;){null===c?l("160"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c["return"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?y(f,b.stateNode):w(f,b.stateNode);else if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child["return"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b["return"]||b["return"]===a)return;b=b["return"];4===b.tag&&(c=!1)}b.sibling["return"]=
+b["return"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?l("235"):l("236"));var m=k.commitMount,D=k.commitUpdate,A=k.resetTextContent,v=k.commitTextUpdate,n=k.appendChild,L=k.appendChildToContainer,R=k.insertBefore,r=k.insertInContainerBefore,w=k.removeChild,y=k.removeChildFromContainer;return{commitResetTextContent:function(a){A(a.stateNode)},commitPlacement:function(a){a:{for(var b=a["return"];null!==b;){if(f(b)){var c=b;break a}b=b["return"]}l("160");c=void 0}var d=
+b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:l("161")}c.effectTag&16&&(A(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c["return"]||f(c["return"])){c=null;break a}c=c["return"]}c.sibling["return"]=c["return"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child["return"]=c,c=c.child}if(!(c.effectTag&
+2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?r(b,e.stateNode,c):R(b,e.stateNode,c):d?L(b,e.stateNode):n(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child["return"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e["return"]||e["return"]===a)return;e=e["return"]}e.sibling["return"]=e["return"];e=e.sibling}},commitDeletion:function(a){g(a);a["return"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate["return"]=null)},commitWork:function(a,
+b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&D(c,f,e,a,d,b)}break;case 6:null===b.stateNode?l("162"):void 0;c=b.memoizedProps;v(b.stateNode,null!==a?a.memoizedProps:c,c);break;case 3:break;default:l("163")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();
+else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&je(b,c);break;case 3:c=b.updateQueue;null!==c&&je(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&m(c,b.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:l("163")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=
+a.ref;null!==a&&a(null)}}},la={},eg=function(a){function b(a){a===la?l("174"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:la},f={current:la},g={current:la};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){I(e,a);I(f,a);I(g,a)},popHostContext:function(a){f.current===a&&(I(e,a),I(f,a))},pushHostContainer:function(a,b){M(g,b,a);b=d(b);M(f,a,a);M(e,b,a)},pushHostContext:function(a){var d=
+b(g.current),h=b(e.current);d=c(h,a.type,d);h!==d&&(M(f,a,a),M(e,d,a))},resetHostContainer:function(){e.current=la;g.current=la}}},fg=function(a){function b(a,b){var c=new Q(5,null,0);c.type="DELETED";c.stateNode=b;c["return"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):
+!1;default:return!1}}function d(a){for(a=a["return"];null!==a&&5!==a.tag&&3!==a.tag;)a=a["return"];A=a}var e=a.shouldSetTextContent;a=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){l("175")},prepareToHydrateHostTextInstance:function(){l("176")},popHydrationState:function(a){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,
+k=a.getFirstHydratableChild,m=a.hydrateInstance,D=a.hydrateTextInstance,A=null,v=null,n=!1;return{enterHydrationState:function(a){v=k(a.stateNode.containerInfo);A=a;return n=!0},resetHydrationState:function(){v=A=null;n=!1},tryToClaimNextHydratableInstance:function(a){if(n){var d=v;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;n=!1;A=a;return}b(A,v)}A=a;v=k(d)}else a.effectTag|=2,n=!1,A=a}},prepareToHydrateHostInstance:function(a,b,c){b=m(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=
+b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return D(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==A)return!1;if(!n)return d(a),n=!0,!1;var c=a.type;if(5!==a.tag||"head"!==c&&"body"!==c&&!e(c,a.memoizedProps))for(c=v;c;)b(a,c),c=h(c);d(a);v=A?h(a.stateNode):null;return!0}}},gg=function(a){function b(a){X=Ba=!0;var b=a.stateNode;b.current===a?l("177"):void 0;b.isReadyForCommit=!1;bb.current=null;if(1<a.effectTag)if(null!==a.lastEffect){a.lastEffect.nextEffect=
+a;var c=a.firstEffect}else c=a;else c=a.firstEffect;za();for(u=c;null!==u;){var d=!1,e=void 0;try{for(;null!==u;){var f=u.effectTag;f&16&&aa(u);if(f&128){var g=u.alternate;null!==g&&va(g)}switch(f&-242){case 2:V(u);u.effectTag&=-3;break;case 6:V(u);u.effectTag&=-3;ca(u.alternate,u);break;case 4:ca(u.alternate,u);break;case 8:ka=!0,na(u),ka=!1}u=u.nextEffect}}catch(Qc){d=!0,e=Qc}d&&(null===u?l("178"):void 0,h(u,e),null!==u&&(u=u.nextEffect))}Aa();b.current=a;for(u=c;null!==u;){c=!1;d=void 0;try{for(;null!==
+u;){var k=u.effectTag;k&36&&sa(u.alternate,u);k&128&&ta(u);if(k&64)switch(e=u,f=void 0,null!==S&&(f=S.get(e),S["delete"](e),null==f&&null!==e.alternate&&(e=e.alternate,f=S.get(e),S["delete"](e))),null==f?l("184"):void 0,e.tag){case 2:e.stateNode.componentDidCatch(f.error,{componentStack:f.componentStack});break;case 3:null===ma&&(ma=f.error);break;default:l("157")}var Ma=u.nextEffect;u.nextEffect=null;u=Ma}}catch(Qc){c=!0,d=Qc}c&&(null===u?l("178"):void 0,h(u,d),null!==u&&(u=u.nextEffect))}Ba=X=!1;
+"function"===typeof fe&&fe(a.stateNode);ua&&(ua.forEach(w),ua=null);null!==ma&&(a=ma,ma=null,G(a));b=b.current.expirationTime;0===b&&(Ia=S=null);return b}function c(a){for(;;){var b=Y(a.alternate,a,F),c=a["return"],d=a.sibling;var e=a;if(2147483647===F||2147483647!==e.expirationTime){if(2!==e.tag&&3!==e.tag)var f=0;else f=e.updateQueue,f=null===f?0:f.expirationTime;for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==
+b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a));if(null!==d)return d;if(null!==c)a=c;else{a.stateNode.isReadyForCommit=!0;break}}return null}function d(a){var b=Q(a.alternate,a,F);null===b&&(b=c(a));bb.current=null;return b}function e(a){var b=T(a.alternate,a,F);null===
+b&&(b=c(a));bb.current=null;return b}function f(a){if(null!==S){if(!(0===F||F>a))if(F<=ha)for(;null!==B;)B=k(B)?e(B):d(B);else for(;null!==B&&!z();)B=k(B)?e(B):d(B)}else if(!(0===F||F>a))if(F<=ha)for(;null!==B;)B=d(B);else for(;null!==B&&!z();)B=d(B)}function g(a,b){Ba?l("243"):void 0;Ba=!0;a.isReadyForCommit=!1;if(a!==Ja||b!==F||null===B){for(;-1<ra;)vb[ra]=null,ra--;wb=ja;ia.current=ja;J.current=!1;P();Ja=a;F=b;B=yb(Ja.current,null,b)}var c=!1,d=null;try{f(b)}catch(Pc){c=!0,d=Pc}for(;c;){if(U){ma=
+d;break}var g=B;if(null===g)U=!0;else{var k=h(g,d);null===k?l("183"):void 0;if(!U){try{c=k;d=b;for(k=c;null!==g;){switch(g.tag){case 2:ae(g);break;case 5:O(g);break;case 3:I(g);break;case 4:I(g)}if(g===k||g.alternate===k)break;g=g["return"]}B=e(c);f(d)}catch(Pc){c=!0;d=Pc;continue}break}}}b=ma;U=Ba=!1;ma=null;null!==b&&G(b);return a.isReadyForCommit?a.current.alternate:null}function h(a,b){var c=bb.current=null,d=!1,e=!1,f=null;if(3===a.tag)c=a,m(a)&&(U=!0);else for(var g=a["return"];null!==g&&null===
+c;){2===g.tag?"function"===typeof g.stateNode.componentDidCatch&&(d=!0,f=Pa(g),c=g,e=!0):3===g.tag&&(c=g);if(m(g)){if(ka||null!==ua&&(ua.has(g)||null!==g.alternate&&ua.has(g.alternate)))return null;c=null;e=!1}g=g["return"]}if(null!==c){null===Ia&&(Ia=new Set);Ia.add(c);var h="";g=a;do{a:switch(g.tag){case 0:case 1:case 2:case 5:var k=g._debugOwner,l=g._debugSource;var Ma=Pa(g);var p=null;k&&(p=Pa(k));k=l;Ma="\n    in "+(Ma||"Unknown")+(k?" (at "+k.fileName.replace(/^.*[\\\/]/,"")+":"+k.lineNumber+
+")":p?" (created by "+p+")":"");break a;default:Ma=""}h+=Ma;g=g["return"]}while(g);g=h;a=Pa(a);null===S&&(S=new Map);b={componentName:a,componentStack:g,error:b,errorBoundary:d?c.stateNode:null,errorBoundaryFound:d,errorBoundaryName:f,willRetry:e};S.set(c,b);try{var n=b.error;n&&n.suppressReactErrorLogging||console.error(n)}catch(Rc){Rc&&Rc.suppressReactErrorLogging||console.error(Rc)}X?(null===ua&&(ua=new Set),ua.add(c)):w(c);return c}null===ma&&(ma=b);return null}function k(a){return null!==S&&
+(S.has(a)||null!==a.alternate&&S.has(a.alternate))}function m(a){return null!==Ia&&(Ia.has(a)||null!==a.alternate&&Ia.has(a.alternate))}function n(){return 20*(((y()+100)/20|0)+1)}function A(a){return 0!==Ca?Ca:Ba?X?1:F:!ya||a.internalContextTag&1?n():1}function v(a,b){return r(a,b,!1)}function r(a,b,c){for(;null!==a;){if(0===a.expirationTime||a.expirationTime>b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===
+a["return"])if(3===a.tag){c=a.stateNode;!Ba&&c===Ja&&b<F&&(B=Ja=null,F=0);var d=c,e=b;fa>Ga&&l("185");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===N?(Ka=N=d,d.nextScheduledRoot=d):(N=N.nextScheduledRoot=d,N.nextScheduledRoot=Ka);else{var f=d.remainingExpirationTime;if(0===f||e<f)d.remainingExpirationTime=e}Na||(Da?ea&&(Ea=d,Fa=1,t(Ea,Fa)):1===e?x(1,null):C(e));!Ba&&c===Ja&&b<F&&(B=Ja=null,F=0)}else break;a=a["return"]}}function w(a){r(a,1,!0)}function y(){return ha=((ba()-qa)/
+10|0)+2}function C(a){if(0!==Z){if(a>Z)return;xa(la)}var b=ba()-qa;Z=a;la=wa(H,{timeout:10*(a-2)-b})}function E(){var a=0,b=null;if(null!==N)for(var c=N,d=Ka;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===N?l("244"):void 0;if(d===d.nextScheduledRoot){Ka=N=d.nextScheduledRoot=null;break}else if(d===Ka)Ka=e=d.nextScheduledRoot,N.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===N){N=c;N.nextScheduledRoot=Ka;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,
+d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||e<a)a=e,b=d;if(d===N)break;c=d;d=d.nextScheduledRoot}}c=Ea;null!==c&&c===b?fa++:fa=0;Ea=b;Fa=a}function H(a){x(0,a)}function x(a,b){W=b;for(E();null!==Ea&&0!==Fa&&(0===a||Fa<=a)&&!oa;)t(Ea,Fa),E();null!==W&&(Z=0,la=-1);0!==Fa&&C(Fa);W=null;oa=!1;fa=0;if(da)throw a=pa,pa=null,da=!1,a;}function t(a,c){Na?l("245"):void 0;Na=!0;if(c<=y()){var d=a.finishedWork;null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,
+d=g(a,c),null!==d&&(a.remainingExpirationTime=b(d)))}else d=a.finishedWork,null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(z()?a.finishedWork=d:a.remainingExpirationTime=b(d)));Na=!1}function z(){return null===W||W.timeRemaining()>Ha?!1:oa=!0}function G(a){null===Ea?l("246"):void 0;Ea.remainingExpirationTime=0;da||(da=!0,pa=a)}var q=eg(a),p=fg(a),I=q.popHostContainer,O=q.popHostContext,P=q.resetHostContainer,M=bg(a,q,p,v,A),Q=M.beginWork,T=M.beginFailedWork,
+Y=cg(a,q,p).completeWork;q=dg(a,h);var aa=q.commitResetTextContent,V=q.commitPlacement,na=q.commitDeletion,ca=q.commitWork,sa=q.commitLifeCycles,ta=q.commitAttachRef,va=q.commitDetachRef,ba=a.now,wa=a.scheduleDeferredCallback,xa=a.cancelDeferredCallback,ya=a.useSyncScheduling,za=a.prepareForCommit,Aa=a.resetAfterCommit,qa=ba(),ha=2,Ca=0,Ba=!1,B=null,Ja=null,F=0,u=null,S=null,Ia=null,ua=null,ma=null,U=!1,X=!1,ka=!1,Ka=null,N=null,Z=0,la=-1,Na=!1,Ea=null,Fa=0,oa=!1,da=!1,pa=null,W=null,Da=!1,ea=!1,
+Ga=1E3,fa=0,Ha=1;return{computeAsyncExpiration:n,computeExpirationForFiber:A,scheduleWork:v,batchedUpdates:function(a,b){var c=Da;Da=!0;try{return a(b)}finally{(Da=c)||Na||x(1,null)}},unbatchedUpdates:function(a){if(Da&&!ea){ea=!0;try{return a()}finally{ea=!1}}return a()},flushSync:function(a){var b=Da;Da=!0;try{a:{var c=Ca;Ca=1;try{var d=a();break a}finally{Ca=c}d=void 0}return d}finally{Da=b,Na?l("187"):void 0,x(1,null)}},deferredUpdates:function(a){var b=Ca;Ca=n();try{return a()}finally{Ca=b}}}},
+Te=function(a){function b(a){a=wf(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=gg(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Q(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,m){var g=b.current;if(c){c=
+c._reactInternalFiber;var h;b:{2===Qa(c)&&2===c.tag?void 0:l("170");for(h=c;3!==h.tag;){if(Ua(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h["return"])?void 0:l("171")}h=h.stateNode.context}c=Ua(c)?ce(c,h):h}else c=ja;null===b.context?b.context=c:b.pendingContext=c;b=m;b=void 0===b?null:b;m=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);Bb(g,{expirationTime:m,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,
+nextCallback:null,next:null});f(g,m)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=xf(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Af(C({},
+a,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}},Ue=Object.freeze({default:Te}),Sc=Ue&&Te||Ue,hg=Sc["default"]?Sc["default"]:Sc,Ve="object"===typeof performance&&"function"===typeof performance.now,Nb=void 0;Nb=Ve?function(){return performance.now()}:function(){return Date.now()};var Ob=void 0,Pb=void 0;if(P.canUseDOM)if("function"!==typeof requestIdleCallback||"function"!==typeof cancelIdleCallback){var Qb=null,Rb=!1,eb=-1,fb=!1,gb=
+0,Sb=33,hb=33;var Tc=Ve?{didTimeout:!1,timeRemaining:function(){var a=gb-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=gb-Date.now();return 0<a?a:0}};var We="__reactIdleCallback$"+Math.random().toString(36).slice(2);window.addEventListener("message",function(a){if(a.source===window&&a.data===We){Rb=!1;a=Nb();if(0>=gb-a)if(-1!==eb&&eb<=a)Tc.didTimeout=!0;else{fb||(fb=!0,requestAnimationFrame(Xe));return}else Tc.didTimeout=!1;eb=-1;a=Qb;Qb=null;null!==a&&a(Tc)}},!1);
+var Xe=function(a){fb=!1;var b=a-gb+hb;b<hb&&Sb<hb?(8>b&&(b=8),hb=b<Sb?Sb:b):Sb=b;gb=a+hb;Rb||(Rb=!0,window.postMessage(We,"*"))};Ob=function(a,b){Qb=a;null!=b&&"number"===typeof b.timeout&&(eb=Nb()+b.timeout);fb||(fb=!0,requestAnimationFrame(Xe));return 0};Pb=function(){Qb=null;Rb=!1;eb=-1}}else Ob=window.requestIdleCallback,Pb=window.cancelIdleCallback;else Ob=function(a){return setTimeout(function(){a({timeRemaining:function(){return Infinity}})})},Pb=function(a){clearTimeout(a)};var Df=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
+ne={},me={},Tb=void 0,Be=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{Tb=Tb||document.createElement("div");Tb.innerHTML="\x3csvg\x3e"+b+"\x3c/svg\x3e";for(b=Tb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),Ic=function(a,b){if(b){var c=
+a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b},Za={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,
+order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ig=["Webkit","ms","Moz","O"];Object.keys(Za).forEach(function(a){ig.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Za[b]=Za[a]})});var Ff=C({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),$a=G.thatReturns(""),
+Z={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",
+topWaiting:"waiting"},jg=Object.freeze({createElement:ye,createTextNode:ze,setInitialProperties:Ae,diffProperties:Ce,updateProperties:De,diffHydratedProperties:Ee,diffHydratedText:Fe,warnForUnmatchedText:function(a,b){},warnForDeletedHydratableElement:function(a,b){},warnForDeletedHydratableText:function(a,b){},warnForInsertedHydratedElement:function(a,b,c){},warnForInsertedHydratedText:function(a,b){},restoreControlledState:function(a,b,c){switch(b){case "input":Cc(a,c);b=c.name;if("radio"===c.type&&
+null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name\x3d"+JSON.stringify(""+b)+'][type\x3d"radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=fd(d);e?void 0:l("90");Bd(d);Cc(d,e)}}}break;case "textarea":ue(a,c);break;case "select":b=c.value,null!=b&&ka(a,!!c.multiple,b,!1)}}});Qe.injectFiberControlledHostComponent(jg);var Uc=null,Vc=null,E=hg({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:
+Fc(null,"");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=Fc(a,b)}return a},getChildHostContext:function(a,b){return Fc(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){Uc=Ra;var a=nc();if(lc(a)){if("selectionStart"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.getSelection();if(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(K){b=
+null;break a}var f=0,g=-1,h=-1,k=0,l=0,n=a,r=null;b:for(;;){for(var v;;){n!==b||0!==d&&3!==n.nodeType||(g=f+d);n!==e||0!==c&&3!==n.nodeType||(h=f+c);3===n.nodeType&&(f+=n.nodeValue.length);if(null===(v=n.firstChild))break;r=n;n=v}for(;;){if(n===a)break b;r===b&&++k===d&&(g=f);r===e&&++l===c&&(h=f);if(null!==(v=n.nextSibling))break;n=r;r=n.parentNode}n=v}b=-1===g||-1===h?null:{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;Vc={focusedElem:a,selectionRange:b};ic(!1)},resetAfterCommit:function(){var a=
+Vc,b=nc(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&Nd(document.documentElement,c)){if(lc(c))if(b=d.start,a=d.end,void 0===a&&(a=b),"selectionStart"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(window.getSelection){b=window.getSelection();var e=c[jd()].length;a=Math.min(d.start,e);d=void 0===d.end?a:Math.min(d.end,e);!b.extend&&a>d&&(e=d,d=a,a=e);e=Qd(c,a);var f=Qd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||
+b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});try{c.focus()}catch(h){}for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}Vc=null;ic(Uc);Uc=null},createInstance:function(a,b,c,d,e){a=ye(a,b,c,d);a[O]=e;a[ea]=b;return a},appendInitialChild:function(a,
+b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){Ae(a,b,c,d);a:{switch(b){case "button":case "input":case "select":case "textarea":a=!!c.autoFocus;break a}a=!1}return a},prepareUpdate:function(a,b,c,d,e,f){return Ce(a,b,c,d,e)},shouldSetTextContent:function(a,b){return"textarea"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&"string"===typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,
+b){return!!b.hidden},createTextInstance:function(a,b,c,d){a=ze(a,b);a[O]=d;return a},now:Nb,mutation:{commitMount:function(a,b,c,d){a.focus()},commitUpdate:function(a,b,c,d,e,f){a[ea]=e;De(a,b,c,d,e)},resetTextContent:function(a){a.textContent=""},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,b){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,
+b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b,c){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,b){return""===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=
+a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){a[O]=f;a[ea]=c;return Ee(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){a[O]=c;return Fe(a,b)},didNotMatchHydratedContainerTextInstance:function(a,b,c){},didNotMatchHydratedTextInstance:function(a,b,c,d,e){},didNotHydrateContainerInstance:function(a,b){},didNotHydrateInstance:function(a,b,c,d){},didNotFindHydratableContainerInstance:function(a,
+b,c){},didNotFindHydratableContainerTextInstance:function(a,b){},didNotFindHydratableInstance:function(a,b,c,d,e){},didNotFindHydratableTextInstance:function(a,b,c,d){}},scheduleDeferredCallback:Ob,cancelDeferredCallback:Pb,useSyncScheduling:!0});ec=E.batchedUpdates;He.prototype.render=function(a,b){E.updateContainer(a,this._reactRootContainer,null,b)};He.prototype.unmount=function(a){E.updateContainer(null,this._reactRootContainer,null,a)};var Ye={createPortal:Ge,findDOMNode:function(a){if(null==
+a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return E.findHostInstance(b);"function"===typeof a.render?l("188"):l("213",Object.keys(a))},hydrate:function(a,b,c){return Hb(null,a,b,!0,c)},render:function(a,b,c){return Hb(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?l("38"):void 0;return Hb(a,b,c,!1,d)},unmountComponentAtNode:function(a){Jc(a)?void 0:l("40");return a._reactRootContainer?(E.unbatchedUpdates(function(){Hb(null,
+null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:Ge,unstable_batchedUpdates:cc,unstable_deferredUpdates:E.deferredUpdates,flushSync:E.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:Mf,EventPluginRegistry:Lf,EventPropagators:Nf,ReactControlledComponent:Rf,ReactDOMComponentTree:Oe,ReactDOMEventListener:Uf}};E.injectIntoDevTools({findFiberByHostInstance:W,bundleType:0,version:"16.2.0",rendererPackageName:"react-dom"});var Ze=Object.freeze({default:Ye}),
+Wc=Ze&&Ye||Ze;return Wc["default"]?Wc["default"]:Wc});
--- a/devtools/client/memory/components/Census.js
+++ b/devtools/client/memory/components/Census.js
@@ -1,17 +1,17 @@
 /* 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/. */
 
 "use strict";
 
 const { Component, createFactory } = require("devtools/client/shared/vendor/react");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
-const Tree = createFactory(require("devtools/client/shared/components/Tree"));
+const Tree = createFactory(require("devtools/client/shared/components/VirtualizedTree"));
 const CensusTreeItem = createFactory(require("./CensusTreeItem"));
 const { TREE_ROW_HEIGHT } = require("../constants");
 const { censusModel, diffingModel } = require("../models");
 
 class Census extends Component {
   static get propTypes() {
     return {
       census: censusModel,
--- a/devtools/client/memory/components/DominatorTree.js
+++ b/devtools/client/memory/components/DominatorTree.js
@@ -4,17 +4,17 @@
 
 "use strict";
 
 const { Component, createFactory } = require("devtools/client/shared/vendor/react");
 const dom = require("devtools/client/shared/vendor/react-dom-factories");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
 const { assert } = require("devtools/shared/DevToolsUtils");
 const { createParentMap } = require("devtools/shared/heapsnapshot/CensusUtils");
-const Tree = createFactory(require("devtools/client/shared/components/Tree"));
+const Tree = createFactory(require("devtools/client/shared/components/VirtualizedTree"));
 const DominatorTreeItem = createFactory(require("./DominatorTreeItem"));
 const { L10N } = require("../utils");
 const { TREE_ROW_HEIGHT, dominatorTreeState } = require("../constants");
 const { dominatorTreeModel } = require("../models");
 const DominatorTreeLazyChildren = require("../dominator-tree-lazy-children");
 
 const DOMINATOR_TREE_AUTO_EXPAND_DEPTH = 3;
 
--- a/devtools/client/memory/components/Individuals.js
+++ b/devtools/client/memory/components/Individuals.js
@@ -1,17 +1,17 @@
 /* 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/. */
 
 "use strict";
 
 const { Component, createFactory } = require("devtools/client/shared/vendor/react");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
-const Tree = createFactory(require("devtools/client/shared/components/Tree"));
+const Tree = createFactory(require("devtools/client/shared/components/VirtualizedTree"));
 const DominatorTreeItem = createFactory(require("./DominatorTreeItem"));
 const { TREE_ROW_HEIGHT } = require("../constants");
 const models = require("../models");
 
 /**
  * The list of individuals in a census group.
  */
 class Individuals extends Component {
--- a/devtools/client/netmonitor/src/components/PropertiesView.js
+++ b/devtools/client/netmonitor/src/components/PropertiesView.js
@@ -10,17 +10,16 @@ const { Component, createFactory } = req
 const dom = require("devtools/client/shared/vendor/react-dom-factories");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
 
 const { FILTER_SEARCH_DELAY } = require("../constants");
 
 // Components
 const TreeViewClass = require("devtools/client/shared/components/tree/TreeView");
 const TreeView = createFactory(TreeViewClass);
-const SearchBox = createFactory(require("devtools/client/shared/components/SearchBox"));
 
 loader.lazyGetter(this, "SearchBox", function () {
   return createFactory(require("devtools/client/shared/components/SearchBox"));
 });
 loader.lazyGetter(this, "TreeRow", function () {
   return createFactory(require("devtools/client/shared/components/tree/TreeRow"));
 });
 loader.lazyGetter(this, "SourceEditor", function () {
--- a/devtools/client/netmonitor/src/components/RequestListItem.js
+++ b/devtools/client/netmonitor/src/components/RequestListItem.js
@@ -33,43 +33,76 @@ const { RESPONSE_HEADERS } = require("..
   RequestListColumnSetCookies,
   RequestListColumnStartTime,
   RequestListColumnStatus,
   RequestListColumnTransferredSize,
   RequestListColumnType,
   RequestListColumnWaterfall
 */
 
-const COLUMNS = [
-  "Cause",
-  "ContentSize",
-  "Cookies",
-  "Domain",
-  "Duration",
-  "EndTime",
-  "File",
-  "Latency",
-  "Method",
-  "Protocol",
-  "RemoteIP",
-  "ResponseHeader",
-  "ResponseTime",
-  "Scheme",
-  "SetCookies",
-  "StartTime",
-  "Status",
-  "TransferredSize",
-  "Type",
-  "Waterfall"
-];
-for (let name of COLUMNS) {
-  loader.lazyGetter(this, "RequestListColumn" + name, function () {
-    return createFactory(require("./RequestListColumn" + name));
-  });
-}
+loader.lazyGetter(this, "RequestListColumnCause", function () {
+  return createFactory(require("./RequestListColumnCause"));
+});
+loader.lazyGetter(this, "RequestListColumnContentSize", function () {
+  return createFactory(require("./RequestListColumnContentSize"));
+});
+loader.lazyGetter(this, "RequestListColumnCookies", function () {
+  return createFactory(require("./RequestListColumnCookies"));
+});
+loader.lazyGetter(this, "RequestListColumnDomain", function () {
+  return createFactory(require("./RequestListColumnDomain"));
+});
+loader.lazyGetter(this, "RequestListColumnDuration", function () {
+  return createFactory(require("./RequestListColumnDuration"));
+});
+loader.lazyGetter(this, "RequestListColumnEndTime", function () {
+  return createFactory(require("./RequestListColumnEndTime"));
+});
+loader.lazyGetter(this, "RequestListColumnFile", function () {
+  return createFactory(require("./RequestListColumnFile"));
+});
+loader.lazyGetter(this, "RequestListColumnLatency", function () {
+  return createFactory(require("./RequestListColumnLatency"));
+});
+loader.lazyGetter(this, "RequestListColumnMethod", function () {
+  return createFactory(require("./RequestListColumnMethod"));
+});
+loader.lazyGetter(this, "RequestListColumnProtocol", function () {
+  return createFactory(require("./RequestListColumnProtocol"));
+});
+loader.lazyGetter(this, "RequestListColumnRemoteIP", function () {
+  return createFactory(require("./RequestListColumnRemoteIP"));
+});
+loader.lazyGetter(this, "RequestListColumnResponseHeader", function () {
+  return createFactory(require("./RequestListColumnResponseHeader"));
+});
+loader.lazyGetter(this, "RequestListColumnResponseTime", function () {
+  return createFactory(require("./RequestListColumnResponseTime"));
+});
+loader.lazyGetter(this, "RequestListColumnScheme", function () {
+  return createFactory(require("./RequestListColumnScheme"));
+});
+loader.lazyGetter(this, "RequestListColumnSetCookies", function () {
+  return createFactory(require("./RequestListColumnSetCookies"));
+});
+loader.lazyGetter(this, "RequestListColumnStartTime", function () {
+  return createFactory(require("./RequestListColumnStartTime"));
+});
+loader.lazyGetter(this, "RequestListColumnStatus", function () {
+  return createFactory(require("./RequestListColumnStatus"));
+});
+loader.lazyGetter(this, "RequestListColumnTransferredSize", function () {
+  return createFactory(require("./RequestListColumnTransferredSize"));
+});
+loader.lazyGetter(this, "RequestListColumnType", function () {
+  return createFactory(require("./RequestListColumnType"));
+});
+loader.lazyGetter(this, "RequestListColumnWaterfall", function () {
+  return createFactory(require("./RequestListColumnWaterfall"));
+});
 
 /**
  * Used by shouldComponentUpdate: compare two items, and compare only properties
  * relevant for rendering the RequestListItem. Other properties (like request and
  * response headers, cookies, bodies) are ignored. These are very useful for the
  * network details, but not here.
  */
 const UPDATED_REQ_ITEM_PROPS = [
--- a/devtools/client/netmonitor/webpack.config.js
+++ b/devtools/client/netmonitor/webpack.config.js
@@ -34,16 +34,18 @@ let webpackConfig = {
             * so the raw-loader declared in devtools-launchpad config can load
             * those files.
             */
           "rewrite-raw",
           // Replace all references to this.browserRequire() by require()
           "rewrite-browser-require",
           // Replace all references to loader.lazyRequire() by require()
           "rewrite-lazy-require",
+          // Replace all references to loader.lazyGetter() by require()
+          "rewrite-lazy-getter",
         ],
       }
     ]
   },
 
   resolveLoader: {
     modules: [
       "node_modules",
--- a/devtools/client/performance/components/jit-optimizations.js
+++ b/devtools/client/performance/components/jit-optimizations.js
@@ -6,17 +6,17 @@
 const { LocalizationHelper } = require("devtools/shared/l10n");
 const STRINGS_URI = "devtools/client/locales/jit-optimizations.properties";
 const L10N = new LocalizationHelper(STRINGS_URI);
 
 const { assert } = require("devtools/shared/DevToolsUtils");
 const { Component, createFactory } = require("devtools/client/shared/vendor/react");
 const dom = require("devtools/client/shared/vendor/react-dom-factories");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
-const Tree = createFactory(require("../../shared/components/Tree"));
+const Tree = createFactory(require("devtools/client/shared/components/VirtualizedTree"));
 const OptimizationsItem = createFactory(require("./jit-optimizations-item"));
 const FrameView = createFactory(require("../../shared/components/Frame"));
 const JIT_TITLE = L10N.getStr("jit.title");
 // If TREE_ROW_HEIGHT changes, be sure to change `var(--jit-tree-row-height)`
 // in `devtools/client/themes/jit-optimizations.css`
 const TREE_ROW_HEIGHT = 14;
 
 /* eslint-disable no-unused-vars */
--- a/devtools/client/performance/components/waterfall-tree.js
+++ b/devtools/client/performance/components/waterfall-tree.js
@@ -1,16 +1,16 @@
 /* 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/. */
 "use strict";
 
 const { Component, createFactory } = require("devtools/client/shared/vendor/react");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
-const Tree = createFactory(require("devtools/client/shared/components/Tree"));
+const Tree = createFactory(require("devtools/client/shared/components/VirtualizedTree"));
 const WaterfallTreeRow = createFactory(require("./waterfall-tree-row"));
 
 // Keep in sync with var(--waterfall-tree-row-height) in performance.css
 const WATERFALL_TREE_ROW_HEIGHT = 15; // px
 
 /**
  * Checks if a given marker is in the specified time range.
  *
rename from devtools/client/shared/components/Tree.js
rename to devtools/client/shared/components/VirtualizedTree.js
--- a/devtools/client/shared/components/moz.build
+++ b/devtools/client/shared/components/moz.build
@@ -16,14 +16,14 @@ DevToolsModules(
     'Frame.js',
     'HSplitBox.js',
     'NotificationBox.css',
     'NotificationBox.js',
     'SearchBox.js',
     'SidebarToggle.css',
     'SidebarToggle.js',
     'StackTrace.js',
-    'Tree.js',
+    'VirtualizedTree.js',
     'VisibilityHandler.js',
 )
 
 MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini']
 BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
--- a/devtools/client/shared/components/test/mochitest/test_tree_01.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_01.html
@@ -16,17 +16,17 @@ depth.
 <body>
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     let ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     let React = browserRequire("devtools/client/shared/vendor/react");
-    let Tree = React.createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    let Tree = React.createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     ok(React, "Should get React");
     ok(Tree, "Should get Tree");
 
     const t = Tree(TEST_TREE_INTERFACE);
     ok(t, "Should be able to create Tree instances");
 
     const tree = ReactDOM.render(t, window.document.body);
--- a/devtools/client/shared/components/test/mochitest/test_tree_02.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_02.html
@@ -15,17 +15,17 @@ Test that collapsed subtrees aren't rend
 <body>
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     let ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     let React = browserRequire("devtools/client/shared/vendor/react");
-    let Tree = React.createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    let Tree = React.createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     const tree = ReactDOM.render(Tree(TEST_TREE_INTERFACE), window.document.body);
 
     isAccessibleTree(tree);
     TEST_TREE.expanded = new Set("MNO".split(""));
     yield forceRender(tree);
 
     isRenderedTree(document.body.textContent, [
--- a/devtools/client/shared/components/test/mochitest/test_tree_03.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_03.html
@@ -15,17 +15,17 @@ Test Tree's autoExpandDepth.
 <body>
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     let ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     let React = browserRequire("devtools/client/shared/vendor/react");
-    let Tree = React.createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    let Tree = React.createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     const tree = ReactDOM.render(Tree(Object.assign({}, TEST_TREE_INTERFACE, {
       autoExpandDepth: 1
     })), window.document.body);
 
     isAccessibleTree(tree);
     isRenderedTree(document.body.textContent, [
       "A:false",
--- a/devtools/client/shared/components/test/mochitest/test_tree_04.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_04.html
@@ -24,17 +24,17 @@ window.onload = Task.async(function* () 
         bottom: document.querySelector(".tree > div:last-of-type").clientHeight,
       };
     }
 
     const ITEM_HEIGHT = 3;
 
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const React = browserRequire("devtools/client/shared/vendor/react");
-    const Tree = React.createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = React.createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     const tree = ReactDOM.render(
       Tree(Object.assign({}, TEST_TREE_INTERFACE, { itemHeight: ITEM_HEIGHT })),
       window.document.body);
 
     TEST_TREE.expanded = new Set("ABCDEFGHIJKLMNO".split(""));
 
     yield setState(tree, {
--- a/devtools/client/shared/components/test/mochitest/test_tree_05.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_05.html
@@ -16,17 +16,17 @@ Test focusing with the Tree component.
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
-    const Tree = createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     function renderTree(props) {
       const treeProps = Object.assign({},
         TEST_TREE_INTERFACE,
         { onFocus: x => renderTree({ focused: x }) },
         props
       );
       return ReactDOM.render(Tree(treeProps), window.document.body);
--- a/devtools/client/shared/components/test/mochitest/test_tree_06.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_06.html
@@ -16,17 +16,17 @@ Test keyboard navigation with the Tree c
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
     const { Simulate } = ReactDOM.TestUtils;
-    const Tree = createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     function renderTree(props) {
       const treeProps = Object.assign({},
         TEST_TREE_INTERFACE,
         { onFocus: x => renderTree({ focused: x }) },
         props
       );
       return ReactDOM.render(Tree(treeProps), window.document.body);
--- a/devtools/client/shared/components/test/mochitest/test_tree_07.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_07.html
@@ -18,17 +18,17 @@ Test that arrows get the open attribute 
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const React = browserRequire("devtools/client/shared/vendor/react");
     const dom = require("devtools/client/shared/vendor/react-dom-factories");
     const Tree =
-      React.createFactory(browserRequire("devtools/client/shared/components/Tree"));
+      React.createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     const treeProps = Object.assign({}, TEST_TREE_INTERFACE, {
       renderItem: (item, depth, focused, arrow) => {
         return dom.div(
           {
             id: item,
             style: { marginLeft: depth * 16 + "px" }
           },
--- a/devtools/client/shared/components/test/mochitest/test_tree_08.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_08.html
@@ -17,17 +17,17 @@ other inputs.
 <body>
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
-    const Tree = createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     function renderTree(props) {
       const treeProps = Object.assign({},
         TEST_TREE_INTERFACE,
         { onFocus: x => renderTree({ focused: x }) },
         props
       );
       return ReactDOM.render(Tree(treeProps), window.document.body);
--- a/devtools/client/shared/components/test/mochitest/test_tree_09.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_09.html
@@ -17,17 +17,17 @@ Test that when an item in the Tree compo
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
     const { Simulate } = ReactDOM.TestUtils;
-    const Tree = createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     let numberOfExpands = 0;
     let lastExpandedItem = null;
 
     let numberOfCollapses = 0;
     let lastCollapsedItem = null;
 
     function renderTree(props) {
--- a/devtools/client/shared/components/test/mochitest/test_tree_10.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_10.html
@@ -16,17 +16,17 @@ Test that when an item in the Tree compo
 <body>
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
-    const Tree = createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     function renderTree(props) {
       const treeProps = Object.assign({},
         TEST_TREE_INTERFACE,
         { autoExpandDepth: 1 },
         props
       );
       return ReactDOM.render(Tree(treeProps), window.document.body);
--- a/devtools/client/shared/components/test/mochitest/test_tree_11.html
+++ b/devtools/client/shared/components/test/mochitest/test_tree_11.html
@@ -28,17 +28,17 @@ Test that when an item in the Tree compo
 <pre id="test">
 <script src="head.js" type="application/javascript"></script>
 <script type="application/javascript">
 window.onload = Task.async(function* () {
   try {
     const ReactDOM = browserRequire("devtools/client/shared/vendor/react-dom");
     const { createFactory } = browserRequire("devtools/client/shared/vendor/react");
     const { Simulate } = ReactDOM.TestUtils;
-    const Tree = createFactory(browserRequire("devtools/client/shared/components/Tree"));
+    const Tree = createFactory(browserRequire("devtools/client/shared/components/VirtualizedTree"));
 
     TEST_TREE.expanded = new Set("ABCDEFGHIJKLMNO".split(""));
 
     function renderTree(props) {
       const treeProps = Object.assign({},
         TEST_TREE_INTERFACE,
         {
           itemHeight: 10,
new file mode 100644
--- /dev/null
+++ b/devtools/client/shared/webpack/rewrite-lazy-getter.js
@@ -0,0 +1,14 @@
+/* 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/. */
+
+"use strict";
+
+module.exports = function (content) {
+  this.cacheable && this.cacheable();
+
+  return content.replace(
+    /loader.lazyGetter\(this,\s*"([^"]+)"\s*,\s*(function\s*\(\)\s*\{[\s\S]*?\})\);/g,
+    "let $1 = ($2)();"
+  );
+};
--- a/devtools/client/webconsole/new-console-output/components/Message.js
+++ b/devtools/client/webconsole/new-console-output/components/Message.js
@@ -9,17 +9,17 @@
 // React & Redux
 const { Component, createFactory } = require("devtools/client/shared/vendor/react");
 const dom = require("devtools/client/shared/vendor/react-dom-factories");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
 const { l10n } =
   require("devtools/client/webconsole/new-console-output/utils/messages");
 const actions =
   require("devtools/client/webconsole/new-console-output/actions/index");
-const { MESSAGE_SOURCE } =
+const { MESSAGE_SOURCE, MESSAGE_TYPE } =
   require("devtools/client/webconsole/new-console-output/constants");
 const CollapseButton =
   require("devtools/client/webconsole/new-console-output/components/CollapseButton");
 const { MessageIndent } =
   require("devtools/client/webconsole/new-console-output/components/MessageIndent");
 const MessageIcon =
   require("devtools/client/webconsole/new-console-output/components/MessageIcon");
 const MessageRepeat =
@@ -240,17 +240,18 @@ class Message extends Component {
 
     const bodyElements = Array.isArray(messageBody) ? messageBody : [messageBody];
 
     return dom.div({
       className: topLevelClasses.join(" "),
       onContextMenu: this.onContextMenu,
       ref: node => {
         this.messageNode = node;
-      }
+      },
+      "aria-live": type === MESSAGE_TYPE.COMMAND ? "off" : "polite"
     },
       timestampEl,
       MessageIndent({indent}),
       icon,
       collapse,
       dom.span({ className: "message-body-wrapper" },
         dom.span({ className: "message-flex-body" },
           // Add whitespaces for formatting when copying to the clipboard.
--- a/devtools/client/webconsole/new-console-output/components/MessageIcon.js
+++ b/devtools/client/webconsole/new-console-output/components/MessageIcon.js
@@ -19,16 +19,17 @@ const CONSTANT_ICONS = {
   "log": getIconElement("level.log"),
   "debug": getIconElement("level.debug"),
 };
 
 function getIconElement(level) {
   return dom.span({
     className: "icon",
     title: l10n.getStr(level),
+    "aria-live": "off",
   });
 }
 
 MessageIcon.displayName = "MessageIcon";
 MessageIcon.propTypes = {
   level: PropTypes.string.isRequired,
 };
 function MessageIcon(props) {
--- a/devtools/client/webconsole/new-console-output/store.js
+++ b/devtools/client/webconsole/new-console-output/store.js
@@ -195,17 +195,17 @@ function enableNetProvider(hud) {
       // If network message has been opened, fetch all HTTP details
       // from the backend. It can happen (especially in test) that
       // the message is opened before all network event updates are
       // received. The rest of updates will be handled below, see:
       // NETWORK_MESSAGE_UPDATE action handler.
       if (type == MESSAGE_OPEN) {
         let updates = getAllNetworkMessagesUpdateById(newState);
         let message = updates[action.id];
-        if (!message.openedOnce && message.source == "network") {
+        if (message && !message.openedOnce && message.source == "network") {
           dataProvider.onNetworkEvent(null, message);
           message.updates.forEach(updateType => {
             dataProvider.onNetworkEventUpdate(null, {
               packet: { updateType: updateType },
               networkInfo: message,
             });
           });
         }
--- a/devtools/client/webconsole/new-console-output/test/components/message-icon.test.js
+++ b/devtools/client/webconsole/new-console-output/test/components/message-icon.test.js
@@ -13,11 +13,12 @@ const {
   renderComponent
 } = require("devtools/client/webconsole/new-console-output/test/helpers");
 
 describe("MessageIcon component:", () => {
   it("renders icon based on level", () => {
     const rendered = renderComponent(MessageIcon, { level: MESSAGE_LEVEL.ERROR });
 
     expect(rendered.classList.contains("icon")).toBe(true);
+    expect(rendered.getAttribute("aria-live")).toBe("off");
     expect(rendered.getAttribute("title")).toBe("Error");
   });
 });
new file mode 100644
--- /dev/null
+++ b/devtools/client/webconsole/new-console-output/test/components/message-types-aria.test.js
@@ -0,0 +1,50 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+// Test utils.
+const expect = require("expect");
+
+const {
+  renderComponent
+} = require("devtools/client/webconsole/new-console-output/test/helpers");
+
+// Components under test.
+const ConsoleApiCall = require("devtools/client/webconsole/new-console-output/components/message-types/ConsoleApiCall");
+const ConsoleCmd = require("devtools/client/webconsole/new-console-output/components/message-types/ConsoleCommand");
+const EvaluationResult = require("devtools/client/webconsole/new-console-output/components/message-types/EvaluationResult");
+
+const { ConsoleCommand } = require("devtools/client/webconsole/new-console-output/types");
+
+// Test fakes.
+const { stubPreparedMessages } = require("devtools/client/webconsole/new-console-output/test/fixtures/stubs/index");
+const serviceContainer = require("devtools/client/webconsole/new-console-output/test/fixtures/serviceContainer");
+
+describe("message types component ARIA:", () => {
+  describe("ConsoleAPICall", () => {
+    it("sets aria-live to polite", () => {
+      const message = stubPreparedMessages.get("console.log('foobar', 'test')");
+      const wrapper = renderComponent(ConsoleApiCall,
+        { message, serviceContainer });
+      expect(wrapper.getAttribute("aria-live")).toBe("polite");
+    });
+  });
+
+  describe("EvaluationResult", () => {
+    it("sets aria-live to polite", () => {
+      const message = stubPreparedMessages.get("asdf()");
+      const wrapper = renderComponent(EvaluationResult, { message, serviceContainer });
+      expect(wrapper.getAttribute("aria-live")).toBe("polite");
+    });
+  });
+
+  describe("ConsoleCommand", () => {
+    it("sets aria-live to off", () => {
+      let message = new ConsoleCommand({
+        messageText: `"simple"`,
+      });
+      const wrapper = renderComponent(ConsoleCmd, { message, serviceContainer});
+      expect(wrapper.getAttribute("aria-live")).toBe("off");
+    });
+  });
+});
--- a/devtools/client/webconsole/new-console-output/test/helpers.js
+++ b/devtools/client/webconsole/new-console-output/test/helpers.js
@@ -35,16 +35,23 @@ function setupActions() {
     messagesAdd: packets => actions.messagesAdd(packets, idGenerator)
   };
 }
 
 /**
  * Prepare the store for use in testing.
  */
 function setupStore(input = [], hud, options, wrappedActions) {
+  if (!hud) {
+    hud = {
+      proxy: {
+        releaseActor: () => {}
+      }
+    };
+  }
   const store = configureStore(hud, options);
 
   // Add the messages from the input commands to the store.
   const messagesAdd = wrappedActions
     ? wrappedActions.messagesAdd
     : actions.messagesAdd;
   store.dispatch(messagesAdd(input.map(cmd => stubPackets.get(cmd))));
 
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
@@ -272,17 +272,16 @@ skip-if = true #	Bug 1403907
 [browser_webconsole_errors_after_page_reload.js]
 [browser_webconsole_eval_in_debugger_stackframe.js]
 [browser_webconsole_eval_in_debugger_stackframe2.js]
 [browser_webconsole_execution_scope.js]
 [browser_webconsole_external_script_errors.js]
 [browser_webconsole_file_uri.js]
 skip-if = true #	Bug 1404382
 [browser_webconsole_filter_scroll.js]
-skip-if = true #	Bug 1404392
 [browser_webconsole_filters.js]
 [browser_webconsole_filters_persist.js]
 [browser_webconsole_highlighter_console_helper.js]
 [browser_webconsole_history_arrow_keys.js]
 [browser_webconsole_hpkp_invalid-headers.js]
 skip-if = true #	Bug 1405340
 # old console skip-if = (os == 'win' && bits == 64) # Bug 1390001
 [browser_webconsole_hsts_invalid-headers.js]
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_close_sidebar.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_close_sidebar.js
@@ -82,9 +82,13 @@ async function showSidebar(hud) {
   let wrapper = hud.ui.document.querySelector(".webconsole-output-wrapper");
   let onSidebarShown = waitForNodeMutation(wrapper, { childList: true });
 
   let contextMenu = await openContextMenu(hud, objectNode);
   let openInSidebar = contextMenu.querySelector("#console-menu-open-sidebar");
   openInSidebar.click();
   await onSidebarShown;
   await hideContextMenu(hud);
+
+  // Let's wait for the object inside the sidebar to be expanded.
+  await waitFor(() =>
+    wrapper.querySelectorAll(".sidebar .tree-node").length > 1, null, 100);
 }
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_filter_scroll.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_filter_scroll.js
@@ -1,82 +1,78 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// See Bug 597460.
+const TEST_URI =
+`data:text/html;charset=utf-8,
+  <p>Web Console test for scroll when filtering.</p>
+  <script>
+  for (let i = 0; i < 100; i++) {
+    console.log("init-" + i);
+  }
+  </script>
+`;
+add_task(async function () {
+  const hud = await openNewTabAndConsole(TEST_URI);
+  let {ui} = hud;
+  const outputContainer = ui.outputNode.querySelector(".webconsole-output");
 
-const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
-                 "test/test-network.html";
-const PREF = "devtools.webconsole.persistlog";
+  info("Console should be scrolled to bottom on initial load from page logs");
+  await waitFor(() => findMessage(hud, "init-99"));
+  ok(hasVerticalOverflow(outputContainer), "There is a vertical overflow");
+  ok(isScrolledToBottom(outputContainer), "The console is scrolled to the bottom");
 
-add_task(function* () {
-  Services.prefs.setBoolPref(PREF, true);
+  info("Filter out some messages and check that the scroll position is not impacted");
+  const filterInput = hud.ui.outputNode.querySelector(".text-filter");
 
-  yield loadTab(TEST_URI);
-  let hud = yield openConsole();
+  filterInput.value = "init-";
+  filterInput.focus();
+  let onMessagesFiltered = waitFor(() => !findMessage(hud, "init-1"), null, 200);
+  EventUtils.synthesizeKey("9", {});
+  await onMessagesFiltered;
+  ok(isScrolledToBottom(outputContainer),
+    "The console is still scrolled to the bottom after filtering");
+
+  info("Clear the text filter and check that the scroll position is not impacted");
+  let onMessagesUnFiltered = waitFor(() => findMessage(hud, "init-1"), null, 200);
+  filterInput.select();
+  EventUtils.synthesizeKey("VK_DELETE", {});
+  await onMessagesUnFiltered;
+  ok(isScrolledToBottom(outputContainer),
+    "The console is still scrolled to the bottom after clearing the filter");
 
-  let results = yield consoleOpened(hud);
+  info("Scroll up");
+  outputContainer.scrollTop = 0;
 
-  testScroll(results, hud);
+  filterInput.value = "init-";
+  filterInput.focus();
+  onMessagesFiltered = waitFor(() => !findMessage(hud, "init-1"), null, 200);
+  EventUtils.synthesizeKey("9", {});
+  await onMessagesFiltered;
+  is(outputContainer.scrollTop, 0,
+    "The console is still scrolled to the top after filtering");
 
-  Services.prefs.clearUserPref(PREF);
+  info("Clear the text filter and check that the scroll position is not impacted");
+  onMessagesUnFiltered = waitFor(() => findMessage(hud, "init-1"), null, 200);
+  filterInput.select();
+  EventUtils.synthesizeKey("VK_DELETE", {});
+  await onMessagesUnFiltered;
+  is(outputContainer.scrollTop, 0,
+    "The console is still scrolled to the top after clearing the filter");
+
 });
 
-function consoleOpened(hud) {
-  let deferred = defer();
-
-  for (let i = 0; i < 200; i++) {
-    content.console.log("test message " + i);
-  }
-
-  hud.setFilterState("network", false);
-  hud.setFilterState("networkinfo", false);
-
-  hud.ui.filterBox.value = "test message";
-  hud.ui.adjustVisibilityOnSearchStringChange();
-
-  waitForMessages({
-    webconsole: hud,
-    messages: [{
-      name: "console messages displayed",
-      text: "test message 199",
-      category: CATEGORY_WEBDEV,
-      severity: SEVERITY_LOG,
-    }],
-  }).then(() => {
-    waitForMessages({
-      webconsole: hud,
-      messages: [{
-        text: "test-network.html",
-        category: CATEGORY_NETWORK,
-        severity: SEVERITY_LOG,
-      }],
-    }).then(deferred.resolve);
-
-    content.location.reload();
-  });
-
-  return deferred.promise;
+function hasVerticalOverflow(container) {
+  return container.scrollHeight > container.clientHeight;
 }
 
-function testScroll([result], hud) {
-  let scrollNode = hud.ui.outputWrapper;
-  let msgNode = [...result.matched][0];
-  ok(msgNode.classList.contains("filtered-by-type"),
-    "network message is filtered by type");
-  ok(msgNode.classList.contains("filtered-by-string"),
-    "network message is filtered by string");
-
-  ok(scrollNode.scrollTop > 0, "scroll location is not at the top");
-
-  // Make sure the Web Console output is scrolled as near as possible to the
-  // bottom.
-  let nodeHeight = msgNode.clientHeight;
-  ok(scrollNode.scrollTop >= scrollNode.scrollHeight - scrollNode.clientHeight -
-     nodeHeight * 2, "scroll location is correct");
-
-  hud.setFilterState("network", true);
-  hud.setFilterState("networkinfo", true);
+function isScrolledToBottom(container) {
+  if (!container.lastChild) {
+    return true;
+  }
+  let lastNodeHeight = container.lastChild.clientHeight;
+  return container.scrollTop + container.clientHeight >=
+         container.scrollHeight - lastNodeHeight / 2;
 }
--- a/devtools/client/webconsole/new-console-output/test/store/messages.test.js
+++ b/devtools/client/webconsole/new-console-output/test/store/messages.test.js
@@ -538,16 +538,55 @@ describe("Message reducer:", () => {
       const { dispatch, getState } = setupStore([]);
 
       const message = stubPackets.get("console.groupCollapsed('foo')");
       dispatch(actions.messagesAdd([message]));
 
       const expanded = getAllMessagesUiById(getState());
       expect(expanded.length).toBe(0);
     });
+
+    it("reacts to messageClose/messageOpen actions on console.group", () => {
+      const { dispatch, getState } = setupStore(["console.group('bar')"]);
+      const firstMessageId = getFirstMessage(getState()).id;
+
+      let expanded = getAllMessagesUiById(getState());
+      expect(expanded.length).toBe(1);
+      expect(expanded[0]).toBe(firstMessageId);
+
+      dispatch(actions.messageClose(firstMessageId));
+
+      expanded = getAllMessagesUiById(getState());
+      expect(expanded.length).toBe(0);
+
+      dispatch(actions.messageOpen(firstMessageId));
+
+      expanded = getAllMessagesUiById(getState());
+      expect(expanded.length).toBe(1);
+      expect(expanded[0]).toBe(firstMessageId);
+    });
+
+    it("reacts to messageClose/messageOpen actions on exception", () => {
+      const { dispatch, getState } = setupStore(["ReferenceError: asdf is not defined"]);
+      const firstMessageId = getFirstMessage(getState()).id;
+
+      let expanded = getAllMessagesUiById(getState());
+      expect(expanded.length).toBe(0);
+
+      dispatch(actions.messageOpen(firstMessageId));
+
+      expanded = getAllMessagesUiById(getState());
+      expect(expanded.length).toBe(1);
+      expect(expanded[0]).toBe(firstMessageId);
+
+      dispatch(actions.messageClose(firstMessageId));
+
+      expanded = getAllMessagesUiById(getState());
+      expect(expanded.length).toBe(0);
+    });
   });
 
   describe("currentGroup", () => {
     it("sets the currentGroup when console.group message is added", () => {
       const { dispatch, getState } = setupStore([]);
 
       const packet = stubPackets.get("console.group('bar')");
       dispatch(actions.messagesAdd([packet]));
@@ -668,39 +707,42 @@ describe("Message reducer:", () => {
       const { dispatch, getState } = setupStore([]);
 
       let packet = clonePacket(stubPackets.get("GET request"));
       let updatePacket = clonePacket(stubPackets.get("GET request update"));
 
       packet.actor = "message1";
       updatePacket.networkInfo.actor = "message1";
       dispatch(actions.messagesAdd([packet]));
-      dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+      dispatch(
+        actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
 
       let networkUpdates = getAllNetworkMessagesUpdateById(getState());
       expect(Object.keys(networkUpdates)).toEqual(["message1"]);
 
       packet = clonePacket(stubPackets.get("GET request"));
       updatePacket = stubPackets.get("XHR GET request update");
       packet.actor = "message2";
       updatePacket.networkInfo.actor = "message2";
       dispatch(actions.messagesAdd([packet]));
-      dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+      dispatch(
+        actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
 
       networkUpdates = getAllNetworkMessagesUpdateById(getState());
       expect(Object.keys(networkUpdates)).toEqual(["message1", "message2"]);
     });
 
     it("resets networkMessagesUpdateById in response to MESSAGES_CLEAR action", () => {
       const { dispatch, getState } = setupStore([
         "XHR GET request"
       ]);
 
       const updatePacket = stubPackets.get("XHR GET request update");
-      dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+      dispatch(
+        actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
 
       let networkUpdates = getAllNetworkMessagesUpdateById(getState());
       expect(Object.keys(networkUpdates).length > 0).toBe(true);
 
       dispatch(actions.messagesClear());
 
       networkUpdates = getAllNetworkMessagesUpdateById(getState());
       expect(Object.keys(networkUpdates).length).toBe(0);
@@ -712,27 +754,30 @@ describe("Message reducer:", () => {
       });
 
       // Add 3 network messages and their updates
       let packet = clonePacket(stubPackets.get("XHR GET request"));
       let updatePacket = clonePacket(stubPackets.get("XHR GET request update"));
       packet.actor = "message1";
       updatePacket.networkInfo.actor = "message1";
       dispatch(actions.messagesAdd([packet]));
-      dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+      dispatch(
+        actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
 
       packet.actor = "message2";
       updatePacket.networkInfo.actor = "message2";
       dispatch(actions.messagesAdd([packet]));
-      dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+      dispatch(
+        actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
 
       packet.actor = "message3";
       updatePacket.networkInfo.actor = "message3";
       dispatch(actions.messagesAdd([packet]));
-      dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+      dispatch(
+        actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
 
       // Check that we have the expected data.
       let messages = getAllMessagesById(getState());
       const [
         firstNetworkMessageId,
         secondNetworkMessageId,
         thirdNetworkMessageId
       ] = [...messages.keys()];
--- a/devtools/client/webconsole/new-console-output/test/store/network-messages.test.js
+++ b/devtools/client/webconsole/new-console-output/test/store/network-messages.test.js
@@ -30,17 +30,17 @@ describe("Network message reducer:", () 
     dispatch = store.dispatch;
 
     let packet = clonePacket(stubPackets.get("GET request"));
     let updatePacket = clonePacket(stubPackets.get("GET request update"));
 
     packet.actor = "message1";
     updatePacket.networkInfo.actor = "message1";
     dispatch(actions.messagesAdd([packet]));
-    dispatch(actions.networkMessageUpdate(updatePacket.networkInfo));
+    dispatch(actions.networkMessageUpdate(updatePacket.networkInfo, null, updatePacket));
   });
 
   describe("networkMessagesUpdateById", () => {
     it("adds fetched HTTP request headers", () => {
       let headers = {
         headers: []
       };
 
--- a/devtools/server/event-parsers.js
+++ b/devtools/server/event-parsers.js
@@ -266,17 +266,21 @@ var parsers = [
     }
   },
 ];
 
 function reactGetListeners(node, boolOnEventFound) {
   function getProps() {
     for (let key of Object.keys(node)) {
       if (key.startsWith("__reactInternalInstance$")) {
-        return node[key]._currentElement.props;
+        let value = node[key];
+        if (value.memoizedProps) {
+          return value.memoizedProps; // React 16
+        }
+        return value._currentElement.props; // React 15
       }
     }
     return null;
   }
 
   node = node.wrappedJSObject || node;
 
   let handlers = [];
--- a/devtools/shim/devtools-startup.js
+++ b/devtools/shim/devtools-startup.js
@@ -205,16 +205,22 @@ DevToolsStartup.prototype = {
       let hasDevToolsFlag = consoleFlag || devtoolsFlag || debuggerFlag;
       this.setupEnabledPref(hasDevToolsFlag);
 
       // Store devtoolsFlag to check it later in onWindowReady.
       this.devtoolsFlag = devtoolsFlag;
       // Only top level Firefox Windows fire a browser-delayed-startup-finished event
       Services.obs.addObserver(this.onWindowReady, "browser-delayed-startup-finished");
 
+      if (AppConstants.MOZ_DEV_EDITION) {
+        // On DevEdition, the developer toggle is displayed by default in the navbar area
+        // and should be created before the first paint.
+        this.hookDeveloperToggle();
+      }
+
       // Update menu items when devtools.enabled changes.
       Services.prefs.addObserver(DEVTOOLS_ENABLED_PREF, this.onEnabledPrefChanged);
     }
 
     if (consoleFlag) {
       this.handleConsoleFlag(cmdLine);
     }
     if (debuggerFlag) {
@@ -292,20 +298,17 @@ DevToolsStartup.prototype = {
    */
   hookWindow(window) {
     // Key Shortcuts need to be added on all the created windows.
     this.hookKeyShortcuts(window);
 
     // In some situations (e.g. starting Firefox with --jsconsole) DevTools will be
     // initialized before the first browser-delayed-startup-finished event is received.
     // We use a dedicated flag because we still need to hook the developer toggle.
-    if (!this.developerToggleCreated) {
-      this.hookDeveloperToggle();
-      this.developerToggleCreated = true;
-    }
+    this.hookDeveloperToggle();
 
     // The developer menu hook only needs to be added if devtools have not been
     // initialized yet.
     if (!this.initialized) {
       this.hookWebDeveloperMenu(window);
     }
 
     this.createDevToolsEnableMenuItem(window);
@@ -324,16 +327,20 @@ DevToolsStartup.prototype = {
    *
    * Also, this menu duplicates its own entries from the "Web Developer"
    * menu in the system menu, under "Tools" main menu item. The system
    * menu is being hooked by "hookWebDeveloperMenu" which ends up calling
    * devtools/client/framework/browser-menu to create the items for real,
    * initDevTools, from onViewShowing is also calling browser-menu.
    */
   hookDeveloperToggle() {
+    if (this.developerToggleCreated) {
+      return;
+    }
+
     let id = "developer-button";
     let widget = CustomizableUI.getWidget(id);
     if (widget && widget.provider == CustomizableUI.PROVIDER_API) {
       return;
     }
     let item = {
       id: id,
       type: "view",
@@ -366,34 +373,38 @@ DevToolsStartup.prototype = {
         clearSubview(developerItems);
         fillSubviewFromMenuItems(itemsToDisplay, developerItems);
       },
       onInit(anchor) {
         // Since onBeforeCreated already bails out when initialized, we can call
         // it right away.
         this.onBeforeCreated(anchor.ownerDocument);
       },
-      onBeforeCreated(doc) {
+      onBeforeCreated: (doc) => {
+        // The developer toggle needs the "key_toggleToolbox" <key> element.
+        // In DEV EDITION, the toggle is added before 1st paint and hookKeyShortcuts() is
+        // not called yet when CustomizableUI creates the widget.
+        this.hookKeyShortcuts(doc.defaultView);
+
         // Bug 1223127, CUI should make this easier to do.
         if (doc.getElementById("PanelUI-developerItems")) {
           return;
         }
         let view = doc.createElement("panelview");
         view.id = "PanelUI-developerItems";
         let panel = doc.createElement("vbox");
         panel.setAttribute("class", "panel-subview-body");
         view.appendChild(panel);
         doc.getElementById("PanelUI-multiView").appendChild(view);
       }
     };
-    if (AppConstants.MOZ_DEV_EDITION) {
-      item.defaultArea = CustomizableUI.AREA_NAVBAR;
-    }
     CustomizableUI.createWidget(item);
     CustomizableWidgets.push(item);
+
+    this.developerToggleCreated = true;
   },
 
   /*
    * We listen to the "Web Developer" system menu, which is under "Tools" main item.
    * This menu item is hardcoded empty in Firefox UI. We listen for its opening to
    * populate it lazily. Loading main DevTools module is going to populate it.
    */
   hookWebDeveloperMenu(window) {
@@ -503,16 +514,23 @@ DevToolsStartup.prototype = {
     let hasToolbarPref = Services.prefs.getBoolPref(TOOLBAR_VISIBLE_PREF, false);
     if (hasDevToolsFlag || hasToolbarPref || isDevToolsUser) {
       Services.prefs.setBoolPref(DEVTOOLS_ENABLED_PREF, true);
     }
   },
 
   hookKeyShortcuts(window) {
     let doc = window.document;
+
+    // hookKeyShortcuts can be called both from hookWindow and from the developer toggle
+    // onBeforeCreated. Make sure shortcuts are only added once per window.
+    if (doc.getElementById("devtoolsKeyset")) {
+      return;
+    }
+
     let keyset = doc.createElement("keyset");
     keyset.setAttribute("id", "devtoolsKeyset");
 
     for (let key of KeyShortcuts) {
       let xulKey = this.createKey(doc, key, () => this.onKey(window, key));
       keyset.appendChild(xulKey);
     }
 
--- a/dom/canvas/ImageBitmapColorUtils.cpp
+++ b/dom/canvas/ImageBitmapColorUtils.cpp
@@ -410,27 +410,16 @@ BGRA32ToBGR24(const uint8_t* aSrcBuffer,
   return RGBAFamilyToRGBFamily<2, 1, 0, 2, 1, 0>(aSrcBuffer, aSrcStride,
                                                  aDstBuffer, aDstStride,
                                                  aWidth, aHeight);
 }
 
 /*
  * Among RGB family.
  */
-int
-RGB24Copy(const uint8_t* aSrcBuffer, int aSrcStride,
-          uint8_t* aDstBuffer, int aDstStride,
-          int aWidth, int aHeight)
-{
-  MOZ_ASSERT(aSrcStride == aDstStride, "RGB24Copy: aSrcStride != aDstStride");
-
-  const uint32_t length = aHeight * aDstStride;
-  memcpy(aDstBuffer, aSrcBuffer, length);
-  return 0;
-}
 
 int
 RGB24ToBGR24(const uint8_t* aSrcBuffer, int aSrcStride,
              uint8_t* aDstBuffer, int aDstStride,
              int aWidth, int aHeight)
 {
   for (int i = 0; i < aHeight; ++i) {
     const uint8_t* srcBuffer = aSrcBuffer + aSrcStride * i;
--- a/dom/canvas/ImageBitmapColorUtils.h
+++ b/dom/canvas/ImageBitmapColorUtils.h
@@ -56,25 +56,16 @@ int
 BGRA32ToBGR24(const uint8_t* aSrcBuffer, int aSrcStride,
               uint8_t* aDstBuffer, int aDstStride,
               int aWidth, int aHeight);
 
 /*
  * Among RGB family.
  */
 int
-RGB24Copy(const uint8_t* aSrcBuffer, int aSrcStride,
-          uint8_t* aDstBuffer, int aDstStride,
-          int aWidth, int aHeight);
-
-#define BGR24Copy RGB24Copy
-#define RGB24ToRGB24 RGB24Copy
-#define BGR24ToBGR24 BGR24Copy
-
-int
 RGB24ToBGR24(const uint8_t* aSrcBuffer, int aSrcStride,
              uint8_t* aDstBuffer, int aDstStride,
              int aWidth, int aHeight);
 
 #define BGR24ToRGB24 RGB24ToBGR24
 
 /*
  * YUV family -> RGB family.
--- a/dom/canvas/gtest/TestImageBitmapColorUtils.cpp
+++ b/dom/canvas/gtest/TestImageBitmapColorUtils.cpp
@@ -490,42 +490,16 @@ public:
     mData[i + 3] = 100.0f;      mData[i + 4] = 0.0f;         mData[i + 5] = 0.0f;
     mData[i + 6] = 53.585014f;  mData[i + 7] = 0.0f;         mData[i + 8] = 0.0f;
   }
 };
 
 /*
  * From RGB24.
  */
-
-TEST(ImageBitmapColorUtils, RGB24ToRGB24_)
-{
-  const RGB24Data srcData;
-  const RGB24Data dstData;
-
-  SimpleImage<uint8_t> result_(srcData.mWidth, srcData.mHeight, dstData.mChannelCount);
-
-  int rv = RGB24ToRGB24(srcData.mData, srcData.mStride,
-                        result_.mData, result_.mStride,
-                        result_.mWidth, result_.mHeight);
-
-  ASSERT_TRUE(rv == 0);
-
-  for (int i = 0; i < srcData.mHeight; ++i) {
-    for (int j = 0; j < srcData.mWidth; ++j) {
-      EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 0],
-                dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 0]);
-      EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 1],
-                dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 1]);
-      EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 2],
-                dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 2]);
-    }
-  }
-}
-
 TEST(ImageBitmapColorUtils, RGB24ToBGR24_)
 {
   const RGB24Data srcData;
   const BGR24Data dstData;
   SimpleImage<uint8_t> result_(srcData.mWidth, srcData.mHeight, dstData.mChannelCount);
 
   int rv = RGB24ToBGR24(srcData.mData, srcData.mStride,
                         result_.mData, result_.mStride,
@@ -893,39 +867,16 @@ TEST(ImageBitmapColorUtils, BGR24ToRGB24
       EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 1],
                 dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 1]);
       EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 2],
                 dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 2]);
     }
   }
 }
 
-TEST(ImageBitmapColorUtils, BGR24ToBGR24_)
-{
-  const BGR24Data srcData;
-  const BGR24Data dstData;
-  SimpleImage<uint8_t> result_(srcData.mWidth, srcData.mHeight, dstData.mChannelCount);
-
-  int rv = BGR24ToBGR24(srcData.mData, srcData.mStride,
-                        result_.mData, result_.mStride,
-                        result_.mWidth, result_.mHeight);
-  ASSERT_TRUE(rv == 0);
-
-  for (int i = 0; i < srcData.mHeight; ++i) {
-    for (int j = 0; j < srcData.mWidth; ++j) {
-      EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 0],
-                dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 0]);
-      EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 1],
-                dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 1]);
-      EXPECT_EQ(result_.mData[i * result_.mStride + j * result_.mChannelCount + 2],
-                dstData.mData[i * dstData.mStride + j * dstData.mChannelCount + 2]);
-    }
-  }
-}
-
 TEST(ImageBitmapColorUtils, BGR24ToRGBA32)
 {
   const BGR24Data srcData;
   const RGBA32Data dstData;
   SimpleImage<uint8_t> result_(srcData.mWidth, srcData.mHeight, dstData.mChannelCount);
 
   int rv = BGR24ToRGBA32(srcData.mData, srcData.mStride,
                          result_.mData, result_.mStride,
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1389,17 +1389,21 @@ pref("privacy.trackingprotection.lower_n
 #endif
 
 pref("dom.event.contextmenu.enabled",       true);
 pref("dom.event.clipboardevents.enabled",   true);
 pref("dom.event.highrestimestamp.enabled",  true);
 pref("dom.event.coalesce_mouse_move",       true);
 
 pref("dom.webcomponents.enabled",           false);
+#ifdef NIGHTLY_BUILD
+pref("dom.webcomponents.customelements.enabled", true);
+#else
 pref("dom.webcomponents.customelements.enabled", false);
+#endif
 
 pref("javascript.enabled",                  true);
 pref("javascript.options.strict",           false);
 #ifdef DEBUG
 pref("javascript.options.strict.debug",     false);
 #endif
 pref("javascript.options.baselinejit",      true);
 pref("javascript.options.ion",              true);
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1155,9 +1155,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 = 482;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1523818828361000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1523991760932000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -1,37 +1,40 @@
 00220022.net: could not connect to host
+00881919.com: could not connect to host
 01100010011001010111001101110100.com: could not connect to host
 06se.com: could not connect to host
 07733.win: could not connect to host
 0day.su: could not connect to host
 0i0.nl: could not connect to host
-0x90.in: could not connect to host
 10gb.io: could not connect to host
 135vv.com: could not connect to host
 13826145000.com: could not connect to host
 1395kj.com: could not connect to host
-13th-dover.uk: could not connect to host
 1nian.vip: could not connect to host
 1q365a.com: could not connect to host
 24hrs.shopping: could not connect to host
 28spots.net: could not connect to host
 314chan.org: could not connect to host
 41844.de: could not connect to host
 439191.com: could not connect to host
 47tech.com: could not connect to host
 4d2.xyz: could not connect to host
 4loc.us: could not connect to host
+4web-hosting.com: could not connect to host
 4x4.lk: could not connect to host
+5000yz.com: could not connect to host
+517vpn.cn: could not connect to host
 52neptune.com: could not connect to host
 5ece.de: could not connect to host
 68277.me: could not connect to host
 692b8c32.de: could not connect to host
 69mentor.com: could not connect to host
 7261696e626f77.net: could not connect to host
+7kicks.com: could not connect to host
 8560.be: could not connect to host
 87577.com: could not connect to host
 8887999.com: could not connect to host
 88laohu.cc: could not connect to host
 88laohu.com: could not connect to host
 8ballbombom.uk: could not connect to host
 8t88.biz: could not connect to host
 91-freedom.com: could not connect to host
@@ -48,62 +51,64 @@ adventureally.com: could not connect to 
 aevpn.org: could not connect to host
 affily.io: could not connect to host
 afterstack.net: could not connect to host
 agilebits.net: could not connect to host
 aiicy.org: could not connect to host
 aim-consultants.com: could not connect to host
 akiba-server.info: could not connect to host
 akita-stream.com: could not connect to host
+akoch.net: could not connect to host
 akoww.de: could not connect to host
 akul.co.in: could not connect to host
 al-f.net: could not connect to host
 alasta.info: could not connect to host
 alauda-home.de: could not connect to host
 alcatraz.online: could not connect to host
 alcnutrition.com: could not connect to host
 alexandernorth.ch: could not connect to host
+alexandros.io: could not connect to host
 alexberts.ch: could not connect to host
 alexei.su: could not connect to host
 alexey-shamara.ru: could not connect to host
 alexmol.tk: could not connect to host
 alexperry.io: could not connect to host
 alilialili.ga: could not connect to host
-aliwebstore.com: could not connect to host
 alldm.ru: could not connect to host
 allscammers.exposed: could not connect to host
 altahrim.net: could not connect to host
 amdouglas.uk: could not connect to host
 ameho.me: could not connect to host
 americandistribuidora.com: could not connect to host
-americkykongres.cz: could not connect to host
 amua.fr: could not connect to host
 amunoz.org: could not connect to host
+analyzemyfriends.com: could not connect to host
 anastasia-shamara.ru: could not connect to host
 andiplusben.com: could not connect to host
 andreas-kluge.eu: could not connect to host
 andreaskluge.eu: could not connect to host
 andrei-coman.com: could not connect to host
 andrewdaws.co: could not connect to host
 andrewdaws.info: could not connect to host
 andrewdaws.me: could not connect to host
 andrewdaws.tv: could not connect to host
 andrewrdaws.com: could not connect to host
-andronika.net: could not connect to host
 angrydragonproductions.com: could not connect to host
 annetaan.fi: could not connect to host
 annonasoftware.com: could not connect to host
 answers-online.ru: could not connect to host
 anttitenhunen.com: could not connect to host
 anyways.at: could not connect to host
 aojiao.org: could not connect to host
 apkoyunlar.club: could not connect to host
 apparels24.com: could not connect to host
 appdrinks.com: could not connect to host
 apple.ax: could not connect to host
+aquaundine.net: could not connect to host
+arai21.net: could not connect to host
 area3.org: could not connect to host
 arenlor.com: could not connect to host
 arenlor.info: could not connect to host
 arenns.com: could not connect to host
 arent.kz: could not connect to host
 argh.io: could not connect to host
 arksan.com.tr: could not connect to host
 armenians.online: could not connect to host
@@ -113,20 +118,21 @@ articaexports.com: could not connect to 
 artisense.de: could not connect to host
 artisticedgegranite.net: could not connect to host
 askmagicconch.com: could not connect to host
 asphaltfruehling.de: could not connect to host
 asral7.com: could not connect to host
 assdecoeur.org: could not connect to host
 asthon.cn: could not connect to host
 astral.gq: could not connect to host
+astrea-voetbal-groningen.nl: could not connect to host
 asuhe.xyz: could not connect to host
 at1.co: could not connect to host
-athena-garage.co.uk: could not connect to host
 athi.pl: could not connect to host
+atigerseye.com: could not connect to host
 atrevillot.com: could not connect to host
 aufmerksamkeitsstudie.com: could not connect to host
 ausec.ch: could not connect to host
 austinsutphin.com: could not connect to host
 australiancattle.dog: could not connect to host
 authint.com: could not connect to host
 authland.com: could not connect to host
 authsrv.nl.eu.org: could not connect to host
@@ -135,16 +141,17 @@ avdelivers.com: could not connect to hos
 avonlearningcampus.com: could not connect to host
 awan.tech: could not connect to host
 awf0.xyz: could not connect to host
 axel-fischer.science: could not connect to host
 azabani.com: could not connect to host
 b8a.me: could not connect to host
 babelfisch.eu: could not connect to host
 bad.pet: could not connect to host
+bageez.us: could not connect to host
 baiyangliu.com: could not connect to host
 baka.network: could not connect to host
 balonmano.co: could not connect to host
 bandally.net: could not connect to host
 bandarifamily.com: could not connect to host
 bannisbierblog.de: could not connect to host
 barbate.fr: could not connect to host
 barracuda.blog: could not connect to host
@@ -158,20 +165,20 @@ beasel.biz: could not connect to host
 bellavistaoutdoor.com: could not connect to host
 belpbleibtbelp.ch: could not connect to host
 benjamin-horvath.com: could not connect to host
 benjamin-suess.de: could not connect to host
 benzou-space.com: could not connect to host
 berduri.com: could not connect to host
 berthelier.me: could not connect to host
 beslider.com: could not connect to host
+besnik.de: could not connect to host
 bestellipticalmachinereview.info: could not connect to host
 bestfitnesswatchreview.info: could not connect to host
 besthotsales.com: could not connect to host
-betamint.org: could not connect to host
 bey.io: could not connect to host
 bfrailwayclub.cf: could not connect to host
 bie.edu: [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 119"  data: no]
 bigerbio.com: could not connect to host
 binam.center: could not connect to host
 bingcheung.com: could not connect to host
 binimo.com: could not connect to host
 binsp.net: could not connect to host
@@ -186,152 +193,148 @@ bityes.org: could not connect to host
 bizeau.ch: could not connect to host
 bjgongyi.com: could not connect to host
 bjtxl.cn: could not connect to host
 blackdiam.net: could not connect to host
 blayneallan.com: could not connect to host
 blindaryproduction.tk: could not connect to host
 blinkenlight.co.uk: could not connect to host
 blinkenlight.com.au: could not connect to host
-bloemendal.me: could not connect to host
 blog.gparent.org: could not connect to host
 blokuhaka.fr: could not connect to host
-bluefuzz.nl: could not connect to host
 blumen-garage.de: could not connect to host
 bm-i.ch: could not connect to host
 bodrumfarm.com: could not connect to host
 bolwerk.com.br: could not connect to host
 bomberus.de: could not connect to host
 bonesserver.com: could not connect to host
+bonnin.fr: could not connect to host
 bonobo.cz: could not connect to host
-bootikexpress.fr: could not connect to host
 boozinyan.com: could not connect to host
 borisbesemer.com: could not connect to host
 bosabosa.org: could not connect to host
-bouncourseplanner.net: could not connect to host
+boxdevigneron.fr: could not connect to host
 bqcp.net: could not connect to host
 brage.info: could not connect to host
 braintensive.com: could not connect to host
 brandontaylor-black.com: could not connect to host
 branw.xyz: could not connect to host
 breathingblanket.com: could not connect to host
 briangarcia.ga: could not connect to host
 brightonchilli.org.uk: could not connect to host
 brio-ukraine.store: could not connect to host
+brooke-fan.com: could not connect to host
 brookframework.org: could not connect to host
 brrr.fr: could not connect to host
 bruckner.li: could not connect to host
 brynnan.nl: could not connect to host
 bsalyzer.com: could not connect to host
 bsktweetup.info: could not connect to host
 bslim-e-boutique.com: could not connect to host
 bsuess.de: could not connect to host
+btsoft.eu: could not connect to host
+budgetlovers.nl: could not connect to host
 bugginslab.co.uk: could not connect to host
 bugsmashed.com: could not connect to host
 buka.jp: could not connect to host
-bupu.ml: could not connect to host
 businessfurs.info: could not connect to host
+businesshub.cz: could not connect to host
 businessmodeler.se: could not connect to host
+buyingsellingflorida.com: could not connect to host
 buyshoe.org: could not connect to host
 bvexplained.co.uk: could not connect to host
 by1898.com: could not connect to host
 bypass.kr: could not connect to host
 byteshift.ca: could not connect to host
 cafesg.net: could not connect to host
 caipai.fm: could not connect to host
-cais.de: could not connect to host
 calculatoaresecondhand.xyz: could not connect to host
 callabs.net: could not connect to host
 callsigns.ca: could not connect to host
 camda.online: could not connect to host
 campingcarlovers.com: could not connect to host
 canarymod.net: could not connect to host
 cancelmyprofile.com: could not connect to host
 caps.is: could not connect to host
 cardloan-manual.net: could not connect to host
+cardse.net: could not connect to host
 carloshmm.stream: could not connect to host
 carlovanwyk.com: could not connect to host
 casinoreal.com: could not connect to host
 caughtredhanded.co.nz: could not connect to host
 cctld.com: could not connect to host
 cdnk39.com: could not connect to host
 cee.io: could not connect to host
 cegfw.com: could not connect to host
-ceml.ch: could not connect to host
 cencalvia.org: could not connect to host
 centos.pub: could not connect to host
 centrallead.net: could not connect to host
+cgan.pw: could not connect to host
 cgtx.us: could not connect to host
 challengeskins.com: could not connect to host
 championnat-romand-cuisiniers-amateurs.ch: could not connect to host
 champserver.net: could not connect to host
+chanoyu-gakkai.jp: could not connect to host
 chaouby.com: could not connect to host
 charbonnel.eu: could not connect to host
 charonsecurity.com: could not connect to host
 cheesefusion.com: could not connect to host
-chenapartment.com: could not connect to host
 childrendeservebetter.org: could not connect to host
 china-line.org: could not connect to host
 chinternet.xyz: could not connect to host
-chiphell.com: could not connect to host
 chiropracticwpb.com: could not connect to host
 chloe.re: could not connect to host
-chmurakotori.ml: could not connect to host
 chosenplaintext.org: could not connect to host
 christianhoffmann.info: could not connect to host
 christophersole.com: could not connect to host
 chromaryu.net: could not connect to host
-chua.family: could not connect to host
+chuckame.fr: could not connect to host
 chziyue.com: could not connect to host
 cima-idf.fr: could not connect to host
 cinemysticism.com: could not connect to host
 cipher.land: could not connect to host
 cjr.host: could not connect to host
 cjtkfan.club: could not connect to host
 clearchatsandbox.com: could not connect to host
 clearviewwealthprojector.com.au: could not connect to host
 clintonbloodworth.com: could not connect to host
 cloudbleed.info: could not connect to host
 cloudimproved.com: could not connect to host
 cloudimprovedtest.com: could not connect to host
 clownish.co.il: could not connect to host
 clycat.ru: could not connect to host
-cmacacias.ch: could not connect to host
-cmcressy.ch: could not connect to host
-cmlachapelle.ch: could not connect to host
-cmlancy.ch: could not connect to host
-cmlignon.ch: could not connect to host
-cmplainpalais.ch: could not connect to host
 cms-weble.jp: could not connect to host
 cnlic.com: could not connect to host
 cnwage.com: could not connect to host
+cnwarn.com: could not connect to host
 co-yutaka.com: could not connect to host
 cobaltlp.com: could not connect to host
 coccolebenessere.it: could not connect to host
 coco-cool.fr: could not connect to host
 codenlife.xyz: could not connect to host
 codercross.com: could not connect to host
 codewiz.xyz: could not connect to host
+cogumelosmagicos.org: could not connect to host
 colleencornez.com: could not connect to host
 commania.co.kr: could not connect to host
 complt.xyz: could not connect to host
 comprehensiveihc.com: could not connect to host
 conception.sk: could not connect to host
 conniesacademy.com: could not connect to host
 construct-trust.com: could not connect to host
+conve.eu: could not connect to host
 corecdn.org: could not connect to host
 corinnanese.de: could not connect to host
 correct.horse: could not connect to host
 cosmeticosdelivery.com.br: could not connect to host
 cosplayer.com: could not connect to host
 coumoul.fr: could not connect to host
 cousincouples.com: could not connect to host
 cpaneltips.com: could not connect to host
 crackpfer.de: could not connect to host
-crackslut.eu: could not connect to host
 creative-wave.fr: could not connect to host
 creativecommonscatpictures.com: could not connect to host
 cristianhares.com: could not connect to host
 criticalaim.com: could not connect to host
 crox.co: could not connect to host
 cryptopartynewcastle.org: could not connect to host
 crystalmachine.net: could not connect to host
 csgo.help: could not connect to host
@@ -363,43 +366,44 @@ dawnson.is: could not connect to host
 day.vip: could not connect to host
 days.one: could not connect to host
 dbcom.ru: could not connect to host
 dbox.ga: could not connect to host
 dden.website: could not connect to host
 dden.xyz: could not connect to host
 de-servers.de: could not connect to host
 decoyrouting.com: could not connect to host
-deep.club: could not connect to host
 deepcreampie.com: could not connect to host
 deepsouthsounds.com: could not connect to host
 deloittequant.com: could not connect to host
-deprobe.pro: could not connect to host
 derchris.me: could not connect to host
 derivativeshub.pro: could not connect to host
 dermacarecomplex.com: could not connect to host
+derrickemery.com: could not connect to host
 detecte-fuite.ch: could not connect to host
 detecte.ch: could not connect to host
 detectefuite.ch: could not connect to host
 dev-talk.eu: could not connect to host
 devafterdark.com: could not connect to host
 devcu.net: could not connect to host
 developersclub.website: could not connect to host
+deviltraxxx.de: could not connect to host
 devkid.net: could not connect to host
 devops.moe: could not connect to host
 dhl-smart.ch: could not connect to host
 dhub.xyz: could not connect to host
 dhuy.net: could not connect to host
+dibiphp.com: could not connect to host
 diceduels.com: could not connect to host
 dicgaming.net: could not connect to host
 dick.red: could not connect to host
 didierlaumen.be: could not connect to host
+didikhari.web.id: could not connect to host
 diemogebhardt.com: could not connect to host
 dieser.me: could not connect to host
-diggable.co: could not connect to host
 digihyp.ch: could not connect to host
 digioccumss.ddns.net: could not connect to host
 digitalhurricane.io: could not connect to host
 diguass.us: could not connect to host
 dijks.com: could not connect to host
 dirtycat.ru: could not connect to host
 disability.gov: could not connect to host
 disadattamentolavorativo.it: could not connect to host
@@ -407,16 +411,17 @@ disco-crazy-world.de: could not connect 
 discoveryballoon.org: could not connect to host
 distinctivephotography.com.au: could not connect to host
 ditch.ch: could not connect to host
 dixmag.com: could not connect to host
 dlitz.net: could not connect to host
 dlld.com: could not connect to host
 dlyl888.com: could not connect to host
 dobrisan.ro: could not connect to host
+dogcratereview.info: could not connect to host
 dojifish.space: could not connect to host
 dolphin-hosting.com: could not connect to host
 domengrad.ru: could not connect to host
 domfee.com: could not connect to host
 dostavkakurierom.ru: could not connect to host
 doyoulyft.com: could not connect to host
 doze-cloud.tech: could not connect to host
 drdim.ru: could not connect to host
@@ -426,16 +431,17 @@ drivinghorror.com: could not connect to 
 drixn.cn: could not connect to host
 drixn.info: could not connect to host
 drixn.net: could not connect to host
 drizz.com.br: could not connect to host
 drogoz.moe: could not connect to host
 dronexpertos.com: could not connect to host
 droomhuis-in-zuid-holland-kopen.nl: could not connect to host
 drunkscifi.com: could not connect to host
+dtx.sk: could not connect to host
 dubrovskiy.net: could not connect to host
 dubrovskiy.pro: could not connect to host
 duch.cloud: could not connect to host
 duelsow.eu: could not connect to host
 duesee.org: could not connect to host
 duks.com.br: could not connect to host
 duo.money: could not connect to host
 durangoenergyllc.com: could not connect to host
@@ -443,68 +449,71 @@ dwnld.me: could not connect to host
 e-mak.eu: could not connect to host
 e-wishlist.net: could not connect to host
 eatfitoutlet.com.br: could not connect to host
 eatry.io: could not connect to host
 ectora.com: could not connect to host
 edgecustomersportal.com: could not connect to host
 eeb98.com: could not connect to host
 egbert.net: could not connect to host
-egg-ortho.ch: could not connect to host
 ehuber.info: could not connect to host
 einsatzstiefel.info: could not connect to host
+ekobudisantoso.net: could not connect to host
 eladgames.com: could not connect to host
 elbetech.net: could not connect to host
 eldisagjapi.com: could not connect to host
 elementarywave.com: could not connect to host
 elenorsmadness.org: could not connect to host
 eliott.be: could not connect to host
 elisabeth-strunz.de: could not connect to host
 elonbase.com: could not connect to host
 elsword.moe: could not connect to host
 eltransportquevolem.org: could not connect to host
 emilyjohnson.ga: could not connect to host
 empese.com: could not connect to host
 emrenovation.com: could not connect to host
+endspamwith.us: could not connect to host
+enfoqueseguro.com: could not connect to host
 engg.ca: could not connect to host
+epulsar.ru: could not connect to host
 er-music.com: could not connect to host
 eriser.fr: could not connect to host
 erkaelderbarenaaben.dk: could not connect to host
 erspro.net: could not connect to host
 erwinwensveen.nl: could not connect to host
 esailinggear.com: could not connect to host
 estoic.net: could not connect to host
 ethiobaba.com: could not connect to host
 euexia.fr: could not connect to host
 eurostrategy.vn.ua: could not connect to host
 ev-zertifikate.de: could not connect to host
 evankurniawan.com: could not connect to host
 eveshaiwu.com: could not connect to host
 evileden.com: could not connect to host
 exo.do: could not connect to host
-extendwings.com: could not connect to host
 eytosh.net: could not connect to host
 f8842.com: could not connect to host
 faber.org.ru: could not connect to host
 fabian-kluge.de: could not connect to host
 facebook.ax: could not connect to host
 facilitrak.com: could not connect to host
 factureenlinea.com: could not connect to host
 fafatiger.com: could not connect to host
 faithwatch.org: could not connect to host
 falkus.net: could not connect to host
 fallenangeldrinks.eu: could not connect to host
-fam-stemmer.de: could not connect to host
+famer.me: could not connect to host
 fameuxhosting.co.uk: could not connect to host
 familie-sander.rocks: could not connect to host
 fancy-bridge.com: could not connect to host
 faretravel.co.uk: could not connect to host
 farm24.co.uk: could not connect to host
 fastaim.de: could not connect to host
 fastbackmbg.be: could not connect to host
+faxreader.net: could not connect to host
 fed51.com: could not connect to host
 feedstringer.com: could not connect to host
 feirlane.org: could not connect to host
 fengyadi.com: could not connect to host
 feras-alhajjaji.com: could not connect to host
 fetclips.se: could not connect to host
 fhg90.com: could not connect to host
 ficklenote.net: could not connect to host
@@ -514,72 +523,70 @@ findmybottleshop.com.au: could not conne
 finstererlebnis.de: could not connect to host
 firebaseio.com: could not connect to host
 firexarxa.de: could not connect to host
 fix-the-timeline.com: could not connect to host
 fix-the-timeline.org: could not connect to host
 fixmyglitch.com: could not connect to host
 fixthetimeline.com: could not connect to host
 fixthetimeline.org: could not connect to host
+flopy.club: could not connect to host
 flow.su: could not connect to host
 flugplatz-edvc.de: could not connect to host
 flygpost.com: could not connect to host
 flyingdoggy.net: could not connect to host
 focalforest.com: could not connect to host
 folioapp.io: could not connect to host
 forcamp.ga: could not connect to host
 formersessalaries.com: could not connect to host
 forsyththeatre.com: could not connect to host
 fortuna-loessnitz.de: could not connect to host
 foshanshequ.com: could not connect to host
 fossewayflowers.co.uk: could not connect to host
 fossewayflowers.com: could not connect to host
 foudufafa.de: could not connect to host
 foxyslut.com: could not connect to host
-fpersona.com: could not connect to host
 fragnic.com: could not connect to host
 franckyz.com: could not connect to host
 fransallen.com: could not connect to host
 franzt.ovh: could not connect to host
 fredliang.cn: could not connect to host
 fredtec.ru: could not connect to host
 freejidi.com: could not connect to host
 freelansir.com: could not connect to host
+freemanning.de: could not connect to host
 freeshkre.li: could not connect to host
 freshcode.nl: could not connect to host
 frickenate.com: could not connect to host
 frodriguez.xyz: could not connect to host
 frolov.net: could not connect to host
 fromlemaytoz.com: could not connect to host
 fromthesoutherncross.com: could not connect to host
 frosty-gaming.xyz: could not connect to host
 frp-roleplay.de: could not connect to host
-fruchthof24.de: could not connect to host
 frusky.net: could not connect to host
 fs-gamenet.de: could not connect to host
 fsfi.is: could not connect to host
 fsradio.eu: could not connect to host
 fuckcf.cf: could not connect to host
 fugle.de: could not connect to host
 fuitedeau.ch: could not connect to host
 fukuko.biz: could not connect to host
 fukuko.xyz: could not connect to host
-fukuoka-cityliner.jp: could not connect to host
 fun9.cc: could not connect to host
 fun99.cc: could not connect to host
 funksteckdosen24.de: could not connect to host
 funspins.com: could not connect to host
 futos.de: could not connect to host
 g1jeu.com: could not connect to host
 g4w.co: could not connect to host
 gaasuper6.com: could not connect to host
 gabriel.to: could not connect to host
 gabriele-kluge.de: could not connect to host
 gafachi.com: could not connect to host
-gaichanh.com: could not connect to host
 gaiserik.com: could not connect to host
 gala.kiev.ua: could not connect to host
 gam3rs.de: could not connect to host
 game-gentle.com: could not connect to host
 gameswitchers.uk: could not connect to host
 gametium.com: could not connect to host
 gametium.es: could not connect to host
 gamishou.fr: could not connect to host
@@ -633,99 +640,93 @@ goiaspropaganda.com.br: could not connec
 google: could not connect to host
 google.ax: could not connect to host
 goranrango.ch: could not connect to host
 gottfridsberg.org: could not connect to host
 gozadentro.com: could not connect to host
 gozel.com.tr: could not connect to host
 gradsm-ci.net: could not connect to host
 granth.io: could not connect to host
+graphire.io: could not connect to host
 gratisonlinesex.com: could not connect to host
 greg.red: could not connect to host
 gregmartyn.com: could not connect to host
 greuel.online: could not connect to host
-greve.xyz: could not connect to host
 gritte.net: could not connect to host
 grossmisconduct.news: could not connect to host
+gtts.space: could not connect to host
 gugaltika-ipb.org: could not connect to host
-gurochan.ch: could not connect to host
 gus.moe: could not connect to host
 gvchannel.xyz: could not connect to host
 gvt2.com: could not connect to host
 gvt3.com: could not connect to host
 h2cdn.cloud: could not connect to host
 h3artbl33d.nl: could not connect to host
 habeo.si: could not connect to host
-hack.club: could not connect to host
-hackbarth.guru: could not connect to host
 hackbubble.me: could not connect to host
-hacker.club: could not connect to host
 hakugin.me: could not connect to host
 halcyonsbastion.com: could not connect to host
 halkyon.net: could not connect to host
 handinhandfoundation.org.uk: could not connect to host
 hapijs.cn: could not connect to host
 harrypottereditor.net: could not connect to host
 hasabig.wang: could not connect to host
 hasalittle.wang: could not connect to host
 hashplex.com: could not connect to host
 haze.network: could not connect to host
 hbbet.com: could not connect to host
 hbvip.com: could not connect to host
+hcstr.com: could not connect to host
 hdy.nz: could not connect to host
+hearingshofar.com: could not connect to host
 hearty.ink: could not connect to host
 heavenlysmokenc.com: could not connect to host
 heisenberg.co: could not connect to host
 hejsupport.se: could not connect to host
 hellofilters.com: could not connect to host
 hellomouse.tk: could not connect to host
 helpantiaging.com: could not connect to host
 helpekwendenihospital.com: could not connect to host
 helsingfors.guide: could not connect to host
 hemdal.se: could not connect to host
 henriknoerr.com: could not connect to host
 hentai.design: could not connect to host
 hentaimaster.net: could not connect to host
 here.ml: could not connect to host
 heribe-maruo.com: could not connect to host
 heroin.org.uk: could not connect to host
-hethely.ch: could not connect to host
 hetmeisjeachterpauw.nl: could not connect to host
 hexobind.com: could not connect to host
 hfi.me: could not connect to host
 hg71851.com: could not connect to host
-hg71857.com: could not connect to host
 hg881.com: could not connect to host
 hill.selfip.net: could not connect to host
 hintermeier-rae.at: could not connect to host
 hirte-digital.de: could not connect to host
 hitrek.ml: could not connect to host
 hohm.in: could not connect to host
 holidayincotswolds.co.uk: could not connect to host
 homoglyph.net: could not connect to host
-hong.io: could not connect to host
 hoodoo.io: could not connect to host
 hoodoo.tech: could not connect to host
 hopglass.eu: could not connect to host
 hopglass.net: could not connect to host
 horvathd.eu: could not connect to host
 howardtyson.com: could not connect to host
 hozinga.de: could not connect to host
 hr98.tk: could not connect to host
 hserver.top: could not connect to host
 hudingyuan.cn: could not connect to host
 huiser.nl: could not connect to host
 hukkatavara.com: could not connect to host
 hunger.im: could not connect to host
 huwjones.me: could not connect to host
 hydrante.ch: could not connect to host
 hypotheques24.ch: could not connect to host
-hzh.pub: could not connect to host
 iadttaveras.com: could not connect to host
-icebat.dyndns.org: could not connect to host
 icebound.cc: could not connect to host
 iceloch.com: could not connect to host
 ictpro.info: could not connect to host
 icusignature.com: could not connect to host
 idcrane.com: could not connect to host
 ideadozz.hu: could not connect to host
 idemo.in: could not connect to host
 idol-bikes.ru: could not connect to host
@@ -734,16 +735,17 @@ iemb.cf: could not connect to host
 ifoss.me: could not connect to host
 ifxnet.com: could not connect to host
 ikenmeyer.com: could not connect to host
 ikenmeyer.eu: could not connect to host
 ikzoekeengoedkopeauto.nl: could not connect to host
 ileat.com: could not connect to host
 immersionwealth.com: could not connect to host
 imperdintechnologies.com: could not connect to host
+impulse-clan.de: could not connect to host
 increasetestosteronelevels.org: could not connect to host
 inexpensivecomputers.net: could not connect to host
 informatik.zone: could not connect to host
 infoworm.org: could not connect to host
 injust.me: could not connect to host
 inondation.ch: could not connect to host
 inscript.pl: could not connect to host
 insouciant.org: could not connect to host
@@ -751,25 +753,27 @@ installgentoo.net: could not connect to 
 instaquiz.ru: could not connect to host
 instasex.ch: could not connect to host
 intarweb.ca: could not connect to host
 intelldynamics.com: could not connect to host
 interviewpipeline.co.uk: could not connect to host
 investorloanshub.com: could not connect to host
 ip.or.at: could not connect to host
 iphonechina.net: could not connect to host
-iplantom.com: could not connect to host
+ipnetworking.net: could not connect to host
 irinkeby.nu: could not connect to host
 isamiok.com: could not connect to host
 isocom.eu: could not connect to host
 isopres.de: could not connect to host
+ispsoft.pro: could not connect to host
 itad.top: could not connect to host
 itpro-mg.de: could not connect to host
 its-schindler.de: could not connect to host
 itsatrap.nl: could not connect to host
+ivanilla.org: could not connect to host
 ivanpolchenko.com: could not connect to host
 j0ng.xyz: could not connect to host
 jaimechanaga.com: could not connect to host
 jaion.ml: could not connect to host
 jakincode.army: could not connect to host
 jamesheald.com: could not connect to host
 janssen.fm: could not connect to host
 japan4you.org: could not connect to host
@@ -779,123 +783,132 @@ jccars-occasions.be: could not connect t
 jccrew.org: could not connect to host
 jcraft.us: could not connect to host
 jean-remy.ch: could not connect to host
 jeffersonregan.org: could not connect to host
 jens.hk: could not connect to host
 jeproteste.info: could not connect to host
 jettlarue.com: could not connect to host
 jhburton.co.uk: could not connect to host
+jiangzm.com: could not connect to host
 jiaqiang.vip: could not connect to host
-jigsawdevelopments.com: could not connect to host
+jkirsche.com: could not connect to host
 jmoreau.ddns.net: could not connect to host
 jobmedic.com: could not connect to host
 joecod.es: could not connect to host
+joelfries.com: could not connect to host
 joetyson.io: could not connect to host
+johannes-bauer.com: could not connect to host
 johngo.tk: could not connect to host
+johnkastler.net: could not connect to host
+jonarcher.info: could not connect to host
 jonathansanchez.pro: could not connect to host
 js88.sg: could not connect to host
 jsc7776.com: could not connect to host
 jsjyhzy.cc: could not connect to host
 juliaoantiguidades.com.br: could not connect to host
 juliawebber.co.za: could not connect to host
 jumbopan.com: could not connect to host
 jumbopan.net: could not connect to host
 just-pools.co.za: could not connect to host
 justinharrison.ca: could not connect to host
 justmy.website: could not connect to host
 justzz.xyz: could not connect to host
 juventusmania1897.com: could not connect to host
 kaasbijwijn.nl: could not connect to host
+kabus.org: could not connect to host
 kaibol.com: could not connect to host
 kaika-facilitymanagement.de: could not connect to host
 kamitech.ch: could not connect to host
 kanganer.com: could not connect to host
 kangzaber.com: could not connect to host
 kapo.info: could not connect to host
 karamna.com: could not connect to host
 karanlyons.com: could not connect to host
-kartacha.com: could not connect to host
 karuneshjohri.com: could not connect to host
 katzen.me: could not connect to host
 kawaii.io: could not connect to host
 kawaiiku.com: could not connect to host
 kawaiiku.de: could not connect to host
 kayipmurekkep.com: could not connect to host
-keakon.net: could not connect to host
 kelm.me: could not connect to host
 kenyons.info: could not connect to host
-kepkonyvtar.hu: could not connect to host
+kevinbowers.me: could not connect to host
 kevindekoninck.com: could not connect to host
 keyserver.sexy: could not connect to host
 kgb.us: could not connect to host
+khs1994.com: could not connect to host
 kidbacker.com: could not connect to host
 kiedys.net: could not connect to host
 kieranweightman.me: could not connect to host
 kievradio.com: could not connect to host
 kinepolis-studio.ga: could not connect to host
 kingbird.me: could not connect to host
 kingclass.cn: could not connect to host
 kirill.ws: could not connect to host
+kittyhacker101.tk: could not connect to host
 kj1396.net: could not connect to host
 kjchernov.info: could not connect to host
 kjoglum.me: could not connect to host
 klingeletest.de: could not connect to host
+knegten-agilis.com: could not connect to host
 kngk-azs.ru: could not connect to host
 knightsweep.com: could not connect to host
-knip.ch: could not connect to host
 knownsec.cf: could not connect to host
-koalapress.fr: could not connect to host
+koez-mangal.ch: could not connect to host
+koezmangal.ch: could not connect to host
 kollawat.me: could not connect to host
 kongbaofang.com: could not connect to host
 konicaprinterdriver.com: could not connect to host
 konventseliten.se: could not connect to host
 kopfsalat.eu: could not connect to host
 kotorimusic.ga: could not connect to host
 kozmik.co: could not connect to host
+krampus-fischamend.at: could not connect to host
 kriptosec.com: could not connect to host
 ksero.center: could not connect to host
 kteen.info: could not connect to host
 ktube.yt: could not connect to host
+kubusadvocaten.nl: could not connect to host
 kuechenplan.online: could not connect to host
 kuko-crews.org: could not connect to host
-kutukupret.com: could not connect to host
 kyle.place: could not connect to host
 kylebaldw.in: could not connect to host
 kylling.io: could not connect to host
 kyujin-office.net: could not connect to host
 l18.io: could not connect to host
 laboutiquemarocaineduconvoyeur.com: could not connect to host
 laboutiquemarocaineduconvoyeur.ma: could not connect to host
 lacasa.fr: could not connect to host
 lacasabelucci.com: could not connect to host
 lacasseroy.com: could not connect to host
 ladylikeit.com: could not connect to host
+lafr4nc3.net: could not connect to host
 lafr4nc3.xyz: could not connect to host
 lakewoodcomputerservices.com: could not connect to host
+lalaya.fr: could not connect to host
 landell.ml: could not connect to host
 lanonfire.com: could not connect to host
 lathamlabs.com: could not connect to host
 lathamlabs.net: could not connect to host
 lathamlabs.org: could not connect to host
-latour-managedcare.ch: could not connect to host
 lavapot.com: could not connect to host
 lazulu.com: could not connect to host
 lbrls.tk: could not connect to host
 lcti.biz: could not connect to host
 ldcraft.pw: could not connect to host
+le-page.info: could not connect to host
 lebal.se: could not connect to host
 leebiblestudycentre.net: could not connect to host
 leebiblestudycentre.org: could not connect to host
 legal.farm: could not connect to host
 legaltip.eu: could not connect to host
 lenkunz.me: could not connect to host
 leolana.com: could not connect to host
 leonardcamacho.me: could not connect to host
-leopoldina.net: could not connect to host
 lerlivros.online: could not connect to host
 lescomptoirsdepierrot.com: could not connect to host
 lesdouceursdeliyana.com: could not connect to host
 lessets-graphiques.com: could not connect to host
 leticiagomeztagle.com: could not connect to host
 leveredge.net: could not connect to host
 lezdomsm.com: could not connect to host
 lfaz.org: could not connect to host
@@ -918,42 +931,43 @@ lissabon.guide: could not connect to hos
 littlelundgrenladies.com: could not connect to host
 littleservice.cn: could not connect to host
 litz.ca: could not connect to host
 litzenberger.ca: could not connect to host
 liukang.tech: could not connect to host
 livi.co: could not connect to host
 livnev.me: could not connect to host
 livnev.xyz: could not connect to host
-lknw.de: could not connect to host
 llvm.us: could not connect to host
+loanstreet.be: could not connect to host
 lobosdomain.no-ip.info: could not connect to host
 locker3.com: could not connect to host
 logcat.info: could not connect to host
 logic8.ml: could not connect to host
 logimagine.com: could not connect to host
 loothole.com: could not connect to host
 loqyu.co: could not connect to host
 losebellyfat.pro: could not connect to host
 loveandloyalty.se: could not connect to host
 lovelive.us: could not connect to host
 lowt.us: could not connect to host
 loyaltech.ch: could not connect to host
 ltransferts.com: could not connect to host
+lucasantarella.com: could not connect to host
 lukasunger.cz: could not connect to host
 lukasunger.net: could not connect to host
 luom.net: could not connect to host
 luxonetwork.com: could not connect to host
-lymia.moe: could not connect to host
 m4570.xyz: could not connect to host
 m4g.ru: could not connect to host
 maartenterpstra.xyz: could not connect to host
 machbach.net: could not connect to host
 macustar.eu: could not connect to host
 madeintucson.org: could not connect to host
+madirc.net: could not connect to host
 magnacumlaude.co: could not connect to host
 maik-mahlow.de: could not connect to host
 mailon.ga: could not connect to host
 malesbdsm.com: could not connect to host
 malgraph.net: could not connect to host
 marcelmarnitz.com: could not connect to host
 marche-nordic-jorat.ch: could not connect to host
 mare92.cz: could not connect to host
@@ -979,41 +993,42 @@ mcsnovatamabayan.com: could not connect 
 me-dc.com: could not connect to host
 meanevo.com: could not connect to host
 meathealth.com: could not connect to host
 mecanicadom.com: could not connect to host
 mediadandy.com: could not connect to host
 medicinskavranje.edu.rs: could not connect to host
 mediweed.tk: could not connect to host
 medy-me.com: could not connect to host
+meeko.cc: could not connect to host
 melhorproduto.com.br: could not connect to host
 melonstudios.net: could not connect to host
 melvinlow.com: could not connect to host
 menchez.me: could not connect to host
 menzaijia.com: could not connect to host
 mercanix.co.uk: could not connect to host
 metrix-money-ptc.com: could not connect to host
 metrix.design: could not connect to host
 mhjuma.com: could not connect to host
 michaelsulzer.com: could not connect to host
 michaelsulzer.eu: could not connect to host
+mikeybot.com: could not connect to host
 milktea.info: could not connect to host
 mingy.ddns.net: could not connect to host
 minitruckin.net: could not connect to host
 mkfs.fr: could not connect to host
 mm13.at: could not connect to host
 mmstick.tk: could not connect to host
 modded-minecraft-server-list.com: could not connect to host
 moderntld.net: could not connect to host
 moe-max.jp: could not connect to host
 moeyi.xyz: could not connect to host
 mongla168.net: could not connect to host
 mongla88.net: could not connect to host
 monitori.ng: could not connect to host
-monloyer.quebec: could not connect to host
 moobo.xyz: could not connect to host
 mooselook.de: could not connect to host
 moparcraft.com: could not connect to host
 moparcraft.org: could not connect to host
 mordrum.com: could not connect to host
 morfitronik.pl: could not connect to host
 mosaique-lachenaie.fr: could not connect to host
 moskva.guide: could not connect to host
@@ -1025,88 +1040,87 @@ movio.ga: could not connect to host
 mowalls.net: could not connect to host
 mozzilla.cz: could not connect to host
 mpserver12.org: could not connect to host
 mrafrohead.com: could not connect to host
 mrizzio.com: could not connect to host
 mrliu.me: could not connect to host
 mtn.cc: could not connect to host
 munduch.cz: could not connect to host
+murraycolin.org: could not connect to host
 muslimbanter.co.za: could not connect to host
 mybeautyjobs.de: could not connect to host
 mycamda.com: could not connect to host
 mycustomwriting.com: could not connect to host
 myfappening.org: could not connect to host
-mygallery.homelinux.net: could not connect to host
 myicare.org: could not connect to host
 mykeepsake.xyz: could not connect to host
+mynetworkingbuddy.com: could not connect to host
 mynewleaf.co: could not connect to host
-myrent.quebec: could not connect to host
 mytravelblog.de: could not connect to host
+mziulu.me: could not connect to host
 mzlog.win: could not connect to host
 n0099.cf: could not connect to host
 naano.org: could not connect to host
 naphex.rocks: could not connect to host
 narodsovety.ru: could not connect to host
 nba2k.cn: could not connect to host
 nba2k.com.cn: could not connect to host
 nbalive.cn: could not connect to host
 ncdesigns-studio.com: could not connect to host
-nedcf.org.uk: could not connect to host
 neer.io: could not connect to host
 negativecurvature.net: could not connect to host
 nejnamc.org: could not connect to host
-nella-project.org: could not connect to host
-nella.io: could not connect to host
-nellacms.com: could not connect to host
-nellacms.org: could not connect to host
-nellafw.org: could not connect to host
 nephy.jp: could not connect to host
+nerull7.info: could not connect to host
 nestone.ru: could not connect to host
 nevadafiber.net: could not connect to host
 newcityinfo.info: could not connect to host
 nexgeneration-solutions.com: could not connect to host
 nexusbyte.de: could not connect to host
 nexuscorporation.in: could not connect to host
 nfluence.org: could not connect to host
 ngtoys.com.br: could not connect to host
 nico.st: could not connect to host
-niedersetz.de: could not connect to host
 nienfun.com: could not connect to host
+nightbutterflies.com: could not connect to host
 nikksno.io: could not connect to host
 nikolasbradshaw.com: could not connect to host
 niouininon.eu: could not connect to host
 nirada.info: could not connect to host
 nishikino-maki.com: could not connect to host
 niva.synology.me: could not connect to host
 nkadvertising.online: could not connect to host
 nodeselect.com: could not connect to host
 nonemu.ninja: could not connect to host
 norad.sytes.net: could not connect to host
+norrkemi.se: could not connect to host
+northernselfstorage.co.za: could not connect to host
+nosbenevolesontdutalent.com: could not connect to host
 notarobot.fr: could not connect to host
 note7forever.com: could not connect to host
 notesforpebble.com: could not connect to host
 notevencode.com: could not connect to host
 novascan.net: could not connect to host
 nowremindme.com: could not connect to host
 nsbfalconacademy.org: could not connect to host
 nudel.ninja: could not connect to host
-nulltime.net: could not connect to host
+nullpointer.io: could not connect to host
 nunnun.jp: could not connect to host
 nyanpasu.tv: could not connect to host
 nyxi.eu: could not connect to host
 obdolbacca.ru: could not connect to host
 oberam.de: could not connect to host
 oberhof.co: could not connect to host
-oblikdom.pro: could not connect to host
 oblondata.io: could not connect to host
 off-the-clock.us: could not connect to host
 offgames.pro: could not connect to host
 office-ruru.com: could not connect to host
 oliverspringer.eu: could not connect to host
+omarh.net: could not connect to host
 omnibot.tv: could not connect to host
 onewebdev.info: could not connect to host
 onstud.com: could not connect to host
 onwie.fr: could not connect to host
 ooeste.com: could not connect to host
 openintelligence.uk: could not connect to host
 openmirrors.cf: could not connect to host
 opium.io: could not connect to host
@@ -1120,16 +1134,17 @@ oxynux.xyz: could not connect to host
 padovani.de: could not connect to host
 paichai.space: could not connect to host
 panasca.is: could not connect to host
 panascais.co: could not connect to host
 panascais.com: could not connect to host
 panascais.de: could not connect to host
 panascais.eu: could not connect to host
 panascais.host: could not connect to host
+panascais.io: could not connect to host
 panascais.me: could not connect to host
 panascais.pw: could not connect to host
 panascais.site: could not connect to host
 panascais.tech: could not connect to host
 panascais.us: could not connect to host
 pandapsy.com: could not connect to host
 pardnoy.com: could not connect to host
 passrhce.com: could not connect to host
@@ -1146,62 +1161,60 @@ paymon.tj: could not connect to host
 paypod.org: could not connect to host
 pcmr.info: could not connect to host
 pcvirusclear.com: could not connect to host
 pear2pear.de: could not connect to host
 peirong.me: could not connect to host
 pengisatelier.net: could not connect to host
 persjrp.ca: could not connect to host
 persoform.ch: could not connect to host
-persson.im: could not connect to host
-persson.me: could not connect to host
 petlife.od.ua: could not connect to host
 peuf.shop: could not connect to host
 peykezamin.ir: could not connect to host
 phdwuda.com: could not connect to host
 phil.tw: could not connect to host
 philippa.cool: could not connect to host
 philosopherswool.com: could not connect to host
+photops.fr: could not connect to host
 picallo.es: could not connect to host
 picone.com.au: could not connect to host
 pierrejeansuau.fr: could not connect to host
 pimspage.nl: could not connect to host
 pinebaylibrary.org: could not connect to host
-pivotanimation.org: could not connect to host
 piwko.co: could not connect to host
 pixelgliders.de: could not connect to host
 plaasprodukte.com: could not connect to host
 placefade.com: could not connect to host
 planbox.info: could not connect to host
 playsharp.com: could not connect to host
 plussizereviews.com: could not connect to host
 pmbremer.de: could not connect to host
 pnsc.is: could not connect to host
 pogs.us: could not connect to host
 pointagri.com: could not connect to host
 polit.im: could not connect to host
 ponteencima.com: could not connect to host
 poolinstallers.co.za: could not connect to host
-potbar.com: could not connect to host
-potlytics.com: could not connect to host
+posobota.cz: could not connect to host
+postn.eu: could not connect to host
 pouets.ovh: could not connect to host
 powerentertainment.tv: could not connect to host
 poy-tech.com: could not connect to host
 prepaid-cards.xyz: could not connect to host
 princessbackpack.de: could not connect to host
 printsos.com: could not connect to host
 prism-communication.com: could not connect to host
 privacymanatee.com: could not connect to host
 privcloud.org: could not connect to host
 proactive.run: could not connect to host
-programsupport300procent.com: could not connect to host
 progressivecfo.co.nz: could not connect to host
 projectasterk.com: could not connect to host
 projectx.top: could not connect to host
 prokop.ovh: could not connect to host
+prolan.pw: could not connect to host
 propmag.co: could not connect to host
 provitacare.com: could not connect to host
 proxydesk.eu: could not connect to host
 prpsss.com: could not connect to host
 pruikshop.nl: could not connect to host
 prytkov.com: could not connect to host
 psncardplus.be: could not connect to host
 psncardplus.com: could not connect to host
@@ -1235,29 +1248,29 @@ ravse.dk: could not connect to host
 raxion.cf: could not connect to host
 rcoliveira.com: could not connect to host
 rdfz.tech: could not connect to host
 readify.com.au: could not connect to host
 readityourself.net: could not connect to host
 reaiaer.com: could not connect to host
 real-compare.com: could not connect to host
 realcli.com: could not connect to host
+reallifeforums.com: could not connect to host
 realraghavgupta.com: could not connect to host
 realwoo.com: could not connect to host
 reevu.net: could not connect to host
 regendevices.eu: could not connect to host
 regio-salland.nl: could not connect to host
 reignsphere.net: could not connect to host
 reismil.ch: could not connect to host
 rentbrowser.com: could not connect to host
 report-incident.de: could not connect to host
 reqognize.com: could not connect to host
 research.md: could not connect to host
 ressl.ch: could not connect to host
-retcor.net: could not connect to host
 reth.ch: could not connect to host
 retube.ga: could not connect to host
 reykjavik.guide: could not connect to host
 ribopierre.fr: could not connect to host
 riceglue.com: could not connect to host
 richeza.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 119"  data: no]
 rj-onderneemt.nl: could not connect to host
 rngmeme.com: could not connect to host
@@ -1285,30 +1298,34 @@ ruht.ro: could not connect to host
 runcarina.com: could not connect to host
 rundumcolumn.xyz: could not connect to host
 runementors.com: could not connect to host
 ruudkoot.nl: could not connect to host
 rzegroup.com: could not connect to host
 s0923.com: could not connect to host
 s3n.se: could not connect to host
 sa.net: could not connect to host
+safe.moe: could not connect to host
 saferedirectlink.com: could not connect to host
+sajdowski.de: could not connect to host
 sallysubs.com: could not connect to host
 salzamt.tk: could not connect to host
 samaritan.tech: could not connect to host
+sanael.net: could not connect to host
 sanatrans.com: could not connect to host
-santojuken.co.jp: could not connect to host
+sanik.my: could not connect to host
 sarindia.com: could not connect to host
 sarindia.de: could not connect to host
 sarndipity.com: could not connect to host
 satragreen.com: could not connect to host
 saudeintimadamulher.com.br: could not connect to host
 sbiewald.de: could not connect to host
 schaafenstrasse.koeln: could not connect to host
 schatmeester.be: could not connect to host
+schnapke.name: could not connect to host
 sciencemonster.co.uk: could not connect to host
 scottainslie.me.uk: could not connect to host
 scripthost.org: could not connect to host
 scriptjunkie.us: could not connect to host
 sctm.at: could not connect to host
 seceye.cn: could not connect to host
 secitem.de: could not connect to host
 sectest.ml: could not connect to host
@@ -1327,75 +1344,76 @@ seleondar.ru: could not connect to host
 self-signed.com: could not connect to host
 selfmade4u.de: could not connect to host
 selfserverx.com: could not connect to host
 sellmoretires.com: could not connect to host
 seoscribe.net: could not connect to host
 servecrypt.com: could not connect to host
 server-essentials.com: could not connect to host
 serverlauget.no: could not connect to host
+serverpedia.de: could not connect to host
 servfefe.com: could not connect to host
-servpanel.de: could not connect to host
 seryovpn.com: could not connect to host
 sesha.co.za: could not connect to host
 sgtsnookums.net: could not connect to host
 shadex.net: could not connect to host
 shadiku.com: could not connect to host
 shadowplus.net: could not connect to host
 shadowrocket.net: could not connect to host
+shaitan.eu: could not connect to host
 shanxiapark.com: could not connect to host
 sharevari.com: could not connect to host
 shavingks.com: could not connect to host
 sheying.tm: could not connect to host
 shirakaba-cc.com: could not connect to host
-shobhanayogsadan.com: could not connect to host
 shoppingreview.org: could not connect to host
-shortpath.com: could not connect to host
 shortr.li: could not connect to host
 shred.ch: could not connect to host
 shredoptics.ch: could not connect to host
 shuzicai.cn: could not connect to host
 shymeck.pw: could not connect to host
 siebens.net: could not connect to host
 signosquecombinam.com.br: could not connect to host
+sigsegv.run: could not connect to host
 sikatehtaat.fi: could not connect to host
 siku.pro: could not connect to host
 silvistefi.com: could not connect to host
 simbolo.co.uk: could not connect to host
-simonkjellberg.com: could not connect to host
 simplerses.com: could not connect to host
 sims4hub.ga: could not connect to host
 siqi.wang: could not connect to host
 skarox.ru: could not connect to host
 sky-aroma.com: could not connect to host
 skylocker.net: could not connect to host
 skylocker.nl: could not connect to host
 sl1pkn07.wtf: could not connect to host
+slaps.be: could not connect to host
 slovoice.org: could not connect to host
 slytech.ch: could not connect to host
 smallchat.nl: could not connect to host
 smith.is: could not connect to host
 sml.lc: could not connect to host
+smspodmena.ru: could not connect to host
 soboleva-pr.com.ua: could not connect to host
 socialworkout.com: could not connect to host
 socialworkout.net: could not connect to host
 socialworkout.org: could not connect to host
 socialworkout.tv: could not connect to host
 socketize.com: could not connect to host
 sojingle.net: could not connect to host
 solidtuesday.com: could not connect to host
 sonafe.info: could not connect to host
 sortaweird.net: could not connect to host
-soundhunter.xyz: could not connect to host
 sowingseasons.com: could not connect to host
 sowncloud.de: could not connect to host
 spanien.guide: could not connect to host
 sphinx.network: could not connect to host
 spicywombat.com: could not connect to host
 split.is: could not connect to host
+spornkuller.de: could not connect to host
 sportsmanadvisor.com: could not connect to host
 squaddraft.com: could not connect to host
 squids.space: could not connect to host
 sqzryang.com: could not connect to host
 sritest.io: could not connect to host
 srvonfire.com: could not connect to host
 stadionmanager.com: could not connect to host
 stadtgartenla.com: could not connect to host
@@ -1409,16 +1427,17 @@ steven-bennett.com: could not connect to
 stickswag.cf: could not connect to host
 stilettomoda.com.br: could not connect to host
 stonemanbrasil.com.br: could not connect to host
 stpip.com: could not connect to host
 streams.dyndns.org: could not connect to host
 stressfreehousehold.com: could not connect to host
 stupendous.net: could not connect to host
 stylle.me: could not connect to host
+suchprogrammer.net: could not connect to host
 sudo.im: could not connect to host
 sudosu.fr: could not connect to host
 suitocracy.com: could not connect to host
 sulek.eu: could not connect to host
 summer.ga: could not connect to host
 suneilpatel.com: could not connect to host
 sunfireshop.com.br: could not connect to host
 sunxchina.com: could not connect to host
@@ -1427,51 +1446,50 @@ susconam.org: could not connect to host
 suspiciousdarknet.xyz: could not connect to host
 sussexwebdesigns.com: could not connect to host
 swaggerdile.com: could not connect to host
 t3rror.net: could not connect to host
 takusan.ru: could not connect to host
 talktwincities.com: could not connect to host
 tangyue.date: could not connect to host
 tangzhao.net: could not connect to host
+tasta.ro: could not connect to host
 tcpweb.net: could not connect to host
 tdsb.cf: could not connect to host
 tdsbhack.tk: could not connect to host
 tearoy.faith: could not connect to host
 tebieer.com: could not connect to host
 techask.it: could not connect to host
 techpit.us: could not connect to host
 telekollektiv.org: could not connect to host
 tenispopular.com: could not connect to host
 terra-x.net: could not connect to host
 terrax.net: could not connect to host
 testovaci.ml: could not connect to host
 tetsai.com: could not connect to host
+texy.info: could not connect to host
 the-digitale.com: could not connect to host
 the-finance-blog.com: could not connect to host
 the-gist.io: could not connect to host
 thedarkartsandcrafts.com: could not connect to host
-theevergreen.me: could not connect to host
 thefox.co: could not connect to host
 thefrk.xyz: could not connect to host
-thelefthand.org: could not connect to host
 thenrdhrd.nl: could not connect to host
 theprincegame.com: could not connect to host
 theprivacysolution.com: could not connect to host
 thequillmagazine.org: could not connect to host
 thermique.ch: could not connect to host
 thesehighsandlows.com: could not connect to host
 theserver201.tk: could not connect to host
-thewebdexter.com: could not connect to host
 thierryhayoz.ch: could not connect to host
 thinkcash.nl: could not connect to host
+thinkindifferent.net: could not connect to host
 thompsonfamily.cloud: could not connect to host
 tianxicaipiao.win: could not connect to host
 tianxicp.com: could not connect to host
-tiffnix.com: could not connect to host
 timco.cloud: could not connect to host
 tink.network: could not connect to host
 tnb-plattform.de: could not connect to host
 todosrv.com: could not connect to host
 tokoindo.top: could not connect to host
 tollsjekk.no: could not connect to host
 tomm.yt: could not connect to host
 tommounsey.com: could not connect to host
@@ -1488,17 +1506,16 @@ tpblist.xyz: could not connect to host
 trajano.net: could not connect to host
 transcendmotor.sg: could not connect to host
 travotion.com: could not connect to host
 treker.us: could not connect to host
 tristanfarkas.one: could not connect to host
 trynowrinkleseyeserum.com: could not connect to host
 tsaro.io: could not connect to host
 tsurezurematome.ga: could not connect to host
-tu6.pm: could not connect to host
 tucidi.net: could not connect to host
 tucnak.eu: could not connect to host
 tucuxi.org: could not connect to host
 tumelum.de: could not connect to host
 tupizm.com: could not connect to host
 turkiet.guide: could not connect to host
 turn-sticks.com: could not connect to host
 tursiae.org: could not connect to host
@@ -1511,28 +1528,28 @@ tykoon.com: could not connect to host
 tyler.rs: could not connect to host
 tyleromeara.com: could not connect to host
 tzwe.com: could not connect to host
 ubi.gg: could not connect to host
 ubicv.com: could not connect to host
 uborcare.com: could not connect to host
 udo-luetkemeier.de: could not connect to host
 ueu.me: could not connect to host
-uggedal.com: could not connect to host
 uicchy.com: could not connect to host
 ulti.gq: could not connect to host
 umsapi.com: could not connect to host
 unefuite.ch: could not connect to host
 unhu.fr: could not connect to host
 uni2share.com: could not connect to host
 unicorn.li: could not connect to host
 uploadbro.com: could not connect to host
 urcentral.org: could not connect to host
 uscp8.com: could not connect to host
 usportsgo.com: could not connect to host
+utdsgda.com: could not connect to host
 uwesander.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 119"  data: no]
 uygindir.ml: could not connect to host
 vaaddress.co: could not connect to host
 vacationfund.co: could not connect to host
 vadik.me: could not connect to host
 vaeplatform.com: could not connect to host
 vaioswolke.xyz: could not connect to host
 valaeris.de: could not connect to host
@@ -1544,61 +1561,56 @@ vapeshopsupply.com: could not connect to
 varela-electricite.fr: could not connect to host
 vayaport.com: could not connect to host
 velen.io: could not connect to host
 venturavwparts.com: could not connect to host
 verdeandco.co.uk: could not connect to host
 versfin.net: could not connect to host
 veryyounglesbians.com: could not connect to host
 vgatest.nl: could not connect to host
+vgropp.de: could not connect to host
 vicenage.com: could not connect to host
 videorullen.se: could not connect to host
-videov.tk: could not connect to host
 vidister.de: could not connect to host
 vikasbabyworld.de: could not connect to host
 vimeosucks.nyc: could not connect to host
 vinetalk.net: could not connect to host
-vishwashantiyoga.com: could not connect to host
 visionthroughknowledge.com: could not connect to host
 visiontree.eu: could not connect to host
 vkino.com: could not connect to host
-vkirichenko.name: could not connect to host
 vlogge.com: could not connect to host
 voeux.io: could not connect to host
 vogt.tech: could not connect to host
 volcain.io: could not connect to host
+volker-gropp.de: could not connect to host
+volkergropp.de: could not connect to host
 vorlif.org: could not connect to host
-votocek.cz: could not connect to host
-votockova.cz: could not connect to host
 votresiteweb.ch: could not connect to host
-vrtak-cz.net: could not connect to host
 vrtouring.org: could not connect to host
 vsx.ch: could not connect to host
 vumetric.com: could not connect to host
 vxapps.com: could not connect to host
 w4.no: could not connect to host
 w4nvu.org: could not connect to host
 wabifoggynuts.com: could not connect to host
-wadidi.com: could not connect to host
 waixingrenfuli.vip: could not connect to host
 wanashi.com: could not connect to host
 wanda76.com: could not connect to host
 wanda78.com: could not connect to host
 wanda79.com: could not connect to host
 wanda96.com: could not connect to host
 wanda97.com: could not connect to host
 wanda98.com: could not connect to host
 warlions.info: could not connect to host
 warp-radio.com: could not connect to host
 warp-radio.tv: could not connect to host
 watchweasel.com: could not connect to host
 waxdramatic.com: could not connect to host
 we.serveftp.net: could not connect to host
 weareincognito.org: could not connect to host
-web-wave.jp: could not connect to host
 webart-factory.de: could not connect to host
 webbson.net: could not connect to host
 webcatechism.com: could not connect to host
 webhackspro.com: could not connect to host
 webproject.rocks: could not connect to host
 webspotter.nl: could not connect to host
 webtar.info: could not connect to host
 webtech.com.br: could not connect to host
@@ -1610,16 +1622,17 @@ week.report: could not connect to host
 weiler.xyz: could not connect to host
 wejumall.com: could not connect to host
 wekibe.de: could not connect to host
 welby.cat: could not connect to host
 wereldplanner.nl: could not connect to host
 werhatunsverraten.eu: could not connect to host
 wespeakgeek.co.za: could not connect to host
 wetthost.com: could not connect to host
+wevg.org: could not connect to host
 weyland.tech: could not connect to host
 wg-tools.de: could not connect to host
 whereisjason.com: could not connect to host
 whereismyorigin.cf: could not connect to host
 whilsttraveling.com: could not connect to host
 wibuw.com: could not connect to host
 wilhelm-nathan.de: could not connect to host
 willkommen-fuerstenberg.de: could not connect to host
@@ -1654,29 +1667,29 @@ xeonlab.com: could not connect to host
 xeonlab.de: could not connect to host
 xia100.xyz: could not connect to host
 xianguocy.com: could not connect to host
 xing.ml: could not connect to host
 xn--8mr166hf6s.xn--fiqs8s: could not connect to host
 xn--erklderbarenben-slbh.dk: could not connect to host
 xn--srenpind-54a.dk: could not connect to host
 xn--t8j2a3042d.xyz: could not connect to host
-xn--xz1a.jp: could not connect to host
 xn--yj8h0m.ws: could not connect to host
 xn--ykrp42k.com: could not connect to host
 xoda.pw: could not connect to host
-xplore-dna.net: could not connect to host
 xpwn.cz: could not connect to host
+xqin.net: could not connect to host
 xuntaosms.com: could not connect to host
 xwaretech.info: could not connect to host
 y3451.com: could not connect to host
 yabrt.cn: could not connect to host
 yahoo.ax: could not connect to host
 yarchives.jp: could not connect to host
 yaucy.win: could not connect to host
+ybresson.com: could not connect to host
 yd.io: could not connect to host
 yellowcar.website: could not connect to host
 yemekbaz.az: could not connect to host
 yesfone.com.br: could not connect to host
 yffengshi.ml: could not connect to host
 yggdar.ga: could not connect to host
 yhori.xyz: could not connect to host
 yibin0831.com: could not connect to host
@@ -1703,35 +1716,36 @@ zero-x-baadf00d.com: could not connect t
 zerosource.net: could not connect to host
 zhangfangzhou.com: could not connect to host
 zhangsir.net: could not connect to host
 zhaochen.xyz: could not connect to host
 zhenmeish.com: could not connect to host
 zhiin.net: could not connect to host
 zhikin.com: could not connect to host
 zhoujiashu.com: could not connect to host
+zikirakhirzaman.com: could not connect to host
 zobraz.cz: could not connect to host
 zokster.net: could not connect to host
-ztytian.com: could not connect to host
 zudomc.me: could not connect to host
 zuefle.net: could not connect to host
 zuehlcke.de: could not connect to host
 zukix.com: could not connect to host
 zuviel.space: could not connect to host
 zwy.me: could not connect to host
 zxtcode.com: could not connect to host
 zyx.im: could not connect to host
 zzw.ca: could not connect to host
 00001.am: did not receive HSTS header
 00002.am: did not receive HSTS header
 0005.com: could not connect to host
 0005aa.com: could not connect to host
 007sascha.de: did not receive HSTS header
 020wifi.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 119"  data: no]
 0222aa.com: did not receive HSTS header
+040fit.nl: did not receive HSTS header
 048.ag: could not connect to host
 050508.com: could not connect to host
 0f.io: could not connect to host
 0fl.com: did not receive HSTS header
 0g.org.uk: could not connect to host
 0o0.ooo: could not connect to host
 0p.no: did not receive HSTS header
 0w0.vc: could not connect to host
@@ -1757,24 +1771,24 @@ 123share.org: could not connect to host
 123test.de: did not receive HSTS header
 123test.es: did not receive HSTS header
 123test.fr: did not receive HSTS header
 126ium.moe: could not connect to host
 127011-networks.ch: did not receive HSTS header
 12vpn.org: could not connect to host
 12vpnchina.com: could not connect to host
 1391kj.com: did not receive HSTS header
-1396.cc: could not connect to host
+1396.cc: did not receive HSTS header
 1536.cf: could not connect to host
 163pwd.com: could not connect to host
 16deza.com: did not receive HSTS header
 16packets.com: could not connect to host
 173vpn.cn: could not connect to host
 173vpns.com: did not receive HSTS header
-173vpnv.com: could not connect to host
+173vpnv.com: did not receive HSTS header
 188betwarriors.co.uk: could not connect to host
 188trafalgar.ca: did not receive HSTS header
 195gm.com: could not connect to host
 1a-jva.de: could not connect to host
 1atic.com: could not connect to host
 1co-jp.net: did not receive HSTS header
 1cover.com: could not connect to host
 1k8b.com: could not connect to host
@@ -1828,16 +1842,17 @@ 3delivered.com: could not connect to hos
 3dproteinimaging.com: did not receive HSTS header
 3fl.com: did not receive HSTS header
 3sreporting.com: did not receive HSTS header
 3wecommerce.com.br: could not connect to host
 404.sh: could not connect to host
 404404.info: could not connect to host
 420dongstorm.com: could not connect to host
 42ms.org: could not connect to host
+440hz-radio.de: did not receive HSTS header
 4455software.com: could not connect to host
 44957.com: could not connect to host
 4679.space: could not connect to host
 4azino777.ru: did not receive HSTS header
 4cclothing.com: could not connect to host
 4elements.com: did not receive HSTS header
 4eyes.ch: did not receive HSTS header
 4miners.net: could not connect to host
@@ -1881,23 +1896,24 @@ 9118b.com: could not connect to host
 911911.pw: could not connect to host
 915ers.com: did not receive HSTS header
 922.be: could not connect to host
 92bmh.com: did not receive HSTS header
 960news.ca: could not connect to host
 9651678.ru: could not connect to host
 99511.fi: did not receive HSTS header
 9iwan.net: did not receive HSTS header
-9jadirect.com: did not receive HSTS header
+9jadirect.com: could not connect to host
 9point6.com: could not connect to host
 9tolife.be: did not receive HSTS header
 a-plus.space: could not connect to host
 a-rickroll-n.pw: could not connect to host
 a-theme.com: could not connect to host
 a1-autopartsglasgow.com: did not receive HSTS header
+a200k.xyz: did not receive HSTS header
 a3workshop.swiss: could not connect to host
 a9c.co: could not connect to host
 aa7733.com: did not receive HSTS header
 aaeblog.com: did not receive HSTS header
 aaeblog.net: did not receive HSTS header
 aaeblog.org: did not receive HSTS header
 aaoo.net: could not connect to host
 aapp.space: could not connect to host
@@ -1926,17 +1942,17 @@ academialowcost.com.br: did not receive 
 academicenterprise.org: could not connect to host
 acai51.net: could not connect to host
 acbc.ie: max-age too low: 0
 accelerole.com: did not receive HSTS header
 accelight.co.jp: did not receive HSTS header
 accelight.jp: did not receive HSTS header
 access-sofia.org: did not receive HSTS header
 accommodation-berry.com.au: max-age too low: 300
-accountradar.com: could not connect to host
+accountradar.com: max-age too low: 86400
 accounts-p.com: could not connect to host
 accuritpresence.com: did not receive HSTS header
 acgmoon.org: did not receive HSTS header
 acheirj.com.br: could not connect to host
 acheritage.co.uk: did not receive HSTS header
 acisonline.net: did not receive HSTS header
 acoffeeshops.com: could not connect to host
 acr.im: could not connect to host
@@ -1953,17 +1969,16 @@ acuve.jp: could not connect to host
 ada.is: max-age too low: 2592000
 adajwells.me: could not connect to host
 adambryant.ca: could not connect to host
 adamricheimer.com: could not connect to host
 adamwk.com: did not receive HSTS header
 adastra.re: could not connect to host
 adboos.com: could not connect to host
 addaxpetroleum.com: could not connect to host
-addcrazy.com: did not receive HSTS header
 addvocate.com: could not connect to host
 adelevie.com: could not connect to host
 adelinlydia-coach.com: did not receive HSTS header
 adequatetechnology.com: could not connect to host
 aderal.io: could not connect to host
 adesa-asesoria.com: did not receive HSTS header
 adfa-1.com: could not connect to host
 adhosting.nl: did not receive HSTS header
@@ -2006,17 +2021,16 @@ afmchandler.com: did not receive HSTS he
 afp548.tk: could not connect to host
 after.im: did not receive HSTS header
 afvallendoeje.nu: could not connect to host
 afyou.co.kr: could not connect to host
 afzco.asia: did not receive HSTS header
 agalaxyfarfaraway.co.uk: could not connect to host
 agatheetraphael.fr: could not connect to host
 agbremen.de: did not receive HSTS header
-agenciagriff.com: did not receive HSTS header
 agentseeker.ca: could not connect to host
 agevio.com: could not connect to host
 agonswim.com: could not connect to host
 agrias.com.br: did not receive HSTS header
 agrimap.com: did not receive HSTS header
 agro-id.gov.ua: did not receive HSTS header
 agtv.com.br: did not receive HSTS header
 ahabingo.com: did not receive HSTS header
@@ -2046,17 +2060,17 @@ ajouin.com: could not connect to host
 aka.my: did not receive HSTS header
 akboy.pw: could not connect to host
 akclinics.org: did not receive HSTS header
 akerek.hu: could not connect to host
 akgundemirbas.com: could not connect to host
 akkadia.cc: could not connect to host
 akombakom.net: could not connect to host
 akselimedia.fi: did not receive HSTS header
-akstudentsfirst.org: did not receive HSTS header
+akstudentsfirst.org: could not connect to host
 aktivist.in: did not receive HSTS header
 al-shami.net: could not connect to host
 aladdin.ie: did not receive HSTS header
 alanlee.net: could not connect to host
 alanrickmanflipstable.com: could not connect to host
 alariel.de: did not receive HSTS header
 alarme-gps.ch: could not connect to host
 alarmegps.ch: could not connect to host
@@ -2088,17 +2102,16 @@ all.tf: could not connect to host
 all4os.com: did not receive HSTS header
 alldaymonitoring.com: could not connect to host
 allegro-inc.com: did not receive HSTS header
 allinnote.com: could not connect to host
 allmbw.com: could not connect to host
 allmystery.de: did not receive HSTS header
 allo-symo.fr: did not receive HSTS header
 allods-zone.ru: could not connect to host
-alloffice.com.ua: did not receive HSTS header
 alloinformatique.net: could not connect to host
 allrealty.co.za: could not connect to host
 allsortscastles.co.uk: did not receive HSTS header
 allstarswithus.com: could not connect to host
 aloalabs.com: did not receive HSTS header
 alpha.irccloud.com: could not connect to host
 alphabit-secure.com: could not connect to host
 alphabuild.io: could not connect to host
@@ -2120,16 +2133,17 @@ amandaonishi.com: could not connect to h
 amavis.org: did not receive HSTS header
 amazing-gaming.fr: did not receive HSTS header
 amcvega.com: did not receive HSTS header
 amerhd.com: could not connect to host
 american-truck-simulator.de: could not connect to host
 american-truck-simulator.net: could not connect to host
 americansportsinstitute.org: did not receive HSTS header
 americanworkwear.nl: did not receive HSTS header
+amerimarkdirect.com: did not receive HSTS header
 amigogeek.net: could not connect to host
 amilx.com: could not connect to host
 amilx.org: could not connect to host
 amimoto-ami.com: max-age too low: 3153600
 amishsecurity.com: could not connect to host
 amitse.com: did not receive HSTS header
 amitube.com: did not receive HSTS header
 amlvfs.net: could not connect to host
@@ -2296,17 +2310,17 @@ arthan.me: could not connect to host
 artifex21.com: could not connect to host
 artifex21.fr: could not connect to host
 artiming.com: could not connect to host
 artisavotins.com: could not connect to host
 artisphere.ch: did not receive HSTS header
 artistnetwork.nl: did not receive HSTS header
 arto.bg: did not receive HSTS header
 arturkohut.com: could not connect to host
-artyland.ru: could not connect to host
+artyland.ru: did not receive HSTS header
 arvamus.eu: could not connect to host
 arzaroth.com: did not receive HSTS header
 as.se: could not connect to host
 as9178.net: could not connect to host
 asahikoji.net: could not connect to host
 asasuou.pw: could not connect to host
 asc16.com: could not connect to host
 ascamso.com: could not connect to host
@@ -2328,24 +2342,23 @@ atavio.at: could not connect to host
 atavio.ch: could not connect to host
 atavio.de: did not receive HSTS header
 atbeckett.com: did not receive HSTS header
 atcreform.gov: did not receive HSTS header
 atelier-rk.com: did not receive HSTS header
 atencionbimbo.com: max-age too low: 86400
 athaliasoft.com: could not connect to host
 athenelive.com: could not connect to host
-athensbusinessresources.us: did not receive HSTS header
+athensbusinessresources.us: could not connect to host
 athul.xyz: could not connect to host
 atlex.nl: did not receive HSTS header
 atlseccon.com: did not receive HSTS header
 atomic.menu: could not connect to host
 atomik.pro: could not connect to host
 atop.io: could not connect to host
-attendantdesign.com: did not receive HSTS header
 attic118.com: could not connect to host
 attimidesigns.com: did not receive HSTS header
 attogproductions.com: could not connect to host
 au-pair24.de: did not receive HSTS header
 au.search.yahoo.com: max-age too low: 172800
 aubiosales.com: could not connect to host
 aucubin.moe: could not connect to host
 audiovisualdevices.com.au: did not receive HSTS header
@@ -2366,16 +2379,17 @@ aussiecable.org: did not receive HSTS he
 auth.mail.ru: did not receive HSTS header
 authentication.io: could not connect to host
 author24.ru: did not receive HSTS header
 authoritynutrition.com: did not receive HSTS header
 auto-serwis.zgorzelec.pl: did not receive HSTS header
 auto3d.cn: could not connect to host
 auto4trade.nl: could not connect to host
 autobedarf.net: did not receive HSTS header
+autobedrijfschalkoort.nl: did not receive HSTS header
 autodeploy.it: could not connect to host
 autoecolebudget.ch: did not receive HSTS header
 autoeet.cz: did not receive HSTS header
 autoepc.ro: did not receive HSTS header
 autojuhos.sk: could not connect to host
 autokovrik-diskont.ru: did not receive HSTS header
 automobiles5.com: could not connect to host
 autotsum.com: could not connect to host
@@ -2429,17 +2443,16 @@ babyhouse.xyz: could not connect to host
 babymasaze.cz: did not receive HSTS header
 babysaying.me: could not connect to host
 bacchanallia.com: could not connect to host
 back-bone.nl: did not receive HSTS header
 backgroundchecks.online: did not receive HSTS header
 backintomotionphysiotherapy.com: did not receive HSTS header
 backyardbbqbash.com: did not receive HSTS header
 bad.show: could not connect to host
-badam.co: did not receive HSTS header
 badcronjob.com: could not connect to host
 badenhard.eu: could not connect to host
 badkamergigant.com: could not connect to host
 badlink.org: could not connect to host
 baff.lu: could not connect to host
 bagiobella.com: max-age too low: 0
 baiduaccount.com: could not connect to host
 bair.io: could not connect to host
@@ -2457,18 +2470,17 @@ ballparkbuns.com: max-age too low: 86400
 balnearionaturaspa.com: did not receive HSTS header
 bambooforest.nl: could not connect to host
 bambumania.com.br: could not connect to host
 bananabandy.com: could not connect to host
 banbanchs.com: could not connect to host
 banchethai.com: could not connect to host
 bandb.xyz: could not connect to host
 bandrcrafts.com: did not receive HSTS header
-bangkokcity.de: did not receive HSTS header
-bangzafran.com: did not receive HSTS header
+bangzafran.com: could not connect to host
 bankmilhas.com.br: did not receive HSTS header
 banksaround.com: did not receive HSTS header
 banqingdiao.com: could not connect to host
 baobaobooks.net: did not receive HSTS header
 baobeiglass.com: did not receive HSTS header
 barcel.com.mx: max-age too low: 86400
 barely.sexy: did not receive HSTS header
 barrelhead.org: could not connect to host
@@ -2499,17 +2511,16 @@ bcbsmagentprofile.com: could not connect
 bcchack.com: could not connect to host
 bccx.com: could not connect to host
 bcheng.cf: did not receive HSTS header
 bchep.com: could not connect to host
 bckp.de: could not connect to host
 bcm.com.au: did not receive HSTS header
 bcnx.de: max-age too low: 0
 bcsytv.com: could not connect to host
-bcvps.com: did not receive HSTS header
 bcweightlifting.ca: could not connect to host
 bddemir.com: could not connect to host
 bde-epitech.fr: could not connect to host
 be-real.life: 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
 beardydave.com: did not receive HSTS header
@@ -2619,17 +2630,16 @@ billin.net: did not receive HSTS header
 billkiss.com: could not connect to host
 billninja.com: did not receive HSTS header
 billrusling.com: could not connect to host
 bimbo.com: did not receive HSTS header
 bimbo.com.ar: max-age too low: 86400
 bimbobakeriesusa.com: max-age too low: 86400
 binaryfigments.com: max-age too low: 86400
 binderapp.net: could not connect to host
-bing.com: did not receive HSTS header
 bioespuna.eu: did not receive HSTS header
 biofam.ru: did not receive HSTS header
 bioknowme.com: did not receive HSTS header
 bionicspirit.com: could not connect to host
 biophysik-ssl.de: did not receive HSTS header
 birkman.com: did not receive HSTS header
 bismarck.moe: did not receive HSTS header
 bisterfeldt.com: could not connect to host
@@ -2675,17 +2685,16 @@ blackunicorn.wtf: could not connect to h
 bladesmith.io: did not receive HSTS header
 blakerandall.xyz: could not connect to host
 blauwwit.be: did not receive HSTS header
 blazor.nl: did not receive HSTS header
 blendlecdn.com: could not connect to host
 blenheimchalcot.com: did not receive HSTS header
 blessnet.jp: did not receive HSTS header
 blha303.com.au: could not connect to host
-blikund.swedbank.se: did not receive HSTS header
 blindsexdate.nl: did not receive HSTS header
 blitzprog.org: did not receive HSTS header
 blmiller.com: could not connect to host
 blocksatz-medien.de: could not connect to host
 blog-ritaline.com: could not connect to host
 blog.coffee: could not connect to host
 blog.cyveillance.com: did not receive HSTS header
 blog.torproject.org: max-age too low: 1000
@@ -2730,16 +2739,17 @@ bonop.com: did not receive HSTS header
 bonta.one: did not receive HSTS header
 book-of-ra.de: did not receive HSTS header
 bookcelerator.com: did not receive HSTS header
 booked.holiday: could not connect to host
 bookofraonlinecasinos.com: did not receive HSTS header
 boomerang.com: did not receive HSTS header
 boosterlearnpro.com: did not receive HSTS header
 booth.in.th: could not connect to host
+bootikexpress.fr: did not receive HSTS header
 borderlinegroup.com: could not connect to host
 boringsecurity.net: could not connect to host
 boris.one: did not receive HSTS header
 boris64.net: did not receive HSTS header
 borrelioz.com: did not receive HSTS header
 borscheid-wenig.com: did not receive HSTS header
 boschee.net: could not connect to host
 botox.bz: did not receive HSTS header
@@ -2801,17 +2811,17 @@ bryn.xyz: could not connect to host
 bs12v.ru: did not receive HSTS header
 bsdtips.com: could not connect to host
 bsklabels.com: did not receive HSTS header
 btc-e.com: did not receive HSTS header
 btcdlc.com: could not connect to host
 btcpot.ltd: did not receive HSTS header
 btio.pw: did not receive HSTS header
 btxiaobai.com: did not receive HSTS header
-buben.tech: did not receive HSTS header
+buben.tech: could not connect to host
 bubulazi.com: did not receive HSTS header
 bubulazy.com: did not receive HSTS header
 buch-cuber.de: max-age too low: 0
 buchheld.at: did not receive HSTS header
 bucket.tk: could not connect to host
 budgetthostels.nl: did not receive HSTS header
 budskap.eu: could not connect to host
 buenosairesestetica.com.ar: could not connect to host
@@ -2899,17 +2909,16 @@ bytesatwork.eu: could not connect to hos
 bytesund.biz: could not connect to host
 byurudraw.pics: could not connect to host
 c-rickroll-v.pw: could not connect to host
 c0rn3j.com: did not receive HSTS header
 c1yd3i.me: could not connect to host
 c2lab.net: did not receive HSTS header
 c3-compose.com: could not connect to host
 c3b.info: could not connect to host
-c3ie.com: did not receive HSTS header
 cabsites.com: could not connect to host
 cabusar.fr: did not receive HSTS header
 caconnect.org: could not connect to host
 cadao.me: did not receive HSTS header
 caesreon.com: could not connect to host
 cafe-murr.de: could not connect to host
 cafe-scientifique.org.ec: could not connect to host
 cafe-service.ru: did not receive HSTS header
@@ -3076,22 +3085,22 @@ chepaofen.com: did not receive HSTS head
 cherekerry.com: could not connect to host
 cherysunzhang.com: did not receive HSTS header
 chesterbrass.uk: did not receive HSTS header
 chiamata-aiuto.ch: could not connect to host
 chib.chat: could not connect to host
 chihiro.xyz: did not receive HSTS header
 chijiokeindustries.co.uk: could not connect to host
 childcaresolutionscny.org: did not receive HSTS header
+chiphell.com: did not receive HSTS header
 chirgui.eu: could not connect to host
 chlouis.net: could not connect to host
 chm.vn: did not receive HSTS header
 chodobien.com: could not connect to host
 choiralberta.ca: could not connect to host
-chonghe.org: did not receive HSTS header
 chontalpa.pw: could not connect to host
 chordso.com: could not connect to host
 choruscrowd.com: could not connect to host
 chotu.net: could not connect to host
 chris-web.info: could not connect to host
 chrisandsarahinasia.com: did not receive HSTS header
 chrisbrakebill.com: could not connect to host
 chrisbrown.id.au: could not connect to host
@@ -3121,23 +3130,22 @@ cidr.ml: could not connect to host
 cienbeaute-lidl.fr: did not receive HSTS header
 cigarblogs.net: could not connect to host
 cigi.site: could not connect to host
 ciicutini.ro: did not receive HSTS header
 cim2b.de: could not connect to host
 cimalando.eu: could not connect to host
 cinartelorgu.com: did not receive HSTS header
 cintdirect.com: could not connect to host
-cio.gov: did not receive HSTS header
 cioconference.co.nz: could not connect to host
 ciplanutrition.com: did not receive HSTS header
+circ-logic.com: did not receive HSTS header
 ciscohomeanalytics.com: could not connect to host
 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 119"  data: no]
 citiagent.cz: could not connect to host
-citizenscience.gov: did not receive HSTS header
 cityoflaurel.org: did not receive HSTS header
 cium.ru: could not connect to host
 cjcaron.org: could not connect to host
 claimit.ml: could not connect to host
 clan-ww.com: did not receive HSTS header
 clara-baumert.de: could not connect to host
 claralabs.com: did not receive HSTS header
 clarity-c2ced.appspot.com: did not receive HSTS header
@@ -3149,27 +3157,28 @@ classifiedssa.co.za: could not connect t
 clcleaningco.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
 clearsky.me: did not receive HSTS header
 clerkendweller.uk: did not receive HSTS header
 clickandgo.com: did not receive HSTS header
-clickandshoot.nl: could not connect to host
+clickandshoot.nl: did not receive HSTS header
 clickclickphish.com: did not receive HSTS header
 clickgram.biz: could not connect to host
 clicn.bio: could not connect to host
 clicnbio.com: did not receive HSTS header
 cliftons.com: did not receive HSTS header
 clinicaferrusbratos.com: did not receive HSTS header
 clintonbloodworth.io: could not connect to host
 clintwilson.technology: max-age too low: 2592000
 clipped4u.com: could not connect to host
-closient.com: could not connect to host
+closient.com: did not receive HSTS header
+cloud-crowd.com.au: did not receive HSTS header
 cloud-project.com: could not connect to host
 cloud.wtf: could not connect to host
 cloud42.ch: did not receive HSTS header
 cloudapi.vc: could not connect to host
 cloudbasedsite.com: did not receive HSTS header
 cloudcert.org: did not receive HSTS header
 cloudcy.net: could not connect to host
 clouddesktop.co.nz: could not connect to host
@@ -3197,17 +3206,17 @@ clvrwebdesign.com: did not receive HSTS 
 clywedogmaths.co.uk: could not connect to host
 cmc-versand.de: did not receive HSTS header
 cmci.dk: did not receive HSTS header
 cmsbattle.com: could not connect to host
 cmscafe.ru: did not receive HSTS header
 cmso-cal.com: could not connect to host
 cncn.us: did not receive HSTS header
 co-driversphoto.se: could not connect to host
-coach-sportif.paris: could not connect to host
+coach-sportif.paris: did not receive HSTS header
 cobrax.net: could not connect to host
 cocktailfuture.fr: could not connect to host
 cocolovesdaddy.com: 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-35.com: could not connect to host
 code-digsite.com: could not connect to host
@@ -3345,29 +3354,31 @@ couponcodeq.com: could not connect to ho
 couragewhispers.ca: could not connect to host
 coursdeprogrammation.com: could not connect to host
 coursella.com: did not receive HSTS header
 covenantbank.net: could not connect to host
 coverdat.com: did not receive HSTS header
 coverduck.ru: could not connect to host
 cpuvinf.eu.org: could not connect to host
 cracking.org: did not receive HSTS header
+crackingking.com: did not receive HSTS header
 craftbeerbarn.co.uk: could not connect to host
 craftedge.xyz: could not connect to host
 craftmain.eu: could not connect to host
 cranems.com.ua: did not receive HSTS header
 cranioschule.com: did not receive HSTS header
 crate.io: did not receive HSTS header
 cravelyrics.com: could not connect to host
 crazifyngers.com: could not connect to host
 crazy-crawler.de: did not receive HSTS header
 crazycen.com: did not receive HSTS header
 crazycraftland.de: could not connect to host
 crazycraftland.net: did not receive HSTS header
 crazyhotseeds.com: did not receive HSTS header
+crazyker.com: did not receive HSTS header
 crbug.com: did not receive HSTS header (error ignored - included regardless)
 creaescola.com: did not receive HSTS header
 create-test-publish.co.uk: could not connect to host
 creativeapple.ltd: did not receive HSTS header
 creativeartifice.com: did not receive HSTS header
 creativephysics.ml: could not connect to host
 creativeplayuk.com: did not receive HSTS header
 crecket.me: could not connect to host
@@ -3467,17 +3478,16 @@ cycleluxembourg.lu: did not receive HSTS
 cyclingjunkies.com: could not connect to host
 cydia-search.io: could not connect to host
 cymtech.net: did not receive HSTS header
 cynoshair.com: could not connect to host
 cyoda.com: did not receive HSTS header
 cyphertite.com: could not connect to host
 cytadel.fr: did not receive HSTS header
 cyyzaid.cn: could not connect to host
-czbix.com: did not receive HSTS header
 d-rickroll-e.pw: could not connect to host
 d1ves.io: did not receive HSTS header
 d4rkdeagle.tk: could not connect to host
 dabbot.org: did not receive HSTS header
 dad256.tk: could not connect to host
 dadtheimpaler.com: could not connect to host
 dah5.com: did not receive HSTS header
 dahl-pind.dk: did not receive HSTS header
@@ -3559,20 +3569,21 @@ dccoffeeproducts.com: did not receive HS
 dccraft.net: could not connect to host
 dcl.re: did not receive HSTS header
 dcpower.eu: max-age too low: 600
 dctxf.com: did not receive HSTS header
 dcuofriends.net: could not connect to host
 dcurt.is: did not receive HSTS header
 dcw.io: did not receive HSTS header
 ddatsh.com: could not connect to host
+ddepot.us: did not receive HSTS header
 deadsoul.net: max-age too low: 0
 debank.tv: did not receive HSTS header
 debatch.se: could not connect to host
-debian-vhost.de: did not receive HSTS header
+debian-vhost.de: could not connect to host
 debiton.dk: could not connect to host
 debtkit.co.uk: did not receive HSTS header
 debtprotectionreporting.com: 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
 decloverly.com: did not receive HSTS header
 deco.me: could not connect to host
@@ -3584,31 +3595,30 @@ dedeo.tk: could not connect to host
 dedicatutiempo.es: could not connect to host
 deepcovelabs.net: could not connect to host
 deepearth.uk: could not connect to host
 deeprecce.com: did not receive HSTS header
 deeprecce.link: could not connect to host
 deeprecce.tech: could not connect to host
 deepvision.com.ua: did not receive HSTS header
 deetz.nl: did not receive HSTS header
-deetzen.de: did not receive HSTS header
+deetzen.de: could not connect to host
 defiler.tk: could not connect to host
 deflumeri.com: did not receive HSTS header
 degroetenvanrosaline.nl: did not receive HSTS header
 deight.co: could not connect to host
 deinserverhost.de: did not receive HSTS header
 dekasan.ru: could not connect to host
 delayrefunds.co.uk: could not connect to host
 deliverance.co.uk: could not connect to host
 deltaconcepts.de: did not receive HSTS header
 delvj.org: could not connect to host
 demdis.org: could not connect to host
 demilitarized.ninja: could not connect to host
 demo-server.us: could not connect to host
-demo.swedbank.se: did not receive HSTS header
 demomanca.com: did not receive HSTS header
 demotops.com: did not receive HSTS header
 dempsters.ca: max-age too low: 86400
 denh.am: did not receive HSTS header
 denisjean.fr: could not connect to host
 dentaldomain.org: did not receive HSTS header
 dentaldomain.ph: could not connect to host
 denvercybersecurity.com: did not receive HSTS header
@@ -3621,39 +3631,41 @@ depo.space: could not connect to host
 dequehablamos.es: could not connect to host
 derbyshiredotnet.co.uk: did not receive HSTS header
 derevtsov.com: did not receive HSTS header
 derpumpkinfuhrer.com: could not connect to host
 derwaldschrat.net: did not receive HSTS header
 derwolfe.net: did not receive HSTS header
 desiccantpackets.com: did not receive HSTS header
 designandmore.it: did not receive HSTS header
-designgears.com: did not receive HSTS header
+designgears.com: could not connect to host
 designthinking.or.jp: did not receive HSTS header
 desserteagleselvenar.tk: could not connect to host
 destinationbijoux.fr: could not connect to host
 destom.be: could not connect to host
 detector.exposed: could not connect to host
 detest.org: could not connect to host
 detteflies.com: max-age too low: 7889238
 detutorial.com: max-age too low: 36000
 deuxvia.com: could not connect to host
 dev: could not connect to host
 dev-aegon.azurewebsites.net: did not receive HSTS header
 dev-bluep.pantheonsite.io: did not receive HSTS header
 develop.fitness: could not connect to host
 devincrow.me: could not connect to host
 devisonline.ch: could not connect to host
+devistravaux.org: did not receive HSTS header
 devmsg.com: did not receive HSTS header
 devnsec.com: could not connect to host
 devnull.team: could not connect to host
 devopps.me: did not receive HSTS header
 devopsconnected.com: could not connect to host
 devtub.com: did not receive HSTS header
 devuan.org: did not receive HSTS header
+dewebwerf.nl: did not receive HSTS header
 dewin.io: could not connect to host
 dfnet.ml: did not receive HSTS header
 dfrance.com.br: could not connect to host
 dfviana.com.br: max-age too low: 2592000
 dhaynes.xyz: max-age too low: 2592000
 dhpcs.com: did not receive HSTS header
 dhpiggott.net: did not receive HSTS header
 diablotine.rocks: could not connect to host
@@ -3661,22 +3673,24 @@ diagnosia.com: did not receive HSTS head
 diagonale-deco.fr: did not receive HSTS header
 diamondcare.com.br: could not connect to host
 dianlujitao.com: did not receive HSTS header
 diannaobos.com: did not receive HSTS header
 dicando.com: could not connect to host
 dicelab.co.uk: could not connect to host
 dicionariofinanceiro.com: did not receive HSTS header
 dicionariopopular.com: did not receive HSTS header
+dicoding.com: did not receive HSTS header
 dieb.photo: could not connect to host
 diejanssens.net: did not receive HSTS header
 dierenkruiden.nl: could not connect to host
 diewebstube.de: could not connect to host
 diezel.com: could not connect to host
 diferenca.com: did not receive HSTS header
+diggable.co: did not receive HSTS header
 digired.xyz: could not connect to host
 digitalbank.kz: could not connect to host
 digitaldaddy.net: could not connect to host
 digitalero.rip: did not receive HSTS header
 digitaljungle.net: could not connect to host
 digitalnonplus.com: could not connect to host
 digitalquery.com: did not receive HSTS header
 digitalriver.tk: did not receive HSTS header
@@ -3792,17 +3806,17 @@ dotspaperie.com: could not connect to ho
 doublethink.online: could not connect to host
 doubleyummy.uk: did not receive HSTS header
 doujin.nagoya: did not receive HSTS header
 dovecotadmin.org: could not connect to host
 doveholesband.co.uk: did not receive HSTS header
 dovetailnow.com: could not connect to host
 download.jitsi.org: did not receive HSTS header
 downsouthweddings.com.au: could not connect to host
-doxcelerate.com: could not connect to host
+doxcelerate.com: max-age too low: 69
 dr-becarelli-philippe.chirurgiens-dentistes.fr: did not receive HSTS header
 drach.xyz: did not receive HSTS header
 dragonisles.net: could not connect to host
 dragons-of-highlands.cz: did not receive HSTS header
 dragonsmoke.cloud: could not connect to host
 dragonstower.net: could not connect to host
 dragonteam.ninja: could not connect to host
 drainagebuizen.nl: did not receive HSTS header
@@ -3842,32 +3856,34 @@ drostschocolates.com: did not receive HS
 drtroyhendrickson.com: could not connect to host
 drumbandesperanto.nl: did not receive HSTS header
 drupal123.com: could not connect to host
 dryan.com: did not receive HSTS header
 drycreekapiary.com: could not connect to host
 ds-christiansen.de: could not connect to host
 dshiv.io: could not connect to host
 dtub.co: could not connect to host
+dualias.xyz: did not receive HSTS header
 dubik.su: did not receive HSTS header
 ducohosting.com: max-age too low: 2592000
 dudesunderwear.com.br: could not connect to host
 duelysthub.com: could not connect to host
 duerls.de: did not receive HSTS header
 dukec.me: did not receive HSTS header
 dullsir.com: could not connect to host
 dune.io: did not receive HSTS header
 dunea.nl: did not receive HSTS header
 dungi.org: could not connect to host
 duole30.com: did not receive HSTS header
 duongpho.com: did not receive HSTS header
 duskopy.top: could not connect to host
 dutchrank.com: did not receive HSTS header
 duuu.ch: could not connect to host
 dycem-ns.com: did not receive HSTS header
+dycoa.com: did not receive HSTS header
 dycontrol.de: could not connect to host
 dylanscott.com.au: did not receive HSTS header
 dymersion.com: did not receive HSTS header
 dynamic-innovations.net: could not connect to host
 dynamize.solutions: did not receive HSTS header
 dyrkar.com: did not receive HSTS header
 dzimejl.sk: did not receive HSTS header
 dzlibs.io: could not connect to host
@@ -3968,16 +3984,17 @@ ehealthcounselor.com: could not connect 
 ehipaadev.com: could not connect to host
 ehito.ovh: could not connect to host
 ehrenamt-skpfcw.de: could not connect to host
 eicfood.com: could not connect to host
 eidolonhost.com: did not receive HSTS header
 eifelindex.de: did not receive HSTS header
 eigo.work: could not connect to host
 einhorn.space: could not connect to host
+ejusu.com: did not receive HSTS header
 ekbanden.nl: could not connect to host
 eksik.com: did not receive HSTS header
 el-soul.com: did not receive HSTS header
 elaintehtaat.fi: could not connect to host
 elan-organics.com: did not receive HSTS header
 elanguest.pl: could not connect to host
 elanguest.ro: could not connect to host
 elanguest.ru: could not connect to host
@@ -4048,45 +4065,43 @@ enecoshop.nl: did not receive HSTS heade
 enefan.jp: could not connect to host
 engelwerbung.com: did not receive HSTS header
 enginsight.com: did not receive HSTS header
 englishyamal.ru: did not receive HSTS header
 enigmacpt.com: did not receive HSTS header
 enigmail.net: did not receive HSTS header
 enjen.net: did not receive HSTS header
 enjoymayfield.com: max-age too low: 0
-enlightenment.org: did not receive HSTS header
 enteente.club: could not connect to host
 enteente.space: could not connect to host
 enteente.xyz: could not connect to host
 enterdev.co: did not receive HSTS header
 enterprisecarclub.co.uk: did not receive HSTS header
 entersynapse.com: did not receive HSTS header
 entourneebeetle.com: could not connect to host
 entrepreneur.or.id: did not receive HSTS header
 enum.eu.org: could not connect to host
 enumify.com: could not connect to host
 enviapresentes.com.br: could not connect to host
-enviaya.com.mx: did not receive HSTS header
 envygeeks.com: could not connect to host
 eol34.com: could not connect to host
 eoldb.org: could not connect to host
 epanurse.com: could not connect to host
 ephry.com: could not connect to host
 epicmc.games: could not connect to host
 epoxate.com: could not connect to host
 eq8.net.au: could not connect to host
 eqib.nl: did not receive HSTS header
 eqim.me: could not connect to host
 equate.net.au: did not receive HSTS header
 equatetechnologies.com.au: did not receive HSTS header
 equilibre-yoga-jennifer-will.com: could not connect to host
 equitee.co: did not receive HSTS header
 equityflows.com: did not receive HSTS header
-erawanarifnugroho.com: could not connect to host
+erawanarifnugroho.com: did not receive HSTS header
 eressea.xyz: could not connect to host
 ergorium.com: max-age too low: 0
 ergorium.eu: max-age too low: 0
 ericbond.net: could not connect to host
 erichalv.com: could not connect to host
 ericorporation.com: did not receive HSTS header
 ericyl.com: could not connect to host
 eridanus.uk: could not connect to host
@@ -4258,17 +4273,16 @@ fatdoge.cn: did not receive HSTS header
 fatgeekflix.net: could not connect to host
 fatherhood.gov: did not receive HSTS header
 fatlossguide.xyz: could not connect to host
 fator25.com.br: could not connect to host
 fatwin.pw: could not connect to host
 fatzebra.com.au: max-age too low: 0
 fayolle.info: did not receive HSTS header
 fbox.li: could not connect to host
-fckd.net: did not receive HSTS header
 fcsic.gov: max-age too low: 2592000
 fdj.im: could not connect to host
 fdt.name: did not receive HSTS header
 feard.space: could not connect to host
 federalregister.gov: did not receive HSTS header
 fedo.moe: could not connect to host
 feedthebot.com: did not receive HSTS header
 feedthefuture.gov: did not receive HSTS header
@@ -4303,16 +4317,17 @@ fig.co: did not receive HSTS header
 fightr.co: could not connect to host
 fiksel.info: did not receive HSTS header
 fikt.space: could not connect to host
 filebox.moe: could not connect to host
 filemeal.com: did not receive HSTS header
 filey.co.uk: did not receive HSTS header
 filmesubtitrate2017.online: could not connect to host
 filo.xyz: did not receive HSTS header
+filoitoupediou.gr: did not receive HSTS header
 finalgear.com: did not receive HSTS header
 finalvpn.com: could not connect to host
 financieringsportaal.nl: did not receive HSTS header
 finanzkontor.net: could not connect to host
 findigo.fish: could not connect to host
 findingmyname.com: did not receive HSTS header
 findtutorsnearme.com: did not receive HSTS header
 fingent.com: did not receive HSTS header
@@ -4386,16 +4401,17 @@ flowersandclouds.com: could not connect 
 floweslawncare.com: did not receive HSTS header
 flowlo.me: could not connect to host
 fluidojobs.com: could not connect to host
 flukethoughts.com: could not connect to host
 flurrybridge.com: did not receive HSTS header
 flushstudios.com: did not receive HSTS header
 flyaces.com: could not connect to host
 fm83.nl: could not connect to host
+fm992.com: did not receive HSTS header
 fnvsecurity.com: could not connect to host
 fobc-usa.org: did not receive HSTS header
 fojtova.cz: did not receive HSTS header
 fojtovi.cz: did not receive HSTS header
 fokan.ch: did not receive HSTS header
 followback.net: did not receive HSTS header
 fonetiq.io: could not connect to host
 foo: could not connect to host
@@ -4415,34 +4431,32 @@ foreignexchangeresource.com: did not rec
 forestfinance.fr: did not receive HSTS header
 foreveralone.io: could not connect to host
 forewordreviews.com: did not receive HSTS header
 forex-dan.com: did not receive HSTS header
 forgix.com: could not connect to host
 formazioneopen.it: could not connect to host
 formula.cf: could not connect to host
 forplanetsake.com: could not connect to host
-fortesanshop.it: did not receive HSTS header
 forty2.eu: did not receive HSTS header
 forus.be: could not connect to host
 fossewaygardencentre.co.uk: did not receive HSTS header
 fotiu.com: could not connect to host
 fotocerita.net: could not connect to host
 fotogiraffe.ru: 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
 fourwheelpartloanssimple.com: did not receive HSTS header
 foxdev.io: did not receive HSTS header
 foxelbox.com: did not receive HSTS header
 foxley-farm.co.uk: did not receive HSTS header
 foxley-seeds.co.uk: did not receive HSTS header
 foxleyseeds.co.uk: could not connect to host
 foxtrot.pw: could not connect to host
-fpc.gov: did not receive HSTS header
 fr33d0m.link: could not connect to host
 fragilesolar.cf: could not connect to host
 fralef.me: did not receive HSTS header
 francevpn.xyz: could not connect to host
 francois-vidit.com: did not receive HSTS header
 frangor.info: did not receive HSTS header
 frankierprofi.de: did not receive HSTS header
 franta.biz: did not receive HSTS header
@@ -4451,17 +4465,17 @@ franzt.de: could not connect to host
 frasesdeamizade.pt: could not connect to host
 frasys.io: did not receive HSTS header
 fraudempire.com: could not connect to host
 freeflow.tv: could not connect to host
 freekdevries.nl: did not receive HSTS header
 freelanced.co.za: could not connect to host
 freelo.cz: did not receive HSTS header
 freematthale.net: did not receive HSTS header
-freesoftwaredriver.com: did not receive HSTS header
+freesoftwaredriver.com: could not connect to host
 freethought.org.au: could not connect to host
 freeutopia.org: did not receive HSTS header
 freqlabs.com: did not receive HSTS header
 freshfind.xyz: could not connect to host
 freshlymind.com: did not receive HSTS header
 frezbo.com: could not connect to host
 frforms.com: did not receive HSTS header
 fridaperfumaria.com.br: could not connect to host
@@ -4501,16 +4515,17 @@ funrun.com: did not receive HSTS header
 funtastic-event-hire.co.uk: did not receive HSTS header
 fuorifuocogenova.it: did not receive HSTS header
 furiffic.com: did not receive HSTS header
 furnation.com: could not connect to host
 furry.be: did not receive HSTS header
 fusedrops.com: could not connect to host
 fusionmate.com: did not receive HSTS header
 futbol11.com: did not receive HSTS header
+futurefundapp.com: did not receive HSTS header
 futurestarsusa.org: did not receive HSTS header
 futuretechnologi.es: could not connect to host
 futureyouhealth.com: did not receive HSTS header
 fuvpn.com: could not connect to host
 fws.gov: did not receive HSTS header
 fx-rk.com: did not receive HSTS header
 fyfywka.com: max-age too low: 86400
 fyodorpi.com: did not receive HSTS header
@@ -4562,16 +4577,17 @@ gamers-life.fr: could not connect to hos
 gamerslair.org: did not receive HSTS header
 gamerz-point.de: could not connect to host
 gamesdepartment.co.uk: did not receive HSTS header
 gameserver-sponsor.de: did not receive HSTS header
 gamesurferapp.com: could not connect to host
 gamingmedia.eu: did not receive HSTS header
 gamoice.com: did not receive HSTS header
 gampenhof.de: did not receive HSTS header
+gar-nich.net: did not receive HSTS header
 garageon.net: did not receive HSTS header
 garciamartin.me: could not connect to host
 garcinia--cambogia.com: could not connect to host
 garden.trade: could not connect to host
 gasser-daniel.ch: did not receive HSTS header
 gatapro.net: could not connect to host
 gatorsa.es: did not receive HSTS header
 gaussorgues.me: could not connect to host
@@ -4599,17 +4615,16 @@ geoffreyrichard.com: did not receive HST
 geopals.net: did not receive HSTS header
 geoponika.gr: did not receive HSTS header
 george-brighton.co.uk: could not connect to host
 georgebrighton.co.uk: could not connect to host
 georgesonarthurs.com.au: did not receive HSTS header
 gereja.ga: could not connect to host
 gerencianet.com.br: did not receive HSTS header
 gereon.ch: could not connect to host
-geschmackspiloten.de: did not receive HSTS header
 gesiwista.net: could not connect to host
 gesunde-smoothies.de: did not receive HSTS header
 get-cctv.com: could not connect to host
 get-refer.com: did not receive HSTS header
 get.zenpayroll.com: did not receive HSTS header
 getable.com: did not receive HSTS header
 getblys.com.au: did not receive HSTS header
 getbooks.co.il: did not receive HSTS header
@@ -4712,17 +4727,16 @@ gogetssl.com: did not receive HSTS heade
 goggs.eu: could not connect to host
 gogold-g.com: could not connect to host
 gold24.in: did not receive HSTS header
 goldegg-training.com: did not receive HSTS header
 goldendata.io: could not connect to host
 goldminer.ga: could not connect to host
 goldpros.com: did not receive HSTS header
 golocal-media.de: could not connect to host
-gomiblog.com: did not receive HSTS header
 gong8.win: could not connect to host
 gonzalosanchez.mx: did not receive HSTS header
 goodfurday.ca: did not receive HSTS header
 goodtech.com.br: could not connect to host
 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)
@@ -4836,17 +4850,16 @@ gugga.dk: could not connect to host
 guguke.net: did not receive HSTS header
 guilde-vindicta.fr: did not receive HSTS header
 guillaume-leduc.fr: did not receive HSTS header
 guillaumematheron.fr: did not receive HSTS header
 guineafruitcorp.com: could not connect to host
 gulch.in.ua: did not receive HSTS header
 gulenet.com: could not connect to host
 gulfcoast-sandbox.com: could not connect to host
-guniram.com: did not receive HSTS header
 gunnarhafdal.com: did not receive HSTS header
 gunnaro.com: could not connect to host
 guntbert.net: could not connect to host
 guoqiang.info: did not receive HSTS header
 gurom.lv: could not connect to host
 gurusupe.com: could not connect to host
 guso.gq: could not connect to host
 guso.ml: could not connect to host
@@ -5071,16 +5084,17 @@ hoekwoningverkopen.nl: could not connect
 hoerbuecher-und-hoerspiele.de: could not connect to host
 hofiprojekt.cz: did not receive HSTS header
 hogar123.es: could not connect to host
 hoiku-map.tokyo: could not connect to host
 hoiku-navi.com: did not receive HSTS header
 holgerlehner.com: could not connect to host
 holifestival-freyung.de: could not connect to host
 holymoly.lu: could not connect to host
+holz.nu: did not receive HSTS header
 homa.website: could not connect to host
 homads.com: did not receive HSTS header
 homeandyarddetailing.com: could not connect to host
 homeclouding.de: could not connect to host
 homedna.com: did not receive HSTS header
 homeexx.com: did not receive HSTS header
 homeownersassociationmanagementla.com: did not receive HSTS header
 homeseller.co.uk: could not connect to host
@@ -5165,16 +5179,17 @@ hydronium.ga: could not connect to host
 hydronium.me: could not connect to host
 hydronium.ml: could not connect to host
 hydronium.tk: could not connect to host
 hypa.net.au: did not receive HSTS header
 hyper69.com: did not receive HSTS header
 hypnoresults.com.au: did not receive HSTS header
 hypnos.hu: did not receive HSTS header
 hysg.me: could not connect to host
+hzh.pub: did not receive HSTS header
 i-jp.net: could not connect to host
 i-partners.sk: did not receive HSTS header
 i-rickroll-n.pw: could not connect to host
 i10z.com: could not connect to host
 iacono.com.br: did not receive HSTS header
 iamjoshellis.com: could not connect to host
 iamokay.nl: did not receive HSTS header
 iamreubin.co.uk: did not receive HSTS header
@@ -5183,17 +5198,16 @@ iapws.com: did not receive HSTS header
 iban.is: could not connect to host
 ibarf.nl: did not receive HSTS header
 ibase.com: did not receive HSTS header
 ibenchu.com: did not receive HSTS header
 ibestreview.com: did not receive HSTS header
 ibnuwebhost.com: could not connect to host
 icabanken.se: did not receive HSTS header
 icaforsakring.se: did not receive HSTS header
-icasnetwork.com: did not receive HSTS header
 ice.yt: could not connect to host
 icepink.com.br: could not connect to host
 icewoman.net: did not receive HSTS header
 icfl.com.br: could not connect to host
 ich-find-den-g.net: could not connect to host
 ich-mach-druck.eu: did not receive HSTS header
 ichnichtskaufmann.de: could not connect to host
 ichoosebtec.com: did not receive HSTS header
@@ -5223,25 +5237,26 @@ ierna.com: did not receive HSTS header
 ies-italia.it: did not receive HSTS header
 ies.id.lv: could not connect to host
 ievgenialehner.com: did not receive HSTS header
 ifad.org: did not receive HSTS header
 ifastuniversity.com: did not receive HSTS header
 ifleurs.com: could not connect to host
 ifx.ee: could not connect to host
 igforums.com: could not connect to host
+igi.codes: did not receive HSTS header
 igiftcards.nl: did not receive HSTS header
 ignatisd.gr: did not receive HSTS header
 igule.net: could not connect to host
 ihotel.io: did not receive HSTS header
 ihrlotto.de: could not connect to host
 ihrnationalrat.ch: could not connect to host
 ihsbsd.me: could not connect to host
 ihsbsd.tk: could not connect to host
-iideaz.org: did not receive HSTS header
+iideaz.org: could not connect to host
 iispeed.com: did not receive HSTS header
 ijn-dd.nl: could not connect to host
 ijoda.com: could not connect to host
 ikocik.sk: did not receive HSTS header
 ikon.name: did not receive HSTS header
 ikwilguidobellen.nl: could not connect to host
 ikzoekjeugdhulp.nl: did not receive HSTS header
 ilbuongiorno.it: did not receive HSTS header
@@ -5287,17 +5302,17 @@ imperialwebsolutions.com: did not receiv
 imu.li: did not receive HSTS header
 imusic.dk: did not receive HSTS header
 inb4.us: could not connect to host
 inbox.li: did not receive HSTS header
 incendiary-arts.com: could not connect to host
 inche-ali.com: did not receive HSTS header
 inchomatic.com: did not receive HSTS header
 indiecert.net: could not connect to host
-indiemods.com: did not receive HSTS header
+indiemods.com: could not connect to host
 indien.guide: could not connect to host
 indochina.io: could not connect to host
 indoorskiassen.nl: did not receive HSTS header
 indredouglas.me: could not connect to host
 industrybazar.com: did not receive HSTS header
 ineed.com.mt: could not connect to host
 infcof.com: did not receive HSTS header
 infilock.com: could not connect to host
@@ -5317,43 +5332,42 @@ inforichjapan.com: did not receive HSTS 
 informaticapremium.com: did not receive HSTS header
 infosec.rip: could not connect to host
 infosoph.org: could not connect to host
 infotics.es: did not receive HSTS header
 infranix.eu: max-age too low: 7360000
 infura.co.th: could not connect to host
 ingesol.fr: did not receive HSTS header
 inhelix.com: could not connect to host
-inima.org: did not receive HSTS header
 injertoshorticolas.com: did not receive HSTS header
 injigo.com: did not receive HSTS header
 injust.cf: could not connect to host
 injust.ga: could not connect to host
 injust.gq: could not connect to host
 injust.ml: could not connect to host
 injust.tk: could not connect to host
 inked-guy.de: could not connect to host
 inkedguy.de: could not connect to host
 inkstory.gr: did not receive HSTS header
 inksupply.com: did not receive HSTS header
-inkvisual.tk: did not receive HSTS header
+inkvisual.tk: could not connect to host
 inleaked.com: could not connect to host
 inmyarea.com: max-age too low: 0
 innophate-security.nl: could not connect to host
 inplacers.ru: did not receive HSTS header
 inquisitive.io: could not connect to host
 insane-bullets.com: could not connect to host
-insho.fashion: did not receive HSTS header
 insite-feedback.com: could not connect to host
 inspire-av.com: did not receive HSTS header
 inspiroinc.com: could not connect to host
 instacart.com: did not receive HSTS header
 instant-hack.com: did not receive HSTS header
 instantdev.io: could not connect to host
 institutoflordelavida.com: could not connect to host
+institutolancaster.com: did not receive HSTS header
 instruktor.io: could not connect to host
 intel.gov: did not receive HSTS header
 intel.li: could not connect to host
 interboursegeneva.ch: did not receive HSTS header
 interference.io: could not connect to host
 interhosts.co.za: could not connect to host
 interim-cto.de: could not connect to host
 interleucina.org: did not receive HSTS header
@@ -5529,17 +5543,17 @@ janus-engineering.de: did not receive HS
 japaripark.com: could not connect to host
 japlex.com: could not connect to host
 jaqen.ch: could not connect to host
 jaredbates.net: did not receive HSTS header
 jarnail.ca: did not receive HSTS header
 jaroslavtrsek.cz: did not receive HSTS header
 jarsater.com: could not connect to host
 jartza.org: could not connect to host
-jasmineconseil.com: did not receive HSTS header
+jasmineconseil.com: could not connect to host
 jasoncosper.com: did not receive HSTS header
 jasonroe.me: could not connect to host
 jasperespejo.com: could not connect to host
 jastoria.pl: could not connect to host
 jav-collective.com: could not connect to host
 java-board.com: could not connect to host
 javachip.win: could not connect to host
 javan.ga: could not connect to host
@@ -5700,16 +5714,17 @@ justnaw.co.uk: could not connect to host
 justudin.com: did not receive HSTS header
 justwood.cz: did not receive HSTS header
 jutella.de: did not receive HSTS header
 juvenex.co: could not connect to host
 juwairen.cn: could not connect to host
 jvoice.net: could not connect to host
 jwilsson.me: could not connect to host
 jxm.in: could not connect to host
+jym.fit: did not receive HSTS header
 jysperm.me: did not receive HSTS header
 jznet.org: could not connect to host
 k-dev.de: could not connect to host
 k-rickroll-g.pw: could not connect to host
 k-wallet.com: did not receive HSTS header
 k1cp.com: could not connect to host
 ka-clan.com: could not connect to host
 kaashosting.nl: did not receive HSTS header
@@ -5722,17 +5737,16 @@ kahopoon.net: could not connect to host
 kaisers.de: did not receive HSTS header
 kaiyuewu.com: could not connect to host
 kaketalk.com: did not receive HSTS header
 kalami.nl: could not connect to host
 kaleidomarketing.com: did not receive HSTS header
 kambodja.guide: could not connect to host
 kamcvicit.sk: could not connect to host
 kamikano.com: could not connect to host
-kamikatse.net: could not connect to host
 kanaanonline.org: max-age too low: 86400
 kanada.guide: could not connect to host
 kaneo-gmbh.de: did not receive HSTS header
 kaniklani.co.za: could not connect to host
 kanscooking.org: could not connect to host
 kany.me: did not receive HSTS header
 kanzlei-wirtschaftsrecht.berlin: max-age too low: 600000
 kaohub.com: could not connect to host
@@ -5769,16 +5783,17 @@ keepaa.com: could not connect to host
 keepassa.co: could not connect to host
 keepclean.me: could not connect to host
 keepcoalintheground.org: could not connect to host
 keepflow.io: did not receive HSTS header
 kefaloniatoday.com: did not receive HSTS header
 kenkoelectric.com: did not receive HSTS header
 kentacademiestrust.org.uk: did not receive HSTS header
 kenvix.com: could not connect to host
+kepkonyvtar.hu: did not receive HSTS header
 kerangalam.com: did not receive HSTS header
 kerksanders.nl: did not receive HSTS header
 kermadec.blog: could not connect to host
 kermadec.net: did not receive HSTS header
 kernl.us: did not receive HSTS header
 keskeces.com: did not receive HSTS header
 keymaster.lookout.com: did not receive HSTS header
 kfbrussels.be: could not connect to host
@@ -5790,17 +5805,16 @@ kialo.com: did not receive HSTS header
 kickass-proxies.org: could not connect to host
 kickass.al: could not connect to host
 kickasstorrents.gq: did not receive HSTS header
 kickstart.com.pk: did not receive HSTS header
 kid-dachau.de: did not receive HSTS header
 kidkat.cn: could not connect to host
 kiel-media.de: did not receive HSTS header
 kieranjones.uk: did not receive HSTS header
-kikuzuki.org: max-age too low: 0
 kimana.pe: could not connect to host
 kimberg.co.uk: could not connect to host
 kimpost.org: could not connect to host
 kina.guide: could not connect to host
 kinderly.co.uk: did not receive HSTS header
 kinderwagen-test24.de: could not connect to host
 kindlyfire.com: could not connect to host
 kindof.ninja: could not connect to host
@@ -5837,30 +5851,29 @@ kitsta.com: could not connect to host
 kiwiirc.com: max-age too low: 5256000
 kiyo.space: could not connect to host
 kizil.net: could not connect to host
 kj1391.com: did not receive HSTS header
 kj1397.com: did not receive HSTS header
 kjaermaxi.me: did not receive HSTS header
 kjg-bachrain.de: could not connect to host
 klas.or.id: did not receive HSTS header
-klausbrinch.dk: did not receive HSTS header
 klauwd.com: could not connect to host
 klaxn.org: could not connect to host
 klean-ritekc.com: did not receive HSTS header
 kleertjesvoordelig.nl: could not connect to host
 kleinerarchitekturfuehrer.de: could not connect to host
 klempnershop.eu: did not receive HSTS header
 kleppe.co: could not connect to host
 kletterkater.com: did not receive HSTS header
 klicktojob.de: could not connect to host
 kloentrup.de: did not receive HSTS header
 klunkergarten.org: could not connect to host
 knapen.io: max-age too low: 604800
-knccloud.com: could not connect to host
+knccloud.com: did not receive HSTS header
 knigadel.com: did not receive HSTS header
 knightsbridgegroup.org: could not connect to host
 knowdebt.org: did not receive HSTS header
 knowledgesnap.com: could not connect to host
 knowledgesnapsites.com: could not connect to host
 kodakit.com: max-age too low: 0
 koddsson.com: did not receive HSTS header
 kode-it.de: could not connect to host
@@ -5975,27 +5988,26 @@ lagier.xyz: could not connect to host
 lagoza.name: could not connect to host
 lainchan.org: did not receive HSTS header
 laisashop.com.br: could not connect to host
 lamaland.ru: did not receive HSTS header
 lambda-complex.org: could not connect to host
 lambdafive.co.uk: could not connect to host
 lamomebijou.paris: did not receive HSTS header
 lampl.info: did not receive HSTS header
-lana.swedbank.se: did not receive HSTS header
 lanauzedesigns.com: did not receive HSTS header
 lanboll.com: could not connect to host
 lancehoteis.com: did not receive HSTS header
 lancehoteis.com.br: did not receive HSTS header
 land-links.org: did not receive HSTS header
 landgoedverkopen.nl: could not connect to host
 landhuisverkopen.nl: could not connect to host
-landinfo.no: max-age too low: 86400
 landscape.canonical.com: max-age too low: 2592000
 landscapingmedic.com: did not receive HSTS header
+landyparts.nl: did not receive HSTS header
 langenbach.rocks: could not connect to host
 langendries.eu: could not connect to host
 langhun.me: did not receive HSTS header
 laniakean.com: could not connect to host
 lanseyujie.com: max-age too low: 2592000
 lansinoh.co.uk: did not receive HSTS header
 lanzainc.xyz: did not receive HSTS header
 laobox.fr: could not connect to host
@@ -6006,16 +6018,17 @@ lasepiataca.com: did not receive HSTS he
 lasercloud.ml: could not connect to host
 laserfuchs.de: did not receive HSTS header
 lashstuff.com: did not receive HSTS header
 latelierdekathy.com: could not connect to host
 latinred.com: could not connect to host
 latus.xyz: could not connect to host
 launchkey.com: did not receive HSTS header
 laurel4th.org: did not receive HSTS header
+laurelblack.com: did not receive HSTS header
 laureltv.org: did not receive HSTS header
 lausitzer-widerstand.de: did not receive HSTS header
 laventainnhotel-mailing.com: could not connect to host
 lavine.ch: did not receive HSTS header
 lavito.cz: could not connect to host
 lavoiepharmd.com: could not connect to host
 lawly.org: could not connect to host
 laxatus.com: could not connect to host
@@ -6029,16 +6042,17 @@ leardev.de: did not receive HSTS header
 learnedovo.com: did not receive HSTS header
 learnfrenchfluently.com: could not connect to host
 learningorder.com: could not connect to host
 lebrun.org: could not connect to host
 lecourtier.fr: did not receive HSTS header
 leddruckalarm.de: did not receive HSTS header
 ledgerscope.net: could not connect to host
 leen.io: did not receive HSTS header
+leet2.com: did not receive HSTS header
 legarage.org: could not connect to host
 legavenue.com.br: did not receive HSTS header
 legitaxi.com: did not receive HSTS header
 legymnase.eu: did not receive HSTS header
 lehtinen.xyz: did not receive HSTS header
 leighneithardt.com: could not connect to host
 leinir.dk: did not receive HSTS header
 leitner.com.au: did not receive HSTS header
@@ -6152,19 +6166,19 @@ lisbongold.com: did not receive HSTS hea
 lisgade.dk: could not connect to host
 listafirmelor.com: could not connect to host
 listage.ovh: did not receive HSTS header
 litespeed.io: could not connect to host
 little.pw: did not receive HSTS header
 littlefreelibrary.org: did not receive HSTS header
 littleqiu.net: could not connect to host
 liujunyang.com: did not receive HSTS header
-livecards.es: did not receive HSTS header
 livedemo.io: could not connect to host
 livej.am: could not connect to host
+liveperformersmeeting.net: did not receive HSTS header
 liverewrite.com: could not connect to host
 liviababynet.com.br: could not connect to host
 livrariahugodesaovitor.com.br: did not receive HSTS header
 lixiang.one: could not connect to host
 lixingcong.com: could not connect to host
 lkp111138.me: could not connect to host
 llamasweet.tech: could not connect to host
 lmkts.com: max-age too low: 0
@@ -6195,16 +6209,17 @@ logymedia.com: could not connect to host
 loisircreatif.net: did not receive HSTS header
 lojadocristaozinho.com.br: did not receive HSTS header
 lojashowdecozinha.com.br: could not connect to host
 lojasviavento.com.br: could not connect to host
 lojavalcapelli.com.br: could not connect to host
 loli.bz: did not receive HSTS header
 lolicore.ch: could not connect to host
 lolidunno.com: could not connect to host
+london-transfers.com: did not receive HSTS header
 londoncalling.co: did not receive HSTS header
 londonlanguageexchange.com: could not connect to host
 lonerwolf.com: did not receive HSTS header
 longboarding-ulm.de: could not connect to host
 look-at-my.site: could not connect to host
 lookatmysco.re: did not receive HSTS header
 lookout.com: did not receive HSTS header
 looktothestars.org: did not receive HSTS header
@@ -6230,17 +6245,19 @@ lovelyfriends.org: did not receive HSTS 
 loveto.at: could not connect to host
 lovingearth.net: max-age too low: 0
 lowhangingfruitgrabber.com: could not connect to host
 loxis.be: did not receive HSTS header
 lpak.nl: could not connect to host
 lpgram.ga: could not connect to host
 lrhsclubs.com: could not connect to host
 lrhstsa.com: could not connect to host
+lrssystems.com: did not receive HSTS header
 ls-a.org: did not receive HSTS header
+ls-reallife.de: did not receive HSTS header
 lsky.cn: could not connect to host
 lsp-sports.de: did not receive HSTS header
 ltbytes.com: could not connect to host
 ltechnologygroup.com: did not receive HSTS header
 ltu.social: could not connect to host
 lucas-garte.com: did not receive HSTS header
 lucaterzini.com: could not connect to host
 luclu7.pw: could not connect to host
@@ -6359,26 +6376,26 @@ manageall.de: could not connect to host
 manageforall.com: could not connect to host
 manageforall.de: could not connect to host
 managemynetsuite.com: did not receive HSTS header
 manantial.mx: did not receive HSTS header
 mandpress.com: did not receive HSTS header
 mangazuki.co: did not receive HSTS header
 maniadeprazer.com.br: could not connect to host
 manifestbin.com: did not receive HSTS header
+manipulatedtme.com: did not receive HSTS header
 manitasicily.com: did not receive HSTS header
 manningbrothers.com: did not receive HSTS header
 manns-solutions.com: did not receive HSTS header
 manns-solutions.ru: did not receive HSTS header
 mannsolutions.co.uk: did not receive HSTS header
 mansfieldplacevt.com: did not receive HSTS header
 manshop24.com: could not connect to host
 mansion-note.com: did not receive HSTS header
 manududu.com.br: did not receive HSTS header
-manufacturing.gov: did not receive HSTS header
 maomaofuli.vip: could not connect to host
 maosi.xin: did not receive HSTS header
 maple5.com: did not receive HSTS header
 mapresidentielle.fr: could not connect to host
 marabumadrid.com: did not receive HSTS header
 marcelparra.com: could not connect to host
 marchagen.nl: did not receive HSTS header
 marco01809.net: could not connect to host
@@ -6388,16 +6405,17 @@ marcontrol.com: did not receive HSTS hea
 marcosteixeira.tk: could not connect to host
 marcschlagenhauf.de: could not connect to host
 marcus-scheffler.com: did not receive HSTS header
 marcush.de: could not connect to host
 margaretrosefashions.co.uk: could not connect to host
 marialempke.com: max-age too low: 0
 mariannematthew.com: could not connect to host
 marie-curie.fr: could not connect to host
+marie-elisabeth.dk: did not receive HSTS header
 marie-en-provence.com: did not receive HSTS header
 marienschule-sundern.de: did not receive HSTS header
 marinela.com.mx: max-age too low: 86400
 marinelausa.com: max-age too low: 86400
 markaconnor.com: did not receive HSTS header
 markayapilandirma.com: could not connect to host
 markcp.me: could not connect to host
 market.android.com: did not receive HSTS header (error ignored - included regardless)
@@ -6503,17 +6521,16 @@ mecenat-cassous.com: did not receive HST
 mechmk1.me: did not receive HSTS header
 medallia.io: could not connect to host
 mediacru.sh: could not connect to host
 mediafinancelab.org: did not receive HSTS header
 mediamag.am: max-age too low: 0
 mediastorm.us: could not connect to host
 mediawikicn.org: could not connect to host
 medienservice-fritz.de: did not receive HSTS header
-medifi.com: did not receive HSTS header
 medirich.co: could not connect to host
 meditek-dv.ru: did not receive HSTS header
 mediterenopmaandag.nl: did not receive HSTS header
 medm-test.com: could not connect to host
 medzinenews.com: did not receive HSTS header
 meedoennoordkop.nl: did not receive HSTS header
 meedoenzaanstad.nl: did not receive HSTS header
 meetfinch.com: could not connect to host
@@ -6548,17 +6565,17 @@ merccorp.de: did not receive HSTS header
 mercedes-benz-usedcars.be: could not connect to host
 mereckas.com: could not connect to host
 meredithkm.info: did not receive HSTS header
 meritz.rocks: could not connect to host
 mersinunivercity.com: did not receive HSTS header
 merson.me: could not connect to host
 meshlab.co: could not connect to host
 meskdeals.com: could not connect to host
-mesmoque.com: did not receive HSTS header
+mesmoque.com: could not connect to host
 metadistribution.com: did not receive HSTS header
 metagrader.com: could not connect to host
 metasyntactic.xyz: could not connect to host
 metebalci.com: did not receive HSTS header
 meteosherbrooke.com: could not connect to host
 meteosky.net: could not connect to host
 meter.md: could not connect to host
 metin2blog.de: did not receive HSTS header
@@ -6623,16 +6640,17 @@ mikek.work: did not receive HSTS header
 mikeology.org: could not connect to host
 mikepair.net: could not connect to host
 mikii.club: could not connect to host
 mikk.cz: could not connect to host
 miku.be: could not connect to host
 miku.hatsune.my: did not receive HSTS header
 mikusinec.com: could not connect to host
 milang.xyz: could not connect to host
+milanpala.cz: did not receive HSTS header
 milatrans.pl: did not receive HSTS header
 milcoresonline.com: could not connect to host
 milesgeek.com: did not receive HSTS header
 military-portal.cz: did not receive HSTS header
 militarycarlot.com: did not receive HSTS header
 millenniumweb.com: max-age too low: 86400
 mimeit.de: could not connect to host
 mimoderoupa.pt: could not connect to host
@@ -6657,17 +6675,17 @@ mineover.es: could not connect to host
 mingming.info: did not receive HSTS header
 mingo.nl: max-age too low: 2592000
 minh.at: could not connect to host
 mini-piraten.de: did not receive HSTS header
 minikneet.nl: could not connect to host
 minimaliston.com: did not receive HSTS header
 minimoo.se: could not connect to host
 minis-hip.de: max-age too low: 172800
-minkondom.nu: did not receive HSTS header
+minkondom.nu: could not connect to host
 minnesotadata.com: could not connect to host
 minora.io: could not connect to host
 minoris.se: could not connect to host
 mintea-noua.ro: did not receive HSTS header
 miragrow.com: could not connect to host
 mirindadomo.ru: did not receive HSTS header
 mironized.com: did not receive HSTS header
 mirrorx.com: did not receive HSTS header
@@ -6719,23 +6737,23 @@ mocurio.com: could not connect to host
 moddedark.com: could not connect to host
 mode-marine.com: could not connect to host
 model9.io: did not receive HSTS header
 modeldimension.com: did not receive HSTS header
 modelsclub.org.ua: did not receive HSTS header
 modemagazines.co.uk: could not connect to host
 moderatortv.de: did not receive HSTS header
 modx.by: max-age too low: 31536
-modx.io: did not receive HSTS header
+modx.io: could not connect to host
 modydev.club: could not connect to host
 moe4sale.in: did not receive HSTS header
 moebel-nagel.de: did not receive HSTS header
 moegirl.org: did not receive HSTS header
 moellers.it: could not connect to host
-moeloli.pw: did not receive HSTS header
+moeloli.pw: could not connect to host
 moelord.org: could not connect to host
 moen.io: could not connect to host
 moevenpick-cafe.com: did not receive HSTS header
 mogry.net: could not connect to host
 moho.kr: could not connect to host
 mohs.es: could not connect to host
 moitur.com: could not connect to host
 mojizuri.jp: max-age too low: 86400
@@ -6752,38 +6770,40 @@ monautoneuve.fr: did not receive HSTS he
 mondar.io: could not connect to host
 mondopoint.com: did not receive HSTS header
 mondwandler.de: could not connect to host
 moneromerchant.com: could not connect to host
 moneycrownmedia.com: could not connect to host
 monika-sokol.de: did not receive HSTS header
 monitaure.io: could not connect to host
 monitman.com: did not receive HSTS header
+monoseis-monotica.gr: max-age too low: 300
 monsieurbureau.com: did not receive HSTS header
 montanacures.org: could not connect to host
 montanwerk.de: did not receive HSTS header
 montonicms.com: could not connect to host
 moon.lc: could not connect to host
 moonless.net: could not connect to host
 moonloupe.com: could not connect to host
+moonysbouncycastles.co.uk: did not receive HSTS header
 moosemanstudios.com: could not connect to host
 moov.is: could not connect to host
 moparisthebest.biz: could not connect to host
 moparisthebest.info: could not connect to host
 moparscape.org: did not receive HSTS header
 mopsuite.club: could not connect to host
 mor.cloud: could not connect to host
 mor.gl: could not connect to host
 morethanadream.lv: could not connect to host
 morethandigital.info: did not receive HSTS header
 morganestes.com: max-age too low: 0
 morningcalculation.com: could not connect to host
 morninglory.com: max-age too low: 2592000
 mornings.com: did not receive HSTS header
-morotech.com.br: did not receive HSTS header
+morotech.com.br: could not connect to host
 morpheusx.at: could not connect to host
 morpheusxaut.net: could not connect to host
 morpork.xyz: could not connect to host
 mortgagecentersmo.com: did not receive HSTS header
 mostwuat.com: could not connect to host
 motherbase.io: could not connect to host
 motionfreight.com: could not connect to host
 motionpicturesolutions.com: did not receive HSTS header
@@ -6814,16 +6834,17 @@ mrksk.com: did not receive HSTS header
 mrning.com: did not receive HSTS header
 mrnonz.com: max-age too low: 0
 mrpopat.in: did not receive HSTS header
 mrs-shop.com: did not receive HSTS header
 mrsbairds.com: max-age too low: 86400
 msc-seereisen.net: max-age too low: 0
 mstd.tokyo: did not receive HSTS header
 mstdn-tech.jp: could not connect to host
+mstdn.io: did not receive HSTS header
 mszaki.com: did not receive HSTS header
 mt.me.uk: could not connect to host
 mtamaki.com: could not connect to host
 mtcgf.com: did not receive HSTS header
 mtdn.jp: could not connect to host
 mtg-esport.de: did not receive HSTS header
 muevetumundo.com.mx: max-age too low: 86400
 mujadin.se: did not receive HSTS header
@@ -6932,17 +6953,16 @@ namacindia.com: did not receive HSTS hea
 namaho.com: could not connect to host
 named.ga: could not connect to host
 nametaken-cloud.duckdns.org: could not connect to host
 namethatbone.com: could not connect to host
 namorico.me: could not connect to host
 nan.ci: did not receive HSTS header
 nan.zone: could not connect to host
 nandex.org: could not connect to host
-nani.io: did not receive HSTS header
 naniki.co.uk: did not receive HSTS header
 nanogeneinc.com: could not connect to host
 nanokamo.com: did not receive HSTS header
 nanrenba.net: could not connect to host
 nansay.cn: could not connect to host
 nanto.eu: could not connect to host
 narodniki.com: did not receive HSTS header
 narviz.com: did not receive HSTS header
@@ -6972,16 +6992,17 @@ ncpc.gov: could not connect to host
 nct.org.uk: did not receive HSTS header
 nctx.co.uk: did not receive HSTS header
 ndtmarket.place: could not connect to host
 near.st: did not receive HSTS header
 nearbiwa.com: did not receive HSTS header
 neavision.de: did not receive HSTS header
 nebra.io: could not connect to host
 nebulousenhanced.com: could not connect to host
+nedcf.org.uk: did not receive HSTS header
 nedwave.com: did not receive HSTS header
 nedzad.me: could not connect to host
 neftaly.com: did not receive HSTS header
 negativzinsen.info: 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
@@ -7015,17 +7036,17 @@ netzvieh.de: did not receive HSTS header
 netzzwerg4u.de: could not connect to host
 neueonlinecasino2016.com: could not connect to host
 neuralgic.net: could not connect to host
 neuro-plus-100.com: could not connect to host
 neuronfactor.com: max-age too low: 1000
 never-afk.de: did not receive HSTS header
 never.pet: did not receive HSTS header
 neveta.com: could not connect to host
-newbieboss.com: did not receive HSTS header
+newbieboss.com: could not connect to host
 newedivideo.it: could not connect to host
 newgenerationplus.org: could not connect to host
 newhdmovies.io: could not connect to host
 newkaliningrad.ru: did not receive HSTS header
 newlooknow.com: did not receive HSTS header
 newmelalife.com: did not receive HSTS header
 newparadigmventures.net: did not receive HSTS header
 newportpropertygroup.com: could not connect to host
@@ -7084,17 +7105,17 @@ nnote.net: did not receive HSTS header
 nnya.cat: could not connect to host
 no-ip.cz: did not receive HSTS header
 no17sifangjie.cc: could not connect to host
 nocallaghan.com: could not connect to host
 noclegi-online.pl: did not receive HSTS header
 noctinus.tk: could not connect to host
 node-core-app.com: could not connect to host
 nodebrewery.com: could not connect to host
-nodelab-it.de: could not connect to host
+nodelab-it.de: did not receive HSTS header
 nodespin.com: could not connect to host
 nodetemple.com: could not connect to host
 nodi.at: did not receive HSTS header
 noexpect.org: could not connect to host
 noima.com: did not receive HSTS header
 nolag.host: could not connect to host
 nolberg.net: did not receive HSTS header
 nolimitsbook.de: did not receive HSTS header
@@ -7151,31 +7172,31 @@ nu3.com: did not receive HSTS header
 nu3.de: did not receive HSTS header
 nu3.dk: did not receive HSTS header
 nu3.fi: did not receive HSTS header
 nu3.fr: did not receive HSTS header
 nu3.no: did not receive HSTS header
 nu3.se: did not receive HSTS header
 nube.ninja: did not receive HSTS header
 nufla.de: could not connect to host
-nuiguru.me: did not receive HSTS header
+nuiguru.me: could not connect to host
 nukenet.se: could not connect to host
 nukute.com: did not receive HSTS header
 null-pointer.eu: did not receive HSTS header
 null-sec.ru: could not connect to host
 null.cat: did not receive HSTS header
 null.tips: could not connect to host
 nullpoint.at: did not receive HSTS header
 nullpro.com: could not connect to host
 numericacu.com: did not receive HSTS header
 numero-di-telefono.it: could not connect to host
 numista.com: did not receive HSTS header
 nuos.org: could not connect to host
 nuovamoda.al: did not receive HSTS header
-nup.pw: did not receive HSTS header
+nup.pw: could not connect to host
 nurserybook.co: did not receive HSTS header
 nusatrip-api.com: did not receive HSTS header
 nutricuerpo.com: did not receive HSTS header
 nutritionculture.com: could not connect to host
 nutsandboltsmedia.com: did not receive HSTS header
 nwa.xyz: could not connect to host
 nweb.co.nz: could not connect to host
 nwork.media: could not connect to host
@@ -7192,17 +7213,17 @@ nzbs.io: could not connect to host
 nzmk.cz: did not receive HSTS header
 nzquakes.maori.nz: could not connect to host
 o-rickroll-y.pw: could not connect to host
 o0o.one: could not connect to host
 oasis.mobi: could not connect to host
 oben.pl: did not receive HSTS header
 obscuredfiles.com: could not connect to host
 obsydian.org: could not connect to host
-occupymedia.org: did not receive HSTS header
+occupymedia.org: could not connect to host
 ochaken.cf: could not connect to host
 ocmeulebeke.be: did not receive HSTS header
 ocrami.us: did not receive HSTS header
 ocsr.nl: did not receive HSTS header
 octocat.ninja: could not connect to host
 oddmouse.com: could not connect to host
 odin.xxx: could not connect to host
 odinkapital.no: did not receive HSTS header
@@ -7217,20 +7238,18 @@ offshore-firma.org: could not connect to
 offshore-unternehmen.com: could not connect to host
 offshorefirma-gruenden.com: could not connect to host
 offshoremarineparts.com: did not receive HSTS header
 oficinadocelular.com.br: could not connect to host
 ofo2.com: did not receive HSTS header
 oganek.ie: could not connect to host
 oganime.com: could not connect to host
 ogogoshop.com: could not connect to host
-ohling.org: could not connect to host
 ohm2013.org: could not connect to host
 ohsocool.org: could not connect to host
-ohyooo.com: did not receive HSTS header
 oiepoie.nl: could not connect to host
 oishioffice.com: did not receive HSTS header
 ojls.co: could not connect to host
 okane.love: could not connect to host
 okok-rent.com: could not connect to host
 okok.rent: could not connect to host
 okutama.in.th: could not connect to host
 olafnorge.de: did not receive HSTS header
@@ -7267,17 +7286,16 @@ onetwentyseven001.com: did not receive H
 oneworldbank.com: did not receive HSTS header
 onewpst.com: did not receive HSTS header
 oniichan.us: did not receive HSTS header
 onioncloud.org: could not connect to host
 onionsburg.com: could not connect to host
 online-casino.eu: did not receive HSTS header
 online-pr.at: did not receive HSTS header
 online-wetten.de: did not receive HSTS header
-online.swedbank.se: did not receive HSTS header
 onlinebillingform.com: did not receive HSTS header
 onlinecompliance.org: did not receive HSTS header
 onlinedemo.hu: could not connect to host
 onlinedeposit.us: could not connect to host
 onlinekasino.de: did not receive HSTS header
 onlinepollsph.com: could not connect to host
 onlineschadestaat.nl: did not receive HSTS header
 onlinespielothek.com: did not receive HSTS header
@@ -7433,29 +7451,28 @@ papalytics.com: could not connect to hos
 papeda.net: could not connect to host
 papelariadante.com.br: could not connect to host
 papercard.co.uk: did not receive HSTS header
 papercrunch.io: could not connect to host
 paperwallets.io: did not receive HSTS header
 papierniak.net: could not connect to host
 papygeek.com: could not connect to host
 parabhairavayoga.com: max-age too low: 0
-paragon.com.sg: did not receive HSTS header
 parent5446.us: could not connect to host
 parentmail.co.uk: did not receive HSTS header
 parfum-baza.ru: could not connect to host
 paris-cyber.fr: did not receive HSTS header
 parisvox.info: did not receive HSTS header
 parithy.net: could not connect to host
 parkingplus.co.il: could not connect to host
 parkrocker.com: max-age too low: 604800
 parkwithark.com: could not connect to host
 parodybit.net: did not receive HSTS header
 parpaing-paillette.net: could not connect to host
-particonpsplus.it: did not receive HSTS header
+particonpsplus.it: could not connect to host
 partiono.com: did not receive HSTS header
 partirkyoto.jp: did not receive HSTS header
 partnercardservices.com: did not receive HSTS header
 partnersfcu.org: did not receive HSTS header
 partyhaus.ovh: could not connect to host
 partyhireformby.co.uk: did not receive HSTS header
 partyvan.eu: could not connect to host
 partyvan.it: could not connect to host
@@ -7472,17 +7489,17 @@ pastdream.xyz: could not connect to host
 paste.linode.com: could not connect to host
 pastebin.linode.com: could not connect to host
 pastenib.com: could not connect to host
 paster.li: did not receive HSTS header
 pataua.kiwi: did not receive HSTS header
 paternitydnatest.com: could not connect to host
 patfs.com: did not receive HSTS header
 patientinsight.net: did not receive HSTS header
-patt.us: could not connect to host
+patt.us: did not receive HSTS header
 patterson.mp: could not connect to host
 paul-kerebel.pro: could not connect to host
 paulbunyanmls.com: did not receive HSTS header
 paulproell.at: could not connect to host
 paulyang.cn: did not receive HSTS header
 pavelfojt.cz: did not receive HSTS header
 pavelkahouseforcisco.com: did not receive HSTS header
 paxdei.com.br: could not connect to host
@@ -7717,17 +7734,16 @@ portaluniversalista.org: could not conne
 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
 potatoheads.net: could not connect to host
 potsky.com: did not receive HSTS header
-pouet.it: did not receive HSTS header
 pourmesloisirs.com: did not receive HSTS header
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
 power-l.ch: did not receive HSTS header
 power-of-interest.com: did not receive HSTS header
 power99press.com: did not receive HSTS header
 poweroff.win: could not connect to host
 powerplannerapp.com: could not connect to host
@@ -7870,17 +7886,16 @@ pzme.me: could not connect to host
 q-rickroll-u.pw: could not connect to host
 q2.si: did not receive HSTS header
 q8mp3.me: did not receive HSTS header
 qbik.de: did not receive HSTS header
 qbnt.ca: could not connect to host
 qccqld.org.au: could not connect to host
 qiannews.net: could not connect to host
 qiliang.wang: did not receive HSTS header
-qimiao.io: did not receive HSTS header
 qingxuan.info: could not connect to host
 qinxi1992.com: could not connect to host
 qionglu.pw: did not receive HSTS header
 qipp.com: did not receive HSTS header
 qirinus.com: could not connect to host
 qixxit.de: did not receive HSTS header
 qldconservation.org: could not connect to host
 qonqa.de: did not receive HSTS header
@@ -7906,17 +7921,17 @@ quebecmailbox.com: could not connect to 
 queenbrownie.com.br: could not connect to host
 quelmandataire.fr: did not receive HSTS header
 queryplayground.com: could not connect to host
 questsandrewards.com: could not connect to host
 quickandroid.tools: could not connect to host
 quickpayservice.com: could not connect to host
 quizionic.com: could not connect to host
 quizmemes.org: could not connect to host
-quli.nl: did not receive HSTS header
+quli.nl: could not connect to host
 quotehex.com: could not connect to host
 quotemaster.co.za: could not connect to host
 quranserver.net: could not connect to host
 qvi.st: could not connect to host
 qwilink.me: did not receive HSTS header
 r-ay.cn: could not connect to host
 r-core.ru: could not connect to host
 r-rickroll-u.pw: could not connect to host
@@ -7960,17 +7975,17 @@ rationem.nl: did not receive HSTS header
 ratuseks.com: could not connect to host
 ratuseks.net: could not connect to host
 ratuseks.us: could not connect to host
 rauchenwald.net: did not receive HSTS header
 raulfraile.net: could not connect to host
 ravage.fm: did not receive HSTS header
 raven.lipetsk.ru: could not connect to host
 ravengergaming.ga: did not receive HSTS header
-ravkr.duckdns.org: could not connect to host
+ravkr.duckdns.org: max-age too low: 30
 raw-diets.com: did not receive HSTS header
 rawet.se: could not connect to host
 rawoil.com: could not connect to host
 rawstorieslondon.com: could not connect to host
 raydan.space: could not connect to host
 raydobe.me: could not connect to host
 raytron.org: could not connect to host
 razeencheng.com: could not connect to host
@@ -7998,16 +8013,17 @@ readydok.com: did not receive HSTS heade
 reagir43.fr: did not receive HSTS header
 realmic.net: could not connect to host
 realmofespionage.com: could not connect to host
 reapdrive.net: did not receive HSTS header
 reaper.rip: could not connect to host
 reardenporn.com: could not connect to host
 rebekaesgabor.online: could not connect to host
 rebootmc.com: did not receive HSTS header
+recyclingpromotions.us: did not receive HSTS header
 redable.nl: did not receive HSTS header
 redair.es: did not receive HSTS header
 redar.xyz: could not connect to host
 reddit.com: did not receive HSTS header
 rede.ca: did not receive HSTS header
 redhorsemountainranch.com: did not receive HSTS header
 redicabo.de: could not connect to host
 redirectman.com: did not receive HSTS header
@@ -8028,17 +8044,17 @@ regenbogenwald.de: did not receive HSTS 
 regenerescence.com: did not receive HSTS header
 reggae-cdmx.com: could not connect to host
 regionale.org: did not receive HSTS header
 registertovoteflorida.gov: did not receive HSTS header
 rehabthailand.nl: could not connect to host
 reic.me: could not connect to host
 reidascuecas.com.br: did not receive HSTS header
 reikiqueen.uk: could not connect to host
-reisyukaku.org: did not receive HSTS header
+reisyukaku.org: could not connect to host
 reithguard-it.de: did not receive HSTS header
 rejo.in: could not connect to host
 rejuvemedspa.com: did not receive HSTS header
 relayawards.com: could not connect to host
 reldoc.com.mx: did not receive HSTS header
 reliable-mail.de: could not connect to host
 relisten.nl: did not receive HSTS header
 relvan.com: did not receive HSTS header
@@ -8314,16 +8330,17 @@ save.gov: could not connect to host
 saveaward.gov: could not connect to host
 saveyour.biz: could not connect to host
 savingrecipe.com: did not receive HSTS header
 savvysuit.com: did not receive HSTS header
 sawamura-rental.com: did not receive HSTS header
 say-hanabi.com: could not connect to host
 sayhanabi.com: could not connect to host
 sazima.ru: did not receive HSTS header
+sbanken.no: did not receive HSTS header
 sbobetfun.com: 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
 scala.click: did not receive HSTS header
 scannabi.com: could not connect to host
 schachburg.de: did not receive HSTS header
 schadegarant.net: could not connect to host
@@ -8365,17 +8382,17 @@ scrambler.in: could not connect to host
 scrapings.net: could not connect to host
 screencaster.io: did not receive HSTS header
 screenresolution.space: could not connect to host
 screensaversplanet.com: did not receive HSTS header
 scribbleserver.com: could not connect to host
 scribe.systems: could not connect to host
 scrion.com: could not connect to host
 script.google.com: did not receive HSTS header (error ignored - included regardless)
-scriptenforcer.net: did not receive HSTS header
+scriptenforcer.net: could not connect to host
 scriptict.nl: could not connect to host
 scrollstory.com: did not receive HSTS header
 sdhmanagementgroup.com: could not connect to host
 sdia.ru: could not connect to host
 sdmoscow.ru: could not connect to host
 sdrobs.com: did not receive HSTS header
 sdsl-speedtest.de: could not connect to host
 se7ensins.com: did not receive HSTS header
@@ -8537,17 +8554,16 @@ shiinko.com: could not connect to host
 shindorei.fr: could not connect to host
 shinebijoux.com.br: could not connect to host
 shinju.moe: could not connect to host
 shiona.xyz: could not connect to host
 shipinsight.com: did not receive HSTS header
 shipmile.com: did not receive HSTS header
 shipping24h.com: did not receive HSTS header
 shirosaki.org: could not connect to host
-shishkin.link: did not receive HSTS header
 shitfest.info: did not receive HSTS header
 shitposting.life: could not connect to host
 shm-forum.org.uk: could not connect to host
 shocksrv.com: did not receive HSTS header
 shooshosha.com: could not connect to host
 shopherbal.co.za: did not receive HSTS header
 shopontarget.com: did not receive HSTS header
 shoppeno5.com: did not receive HSTS header
@@ -8595,25 +8611,27 @@ simongong.net: did not receive HSTS head
 simonsaxon.com: did not receive HSTS header
 simpan.id: did not receive HSTS header
 simpleai.net: max-age too low: 600
 simplelearner.com: could not connect to host
 simplepractice.com: did not receive HSTS header
 simplexsupport.com: did not receive HSTS header
 simplixos.org: could not connect to host
 simplyenak.com: did not receive HSTS header
+simtin-net.de: did not receive HSTS header
 simyo.nl: did not receive HSTS header
 sin30.net: could not connect to host
 sincai666.com: could not connect to host
 sincron.org: could not connect to host
 sinful.pw: could not connect to host
 singul4rity.com: could not connect to host
 sinneserweiterung.de: could not connect to host
 sinosky.org: did not receive HSTS header
 sinsojb.me: did not receive HSTS header
+sinusbot.online: did not receive HSTS header
 sipc.org: did not receive HSTS header
 siriad.com: could not connect to host
 sirius-lee.net: could not connect to host
 siro.gq: did not receive HSTS header
 sistemasespecializados.com: did not receive HSTS header
 sitehost.io: did not receive HSTS header
 sitennisclub.com: did not receive HSTS header
 siterip.org: could not connect to host
@@ -8656,17 +8674,16 @@ slauber.de: did not receive HSTS header
 sleeklounge.com: did not receive HSTS header
 sleep10.com: could not connect to host
 sleepstar.com.mt: did not receive HSTS header
 slicketl.com: did not receive HSTS header
 slightfuture.click: could not connect to host
 slightfuture.com: did not receive HSTS header
 slix.io: could not connect to host
 slope.haus: could not connect to host
-slopeedge.com: did not receive HSTS header
 slovakiana.sk: did not receive HSTS header
 sluplift.com: did not receive HSTS header
 slycurity.de: did not receive HSTS header
 smablo.com: did not receive HSTS header
 smallcdn.rocks: could not connect to host
 smallshopit.com: did not receive HSTS header
 smart-mirror.de: did not receive HSTS header
 smart-ov.nl: could not connect to host
@@ -8718,16 +8735,17 @@ socialprize.com: could not connect to ho
 socialspirit.com.br: did not receive HSTS header
 sockeye.cc: could not connect to host
 socomponents.co.uk: could not connect to host
 sodacore.com: could not connect to host
 softballsavings.com: did not receive HSTS header
 sogeek.me: could not connect to host
 sokolka.tv: did not receive HSTS header
 sol-3.de: did not receive HSTS header
+sol.works: did not receive HSTS header
 solarcom.com.br: could not connect to host
 soldbygold.net: did not receive HSTS header
 solentes.com.br: could not connect to host
 solidfuelappliancespares.co.uk: did not receive HSTS header
 solidus.systems: did not receive HSTS header
 soljem.com: did not receive HSTS header
 soll-i.ch: did not receive HSTS header
 solosmusic.xyz: could not connect to host
@@ -8769,17 +8787,17 @@ soz6.com: did not receive HSTS header
 spacedust.xyz: could not connect to host
 spacefish.biz: could not connect to host
 spacehq.org: could not connect to host
 spacemo.com: did not receive HSTS header
 spacountryexplorer.org.au: did not receive HSTS header
 spaggel.nl: did not receive HSTS header
 spamloco.net: did not receive HSTS header
 spangehlassociates.com: did not receive HSTS header
-sparelib.com: could not connect to host
+sparelib.com: max-age too low: 3650
 spark.team: could not connect to host
 sparklingsparklers.com: did not receive HSTS header
 sparmedo.de: did not receive HSTS header
 sparsa.army: could not connect to host
 sparta-trade.com: could not connect to host
 spauted.com: could not connect to host
 spdysync.com: could not connect to host
 specialedesigns.com: could not connect to host
@@ -8903,17 +8921,16 @@ stmbgr.com: could not connect to host
 stn.me.uk: did not receive HSTS header
 stockseyeserum.com: could not connect to host
 stocktrade.de: could not connect to host
 stoffe-monster.de: did not receive HSTS header
 stoick.me: could not connect to host
 stole-my.bike: could not connect to host
 stole-my.tv: could not connect to host
 stonecutterscommunity.com: could not connect to host
-stopbreakupnow.org: did not receive HSTS header
 stopwoodfin.org: could not connect to host
 storbritannien.guide: could not connect to host
 storecove.com: did not receive HSTS header
 storeden.com: did not receive HSTS header
 storefrontify.com: did not receive HSTS header
 storiesofhealth.org: did not receive HSTS header
 storillo.com: did not receive HSTS header
 stormhub.org: could not connect to host
@@ -8961,17 +8978,16 @@ sugarsweetorsour.com: did not receive HS
 suian.or.jp: max-age too low: 86400
 suite73.org: could not connect to host
 summitbankofkc.com: did not receive HSTS header
 sumoatm.com: did not receive HSTS header
 sumoscout.de: could not connect to host
 sun-wellness-online.com.vn: did not receive HSTS header
 sunboxstore.jp: did not receive HSTS header
 suncountrymarine.com: did not receive HSTS header
-sunflyer.cn: did not receive HSTS header
 sungo.wtf: did not receive HSTS header
 sunlandsg.vn: did not receive HSTS header
 sunnyfruit.ru: could not connect to host
 sunshinepress.org: could not connect to host
 sunyanzi.tk: could not connect to host
 suos.io: could not connect to host
 supcro.com: could not connect to host
 super-erotica.ru: could not connect to host
@@ -9210,17 +9226,17 @@ thagki9.com: did not receive HSTS header
 thaihostcool.com: did not receive HSTS header
 thailandpropertylisting.com: did not receive HSTS header
 thailandpropertylistings.com: did not receive HSTS header
 thalmann.fr: did not receive HSTS header
 thatvizsla.life: did not receive HSTS header
 the-construct.com: could not connect to host
 the-delta.net.eu.org: could not connect to host
 the-sky-of-valkyries.com: could not connect to host
-the.ie: max-age too low: 2592000
+the.ie: could not connect to host
 theamateurs.net: did not receive HSTS header
 theamp.com: did not receive HSTS header
 theater.cf: could not connect to host
 theavenuegallery.com: did not receive HSTS header
 thebasementguys.com: could not connect to host
 thebeginningisnye.com: could not connect to host
 theberkshirescompany.com: could not connect to host
 thebigfail.net: could not connect to host
@@ -9365,17 +9381,16 @@ timotrans.de: did not receive HSTS heade
 timotrans.eu: did not receive HSTS header
 timowi.de: could not connect to host
 timowi.net: could not connect to host
 timschubert.net: max-age too low: 172800
 timvandekamp.nl: did not receive HSTS header
 timwittenberg.com: could not connect to host
 tinchbear.xyz: could not connect to host
 tindewen.net: could not connect to host
-tintenprofi.de: max-age too low: 6307200
 tipsyk.ru: could not connect to host
 tiredofeating.com: could not connect to host
 tiremoni.ch: did not receive HSTS header
 tirex.media: did not receive HSTS header
 titanlab.de: could not connect to host
 titanleaf.com: could not connect to host
 titouan.co: did not receive HSTS header
 tittarpuls.se: could not connect to host
@@ -9637,16 +9652,17 @@ uhm.io: could not connect to host
 ukas.com: did not receive HSTS header
 ukdropshipment.co.uk: did not receive HSTS header
 ukdropshipment.com: did not receive HSTS header
 ukk.dk: did not receive HSTS header
 ukrgadget.com: could not connect to host
 ulabox.cat: did not receive HSTS header
 ulabox.es: did not receive HSTS header
 ullamodaintima.com.br: could not connect to host
+ulmer-schneesport.de: did not receive HSTS header
 ulmo.dk: could not connect to host
 ultimate-garcinia-plus.com: could not connect to host
 ultimate-glow-skin.com: could not connect to host
 ultimate-memoryplus.com: could not connect to host
 ultimate-neuroplus.com: could not connect to host
 ultros.io: did not receive HSTS header
 umaimise.info: did not receive HSTS header
 umgardi.ca: could not connect to host
@@ -9717,17 +9733,16 @@ uporoops.com: could not connect to host
 uprotect.it: could not connect to host
 upstats.eu: could not connect to host
 uptic.net: did not receive HSTS header
 ur-lauber.de: did not receive HSTS header
 urandom.eu.org: did not receive HSTS header
 urban-garden.lt: could not connect to host
 urban-garden.lv: could not connect to host
 urbpic.com: could not connect to host
-url0.eu: did not receive HSTS header
 urlchomp.com: did not receive HSTS header
 urphp.com: could not connect to host
 us-immigration.com: did not receive HSTS header
 usaab.org: did not receive HSTS header
 usbirthcertificate.com: could not connect to host
 usbtypeccompliant.com: could not connect to host
 uscitizenship.info: did not receive HSTS header
 uscntalk.com: could not connect to host
@@ -9951,17 +9966,16 @@ vrijstaandhuis-in-zuidplas-kopen.nl: cou
 vrijstaandhuis-in-zwartewaterland-kopen.nl: could not connect to host
 vrijstaandhuisverkopen.nl: could not connect to host
 vrobert.fr: could not connect to host
 vsc-don-stocksport.de: did not receive HSTS header
 vsestiralnie.com: did not receive HSTS header
 vvl.me: did not receive HSTS header
 vxml.club: could not connect to host
 vxstream-sandbox.com: did not receive HSTS header
-vybeministry.org: did not receive HSTS header
 vyncke.org: max-age too low: 2678400
 vyvybean.cf: could not connect to host
 vyvygen.com: did not receive HSTS header
 vzk.io: could not connect to host
 w2gshop.com.br: could not connect to host
 w4a.fr: could not connect to host
 w4xzr.top: could not connect to host
 w4xzr.xyz: could not connect to host
@@ -9974,39 +9988,38 @@ wakened.net: did not receive HSTS header
 walkeryoung.ca: could not connect to host
 wallabag.it: did not receive HSTS header
 wallabag.org: did not receive HSTS header
 wallet.google.com: did not receive HSTS header (error ignored - included regardless)
 wallsblog.dk: could not connect to host
 walnutgaming.co.uk: could not connect to host
 walterlynnmosley.com: did not receive HSTS header
 wanban.io: could not connect to host
-wangjun.me: could not connect to host
+wangjun.me: did not receive HSTS header
 wangkezun.com: could not connect to host
 wangqiliang.cn: did not receive HSTS header
 wangqiliang.org: did not receive HSTS header
 wangqiliang.xn--fiqs8s: could not connect to host
 wangzuan168.cc: could not connect to host
 wapjt.cn: could not connect to host
 wapt.fr: did not receive HSTS header
 warandpeace.xyz: could not connect to host
 wardsegers.be: did not receive HSTS header
 warehost.de: did not receive HSTS header
 warhistoryonline.com: did not receive HSTS header
 warped.com: did not receive HSTS header
 warrencreative.com: did not receive HSTS header
 warsentech.com: could not connect to host
-warsh.moe: could not connect to host
+warsh.moe: did not receive HSTS header
 warumsuchen.at: max-age too low: 0
 watchium.com: did not receive HSTS header
 waterforlife.net.au: did not receive HSTS header
 waterpoint.com.br: could not connect to host
 watersportmarkt.net: did not receive HSTS header
 watsonhall.uk: could not connect to host
-wattechweb.com: did not receive HSTS header
 wave.is: could not connect to host
 wavefloatrooms.com: did not receive HSTS header
 wavefrontsystemstech.com: could not connect to host
 wear2work.nl: did not receive HSTS header
 weaverhairextensions.nl: could not connect to host
 web-industry.fr: could not connect to host
 web-insider.net: could not connect to host
 web-vision.de: did not receive HSTS header
@@ -10034,33 +10047,34 @@ webmaniabr.com: did not receive HSTS hea
 webmarketingfestival.it: did not receive HSTS header
 webninja.work: could not connect to host
 webnosql.com: could not connect to host
 webperformance.ru: could not connect to host
 webproshosting.tk: could not connect to host
 webpublica.pt: could not connect to host
 webrebels.org: could not connect to host
 websandbox.uk: did not receive HSTS header
+websitedesign.bg: did not receive HSTS header
 webstationservice.fr: could not connect to host
 webstellung.com: did not receive HSTS header
 webstory.xyz: did not receive HSTS header
 webswitch.io: could not connect to host
 webtechgadgetry.com: could not connect to host
 webtiles.co.uk: could not connect to host
 webuni.hu: did not receive HSTS header
 webwork.pw: could not connect to host
 webypass.xyz: could not connect to host
 wecanfindit.co.za: could not connect to host
 weddingenvelopes.co.uk: did not receive HSTS header
 weddingibiza.nl: could not connect to host
 weekly.fyi: could not connect to host
 wegenaer.nl: could not connect to host
 weiyuz.com: max-age too low: 6585555
 welkers.org: could not connect to host
-wellastore.ru: could not connect to host
+wellastore.ru: did not receive HSTS header
 wellcomp.com.br: did not receive HSTS header
 wellies.com.au: max-age too low: 7889238
 wellness.so: could not connect to host
 wellproducedwines.com: did not receive HSTS header
 welpy.com: could not connect to host
 weltentreff.com: could not connect to host
 weltmeisterschaft.net: could not connect to host
 weme.eu: could not connect to host
@@ -10221,17 +10235,17 @@ www-1117.com: could not connect to host
 www-39988.com: did not receive HSTS header
 www-507.net: could not connect to host
 www-746.com: could not connect to host
 www-771122.com: did not receive HSTS header
 www-8003.com: did not receive HSTS header
 www-88599.com: did not receive HSTS header
 www-9995.com: did not receive HSTS header
 www-djbet.com: did not receive HSTS header
-www-jinshavip.com: did not receive HSTS header
+www-jinshavip.com: could not connect to host
 www.cueup.com: could not connect to host
 www.cyveillance.com: did not receive HSTS header
 www.developer.mydigipass.com: could not connect to host
 www.elanex.biz: did not receive HSTS header
 www.gamesdepartment.co.uk: did not receive HSTS header
 www.gmail.com: did not receive HSTS header (error ignored - included regardless)
 www.googlemail.com: did not receive HSTS header (error ignored - included regardless)
 www.gpo.gov: did not receive HSTS header
@@ -10279,17 +10293,17 @@ xfd3.de: did not receive HSTS header
 xfive.de: could not connect to host
 xgusto.com: did not receive HSTS header
 xiangqiushi.com: did not receive HSTS header
 xiaody.me: could not connect to host
 xiaolvmu.com: could not connect to host
 xiaolvmu.me: could not connect to host
 xiaoxiao.im: could not connect to host
 ximens.me: could not connect to host
-xinbiji.cn: did not receive HSTS header
+xinbiji.cn: could not connect to host
 xisa.it: could not connect to host
 xivpn.com: could not connect to host
 xiyu.moe: could not connect to host
 xmr.my: could not connect to host
 xmv.cz: could not connect to host
 xn--3lqp21gwna.xn--fiqs8s: could not connect to host
 xn--3lqp21gwna.xn--fiqz9s: could not connect to host
 xn--3lqt7ir4md4tzwa.cn: did not receive HSTS header
@@ -10532,16 +10546,17 @@ zorasvobodova.cz: did not receive HSTS h
 zortium.report: could not connect to host
 zoznamrealit.sk: did not receive HSTS header
 zqhong.com: could not connect to host
 zqjs.tk: could not connect to host
 zqwqz.com: max-age too low: 0
 zrt.io: did not receive HSTS header
 ztan.tk: could not connect to host
 ztcaoll222.cn: did not receive HSTS header
+ztytian.com: did not receive HSTS header
 zubel.it: did not receive HSTS header
 zunftmarke.de: did not receive HSTS header
 zuram.net: could not connect to host
 zvncloud.com: did not receive HSTS header
 zwollemagazine.nl: did not receive HSTS header
 zyf.pw: could not connect to host
 zymbit.com: did not receive HSTS header
 zync.ca: 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(1526238015543000);
+const PRTime gPreloadListExpirationTime = INT64_C(1526410948463000);
 %%
 0-1.party, 1
 0.me.uk, 1
 0005pay.com, 1
 0010100.net, 1
 00220022.net, 1
 007-preisvergleich.de, 1
 00881919.com, 1
@@ -23,17 +23,16 @@ 0100dev.com, 1
 0100dev.nl, 1
 01100010011001010111001101110100.com, 1
 01electronica.com.ar, 1
 01seguridad.com.ar, 1
 0222.mg, 1
 023838.com, 1
 023sec.com, 1
 03-09-2016.wedding, 1
-040fit.nl, 1
 040fitvitality.nl, 1
 046569.com, 1
 04sun.com, 1
 050media.nl, 1
 0513c.com, 1
 0573wk.com, 1
 06se.com, 1
 070709.net, 1
@@ -335,17 +334,16 @@ 411film.com, 1
 411movie.com, 1
 41844.de, 1
 41where.com, 1
 420java.com, 1
 42day.info, 1
 42entrepreneurs.fr, 1
 42t.ru, 1
 439191.com, 1
-440hz-radio.de, 1
 441jj.com, 0
 44scc.com, 1
 4500.co.il, 1
 47tech.com, 1
 491mhz.net, 1
 49889.com, 1
 49948522.com, 1
 49dollaridahoregisteredagent.com, 1
@@ -502,17 +500,16 @@ a-ix.net, 1
 a-little-linux-box.at, 1
 a-oben.org, 1
 a-starbouncycastles.co.uk, 1
 a1798.com, 1
 a1bouncycastlehire.com, 1
 a1jumpandbounce.co.uk, 1
 a1scuba.com, 1
 a1scubastore.com, 1
-a200k.xyz, 1
 a2a.net, 1
 a2c-co.net, 1
 a2it.gr, 1
 a2nutrition.com.au, 1
 a7m2.me, 1
 aa-tour.ru, 1
 aaapl.com, 1
 aabanet.com.br, 1
@@ -798,16 +795,17 @@ adapt.de, 1
 adapti.de, 1
 adaptivemechanics.edu.au, 1
 adawolfa.cz, 1
 adayinthelifeof.nl, 1
 adblock.ovh, 1
 adblockextreme.com, 1
 adblockextreme.net, 1
 adblockextreme.org, 1
+addcrazy.com, 1
 addeekt.com, 1
 adderall.space, 1
 addicional.com, 1
 addictively.com, 1
 addiko.net, 1
 addones.net, 1
 addstar.jp, 0
 addtoany.com, 1
@@ -997,16 +995,17 @@ afva.net, 1
 ag-websolutions.de, 1
 agalliasis.ch, 1
 agamsecurity.ch, 1
 agate.pw, 1
 agdalieso.com.ba, 1
 ageg.ca, 1
 agenciadeempregosdourados.com.br, 1
 agenciafiscal.pe, 1
+agenciagriff.com, 1
 agencymanager.be, 1
 agenda-loto.net, 0
 agenda21senden.de, 1
 agent-grow.com, 1
 agent6.com.au, 1
 agentprocessing.com, 1
 agfmedia.com, 1
 agglo-sion.ch, 1
@@ -1354,16 +1353,17 @@ allinagency.com, 1
 allinone-ranking150.com, 1
 allinonecyprus.com, 1
 allis.studio, 1
 allladyboys.com, 1
 allmebel.ru, 1
 allmend-ru.de, 1
 allns.fr, 1
 allo-credit.ch, 1
+alloffice.com.ua, 1
 alloutatl.com, 1
 alloydevil.nl, 1
 allplayer.tk, 1
 allpointsblog.com, 1
 allproptonline.com, 1
 allroundpvp.net, 1
 allscammers.exposed, 1
 allsearch.io, 1
@@ -1516,17 +1516,16 @@ americanbio.com, 1
 americandistribuidora.com, 1
 americanfoundationbr.com, 1
 americanmediainstitute.com, 1
 americanoutlawjeepparts.com, 1
 americansforcommunitydevelopment.org, 1
 americasbasementcontractor.com, 1
 americkykongres.cz, 1
 amerigroup.com, 1
-amerimarkdirect.com, 1
 amerimex.cc, 1
 amesvacuumrepair.com, 1
 amethystcards.co.uk, 1
 amethystdevelopment.co.uk, 1
 ameza.co.uk, 1
 ameza.com.mx, 1
 ameza.io, 1
 ameza.me, 1
@@ -2406,16 +2405,17 @@ atomism.com, 1
 atorcidabrasileira.com.br, 1
 atplonline.co, 1
 atracaosexshop.com.br, 1
 atraining.ru, 1
 atraverscugy.ch, 1
 atrevillot.com, 1
 atrinik.org, 1
 atte.fi, 1
+attendantdesign.com, 1
 attilagyorffy.com, 1
 attilavandervelde.nl, 1
 attitudes-bureaux.fr, 1
 attogtech.com, 1
 attorney.org.il, 1
 attwood.org, 1
 atulhost.com, 1
 atviras.lt, 0
@@ -2499,17 +2499,16 @@ author24.biz, 1
 authorsguild.in, 1
 authsrv.nl.eu.org, 1
 autimatisering.nl, 1
 autism-osaka.org, 1
 auto-anleitung.de, 1
 auto-plus.tn, 1
 autoauctionsohio.com, 1
 autoauctionsvirginia.com, 1
-autobedrijfschalkoort.nl, 1
 autoclean-plus.ch, 1
 autocmall.com, 1
 autocorner.com, 1
 autodalmacija.com, 1
 autoecoledumontblanc.com, 1
 autoentrepreneurinfo.com, 1
 autoinsurancehavasu.com, 1
 autoledky.sk, 1
@@ -2589,17 +2588,17 @@ avtoforex.ru, 1
 avtogara-isperih.com, 1
 avtosept.by, 1
 avtovokzaly.ru, 1
 avvcorda.com, 1
 awan.tech, 1
 awaremi-tai.com, 1
 awaro.net, 0
 awbouncycastlehire.com, 1
-awccanadianpharmacy.com, 0
+awccanadianpharmacy.com, 1
 awei.pub, 1
 awen.me, 1
 awesomebouncycastles.co.uk, 1
 awf0.xyz, 1
 awin.la, 1
 awk.tw, 1
 awksolutions.com, 1
 awningsaboveus.com, 1
@@ -2709,16 +2708,17 @@ backterris.com, 1
 bacon-monitoring.org, 1
 baconate.com, 1
 baconismagic.ca, 1
 bacontreeconsulting.com, 1
 bacula.jp, 1
 bad.horse, 1
 bad.pet, 1
 badai.at, 1
+badam.co, 1
 badbee.cc, 1
 badf00d.de, 1
 badges.fedoraproject.org, 1
 badges.stg.fedoraproject.org, 1
 badhusky.com, 1
 badoo.com, 1
 badpackets.net, 1
 badrequest.me, 1
@@ -2798,16 +2798,17 @@ bandar303.win, 1
 bandarifamily.com, 1
 bandeira1.com.br, 1
 bandgap.io, 1
 bandiga.it, 1
 bandito.re, 1
 bangdream.ga, 1
 bangkok-dark-night.com, 1
 bangkok.dating, 1
+bangkokcity.de, 1
 bank.simple.com, 0
 bankbranchlocator.com, 1
 bankcardoffer.com, 1
 bankcircle.co.in, 1
 bankersonline.com, 1
 bankfreeoffers.com, 1
 bankin.com, 1
 bankinter.pt, 1
@@ -2980,16 +2981,17 @@ bcmainland.ca, 1
 bcmguide.com, 1
 bcmhire.co.uk, 1
 bcmlu.org, 1
 bcnet.com.hk, 1
 bcpc-ccgpfcheminots.com, 1
 bcradio.org, 1
 bcrook.com, 0
 bcswampcabins.com, 1
+bcvps.com, 0
 bda-boulevarddesairs.com, 1
 bdd.fi, 1
 bdenzer.com, 1
 bdenzer.xyz, 1
 bdikaros-network.net, 1
 bdsmxxxpics.com, 1
 bdvg.org, 1
 be-ka-tec.de, 1
@@ -3464,16 +3466,17 @@ binam.center, 1
 binarization.com, 1
 binaryabstraction.com, 1
 binaryapparatus.com, 1
 binaryappdev.com, 1
 binaryevolved.com, 1
 binarystud.io, 1
 binding-problem.com, 1
 binfind.com, 1
+bing.com, 1
 bingcheung.com, 1
 bingcheung.org, 1
 bingo-wear.com, 1
 bingobank.org, 1
 bingofriends.com, 1
 bingostars.com, 1
 binhex.net, 1
 binimo.com, 1
@@ -3734,16 +3737,17 @@ blendr.com, 1
 blenneros.net, 1
 blessedearth.com.au, 1
 blessedguy.com, 1
 blessedguy.net, 1
 blewebprojects.com, 1
 blichmann.eu, 1
 blidz.com, 1
 blieque.co.uk, 1
+blikund.swedbank.se, 1
 blindaryproduction.tk, 1
 blingsparkleshine.com, 1
 blink-security.com, 1
 blinkenlight.co.uk, 1
 blinkenlight.com.au, 1
 blinking.link, 1
 blinkspeed.eu, 1
 blio.tk, 1
@@ -3975,17 +3979,16 @@ booox.info, 1
 booox.net, 1
 booox.org, 1
 booox.pw, 1
 booq.org, 1
 booquiz.com, 1
 boosinflatablegames.co.uk, 1
 booter.es, 1
 booter.pw, 1
-bootikexpress.fr, 1
 bootjp.me, 0
 boozinyan.com, 1
 bopera.co.uk, 1
 bopp.org, 1
 borahan.net, 1
 borchers-media.de, 1
 borg.cloud, 1
 boringsmith.com, 1
@@ -4677,16 +4680,17 @@ c-rtx.com, 1
 c-shock.org, 1
 c-webdesign.net, 1
 c-world.co.uk, 1
 c.cc, 1
 c16t.uk, 1
 c2design.it, 1
 c2o-library.net, 1
 c2o2.xyz, 1
+c3ie.com, 1
 c3vo.de, 1
 c3w.at, 1
 c4.hk, 1
 c4539.com, 1
 c4k3.net, 1
 c7dn.com, 1
 ca-key.de, 1
 ca-terminal-multiservices.fr, 1
@@ -5493,17 +5497,16 @@ chinacdn.org, 1
 chinahighlights.ru, 1
 chinaspaceflight.com, 1
 chinatrademarkoffice.com, 1
 chinawhale.com, 1
 chint.ai, 1
 chinternet.xyz, 1
 chinwag.im, 1
 chipcore.com, 1
-chiphell.com, 1
 chippy.ch, 0
 chiralsoftware.com, 1
 chireiden.net, 1
 chiro-neuchatel.ch, 1
 chiropracticwpb.com, 1
 chiropraticien-neuchatel.ch, 1
 chiropratique-neuchatel.ch, 1
 chirosphere.ch, 1
@@ -5528,16 +5531,17 @@ chocolatesandhealth.com, 1
 chocolatier-tristan.ch, 1
 chocotough.nl, 0
 chocoweb.net, 1
 chodocu.com, 1
 choe.fi, 1
 choisirmonerp.com, 1
 chokladfantasi.net, 1
 chon.io, 1
+chonghe.org, 1
 chook.as, 1
 choosemypc.net, 1
 chopperforums.com, 1
 chorkley.co.uk, 1
 chorkley.com, 1
 chorkley.me, 1
 chorkley.uk, 1
 chorleiterverband.de, 1
@@ -5669,29 +5673,29 @@ ciner.is, 1
 cinerama.com.br, 1
 cinnabon.com, 1
 cinq-elements.com, 1
 cinq-elements.fr, 1
 cinq-elements.net, 1
 cinsects.de, 1
 cinteo.com, 1
 cinto.cc, 1
+cio.gov, 1
 cioscloud.com, 1
 cip.md, 1
 cipartyhire.co.uk, 1
 cipher.co.th, 1
 cipher.land, 1
 cipherboy.com, 1
 cipherli.st, 1
 ciphersuite.info, 1
 ciphrex.com, 1
 cipri.com, 1
 cir.is, 1
 cira.email, 1
-circ-logic.com, 1
 circara.com, 1
 circlebox.rocks, 1
 circu.ml, 1
 cirfi.com, 1
 ciri.com.co, 1
 cirope.com, 1
 cirrohost.com, 1
 cirrus0.de, 1
@@ -5703,16 +5707,17 @@ ciscodude.net, 1
 cisoaid.com, 1
 ciss.ltd, 1
 cisy.me, 1
 citationgurus.com, 1
 citcuit.in, 1
 citimarinestore.com, 1
 citizen-cam.de, 1
 citizensbankal.com, 1
+citizenscience.gov, 1
 citizensleague.org, 1
 citizenspact.eu, 1
 citizing.org, 1
 citra-emu.org, 1
 citrusui.me, 1
 cittadesign.com, 0
 citton.com.br, 1
 citya.com, 1
@@ -5847,17 +5852,16 @@ clorik.com, 1
 close.com, 0
 closeli.cn, 1
 closeli.com, 0
 closelinksecurity.co.uk, 1
 closelinksecurity.com, 1
 closetemail.com, 1
 closingholding.com, 1
 cloturea.fr, 1
-cloud-crowd.com.au, 1
 cloud-surfer.net, 1
 cloud.bugatti, 1
 cloud.fail, 1
 cloud.google.com, 1
 cloud.gov, 1
 cloud2go.de, 0
 cloud9bouncycastlehire.com, 1
 cloudapps.digital, 1
@@ -6534,17 +6538,16 @@ cprnearme.com, 1
 cptoon.com, 1
 cpvmatch.eu, 1
 cpy.pt, 1
 cqchome.com, 1
 cqn.ch, 1
 cr.search.yahoo.com, 0
 crackcat.de, 1
 cracker.in.th, 1
-crackingking.com, 0
 crackle.io, 1
 crackorsquad.in, 1
 crackpfer.de, 1
 crackslut.eu, 1
 crackstation.net, 1
 cradlepointecm.com, 1
 craftandbuild.de, 1
 craftcms.com, 0
@@ -6571,17 +6574,16 @@ crawfordcountytcc.org, 1
 crawl.report, 1
 crawleybouncycastles.co.uk, 1
 crazycastles.ie, 1
 crazydomains.ae, 1
 crazydomains.co.nz, 1
 crazydomains.co.uk, 1
 crazydomains.com.au, 1
 crazydomains.in, 1
-crazyker.com, 1
 crazymeeshu.com, 1
 crazypaul.com, 1
 crbug.com, 1
 crdmendoza.net, 1
 crea-etc.net, 1
 crea-shops.ch, 1
 crea.bg, 1
 crea.me, 1
@@ -6962,16 +6964,17 @@ cypresslegacy.com, 1
 cyprus-company-service.com, 1
 cysec.biz, 1
 cysmo.de, 1
 cytech.com.tr, 1
 cytegic-update-packages.com, 1
 cyumus.com, 1
 czakey.net, 1
 czaw.org, 1
+czbix.com, 1
 czc.cz, 1
 czechamlp.com, 1
 czechvirus.cz, 1
 czerno.com, 1
 czirnich.org, 1
 czk.mk, 1
 czlx.co, 0
 d-20.fr, 1
@@ -7342,17 +7345,16 @@ dckd.nl, 1
 dclaisse.fr, 1
 dcmt.co, 1
 dcrdev.com, 1
 dd.art.pl, 1
 ddel.de, 1
 dden.ca, 0
 dden.website, 1
 dden.xyz, 1
-ddepot.us, 1
 ddfreedish.site, 0
 ddhosted.com, 1
 ddmeportal.com, 1
 ddns-anbieter.de, 1
 ddocu.me, 1
 ddos-mitigation.co.uk, 1
 ddos-mitigation.info, 1
 ddracepro.net, 1
@@ -7523,16 +7525,17 @@ demandware.com, 1
 demarche-expresse.com, 1
 demarle.ch, 1
 dementiapraecox.de, 1
 demeyere-usedcars.be, 1
 demfloro.ru, 1
 demijn.nl, 1
 demilletech.net, 1
 demo.sb, 1
+demo.swedbank.se, 1
 demo9.ovh, 1
 democracy.io, 1
 democracychronicles.com, 1
 democracyineurope.eu, 1
 democraticdifference.com, 1
 democraziaineuropa.eu, 1
 demoniak.ch, 1
 demonwav.com, 1
@@ -7713,17 +7716,16 @@ devh.de, 1
 devh.net, 1
 deviant.email, 1
 devillers-occasions.be, 1
 devilshakerz.com, 1
 deviltracks.net, 1
 deviltraxxx.de, 1
 devinfo.net, 0
 devisnow.fr, 1
-devistravaux.org, 1
 devjack.de, 1
 devkid.net, 1
 devkit.cc, 1
 devklog.net, 1
 devlamvzw.org, 1
 devlatron.net, 1
 devlogr.com, 1
 devlux.ch, 1
@@ -7733,17 +7735,16 @@ devops-survey.com, 1
 devops.moe, 1
 devpgsv.com, 1
 devpsy.info, 1
 devstaff.gr, 1
 devyn.ca, 1
 devzero.io, 1
 dewalch.net, 1
 dewapress.com, 1
-dewebwerf.nl, 1
 dexalo.de, 1
 dezeregio.nl, 1
 dezet-ev.de, 1
 dezintranet.com, 1
 dezmembrariromania.ro, 1
 dezshop24.de, 1
 df1paw.de, 1
 dfctaiwan.org, 1
@@ -7810,17 +7811,16 @@ dicionario.org, 1
 dicionariodegirias.com.br, 1
 dicionariodelatim.com.br, 1
 dicionariodenomesproprios.com.br, 1
 dicionariodesimbolos.com.br, 1
 dicionarioetimologico.com.br, 1
 dick.red, 1
 dickieslife.com, 1
 dickpics.ru, 1
-dicoding.com, 1
 didacte.com, 1
 didche.net, 1
 diddens.de, 1
 didierlaumen.be, 1
 didikhari.web.id, 1
 die-besten-weisheiten.de, 1
 die-blahuts.de, 1
 die-borts.ch, 1
@@ -7854,17 +7854,16 @@ dietrich.cx, 1
 dieumfrage.com, 1
 diff2html.xyz, 1
 different.cz, 0
 differenta.ro, 0
 diffnow.com, 1
 difoosion.com, 1
 digcit.org, 1
 digdata.de, 1
-diggable.co, 1
 dighans.com, 1
 digiarc.net, 1
 digibild.ch, 1
 digibull.email, 1
 digibull.link, 1
 digicert-support.com, 1
 digicert.nl, 1
 digidroom.be, 1
@@ -8541,17 +8540,16 @@ dtg-fonds.net, 1
 dtk-vom-chausseehaus.de, 1
 dtnx.eu, 1
 dtnx.net, 1
 dtnx.org, 1
 dtp-mstdn.jp, 1
 dtuaarsfest.dk, 1
 dtx.sk, 1
 dualascent.com, 1
-dualias.xyz, 0
 duan.li, 1
 dubaieveningsafari.com, 1
 dublin-traceroute.net, 1
 dubrovnik-dental.clinic, 1
 dubrovskiy.net, 1
 dubrovskiy.pro, 1
 ducalendars.com, 1
 duch.cloud, 1
@@ -8637,17 +8635,16 @@ dwhd.org, 1
 dwnld.me, 1
 dworzak.ch, 1
 dwscdv3.com, 1
 dwtm.ch, 1
 dwworld.co.uk, 1
 dxa.io, 0
 dxgl.info, 1
 dxm.no-ip.biz, 1
-dycoa.com, 1
 dyeager.org, 1
 dyktig.as, 1
 dyktig.no, 1
 dylanboudro.com, 1
 dylankatz.com, 1
 dylanknoll.ca, 1
 dyn-nserve.net, 1
 dyn.im, 1
@@ -9012,17 +9009,16 @@ eirastudios.co.uk, 0
 eisaev.ru, 1
 eit-web.de, 0
 eitler.cx, 1
 eiyoushi-shigoto.com, 1
 ejdv-anmeldung.de, 1
 ejeff.org, 1
 ejgconsultancy.co.uk, 1
 ejuicelab.co.uk, 1
-ejusu.com, 1
 ekaigotenshoku.com, 1
 ekd.de, 1
 ekedc.com, 1
 ekedp.com, 1
 eklepka.com, 1
 ekobudisantoso.net, 1
 ekodevices.com, 1
 ekokontakt.cz, 1
@@ -9334,16 +9330,17 @@ enijew.com, 1
 enixgaming.com, 1
 enjoyphoneblog.it, 1
 enjoystudio.ro, 1
 enlatte.com, 1
 enlazaresbueno.cl, 1
 enlighten10x.ga, 1
 enlightened.si, 1
 enlightenedhr.com, 1
+enlightenment.org, 1
 enloestatebank.com, 1
 ennea-mediation.fr, 1
 enness.co.uk, 1
 ennori.jp, 1
 enoou.com, 1
 enorekcah.com, 1
 enot32.ru, 1
 enotecastore.it, 1
@@ -9376,16 +9373,17 @@ entropia.de, 0
 entryboss.cc, 1
 entrypoint.sh, 1
 enuchi.jp, 1
 envant.co.uk, 1
 envelope.co.nz, 1
 enveloppenopmaat.nl, 1
 envescent.com, 1
 enviam.de, 1
+enviaya.com.mx, 1
 environment.ai, 1
 environmentkirklees.org, 1
 enviroprobasements.com, 1
 envoyglobal.com, 1
 envygeeks.io, 1
 eocservices.co.uk, 1
 eoitek.com, 1
 eolme.ml, 1
@@ -10208,16 +10206,17 @@ fbijobs.gov, 1
 fbsbx.com, 1
 fburl.com, 1
 fc.media, 1
 fca-tools.com, 1
 fcapartsdb.com, 1
 fcburk.de, 1
 fcforum.net, 1
 fcitasc.com, 1
+fckd.net, 1
 fcprovadia.com, 1
 fdevs.ch, 1
 fdlibre.eu, 1
 fdsys.gov, 0
 feac.us, 1
 feaden.me, 1
 fearghus.org, 1
 fearsomegaming.com, 1
@@ -10413,17 +10412,16 @@ fillo.sk, 1
 film-tutorial.com, 1
 film.photography, 1
 film.photos, 1
 filmatiporno.xxx, 1
 filme-online.eu.com, 1
 filme-onlines.com, 1
 filmreviewonline.com, 1
 filmserver.de, 1
-filoitoupediou.gr, 1
 filoo.de, 1
 filterflasche-kaufen.de, 1
 filterlists.com, 1
 finalx.nl, 0
 financejobs.ch, 1
 financier.io, 1
 financniexperti.sk, 1
 finch.am, 1
@@ -10679,17 +10677,16 @@ flyserver.co.il, 1
 flyspace.ga, 1
 flyspace.ml, 1
 flyss.net, 1
 flyssh.net, 1
 flyt.online, 1
 flytoadventures.com, 1
 fm-cdn.de, 1
 fm.ie, 1
-fm992.com, 1
 fmapplication.com, 1
 fmarchal.fr, 1
 fmdance.cl, 1
 fmi.gov, 1
 fminsight.net, 1
 fmodoux.biz, 1
 fmovies.fyi, 1
 fmovies.life, 1
@@ -10803,16 +10800,17 @@ forrestheller.com, 1
 forro.info, 1
 forsakringsarkivet.se, 1
 forschbach-janssen.de, 1
 forsec.nl, 1
 forstbetrieb-hennecke.de, 1
 forstprodukte.de, 1
 forsyththeatre.com, 1
 forteggz.nl, 1
+fortesanshop.it, 1
 fortnine.ca, 1
 fortran.io, 1
 fortress.no, 1
 fortress.sk, 1
 fortricks.in, 1
 fortuna-loessnitz.de, 1
 fortuna-s.com, 1
 fortworth.ch, 1
@@ -10869,16 +10867,17 @@ foxes.no, 1
 foxhound.com.br, 1
 foxing.club, 1
 foxmay.co.uk, 1
 foxontheinter.net, 1
 foxphotography.ch, 1
 foxquill.com, 1
 foxterrier.com.br, 1
 foxyslut.com, 1
+fpc.gov, 1
 fpersona.com, 1
 fpki.sh, 1
 fptravelling.com, 1
 fpy.cz, 1
 fr.search.yahoo.com, 0
 fr0zenbits.io, 1
 fr33tux.org, 1
 frack.nl, 1
@@ -11233,17 +11232,16 @@ fuseos.net, 1
 fushee.com, 1
 fuskator.com, 1
 fussball-xxl.de, 1
 fussell.io, 1
 futbolvivo.tv, 1
 futos.de, 1
 futrou.com, 1
 futurefire.de, 1
-futurefundapp.com, 1
 futurenda.com, 1
 futureoceans.org, 1
 futuresonline.com, 1
 futurezone.at, 1
 futuristarchitecture.com, 1
 futurope.com, 1
 fuwafuwa.moe, 1
 fuxwerk.de, 1
@@ -11399,17 +11397,16 @@ gancedo.com.es, 1
 gandalfservice.com, 1
 gandalfthefeline.com, 1
 gandgliquors.com, 1
 ganhonet.com.br, 1
 ganztagplus.de, 1
 gapdirect.com, 1
 gapfa.org, 1
 gaptek.id, 0
-gar-nich.net, 0
 garage-door.pro, 1
 garage-leone.com, 1
 garage-meynard.com, 1
 garageenginuity.com, 1
 garagegoossens.be, 1
 garagemhermetica.org, 1
 garagevanhulle-used.be, 1
 garanteasy.com, 1
@@ -11650,16 +11647,17 @@ gernert-server.de, 1
 gero.io, 1
 gerritcodereview.com, 1
 gers-authentique.com, 1
 gerum.dynv6.net, 1
 gerwinvanderkamp.nl, 1
 ges-bo.de, 1
 geschenkly.de, 1
 geschmacksache.online, 1
+geschmackspiloten.de, 1
 geschwinder.net, 1
 gestormensajeria.com, 1
 get-asterisk.ru, 1
 get-erp.ru, 1
 get-it-live.com, 1
 get-it-live.de, 1
 get-link.info, 1
 get-on.bid, 1
@@ -12013,16 +12011,17 @@ goldpreisfinder.at, 1
 goldsecurity.com, 1
 goldsky.com.au, 1
 golf18network.com, 1
 golfburn.com, 1
 golfhausmallorca.com, 1
 golfscape.com, 1
 golik.net.pl, 1
 golser.info, 1
+gomiblog.com, 1
 gommista.roma.it, 1
 gondawa.com, 1
 gongjianwei.com, 1
 gongjuhao.com, 1
 gonkar.com, 1
 gonx.dk, 1
 goo.gl, 1
 good-tips.pro, 1
@@ -12387,16 +12386,17 @@ gulchuk.com, 1
 gulenbase.no, 1
 gulfstream.ru, 1
 gulleyperformancecenter.com, 1
 gulshankumar.net, 1
 gume4you.com, 1
 gumi.ca, 1
 gummibande.noip.me, 1
 gunhunter.com, 1
+guniram.com, 1
 gunwatch.co.uk, 1
 guochang.xyz, 1
 guoke.com, 1
 guozeyu.com, 1
 guphi.net, 0
 gurkan.in, 1
 gurmel.ru, 1
 gurochan.ch, 1
@@ -13249,17 +13249,16 @@ holoxplor.space, 1
 holvonix.com, 1
 holy-hi.com, 1
 holydragoon.jp, 1
 holygrail.games, 1
 holyhiphopdatabase.com, 1
 holymolycasinos.com, 1
 holytransaction.com, 1
 holywhite.com, 1
-holz.nu, 1
 holzheizer-forum.de, 1
 holzheizerforum.de, 1
 holzspielzeug-shop.ch, 1
 holzvergaser-forum.de, 1
 homatism.com, 1
 home-cloud.online, 1
 home-coaching.be, 1
 home-v.ind.in, 1
@@ -13650,17 +13649,16 @@ hyphen.co.za, 1
 hyphenpda.co.za, 1
 hypotecnicentrum.cz, 1
 hypothecairelening.net, 1
 hypotheekbond.nl, 1
 hypotheques24.ch, 1
 hypothes.is, 1
 hypothyroidmom.com, 1
 hyvinvointineuvoja.fi, 1
-hzh.pub, 1
 i--b.com, 1
 i-geld.de, 1
 i-hakul.net, 1
 i-meto.com, 1
 i-proswiss.com, 1
 i-red.info, 1
 i-stats.net, 1
 i-stuff.site, 1
@@ -13708,16 +13706,17 @@ ibron.co, 0
 ibsafrica.co.za, 1
 ibsglobal.co.za, 1
 ibwc.gov, 1
 ic-lighting.com.au, 1
 ic3.gov, 1
 icafecash.com, 1
 icanhasht.ml, 1
 icarlos.net, 1
+icasnetwork.com, 1
 icbemp.gov, 1
 iccpublisher.com, 1
 icebat.dyndns.org, 1
 iceberg.academy, 1
 icebound.cc, 1
 icebound.win, 1
 icecars.net, 1
 iceloch.com, 1
@@ -13847,17 +13846,16 @@ ifxor.com, 1
 ifyou.live, 1
 iga-semi.jp, 1
 igamingforums.com, 1
 igd.chat, 1
 igglabs.com, 1
 iggprivate.com, 1
 iggsoft.com, 1
 iggsoftware.com, 1
-igi.codes, 1
 igiftcards.de, 1
 igimusic.com, 1
 igk.nz, 1
 igm-be.ch, 1
 igmus.org, 1
 ignace72.eu, 1
 ignat.by, 1
 ignatovich.by, 1
@@ -14180,16 +14178,17 @@ inglesnarede.com.br, 1
 ingo-schlueter.de, 1
 ingoschlueter.de, 1
 ingresscode.cn, 1
 inhaltsangabe.de, 1
 inheritestate.com, 1
 inhive.group, 1
 inhouseents.co.uk, 1
 iniiter.com, 1
+inima.org, 1
 inios.fr, 0
 inishbofin.ie, 1
 initq.net, 1
 initramfs.io, 1
 initrd.net, 1
 inixal.com, 1
 injust.eu.org, 1
 injust.me, 1
@@ -14236,16 +14235,17 @@ inpas.co.uk, 1
 ins1gn1a.com, 1
 insane.zone, 1
 insblauehinein.nl, 1
 inschrijfformulier.com, 1
 inscript.pl, 1
 insertcoins.net, 1
 insgesamt.net, 1
 inshapenutrition.com.br, 1
+insho.fashion, 0
 insideaudit.com, 1
 insidethefirewall.tk, 1
 insightera.co.th, 1
 insighti.com, 1
 insighti.eu, 1
 insighti.org, 1
 insighti.sk, 1
 insinuator.net, 1
@@ -14271,17 +14271,16 @@ instava.cz, 1
 instawi.com, 1
 instela.com, 1
 instelikes.com.br, 1
 instics.com, 1
 instinctive.io, 1
 instinctiveads.com, 1
 institut-confucius-montpellier.org, 1
 institutmaupertuis.hopto.org, 1
-institutolancaster.com, 1
 institutulcultural.ro, 1
 instrumart.ru, 0
 insult.es, 1
 insurance321.com, 0
 int-ext-design.fr, 1
 int-ma.in, 1
 intafe.co.jp, 1
 intarweb.ca, 1
@@ -15560,17 +15559,16 @@ jwatt.org, 1
 jwe.nl, 1
 jwilsson.com, 1
 jwjwjw.com, 1
 jwnotifier.org, 1
 jwolt-lx.com, 1
 jwschuepfheim.ch, 1
 jxir.de, 1
 jyggen.com, 1
-jym.fit, 1
 jyoti-fairworks.org, 1
 jzbk.org, 1
 k-homes.net, 1
 k-netz.de, 1
 k-pan.com, 1
 k-pture.com, 1
 k-scr.me, 1
 k-tube.com, 1
@@ -15640,16 +15638,17 @@ kall.is, 1
 kallies-net.de, 1
 kalmar.com, 1
 kaloix.de, 1
 kalsbouncies.com, 1
 kaltenbrunner.it, 1
 kalterersee.ch, 1
 kamalame.co, 1
 kamikaichimaru.com, 1
+kamikatse.net, 1
 kamitech.ch, 1
 kamixa.se, 1
 kana.me, 1
 kanaete-uranai.com, 1
 kanagawachuo-hospital.jp, 1
 kanal-schaefer.de, 1
 kanal-tv-haensch.de, 1
 kanar.nl, 1
@@ -15887,17 +15886,16 @@ kenoschwalb.com, 1
 kenrogers.co, 0
 kens.pics, 1
 kensbouncycastles.co.uk, 1
 kentec.net, 1
 kenterlis.gr, 1
 kenyons.info, 1
 keops-spine.fr, 1
 keops-spine.us, 1
-kepkonyvtar.hu, 1
 kepler-seminar.de, 1
 kerebro.com, 1
 kerem.xyz, 1
 kerforhome.com, 1
 kerijacoby.com, 1
 kermadec.com, 1
 kernel-error.de, 1
 kernelpanics.nl, 1
@@ -16002,16 +16000,17 @@ kienlen.org, 1
 kieranweightman.me, 1
 kiesuwkerstkaart.nl, 1
 kievradio.com, 1
 kiffmarks.com, 1
 kigmbh.com, 1
 kikbb.com, 1
 kiki-voice.jp, 1
 kiku.pw, 1
+kikuzuki.org, 1
 kilerd.me, 1
 kilianvalkhof.com, 1
 kill-paff.com, 1
 killaraapartments.com.au, 1
 killerit.in, 1
 killerrobots.com, 1
 killymoonbouncycastles.com, 1
 kilobyte22.de, 1
@@ -16147,16 +16146,17 @@ kl-diaetist.dk, 1
 klaim.us, 1
 klamathrestoration.gov, 1
 klanggut.at, 1
 klares-licht.de, 1
 klarika.com, 1
 klarmobil-empfehlen.de, 1
 klasfauseweh.de, 1
 klatschreime.de, 1
+klausbrinch.dk, 1
 klausimas.lt, 1
 klaver.it, 1
 klaw.xyz, 1
 kle.cz, 1
 kleaning.by, 1
 kleberstoff.xyz, 1
 klebetape.de, 1
 kledingrekken.nl, 1
@@ -16695,30 +16695,31 @@ lamboo.be, 1
 lamiaposta.email, 0
 laminine.info, 1
 lampegiganten.dk, 1
 lampegiganten.no, 1
 lampen24.be, 1
 lampenwelt.at, 1
 lampenwelt.ch, 1
 lan2k.org, 1
+lana.swedbank.se, 1
 lanbroa.eu, 1
 lanbyte.se, 1
 lancejames.com, 1
 lancelafontaine.com, 1
 lanceyip.com, 1
 lancork.net, 1
 lancyvbc.ch, 1
 land.nrw, 0
 landbetweenthelakes.us, 1
 landell.ml, 1
 landflair-magazin.de, 1
 landhaus-christmann.de, 1
+landinfo.no, 1
 landofelves.net, 1
-landyparts.nl, 1
 lanetix.com, 1
 lang-php.com, 1
 langatang.com, 1
 langbein.org, 1
 langguth.io, 1
 langkahteduh.com, 1
 langly.fr, 0
 languageterminal.com, 1
@@ -16828,17 +16829,16 @@ laufseminare-laufreisen.com, 1
 lauftrainer-ausbildung.com, 1
 lauftreff-himmelgeist.de, 1
 laughinggrapepublishing.com, 1
 laukstein.com, 1
 launchpad-app2.com, 1
 lauraandwill.wedding, 1
 laurakashiwase.com, 1
 laurasplacefamilysupport.org.au, 1
-laurelblack.com, 1
 laurelspaandlash.com, 1
 laurenlobue.com, 1
 laurent-e-levy.com, 1
 lauriuc.sk, 1
 lausannedentiste.ch, 1
 lausannelovers.ch, 1
 laussat.de, 1
 lauzon-hitter.com, 1
@@ -16967,17 +16967,16 @@ leeclemens.net, 1
 leedev.org, 1
 leefindlow.com, 1
 leelou.wedding, 1
 leere.me, 1
 leerkotte.eu, 1
 leerliga.de, 1
 leertipp.de, 1
 leesilvey.com, 1
-leet2.com, 1
 leetcode.com, 1
 leetcode.net, 1
 leetgamers.asia, 1
 leetsaber.com, 1
 leevealdc.com, 1
 lefebvristes.com, 1
 lefebvristes.fr, 1
 leflibustier.ru, 1
@@ -17453,16 +17452,17 @@ liuboznaiko.eu, 1
 liud.im, 1
 liudon.org, 1
 liukang.tech, 1
 liul.in, 1
 liushuyu.tk, 1
 liv3ly.com, 1
 livebetterwith.com, 1
 livecards.co.uk, 1
+livecards.es, 1
 livecards.eu, 1
 livecards.it, 1
 livedesign.at, 1
 livedesign24.de, 1
 liveflightapp.com, 1
 liveforspeed.se, 1
 livejasmin.dk, 1
 livekaarten.be, 1
@@ -17473,17 +17473,16 @@ livekort.com, 1
 livekort.dk, 1
 livekort.no, 1
 livekort.se, 1
 livekortti.com, 1
 livekortti.fi, 1
 livelexi.com, 1
 livepaperhelp.com, 1
 livepath.ch, 1
-liveperformersmeeting.net, 1
 liveregistratie.nl, 1
 livesearch-fukuoka.com, 1
 livesure.com, 1
 livi.co, 1
 living-space.co.nz, 1
 living24.de, 1
 livingforreal.com, 1
 livingworduk.org, 1
@@ -17638,17 +17637,16 @@ lolpatrol.de, 1
 lolpatrol.wtf, 1
 loma.ml, 1
 lommyfleet.com, 1
 lon-so.com, 1
 lona.io, 1
 lonal.com, 1
 lonasdigital.com, 1
 lonbali.com, 1
-london-transfers.com, 1
 london.dating, 1
 londongynaecologist.co, 1
 londonkan.jp, 1
 londonkeyholdingcompany.co.uk, 1
 londonseedcentre.co.uk, 1
 lone-gunman.be, 1
 lonelytweets.com, 1
 lonesomecosmonaut.com, 1
@@ -17759,19 +17757,17 @@ lowtherpavilion.co.uk, 1
 loyaleco.it, 1
 loyaltech.ch, 1
 lp-support.nl, 1
 lpacademy.com.br, 1
 lpbk-bethel.de, 0
 lpm-uk.com, 1
 lpt-nebreziny.eu, 1
 lra-cloud.de, 1
-lrssystems.com, 1
 ls-alarm.de, 1
-ls-reallife.de, 1
 ls-rp.es, 1
 lsc-dillingen.de, 1
 lsc.gov, 1
 lsquo.com, 1
 lstma.com, 1
 lsvih.com, 1
 lsys.ac, 1
 lszj.com, 1
@@ -18124,17 +18120,17 @@ maitrise-orthopedique.com, 1
 majahoidja.ee, 1
 majaweb.cz, 1
 majemedia.com, 1
 majid.info, 1
 majkyto.cz, 1
 makaleci.com, 1
 makeaboldmove.com, 1
 makedin.net, 1
-makeit-so.de, 1
+makeit-so.de, 0
 makem-bounce.co.uk, 1
 makemejob.com, 1
 makenaiyo-fx.com, 1
 makeuplove.nl, 1
 makeyourlaws.org, 1
 makinen.ru, 1
 makino.games, 1
 makkusu.photo, 1
@@ -18221,17 +18217,16 @@ manfredimatteo.com, 1
 mangaristica.com, 1
 manhattanchoralensemble.org, 1
 manhole.club, 1
 manicbouncycastles.co.uk, 1
 manicode.com, 1
 maniorpedi.com, 1
 maniosglass.gr, 1
 manipil.ch, 1
-manipulatedtme.com, 1
 manja-und-martin.de, 1
 manjaro.ru, 1
 mankans.com, 1
 manneguiden.no, 1
 mannford.com, 1
 mannheimbloggt.tk, 1
 manns-solutions.co.uk, 1
 mannschafft.ch, 1
@@ -18242,16 +18237,17 @@ manowarus.com, 1
 mansdell.net, 1
 mantor.org, 0
 manualscollection.com, 1
 manuel-herrmann.de, 1
 manuel-schefczyk.de, 1
 manueldopheide.com, 1
 manueli.de, 1
 manuelrueger.de, 1
+manufacturing.gov, 1
 manuscript.com, 1
 manutd.org.np, 1
 manuth.life, 1
 manutrol.com.br, 1
 manwithavan.co.uk, 1
 manyetikboya.com, 1
 manyiu.com, 1
 manyue.org, 1
@@ -18309,17 +18305,16 @@ margo-co.ch, 1
 margotlondon.co.uk, 1
 mariacristinadoces.com.br, 1
 mariage-photo.ch, 1
 marianatherapy.com, 1
 marianhoenscheid.de, 1
 mariannenan.nl, 1
 marianwehlus.de, 1
 mariaolesen.dk, 1
-marie-elisabeth.dk, 0
 marie.club, 1
 mariehane.com, 1
 mariemiramont.fr, 1
 marikafranke.de, 1
 marilsnijders.nl, 1
 marilynmartin.com.au, 1
 marilynstreats.com, 1
 marin-business-center.ch, 1
@@ -18747,16 +18742,17 @@ mediawin.pl, 1
 medic-world.com, 1
 medicalcountermeasures.gov, 1
 medicinesfast.com, 0
 medicinia.com.br, 1
 medicinskavranje.edu.rs, 1
 medicocompetente.it, 1
 medicoresponde.com.br, 1
 medifab.online, 1
+medifi.com, 1
 medireport.fr, 1
 medium.com, 1
 mediumraw.org, 1
 mediweed.tk, 1
 medlineplus.gov, 1
 medo64.com, 1
 medovea.ru, 1
 medpics.com, 1
@@ -19028,17 +19024,17 @@ miagexport.com, 1
 miamicityballet.org, 1
 miaoubox.com, 1
 miaowo.org, 1
 miasarafina.de, 1
 miboulot.com, 1
 micado-software.com, 1
 micaiahparker.com, 1
 micalodeal.ch, 1
-micasamgmt.com, 1
+micasamgmt.com, 0
 micbase.com, 1
 michael-rigart.be, 1
 michael-schefczyk.de, 1
 michael-schilling.de, 1
 michael-steinhauer.eu, 1
 michaelasawyer.com, 1
 michaelcullen.name, 1
 michaeleichorn.com, 1
@@ -19150,17 +19146,16 @@ mikonmaa.fi, 1
 mikori.sk, 1
 mikro-inwestycje.co.uk, 1
 mikrom.cz, 0
 mikropixel.de, 1
 mikroskeem.eu, 1
 mil-spec.ch, 1
 mil0.com, 1
 milahendri.com, 1
-milanpala.cz, 1
 milcahsmusings.com, 1
 mileme.com, 1
 milenaria.es, 1
 milesapart.dating, 1
 milhoazul.com.br, 1
 milionshop.sk, 1
 militaryconsumer.gov, 1
 milkingit.co.uk, 1
@@ -19545,17 +19540,16 @@ monloyer.quebec, 1
 monnyonle.hu, 1
 monobank.no, 1
 monochrometoys.com, 1
 monodukuri.com, 1
 monokoo.com, 1
 monolithapps.com, 1
 monolithindustries.com, 1
 monolithinteractive.com, 1
-monoseis-monotica.gr, 1
 monothesis.com, 1
 monotsuku.com, 1
 monpc-pro.fr, 1
 monpermismoto.com, 1
 monpermisvoiture.com, 1
 monpetitforfait.com, 1
 monpetitmobile.com, 1
 monsieursavon.ch, 1
@@ -19586,17 +19580,16 @@ moondrop.org, 1
 moonkin.eu, 1
 moonmelo.com, 1
 moonraptor.co.uk, 1
 moonraptor.com, 1
 moonrhythm.info, 1
 moonrhythm.io, 1
 moonshyne.org, 1
 moonvpn.org, 1
-moonysbouncycastles.co.uk, 1
 moorewelliver.com, 1
 moorfunevents.co.uk, 1
 moorparkelectrical.com, 1
 mooselook.de, 1
 moovablestorage.com, 1
 moparcraft.com, 1
 moparcraft.net, 1
 moparcraft.org, 1
@@ -19782,17 +19775,16 @@ msmails.de, 1
 msnr.net, 1
 msp66.de, 1
 mspnocsupport.com, 1
 msquadrat.de, 1
 mssys.de, 1
 mstdn.blue, 1
 mstdn.club, 1
 mstdn.fr, 1
-mstdn.io, 1
 mstdn.nl, 1
 mstdn.onl, 1
 mstiles92.com, 1
 msuess.me, 1
 msuna.net, 1
 msv-limpezas.pt, 1
 msx.org, 1
 msz-fotografie.de, 1
@@ -20273,16 +20265,17 @@ naminam.de, 1
 namrs.net, 1
 namu.moe, 1
 namu.wiki, 1
 nanami.moe, 1
 nanarose.ch, 1
 nanch.com, 1
 nanderson.me, 1
 nanfangstone.com, 1
+nani.io, 1
 nankiseamansclub.com, 1
 nanogi.ga, 1
 nanotechnologist.com, 1
 nanovolt.nl, 1
 nanpuyue.com, 1
 nanubo.com, 1
 nanubo.de, 1
 naoar.com, 1
@@ -20472,17 +20465,16 @@ nebul.at, 1
 nebulae.co, 1
 nebuluxcapital.com, 1
 necesitodinero.org, 1
 necessaryandproportionate.net, 1
 necessaryandproportionate.org, 1
 necormansir.com, 1
 nectarleaf.com, 1
 nedcdata.org, 1
-nedcf.org.uk, 1
 nedim-accueil.fr, 1
 nediyor.com, 1
 nedlinin.com, 1
 nedraconsult.ru, 1
 neecist.org, 1
 needle.net.nz, 1
 needle.nz, 1
 needstyle.ru, 1
@@ -21398,23 +21390,25 @@ oh14.de, 1
 ohadsoft.com, 1
 ohai.su, 1
 ohayosoro.me, 1
 ohchouette.com, 1
 ohd.dk, 1
 oheila.com, 1
 ohhdeertrade.com, 1
 ohiohealthfortune100.com, 1
+ohling.org, 1
 ohlmeier.com, 0
 ohlmeier.net, 0
 ohlmeier.org, 0
 ohma.ga, 1
 ohnemusik.com, 1
 ohreally.de, 1
 ohsohairy.co.uk, 1
+ohyooo.com, 1
 oilpaintingsonly.com, 1
 oinky.ddns.net, 1
 ojaioliveoil.com, 1
 ojdip.net, 1
 ojomovies.com, 1
 ojp.gov, 1
 okad-center.de, 1
 okad.de, 1
@@ -21561,16 +21555,17 @@ onixcco.com.br, 1
 onlfait.ch, 1
 online-bouwmaterialen.nl, 1
 online-consulting-corp.com, 1
 online-consulting-corp.fr, 1
 online-eikaiwa-guide.com, 1
 online-results.dk, 1
 online-scene.com, 1
 online.marketing, 1
+online.swedbank.se, 1
 online24.pt, 1
 onlinebiller.com, 1
 onlinebizdirect.com, 0
 onlinecasino.vlaanderen, 1
 onlinecasinobluebook.com, 1
 onlinecensorship.org, 1
 onlinecollegeessay.com, 1
 onlinefashion.it, 1
@@ -23191,16 +23186,17 @@ potlytics.com, 1
 potolok.am, 1
 potomania.cz, 1
 potpourrifestival.de, 1
 potrillionaires.com, 1
 potterscraftcider.com, 1
 pottersheartministry.org, 1
 pottshome.co.uk, 1
 potworowski.de, 1
+pouet.it, 1
 pouets.ovh, 1
 poupatempo.org, 1
 pourlesenfants.info, 1
 pourout.org, 1
 povareschka.ru, 1
 povesham.tk, 1
 powdersnow.top, 1
 power-coonies.de, 1
@@ -23785,16 +23781,17 @@ qetic.co.jp, 1
 qewc.com, 1
 qforum.org, 1
 qgustavor.tk, 1
 qhse-professionals.nl, 1
 qianalysis.com, 1
 qifu.me, 1
 qifu.org.cn, 1
 qikan.net, 1
+qimiao.io, 1
 qingpat.com, 1
 qingpei.me, 0
 qionouu.cn, 1
 qitarabutrans.com, 1
 qits.de, 0
 qivonline.pt, 1
 qiwi.be, 1
 qixi.biz, 1
@@ -24220,17 +24217,16 @@ recoveringspirit.com, 1
 recreation.gov, 1
 recreoviral.com, 1
 recruitmade.jp, 1
 recruitsecuritytraining.co.uk, 1
 recruitsecuritytraining.com, 1
 rectoraudiparts.com, 1
 recuerdafilms.com, 1
 recurly.com, 1
-recyclingpromotions.us, 1
 red-t-shirt.ru, 1
 redable.hosting, 1
 redb.cz, 1
 redballoonsecurity.com, 1
 redburn.com, 1
 redcomet.org, 1
 redcone.net, 1
 redcorus.com, 1
@@ -25474,17 +25470,16 @@ sayprepay.com, 1
 sayura.net, 1
 saz.sh, 1
 sazuz.cz, 1
 sb-group.dk, 1
 sb-tuning.ru, 1
 sb.im, 1
 sb.sb, 1
 sb0.io, 1
-sbanken.no, 1
 sber.us, 1
 sberbank.ch, 1
 sbf888.com, 1
 sbiewald.de, 1
 sbirecruitment.co.in, 1
 sbit.com.br, 1
 sblum.de, 1
 sbm.cloud, 1
@@ -26259,16 +26254,17 @@ shipard.com, 1
 shipard.cz, 1
 shipcloud.io, 1
 shirakaba-cc.com, 1
 shiroki-k.net, 1
 shirt2go.shop, 1
 shirtsofholland.com, 1
 shiseki.top, 1
 shishamania.de, 1
+shishkin.link, 1
 shishkin.us, 1
 shishlik.net, 1
 shitagi-shop.com, 1
 shitbeast.institute, 1
 shitmybradsays.com, 1
 shitposts.se, 1
 shitproductions.org, 1
 shitsta.in, 1
@@ -26552,17 +26548,16 @@ simplyfixit.co.uk, 1
 simplyhelen.de, 1
 simplylovejesus.com, 1
 simplymozzo.se, 1
 simplystudio.com, 1
 simpte.com, 1
 simpul.nl, 1
 sims4hub.ga, 1
 simsnieuws.nl, 1
-simtin-net.de, 1
 simukti.net, 1
 simumiehet.com, 1
 simus.fr, 1
 sin-nombre-alleria.de, 1
 sin.swiss, 1
 sinaryuda.web.id, 1
 sinatrafamily.com, 1
 sinefili.com, 1
@@ -26588,17 +26583,16 @@ sinonimos.com.br, 1
 sinonimosonline.com, 1
 sinonimosonline.com.br, 1
 sinoscandinavia.se, 1
 sinquin.eu, 1
 sint-joris.nl, 1
 sinterama.biz, 1
 sintesysglobal.com, 1
 sinuelovirtual.com.br, 1
-sinusbot.online, 1
 sion.moe, 1
 siqi.wang, 1
 siraweb.org, 1
 sirbouncealotcastles.co.uk, 1
 sirbouncelot.co.uk, 1
 sirburton.com, 1
 sirena.co.jp, 1
 sirenslove.com, 1
@@ -26770,16 +26764,17 @@ slingo.com, 1
 slingooriginals.com, 1
 slingoweb.com, 1
 slink.hr, 1
 slip-gaming.tk, 1
 slneighbors.org, 1
 slo-net.net, 1
 slo-tech.com, 1
 sloancom.com, 1
+slopeedge.com, 1
 slotboss.co.uk, 1
 slotcar.com, 0
 slotfara.com, 1
 slotfara.net, 1
 sloths.org, 1
 slotlist.info, 1
 slovenskycestovatel.sk, 1
 slovoice.org, 1
@@ -27036,17 +27031,16 @@ soia.ca, 1
 soinvett.com, 1
 sojingle.net, 1
 soju.fi, 1
 sokche.com, 1
 sokietech.com, 1
 sokkenhoek.nl, 1
 sokolkarvina.cz, 1
 sol-computers.es, 1
-sol.works, 1
 sol24.net, 1
 solacyre.ch, 1
 solanum-games.com, 1
 solar-aydinlatma.com, 1
 solar-ec.com, 1
 solariiknight.org, 1
 solariilacheie.ro, 1
 solarplan-berlin.de, 1
@@ -27160,17 +27154,17 @@ soulmate.dating, 1
 soulogic.com, 0
 soumikghosh.com, 1
 soumya92.me, 1
 soundabout.nl, 1
 soundedj.com.br, 1
 soundeo.com, 1
 soundeo.net, 1
 soundgasm.net, 1
-soundhunter.xyz, 1
+soundhunter.xyz, 0
 soundsecurity.io, 1
 sour.is, 1
 souravsaha.com, 1
 sourcebox.be, 1
 sourcecode.love, 1
 sourcely.net, 1
 sourceway.de, 1
 souris.ch, 1
@@ -27732,16 +27726,17 @@ stonedworms.de, 1
 stonefusion.org.uk, 1
 stonehammerhead.org, 1
 stonemain.eu, 1
 stonemanbrasil.com.br, 1
 stonewuu.com, 1
 stony.com, 1
 stonystratford.org, 1
 stopakwardhandshakes.org, 1
+stopbreakupnow.org, 1
 stopbullying.gov, 1
 stopfraud.gov, 1
 stopthethyroidmadness.com, 1
 stordbatlag.no, 1
 store-host.com, 1
 store10.de, 0
 storedsafe.com, 1
 storgom.ua, 0
@@ -27943,16 +27938,17 @@ summitmasters.net, 1
 sumthing.com, 1
 sunbritetv.com, 1
 sundanceusa.com, 1
 sundaycooks.com, 1
 sundayfundayjapan.com, 1
 suneilpatel.com, 1
 sunfeathers.net, 1
 sunfireshop.com.br, 1
+sunflyer.cn, 0
 sunfox.cz, 1
 sunfulong.me, 1
 sunjaydhama.com, 1
 sunn.ie, 1
 sunsetwx.com, 1
 sunshinesf.org, 1
 sunsmartresorts.com, 1
 sunstar.bg, 1
@@ -29254,16 +29250,17 @@ tink.network, 1
 tinker.career, 1
 tinkerboard.org, 1
 tinkertry.com, 1
 tinte24.de, 1
 tintencenter.com, 1
 tintenfix.net, 1
 tintenfux.de, 1
 tintenland.de, 1
+tintenprofi.de, 1
 tinyhousefinance.com.au, 1
 tinylan.com, 1
 tinyspeck.com, 1
 tinyssh.com, 1
 tinyssh.org, 1
 tinytownsoftplay.co.uk, 1
 tinyvpn.net, 1
 tinyvpn.org, 1
@@ -29690,17 +29687,17 @@ trademan.ky, 1
 traderjoe-cloud.de, 1
 tradietrove.com.au, 1
 tradinews.com, 1
 tradinews.fr, 1
 tradingbhavishya.com, 1
 tradingrooms.com, 0
 traditionsvivantesenimages.ch, 1
 tradiz.org, 1
-traeningsprojekt.dk, 1
+traeningsprojekt.dk, 0
 trafarm.ro, 1
 traffic.az, 1
 trafficmanager.xxx, 1
 trafficologyblueprint.com, 1
 trafficpixel.tk, 1
 traffixdevices.com, 1
 traforet.win, 1
 tragmi.ch, 1
@@ -30225,17 +30222,16 @@ ukpirate.org, 1
 ukrainians.ch, 1
 ukrigging.net, 1
 ukrnet.co.uk, 1
 ukwct.org.uk, 1
 ulabox.com, 1
 ulalau.com, 1
 uli-eckhardt.de, 1
 ullah.se, 1
-ulmer-schneesport.de, 0
 ulrik.moe, 1
 ulti.gq, 1
 ultieme.be, 0
 ultima-ratio.at, 1
 ultimateanu.com, 1
 ultimatemafia.net, 1
 ultratechlp.com, 1
 umassfive.coop, 1
@@ -30443,16 +30439,17 @@ urcentral.org, 1
 ureka.org, 1
 urgences-valais.ch, 1
 uripura.de, 1
 urist1011.ru, 1
 url.cab, 1
 url.fi, 1
 url.fm, 1
 url.rw, 1
+url0.eu, 1
 urlachershop.com.br, 1
 urlaub-leitner.at, 1
 urlscan.io, 1
 urology.wiki, 1
 urown.net, 1
 ursa-minor-beta.org, 1
 ursae.co, 1
 urspringer.de, 1
@@ -31191,16 +31188,17 @@ vvdbronckhorst.nl, 1
 vw-touranclub.cz, 1
 vwbusje.com, 1
 vwittich.de, 1
 vwoforangeparts.com, 1
 vwsoft.de, 1
 vww-8522.com, 1
 vxapps.com, 1
 vxst.org, 1
+vybeministry.org, 1
 vyber-odhadce.cz, 1
 vyberodhadce.cz, 1
 vyplnto.cz, 1
 vyshivanochka.in.ua, 1
 vysko.cz, 1
 vyskocil.eu, 1
 vyvygen.org, 1
 vyzner.cz, 1
@@ -31339,16 +31337,17 @@ watchweasel.com, 1
 waterfedpole.com, 1
 waterleeftinbeek.nl, 1
 watermonitor.gov, 1
 watersb.org, 1
 waterschaplimburg.nl, 1
 watertrails.io, 1
 waterworkscondos.com, 1
 watsonwork.me, 1
+wattechweb.com, 1
 wave-ola.es, 1
 wavesboardshop.com, 1
 wavesoftime.com, 1
 waveum.com, 1
 wawak.pl, 1
 waxdramatic.com, 1
 waylaydesign.com, 1
 wayne.cloud, 0
@@ -31499,17 +31498,16 @@ webreslist.com, 1
 webs4all.ro, 0
 websectools.com, 1
 websecurity.is, 1
 webseitendesigner.com, 0
 webseitenserver.com, 1
 websenat.de, 1
 websharks.org, 1
 websiteadvice.com.au, 1
-websitedesign.bg, 1
 websiteforlease.ca, 1
 websiteout.ca, 1
 websiteout.net, 1
 websiterent.ca, 1
 websites4business.ca, 1
 websitesdallas.com, 1
 websiteservice.pro, 1
 webslake.com, 1
@@ -32775,17 +32773,17 @@ yffengshi.ml, 1
 yggdar.ga, 1
 yhaupenthal.org, 1
 yhb.io, 1
 yhong.me, 1
 yhori.xyz, 1
 yhwj.top, 1
 yibaoweilong.top, 1
 yibin0831.com, 1
-yicknam.my, 1
+yicknam.my, 0
 yii2.cc, 1
 yikeyong.com, 1
 yin8888.tv, 1
 yinfor.com, 1
 ying299.com, 1
 ying299.net, 1
 yinga.ga, 1
 yingatech.com, 1
@@ -33255,17 +33253,16 @@ zrn.in, 0
 zrniecka-pre-sny.sk, 1
 zscales.com, 1
 zserver.fr, 1
 zskomenskeho.cz, 1
 zsoltsandor.me, 1
 zsrbcs.com, 1
 zten.org, 1
 ztjuh.tk, 1
-ztytian.com, 1
 zuan-in.net, 1
 zuckerfloh.de, 1
 zudomc.me, 1
 zuefle.net, 1
 zuehlcke.de, 1
 zug-anwalt.de, 1
 zug.fr, 1
 zug.io, 1
--- a/taskcluster/scripts/misc/build-cctools-port.sh
+++ b/taskcluster/scripts/misc/build-cctools-port.sh
@@ -27,17 +27,17 @@ echo "Building from commit hash `git rev
 # Fetch clang from tooltool
 cd $WORKSPACE/build/src
 . taskcluster/scripts/misc/tooltool-download.sh
 
 # Configure crosstools-port
 cd $CROSSTOOLS_CCTOOLS_DIR
 export CC=$CLANG_DIR/bin/clang
 export CXX=$CLANG_DIR/bin/clang++
-export LDFLAGS=/lib64/libpthread.so.0
+export LDFLAGS=-lpthread
 ./autogen.sh
 ./configure --prefix=$CROSSTOOLS_BUILD_DIR --target=x86_64-apple-darwin11 --with-llvm-config=$CLANG_DIR/bin/llvm-config
 
 # Build cctools
 make -j `nproc --all` install
 strip $CROSSTOOLS_BUILD_DIR/bin/*
 # cctools-port doesn't include dsymutil but clang will need to find it.
 cp $CLANG_DIR/bin/llvm-dsymutil $CROSSTOOLS_BUILD_DIR/bin/x86_64-apple-darwin11-dsymutil
--- a/testing/geckodriver/CHANGES.md
+++ b/testing/geckodriver/CHANGES.md
@@ -9,16 +9,19 @@ Unreleased
 ### Changed
 
 - HTTP status code for the [`StaleElementReference`] error changed
   from 400 (Bad Request) to 404 (Not Found)
 
 - Backtraces from geckodriver no longer substitute for missing
   Marionette stacktraces
 
+- `Delete Session` now allows Firefox to safely shutdown within 130s before
+  force-killing the process
+
 
 0.19.1 (2017-10-30)
 -------------------
 
 ### Changed
 
 - Search suggestions in the location bar turned off as not to
   trigger network connections
--- a/testing/geckodriver/src/marionette.rs
+++ b/testing/geckodriver/src/marionette.rs
@@ -52,16 +52,20 @@ use webdriver::error::{ErrorStatus, WebD
 use webdriver::server::{WebDriverHandler, Session};
 use webdriver::httpapi::{WebDriverExtensionRoute};
 
 use capabilities::{FirefoxCapabilities, FirefoxOptions};
 use prefs;
 
 const DEFAULT_HOST: &'static str = "localhost";
 
+// Firefox' integrated background monitor which observes long running threads during
+// shutdown kills those after 65s. Wait some additional seconds for a safe shutdown
+const TIMEOUT_BROWSER_SHUTDOWN: u64 = 70 * 1000;
+
 pub fn extension_routes() -> Vec<(Method, &'static str, GeckoExtensionRoute)> {
     return vec![(Method::Get, "/session/{sessionId}/moz/context", GeckoExtensionRoute::GetContext),
              (Method::Post, "/session/{sessionId}/moz/context", GeckoExtensionRoute::SetContext),
              (Method::Post,
               "/session/{sessionId}/moz/xbl/{elementId}/anonymous_children",
               GeckoExtensionRoute::XblAnonymousChildren),
              (Method::Post,
               "/session/{sessionId}/moz/xbl/{elementId}/anonymous_by_attribute",
@@ -568,28 +572,61 @@ impl WebDriverHandler<GeckoExtensionRout
             Err(_) => {
                 Err(WebDriverError::new(
                     ErrorStatus::UnknownError,
                     "Failed to aquire Marionette connection"))
             }
         }
     }
 
-    fn delete_session(&mut self, _: &Option<Session>) {
-        if let Ok(connection) = self.connection.lock() {
-            if let Some(ref conn) = *connection {
+    fn delete_session(&mut self, session: &Option<Session>) {
+        // If there is still an active session send a delete session command
+        // and wait for the browser to quit
+        if let Some(ref s) = *session {
+            let delete_session = WebDriverMessage {
+                session_id: Some(s.id.clone()),
+                command: WebDriverCommand::DeleteSession
+            };
+            let _ = self.handle_command(session, delete_session);
+
+            if let Some(ref mut runner) = self.browser {
+                let timeout = TIMEOUT_BROWSER_SHUTDOWN;
+                let poll_interval = 100;
+                let poll_attempts = timeout / poll_interval;
+                let mut poll_attempt = 0;
+
+                while runner.is_running() {
+                    if poll_attempt <= poll_attempts {
+                        debug!("Waiting for the browser process to shutdown");
+                        poll_attempt += 1;
+                        sleep(Duration::from_millis(poll_interval));
+                    } else {
+                        warn!("Browser process did not shutdown");
+                        break;
+                    }
+                }
+            }
+        }
+
+        if let Ok(ref mut connection) = self.connection.lock() {
+            if let Some(conn) = connection.as_mut() {
                 conn.close();
             }
         }
+
+        // If the browser is still open then kill the process
         if let Some(ref mut runner) = self.browser {
-            debug!("Stopping browser process");
-            if runner.stop().is_err() {
-                error!("Failed to kill browser process");
-            };
+            if runner.is_running() {
+                info!("Forcing a shutdown of the browser process");
+                if runner.stop().is_err() {
+                    error!("Failed to kill browser process");
+                };
+            }
         }
+
         self.connection = Mutex::new(None);
         self.browser = None;
     }
 }
 
 pub struct MarionetteSession {
     pub session_id: String,
     protocol: Option<String>,
--- a/testing/web-platform/meta/webdriver/tests/execute_async_script/user_prompts.py.ini
+++ b/testing/web-platform/meta/webdriver/tests/execute_async_script/user_prompts.py.ini
@@ -1,9 +1,12 @@
 [user_prompts.py]
+  expected:
+    if debug: TIMEOUT # https://bugzilla.mozilla.org/show_bug.cgi?id=1425559
+
   [test_handle_prompt_accept]
     expected: FAIL
 
   [test_handle_prompt_dismiss]
     expected: FAIL
 
   [test_handle_prompt_dismiss_and_notify]
     expected: FAIL
--- a/testing/web-platform/meta/webdriver/tests/execute_script/user_prompts.py.ini
+++ b/testing/web-platform/meta/webdriver/tests/execute_script/user_prompts.py.ini
@@ -1,9 +1,12 @@
 [user_prompts.py]
+  expected:
+    if debug: TIMEOUT # https://bugzilla.mozilla.org/show_bug.cgi?id=1425559
+
   [test_handle_prompt_accept]
     expected: FAIL
 
   [test_handle_prompt_dismiss]
     expected: FAIL
 
   [test_handle_prompt_dismiss_and_notify]
     expected: FAIL
--- a/testing/web-platform/tests/webdriver/tests/state/get_element_attribute.py
+++ b/testing/web-platform/tests/webdriver/tests/state/get_element_attribute.py
@@ -1,8 +1,10 @@
+# META: timeout=long
+
 import pytest
 
 from tests.support.asserts import assert_error, assert_success, assert_dialog_handled
 from tests.support.fixtures import create_dialog
 from tests.support.inline import inline
 
 
 def get_attribute(session, element, attr):
--- a/testing/web-platform/tests/webdriver/tests/state/get_element_property.py
+++ b/testing/web-platform/tests/webdriver/tests/state/get_element_property.py
@@ -1,8 +1,10 @@
+# META: timeout=long
+
 from tests.support.asserts import assert_error, assert_dialog_handled, assert_success
 from tests.support.inline import inline
 from tests.support.fixtures import create_dialog
 
 _input = inline("<input id=i1>")
 
 
 # 13.3 Get Element Property
--- a/testing/web-platform/tests/webdriver/tests/state/get_element_tag_name.py
+++ b/testing/web-platform/tests/webdriver/tests/state/get_element_tag_name.py
@@ -1,8 +1,10 @@
+# META: timeout=long
+
 from tests.support.asserts import assert_error, assert_dialog_handled, assert_success
 from tests.support.inline import inline
 from tests.support.fixtures import create_dialog
 
 
 # 13.6 Get Element Tag Name
 
 def test_no_browsing_context(session, create_window):
--- a/testing/web-platform/tests/webdriver/tests/state/is_element_selected.py
+++ b/testing/web-platform/tests/webdriver/tests/state/is_element_selected.py
@@ -1,8 +1,10 @@
+# META: timeout=long
+
 from tests.support.asserts import assert_error, assert_dialog_handled, assert_success
 from tests.support.inline import inline
 from tests.support.fixtures import create_dialog
 
 
 alert_doc = inline("<script>window.alert()</script>")
 check_doc = inline("<input id=checked type=checkbox checked/><input id=notChecked type=checkbox/>")
 option_doc = inline("""<select>
--- a/testing/webdriver/src/server.rs
+++ b/testing/webdriver/src/server.rs
@@ -20,17 +20,17 @@ use response::{CloseWindowResponse, WebD
 
 enum DispatchMessage<U: WebDriverExtensionRoute> {
     HandleWebDriver(WebDriverMessage<U>, Sender<WebDriverResult<WebDriverResponse>>),
     Quit
 }
 
 #[derive(Clone, Debug, PartialEq)]
 pub struct Session {
-    id: String
+    pub id: String
 }
 
 impl Session {
     fn new(id: String) -> Session {
         Session {
             id: id
         }
     }
--- a/third_party/webkit/PerformanceTests/StyleBench/InteractiveRunner.html
+++ b/third_party/webkit/PerformanceTests/StyleBench/InteractiveRunner.html
@@ -1,15 +1,15 @@
 <!DOCTYPE html>
 <html>
 <head>
 <title>Speedometer 2.0 Interactive Runner</title>
 <script src="../Speedometer/resources/benchmark-runner.js" defer></script>
-<script src="../Speedometer/resources/selector-bench.js" defer></script>
-<script src="../Speedometer/resources/tests.js" defer></script>
+<script src="resources/style-bench.js" defer></script>
+<script src="resources/tests.js" defer></script>
 <style>
 iframe { border: 1px solid black; }
 ol { list-style: none; margin: 0; padding: 0; }
 ol ol { margin-left: 2em; list-position: outside; }
 .running { text-decoration: underline; }
 .ran { color: grey; }
 nav { position: absolute; right: 10px; height: 600px; }
 nav > ol { height: 100%; overflow-y: scroll; }
--- a/toolkit/components/autocomplete/nsAutoCompleteController.cpp
+++ b/toolkit/components/autocomplete/nsAutoCompleteController.cpp
@@ -21,30 +21,16 @@
 #include "mozilla/Services.h"
 #include "mozilla/ModuleUtils.h"
 #include "mozilla/Unused.h"
 
 static const char *kAutoCompleteSearchCID = "@mozilla.org/autocomplete/search;1?name=";
 
 using namespace mozilla;
 
-namespace {
-
-void
-SetTextValue(nsIAutoCompleteInput* aInput,
-             const nsString& aValue,
-             uint16_t aReason) {
-  nsresult rv = aInput->SetTextValueWithReason(aValue, aReason);
-  if (NS_FAILED(rv)) {
-    aInput->SetTextValue(aValue);
-  }
-}
-
-} // anon namespace
-
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsAutoCompleteController)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsAutoCompleteController)
   tmp->SetInput(nullptr);
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsAutoCompleteController)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mInput)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mSearches)
@@ -77,16 +63,28 @@ nsAutoCompleteController::nsAutoComplete
 {
 }
 
 nsAutoCompleteController::~nsAutoCompleteController()
 {
   SetInput(nullptr);
 }
 
+void
+nsAutoCompleteController::SetValueOfInputTo(const nsString& aValue,
+                                            uint16_t aReason)
+{
+  mSetValue = aValue;
+  nsCOMPtr<nsIAutoCompleteInput> input(mInput);
+  nsresult rv = input->SetTextValueWithReason(aValue, aReason);
+  if (NS_FAILED(rv)) {
+    input->SetTextValue(aValue);
+  }
+}
+
 ////////////////////////////////////////////////////////////////////////
 //// nsIAutoCompleteController
 
 NS_IMETHODIMP
 nsAutoCompleteController::GetSearchStatus(uint16_t *aSearchStatus)
 {
   *aSearchStatus = mSearchStatus;
   return NS_OK;
@@ -144,17 +142,19 @@ nsAutoCompleteController::SetInput(nsIAu
 
   // Nothing more to do if the input was just being set to null.
   if (!mInput) {
     return NS_OK;
   }
   nsCOMPtr<nsIAutoCompleteInput> input(mInput);
 
   // Reset the current search string.
-  input->GetTextValue(mSearchString);
+  nsAutoString value;
+  input->GetTextValue(value);
+  SetSearchStringInternal(value);
 
   // Clear out this reference in case the new input's popup has no tree
   mTree = nullptr;
 
   // Initialize our list of search objects
   uint32_t searchCount;
   input->GetSearchCount(&searchCount);
   mResults.SetCapacity(searchCount);
@@ -203,34 +203,34 @@ nsAutoCompleteController::ResetInternalS
 {
   // Clear out the current search context
   if (mInput) {
     nsAutoString value;
     mInput->GetTextValue(value);
     // Stop all searches in case they are async.
     Unused << StopSearch();
     Unused << ClearResults();
-    mSearchString = value;
+    SetSearchStringInternal(value);
   }
 
   mPlaceholderCompletionString.Truncate();
   mDefaultIndexCompleted = false;
   mProhibitAutoFill = false;
   mSearchStatus = nsIAutoCompleteController::STATUS_NONE;
   mRowCount = 0;
   mDelayedRowCountDelta = 0;
   mCompletedSelectionIndex = -1;
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsAutoCompleteController::StartSearch(const nsAString &aSearchString)
 {
-  mSearchString = aSearchString;
+  SetSearchStringInternal(aSearchString);
   StartSearches();
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsAutoCompleteController::HandleText(bool *_retval)
 {
   *_retval = false;
@@ -316,17 +316,17 @@ nsAutoCompleteController::HandleText(boo
       ClearResults();
     }
     mProhibitAutoFill = true;
     mPlaceholderCompletionString.Truncate();
   } else {
     mProhibitAutoFill = false;
   }
 
-  mSearchString = newValue;
+  SetSearchStringInternal(newValue);
 
   // Don't search if the value is empty
   if (newValue.Length() == 0) {
     // If autocomplete popup was closed by compositionstart event handler,
     // we should reopen it forcibly even if the value is empty.
     if (popupClosedByCompositionStart && handlingCompositionCommit) {
       bool cancel;
       HandleKeyNavigation(nsIDOMKeyEvent::DOM_VK_DOWN, &cancel);
@@ -521,31 +521,31 @@ nsAutoCompleteController::HandleKeyNavig
             // If the result is the previously autofilled string, then restore
             // the search string and selection that existed when the result was
             // autofilled.  Else, fill the result and move the caret to the end.
             int32_t start;
             if (value.Equals(mPlaceholderCompletionString,
                              nsCaseInsensitiveStringComparator())) {
               start = mSearchString.Length();
               value = mPlaceholderCompletionString;
-              SetTextValue(input, value,
-                           nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
+              SetValueOfInputTo(
+                value, nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
             } else {
               start = value.Length();
-              SetTextValue(input, value,
-                           nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETESELECTED);
+              SetValueOfInputTo(
+                value, nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETESELECTED);
             }
 
             input->SelectTextRange(start, value.Length());
           }
           mCompletedSelectionIndex = selectedIndex;
         } else {
           // Nothing is selected, so fill in the last typed value
-          SetTextValue(input, mSearchString,
-                       nsIAutoCompleteInput::TEXTVALUE_REASON_REVERT);
+          SetValueOfInputTo(
+            mSearchString, nsIAutoCompleteInput::TEXTVALUE_REASON_REVERT);
           input->SelectTextRange(mSearchString.Length(), mSearchString.Length());
           mCompletedSelectionIndex = -1;
         }
       }
     } else {
 #ifdef XP_MACOSX
       // on Mac, only show the popup if the caret is at the start or end of
       // the input and there is no selection, so that the default defined key
@@ -587,17 +587,17 @@ nsAutoCompleteController::HandleKeyNavig
             return NS_OK;
           }
 
           // Some script may have changed the value of the text field since our
           // last keypress or after our focus handler and we don't want to search
           // for a stale string.
           nsAutoString value;
           input->GetTextValue(value);
-          mSearchString = value;
+          SetSearchStringInternal(value);
 
           StartSearches();
         }
       }
     }
   } else if (   aKey == nsIDOMKeyEvent::DOM_VK_LEFT
              || aKey == nsIDOMKeyEvent::DOM_VK_RIGHT
 #ifndef XP_MACOSX
@@ -633,18 +633,18 @@ nsAutoCompleteController::HandleKeyNavig
       int32_t selectedIndex;
       popup->GetSelectedIndex(&selectedIndex);
       bool shouldComplete;
       input->GetCompleteDefaultIndex(&shouldComplete);
       if (selectedIndex >= 0) {
         // The pop-up is open and has a selection, take its value
         nsAutoString value;
         if (NS_SUCCEEDED(GetResultValueAt(selectedIndex, false, value))) {
-          SetTextValue(input, value,
-                       nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETESELECTED);
+          SetValueOfInputTo(
+            value, nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETESELECTED);
           input->SelectTextRange(value.Length(), value.Length());
         }
       }
       else if (shouldComplete) {
         // We usually try to preserve the casing of what user has typed, but
         // if he wants to autocomplete, we will replace the value with the
         // actual autocomplete result. Note that the autocomplete input can also
         // be showing e.g. "bar >> foo bar" if the search matched "bar", a
@@ -659,33 +659,33 @@ nsAutoCompleteController::HandleKeyNavig
           int32_t pos = inputValue.Find(" >> ");
           if (pos > 0) {
             inputValue.Right(suggestedValue, inputValue.Length() - pos - 4);
           } else {
             suggestedValue = inputValue;
           }
 
           if (value.Equals(suggestedValue, nsCaseInsensitiveStringComparator())) {
-            SetTextValue(input, value,
-                         nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
+            SetValueOfInputTo(
+              value, nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
             input->SelectTextRange(value.Length(), value.Length());
           }
         }
       }
 
       // Close the pop-up even if nothing was selected
       ClearSearchTimer();
       ClosePopup();
     }
     // Update last-searched string to the current input, since the input may
     // have changed.  Without this, subsequent backspaces look like text
     // additions, not text deletions.
     nsAutoString value;
     input->GetTextValue(value);
-    mSearchString = value;
+    SetSearchStringInternal(value);
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsAutoCompleteController::HandleDelete(bool *_retval)
 {
@@ -845,17 +845,17 @@ nsAutoCompleteController::GetFinalComple
   NS_ENSURE_SUCCESS(rv, rv);
 
   return result->GetFinalCompleteValueAt(rowIndex, _retval);
 }
 
 NS_IMETHODIMP
 nsAutoCompleteController::SetSearchString(const nsAString &aSearchString)
 {
-  mSearchString = aSearchString;
+  SetSearchStringInternal(aSearchString);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsAutoCompleteController::GetSearchString(nsAString &aSearchString)
 {
   aSearchString = mSearchString;
   return NS_OK;
@@ -1569,19 +1569,19 @@ nsAutoCompleteController::EnterMatch(boo
     }
   }
 
   nsCOMPtr<nsIObserverService> obsSvc = services::GetObserverService();
   NS_ENSURE_STATE(obsSvc);
   obsSvc->NotifyObservers(input, "autocomplete-will-enter-text", nullptr);
 
   if (!value.IsEmpty()) {
-    SetTextValue(input, value, nsIAutoCompleteInput::TEXTVALUE_REASON_ENTERMATCH);
+    SetValueOfInputTo(value, nsIAutoCompleteInput::TEXTVALUE_REASON_ENTERMATCH);
     input->SelectTextRange(value.Length(), value.Length());
-    mSearchString = value;
+    SetSearchStringInternal(value);
   }
 
   obsSvc->NotifyObservers(input, "autocomplete-did-enter-text", nullptr);
   ClosePopup();
 
   bool cancel;
   input->OnTextEntered(aEvent, &cancel);
 
@@ -1592,33 +1592,41 @@ nsresult
 nsAutoCompleteController::RevertTextValue()
 {
   // StopSearch() can call PostSearchCleanup() which might result
   // in a blur event, which could null out mInput, so we need to check it
   // again.  See bug #408463 for more details
   if (!mInput)
     return NS_OK;
 
-  nsAutoString oldValue(mSearchString);
   nsCOMPtr<nsIAutoCompleteInput> input(mInput);
 
+  // If current input value is different from what we have set, it means
+  // somebody modified the value like JS of the web content.  In such case,
+  // we shouldn't overwrite it with the old value.
+  nsAutoString currentValue;
+  input->GetTextValue(currentValue);
+  if (currentValue != mSetValue) {
+    SetSearchStringInternal(currentValue);
+    return NS_OK;
+  }
+
   bool cancel = false;
   input->OnTextReverted(&cancel);
 
   if (!cancel) {
     nsCOMPtr<nsIObserverService> obsSvc = services::GetObserverService();
     NS_ENSURE_STATE(obsSvc);
     obsSvc->NotifyObservers(input, "autocomplete-will-revert-text", nullptr);
 
-    nsAutoString inputValue;
-    input->GetTextValue(inputValue);
     // Don't change the value if it is the same to prevent sending useless events.
     // NOTE: how can |RevertTextValue| be called with inputValue != oldValue?
-    if (!oldValue.Equals(inputValue)) {
-      SetTextValue(input, oldValue, nsIAutoCompleteInput::TEXTVALUE_REASON_REVERT);
+    if (mSearchString != currentValue) {
+      SetValueOfInputTo(
+        mSearchString, nsIAutoCompleteInput::TEXTVALUE_REASON_REVERT);
     }
 
     obsSvc->NotifyObservers(input, "autocomplete-did-revert-text", nullptr);
   }
 
   return NS_OK;
 }
 
@@ -1947,18 +1955,18 @@ nsAutoCompleteController::CompleteValue(
 
   if (aValue.IsEmpty() ||
       StringBeginsWith(aValue, mSearchString,
                        nsCaseInsensitiveStringComparator())) {
     // aValue is empty (we were asked to clear mInput), or mSearchString
     // matches the beginning of aValue.  In either case we can simply
     // autocomplete to aValue.
     mPlaceholderCompletionString = aValue;
-    SetTextValue(input, aValue,
-                 nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
+    SetValueOfInputTo(
+      aValue, nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
   } else {
     nsresult rv;
     nsCOMPtr<nsIIOService> ios = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
     NS_ENSURE_SUCCESS(rv, rv);
     nsAutoCString scheme;
     if (NS_SUCCEEDED(ios->ExtractScheme(NS_ConvertUTF16toUTF8(aValue), scheme))) {
       // Trying to autocomplete a URI from somewhere other than the beginning.
       // Only succeed if the missing portion is "http://"; otherwise do not
@@ -1970,26 +1978,28 @@ nsAutoCompleteController::CompleteValue(
           !scheme.LowerCaseEqualsLiteral("http") ||
           !Substring(aValue, findIndex, mSearchStringLength).Equals(
             mSearchString, nsCaseInsensitiveStringComparator())) {
         return NS_OK;
       }
 
       mPlaceholderCompletionString = mSearchString +
         Substring(aValue, mSearchStringLength + findIndex, endSelect);
-      SetTextValue(input, mPlaceholderCompletionString,
-                   nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
+      SetValueOfInputTo(
+        mPlaceholderCompletionString,
+        nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
 
       endSelect -= findIndex; // We're skipping this many characters of aValue.
     } else {
       // Autocompleting something other than a URI from the middle.
       // Use the format "searchstring >> full string" to indicate to the user
       // what we are going to replace their search string with.
-      SetTextValue(input, mSearchString + NS_LITERAL_STRING(" >> ") + aValue,
-                   nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
+      SetValueOfInputTo(
+        mSearchString + NS_LITERAL_STRING(" >> ") + aValue,
+        nsIAutoCompleteInput::TEXTVALUE_REASON_COMPLETEDEFAULT);
 
       endSelect = mSearchString.Length() + 4 + aValue.Length();
 
       // Reset the last search completion.
       mPlaceholderCompletionString.Truncate();
     }
   }
 
--- a/toolkit/components/autocomplete/nsAutoCompleteController.h
+++ b/toolkit/components/autocomplete/nsAutoCompleteController.h
@@ -37,16 +37,31 @@ public:
   NS_DECL_NSITIMERCALLBACK
   NS_DECL_NSINAMED
 
   nsAutoCompleteController();
 
 protected:
   virtual ~nsAutoCompleteController();
 
+  /**
+   * SetValueOfInputTo() sets value of mInput to aValue and notifies the input
+   * of setting reason.
+   */
+  void SetValueOfInputTo(const nsString& aValue, uint16_t aReason);
+
+  /**
+   * SetSearchStringInternal() sets both mSearchString and mSetValue to
+   * aSearchString.
+   */
+  void SetSearchStringInternal(const nsAString& aSearchString)
+  {
+    mSearchString = mSetValue = aSearchString;
+  }
+
   nsresult OpenPopup();
   nsresult ClosePopup();
 
   nsresult StartSearch(uint16_t aSearchType);
 
   nsresult BeforeSearches();
   nsresult StartSearches();
   void AfterSearches();
@@ -133,18 +148,29 @@ protected:
   // search.  This is needed to allow the searches to reuse the previous result,
   // since otherwise the first search clears mResults.
   nsCOMArray<nsIAutoCompleteResult> mResultCache;
 
   nsCOMPtr<nsITimer> mTimer;
   nsCOMPtr<nsITreeSelection> mSelection;
   nsCOMPtr<nsITreeBoxObject> mTree;
 
+  // mSearchString stores value which is the original value of the input or
+  // typed by the user.  When user is choosing an item from the popup, this
+  // is NOT modified by the item because this is used for reverting the input
+  // value when user cancels choosing an item from the popup.
+  // This should be set through only SetSearchStringInternal().
   nsString mSearchString;
   nsString mPlaceholderCompletionString;
+  // mSetValue stores value which is expected in the input.  So, if input's
+  // value and mSetValue are different, it means somebody has changed the
+  // value like JS of the web content.
+  // This is set only by SetValueOfInputTo() or when modifying mSearchString
+  // through SetSearchStringInternal().
+  nsString mSetValue;
   bool mDefaultIndexCompleted;
   bool mPopupClosedByCompositionStart;
 
   // Whether autofill is allowed for the next search. May be retrieved by the
   // search through the "prohibit-autofill" searchParam.
   bool mProhibitAutoFill;
 
   // Indicates whether the user cleared the autofilled part, returning to the
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -1634,18 +1634,21 @@
   },
   "BAD_FALLBACK_FONT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
     "description": "system fallback font can't be used"
   },
   "SHUTDOWN_OK": {
-    "record_in_processes": ["main", "content"],
-    "expires_in_version": "default",
+    "record_in_processes": ["main"],
+    "expires_in_version": "never",
+    "alert_emails": ["chutten@mozilla.com"],
+    "bug_numbers": [1421688],
+    "releaseChannelCollection": "opt-out",
     "kind": "boolean",
     "description": "Did the browser start after a successful shutdown"
   },
   "IMAGE_DECODE_LATENCY_US": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["gfx-telemetry-alerts@mozilla.com"],
     "expires_in_version": "never",
     "kind": "exponential",
@@ -8481,26 +8484,26 @@
     "high": 10000,
     "n_buckets": 1000,
     "description": "The time (in milliseconds) that it took to display a selected source to the user."
   },
   "DEVTOOLS_ABOUT_DEVTOOLS_OPENED_KEY": {
     "record_in_processes": ["main"],
     "alert_emails": ["dev-developer-tools@lists.mozilla.org", "hkirschner@mozilla.com"],
     "bug_numbers": [1412029],
-    "expires_in_version": "60",
+    "expires_in_version": "63",
     "kind": "categorical",
     "labels": ["toggleToolbox", "toggleToolboxF12", "inspector", "webconsole", "jsdebugger", "netmonitor", "toggleToolbar", "webide", "browserToolbox", "browserConsole", "responsiveDesignMode", "scratchpad", "styleeditor", "performance", "storage", "dom"],
     "description": "Records the key shortcut passed to open the about:devtools page."
   },
   "DEVTOOLS_ABOUT_DEVTOOLS_OPENED_REASON": {
     "record_in_processes": ["main"],
     "alert_emails": ["dev-developer-tools@lists.mozilla.org", "hkirschner@mozilla.com"],
     "bug_numbers": [1412029],
-    "expires_in_version": "60",
+    "expires_in_version": "63",
     "kind": "categorical",
     "labels": ["KeyShortcut", "SystemMenu", "HamburgerMenu", "ContextMenu", "CommandLine"],
     "description": "Records the reason for opening the about:devtools page."
   },
   "MEDIA_RUST_MP4PARSE_SUCCESS": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"],
     "expires_in_version": "60",
--- a/toolkit/components/telemetry/Scalars.yaml
+++ b/toolkit/components/telemetry/Scalars.yaml
@@ -922,52 +922,52 @@ devtools:
       - 'main'
 
 devtools.aboutdevtools:
   opened:
     bug_numbers:
       - 1412029
     description: >
       Number of times about:devtools was opened.
-    expires: "60"
+    expires: "63"
     kind: uint
     notification_emails:
       - dev-developer-tools@lists.mozilla.org, jdescottes@mozilla.com
     record_in_processes:
       - 'main'
   installed:
     bug_numbers:
       - 1412029
     description: >
       Number of times devtools were enabled/installed in about:devtools.
-    expires: "60"
+    expires: "63"
     kind: uint
     notification_emails:
       - dev-developer-tools@lists.mozilla.org, jdescottes@mozilla.com
     record_in_processes:
       - 'main'
   noinstall_exits:
     bug_numbers:
       - 1412029
     description: >
       Number of times the user left about:devtools without enabling devtools.
-    expires: "60"
+    expires: "63"
     kind: uint
     notification_emails:
       - dev-developer-tools@lists.mozilla.org, jdescottes@mozilla.com
     record_in_processes:
       - 'main'
 
 devtools.onboarding:
   is_devtools_user:
     bug_numbers:
       - 1408339
     description: >
       How many users are flagged as existing devtools users.
-    expires: "60"
+    expires: "63"
     kind: boolean
     notification_emails:
       - dev-developer-tools@lists.mozilla.org, jdescottes@mozilla.com
     record_in_processes:
       - 'main'
 
 navigator.storage:
   estimate_count:
--- a/toolkit/components/telemetry/histogram-whitelists.json
+++ b/toolkit/components/telemetry/histogram-whitelists.json
@@ -493,17 +493,16 @@
     "SERVICE_WORKER_REGISTRATIONS",
     "SERVICE_WORKER_REGISTRATION_LOADING",
     "SERVICE_WORKER_REQUEST_PASSTHROUGH",
     "SERVICE_WORKER_SPAWN_ATTEMPTS",
     "SERVICE_WORKER_UPDATED",
     "SERVICE_WORKER_WAS_SPAWNED",
     "SHOULD_AUTO_DETECT_LANGUAGE",
     "SHOULD_TRANSLATION_UI_APPEAR",
-    "SHUTDOWN_OK",
     "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_BEFORE_CHANGE",
     "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_CHANGE_TEARDOWN",
     "SHUTDOWN_PHASE_DURATION_TICKS_QUIT_APPLICATION",
     "SHUTDOWN_PHASE_DURATION_TICKS_XPCOM_WILL_SHUTDOWN",
     "SLOW_ADDON_WARNING_RESPONSE_TIME",
     "SLOW_ADDON_WARNING_STATES",
     "STARTUP_CRASH_DETECTED",
     "STARTUP_MEASUREMENT_ERRORS",
@@ -1199,17 +1198,16 @@
     "SERVICE_WORKER_REGISTRATIONS",
     "SERVICE_WORKER_REGISTRATION_LOADING",
     "SERVICE_WORKER_REQUEST_PASSTHROUGH",
     "SERVICE_WORKER_SPAWN_ATTEMPTS",
     "SERVICE_WORKER_UPDATED",
     "SERVICE_WORKER_WAS_SPAWNED",
     "SHOULD_AUTO_DETECT_LANGUAGE",
     "SHOULD_TRANSLATION_UI_APPEAR",
-    "SHUTDOWN_OK",
     "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_BEFORE_CHANGE",
     "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_CHANGE_TEARDOWN",
     "SHUTDOWN_PHASE_DURATION_TICKS_QUIT_APPLICATION",
     "SHUTDOWN_PHASE_DURATION_TICKS_XPCOM_WILL_SHUTDOWN",
     "SLOW_ADDON_WARNING_RESPONSE_TIME",
     "SLOW_ADDON_WARNING_STATES",
     "SLOW_SCRIPT_NOTICE_COUNT",
     "SPDY_CHUNK_RECVD",
@@ -1625,17 +1623,16 @@
     "FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS",
     "FX_SESSION_RESTORE_WRITE_FILE_MS",
     "FX_THUMBNAILS_BG_CAPTURE_PAGE_LOAD_TIME_MS",
     "REQUESTS_OF_ORIGINAL_CONTENT",
     "NEWTAB_PAGE_ENHANCED",
     "CERT_CHAIN_SHA1_POLICY_STATUS",
     "PDF_VIEWER_DOCUMENT_SIZE_KB",
     "FX_THUMBNAILS_BG_CAPTURE_SERVICE_TIME_MS",
-    "SHUTDOWN_OK",
     "PLACES_BACKUPS_TOJSON_MS",
     "A11Y_ISIMPLEDOM_USAGE_FLAG",
     "FX_SESSION_RESTORE_MANUAL_RESTORE_DURATION_UNTIL_EAGER_TABS_RESTORED_MS",
     "PDF_VIEWER_DOCUMENT_GENERATOR",
     "PDF_VIEWER_FALLBACK_SHOWN",
     "FX_SESSION_RESTORE_ALL_FILES_CORRUPT",
     "SHOULD_AUTO_DETECT_LANGUAGE",
     "A11Y_IATABLE_USAGE_FLAG",
--- a/toolkit/content/tests/mochitest/mochitest.ini
+++ b/toolkit/content/tests/mochitest/mochitest.ini
@@ -1,11 +1,12 @@
+[test_bug1407085.html]
+
 [test_autocomplete_change_after_focus.html]
 skip-if = toolkit == "android"
 [test_mousecapture.xhtml]
 support-files =
   file_mousecapture.html
   file_mousecapture2.html
   file_mousecapture3.html
   file_mousecapture4.html
   file_mousecapture5.html
 skip-if = toolkit == "android" || webrender # bug 1424752 for webrender
-
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/mochitest/test_bug1407085.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Test for Bug 1407085</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<p id="display"></p>
+
+<div id="content">
+  <input id="input" value="original value">
+</div>
+
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(runTests);
+
+function runTests() {
+  let input = document.getElementById("input");
+  input.focus();
+  input.addEventListener("keydown", () => {
+    input.value = "new value";
+  }, { once: true });
+  synthesizeKey("KEY_Escape", { code: "Escape" });
+  is(input.value, "new value",
+     "New <input> value changed by an Escape key event listener shouldn't be " +
+     "overwritten by original value even if Escape key is pressed");
+  SimpleTest.finish();
+}
+
+</script>
+</pre>
+</body>
+</html>