Merge m-c to autoland, a=merge
authorWes Kocher <wkocher@mozilla.com>
Mon, 14 Aug 2017 17:59:46 -0700
changeset 424147 519be2dc4c9c566db8cc2384e2e9915ab5f6c670
parent 424146 cd7fce82029380d5db3a1a267ba47de932e913d9 (current diff)
parent 424084 b95b1638db48fc3d450b95b98da6bcd2f9326d2f (diff)
child 424148 72589b054083ee5717e7f5b936a1330f1464ff55
push id7761
push userjlund@mozilla.com
push dateFri, 15 Sep 2017 00:19:52 +0000
treeherdermozilla-beta@c38455951db4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone57.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 m-c to autoland, a=merge MozReview-Commit-ID: KfZgcCxrZcg
browser/base/content/browser.js
browser/extensions/onboarding/content/img/icons_singlesearch-colored.svg
browser/extensions/onboarding/content/img/icons_singlesearch.svg
js/src/wasm/WasmFrameIterator.cpp
js/src/wasm/WasmFrameIterator.h
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -1,10 +1,10 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<blocklist lastupdate="1484867614757" xmlns="http://www.mozilla.org/2006/addons-blocklist">
+<blocklist lastupdate="1483471392954" xmlns="http://www.mozilla.org/2006/addons-blocklist">
   <emItems>
     <emItem blockID="i988" id="{b12785f5-d8d0-4530-a3ea-5c4263b85bef}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
     <emItem blockID="i398" id="{377e5d4d-77e5-476a-8716-7e70a9272da0}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
@@ -936,20 +936,16 @@
     <emItem blockID="i712" id="{a2bfe612-4cf5-48ea-907c-f3fb25bc9d6b}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i47" id="youtube@youtube2.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
-    <emItem blockID="i453" id="/^brasilescape.*\@facebook\.com$/">
-      <prefs/>
-      <versionRange minVersion="0" maxVersion="*" severity="3"/>
-    </emItem>
     <emItem blockID="i485" id="/^brasilescape.*\@facebook\.com$//">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i816" id="noOpus@outlook.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
@@ -1748,16 +1744,20 @@
     <emItem blockID="i18" id="msntoolbar@msn.com">
       <prefs/>
       <versionRange minVersion=" 0" maxVersion="6.*" severity="1"/>
     </emItem>
     <emItem blockID="i455" id="7d51fb17-b199-4d8f-894e-decaff4fc36a@a298838b-7f50-4c7c-9277-df6abbd42a0c.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
+    <emItem blockID="5df16afc-c804-43c9-9de5-f1835403e5fb" id="@H99KV4DO-UCCF-9PFO-9ZLK-8RRP4FVOKD9O">
+      <prefs/>
+      <versionRange minVersion="0" maxVersion="*" severity="3"/>
+    </emItem>
     <emItem blockID="i764" id="prositez@prz.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i474" id="{906000a4-88d9-4d52-b209-7a772970d91f}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
@@ -1812,16 +1812,20 @@
     <emItem blockID="i539" id="ScorpionSaver@jetpack">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
     <emItem blockID="i472" id="linksicle@linksicle.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
+    <emItem blockID="0a47a2f7-f07c-489b-bd39-88122a2dfe6a" id="@DA3566E2-F709-11E5-8E87-A604BC8E7F8B">
+      <prefs/>
+      <versionRange minVersion="0" maxVersion="*" severity="3"/>
+    </emItem>
     <emItem blockID="i98" id="youtubeeing@youtuberie.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i1213" id="unblocker20__web@unblocker.yt">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
@@ -2090,16 +2094,20 @@
     <emItem blockID="i107" id="{ABDE892B-13A8-4d1b-88E6-365A6E755758}" os="WINNT">
       <prefs/>
       <versionRange minVersion="0" maxVersion="15.0.5" severity="1"/>
     </emItem>
     <emItem blockID="i1493" id="{de71f09a-3342-48c5-95c1-4b0f17567554}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="1.3.9" severity="3"/>
     </emItem>
+    <emItem blockID="i453" id="/^brasilescape.*\@facebook\.com$/">
+      <prefs/>
+      <versionRange minVersion="0" maxVersion="*" severity="3"/>
+    </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>
@@ -4117,16 +4125,19 @@
       <serialNumber>Cfk9lw==</serialNumber>
     </certItem>
     <certItem issuerName="MFIxCzAJBgNVBAYTAk5MMRkwFwYDVQQKDBBEaWdpZGVudGl0eSBCLlYuMSgwJgYDVQQDDB9EaWdpZGVudGl0eSBPcmdhbmlzYXRpZSBDQSAtIEcy">
       <serialNumber>DA==</serialNumber>
     </certItem>
     <certItem issuerName="MIGQMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxOzA5BgNVBAMTMkFyaXN0b3RsZSBVbml2ZXJzaXR5IG9mIFRoZXNzYWxvbmlraSBDZW50cmFsIENBIFI0">
       <serialNumber>EqthLKdUgwI=</serialNumber>
     </certItem>
+    <certItem issuerName="MIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA2IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHNQ==">
+      <serialNumber>Xmo3AIW2VHeeJoR0o09RGQ==</serialNumber>
+    </certItem>
     <certItem issuerName="MF8xCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRQwEgYDVQQLEwtQYXJ0bmVycyBDQTEfMB0GA1UEAxMWR2xvYmFsU2lnbiBQYXJ0bmVycyBDQQ==">
       <serialNumber>BAAAAAABCFiEp9s=</serialNumber>
     </certItem>
     <certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
       <serialNumber>BAAAAAABJ/ufRdg=</serialNumber>
     </certItem>
     <certItem issuerName="MHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWU=">
       <serialNumber>M64Z5ufZzDRVTHkJR1uXzw==</serialNumber>
@@ -4366,16 +4377,19 @@
       <serialNumber>TrKEMhb2PKktH8lHg0AV5A==</serialNumber>
     </certItem>
     <certItem issuerName="MIGKMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEmMCQGA1UECxMdQ29weXJpZ2h0IChjKSAyMDA1IFdJU2VLZXkgU0ExFjAUBgNVBAsTDUludGVybmF0aW9uYWwxKTAnBgNVBAMTIFdJU2VLZXkgQ2VydGlmeUlEIEFkdmFuY2VkIEcxIENB">
       <serialNumber>WD1AyQAAAAAAJQ==</serialNumber>
     </certItem>
     <certItem issuerName="MFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0E=">
       <serialNumber>BAAAAAABFUtaxac=</serialNumber>
     </certItem>
+    <certItem issuerName="MEUxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzI=">
+      <serialNumber>SeEzbpTltqUtqW7UiuJ2</serialNumber>
+    </certItem>
     <certItem issuerName="MGMxCzAJBgNVBAYTAkZSMRMwEQYDVQQKEwpDZXJ0aW5vbWlzMRcwFQYDVQQLEw4wMDAyIDQzMzk5ODkwMzEmMCQGA1UEAwwdQ2VydGlub21pcyAtIEF1dG9yaXTDqSBSYWNpbmU=">
       <serialNumber>Eg==</serialNumber>
     </certItem>
     <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
       <serialNumber>NMpMcEnex3eXx4ohk9glcQ==</serialNumber>
     </certItem>
     <certItem issuerName="MFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0E=">
       <serialNumber>BAAAAAABL07hRxA=</serialNumber>
@@ -4570,16 +4584,19 @@
       <serialNumber>NvEJoRYL2yvAZrAjbDIipQ==</serialNumber>
     </certItem>
     <certItem issuerName="MDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBDQTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUw=">
       <serialNumber>fbsHfUkagQtznc3rtY1uDg==</serialNumber>
     </certItem>
     <certItem issuerName="MFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0E=">
       <serialNumber>BAAAAAABL07hSVI=</serialNumber>
     </certItem>
+    <certItem issuerName="MIGFMQswCQYDVQQGEwJVUzEgMB4GA1UECgwXV2VsbHMgRmFyZ28gV2VsbHNTZWN1cmUxHDAaBgNVBAsME1dlbGxzIEZhcmdvIEJhbmsgTkExNjA0BgNVBAMMLVdlbGxzU2VjdXJlIFB1YmxpYyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eQ==">
+      <serialNumber>ATk=</serialNumber>
+    </certItem>
     <certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
       <serialNumber>GN2Hrh9LtnA=</serialNumber>
     </certItem>
     <certItem issuerName="MFwxCzAJBgNVBAYTAkJFMRUwEwYDVQQLEwxUcnVzdGVkIFJvb3QxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExGzAZBgNVBAMTElRydXN0ZWQgUm9vdCBDQSBHMg==">
       <serialNumber>DAk9hy8DhHSo+aQetvPB/fY=</serialNumber>
     </certItem>
     <certItem issuerName="MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDM=">
       <serialNumber>CSY=</serialNumber>
@@ -4678,16 +4695,19 @@
       <serialNumber>AJBQSPqrEvDE2Hz8xH39Low=</serialNumber>
     </certItem>
     <certItem issuerName="MCgxCzAJBgNVBAYTAkJFMRkwFwYDVQQDExBCZWxnaXVtIFJvb3QgQ0Ey">
       <serialNumber>eLumDUO40KwnecZLJxFM2A==</serialNumber>
     </certItem>
     <certItem issuerName="MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDM=">
       <serialNumber>BwImeaRkSZQLYwFREwKo3R1Jn+8=</serialNumber>
     </certItem>
+    <certItem issuerName="MIG9MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5">
+      <serialNumber>QOu0a5Z9rCkw6Nk7Rg1/AQ==</serialNumber>
+    </certItem>
     <certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
       <serialNumber>Bydvrw==</serialNumber>
     </certItem>
     <certItem issuerName="MIG9MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5">
       <serialNumber>Aw1SPC56593ZCZ9vCNHKwQ==</serialNumber>
     </certItem>
     <certItem issuerName="MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEoMCYGA1UEAxMfU3ltYW50ZWMgQ2xhc3MgMyBFViBTU0wgQ0EgLSBHMg==">
       <serialNumber>UVKsEezpGWOVQ4W9esstng==</serialNumber>
@@ -4792,16 +4812,19 @@
       <serialNumber>LdbnCbsA9sOgI4mkUpWXPw==</serialNumber>
     </certItem>
     <certItem issuerName="MIHBMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yaw==">
       <serialNumber>O2Qh+qhbBRuZA11yDhcLGQ==</serialNumber>
     </certItem>
     <certItem issuerName="MFwxCzAJBgNVBAYTAkJFMRUwEwYDVQQLEwxUcnVzdGVkIFJvb3QxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExGzAZBgNVBAMTElRydXN0ZWQgUm9vdCBDQSBHMg==">
       <serialNumber>LAVIFm0MWZYH+Sv8Vf+IqkM=</serialNumber>
     </certItem>
+    <certItem issuerName="MIGFMQswCQYDVQQGEwJVUzEgMB4GA1UECgwXV2VsbHMgRmFyZ28gV2VsbHNTZWN1cmUxHDAaBgNVBAsME1dlbGxzIEZhcmdvIEJhbmsgTkExNjA0BgNVBAMMLVdlbGxzU2VjdXJlIFB1YmxpYyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eQ==">
+      <serialNumber>ANU=</serialNumber>
+    </certItem>
     <certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
       <serialNumber>GN2Hrh9LtnM=</serialNumber>
     </certItem>
     <certItem issuerName="MG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3Q=">
       <serialNumber>Os2rnHWYhryvdOXfgan06A==</serialNumber>
     </certItem>
     <certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
       <serialNumber>ESDu2nhlLPzfx+LYgjlYFP/k</serialNumber>
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -5227,17 +5227,30 @@ nsBrowserAccess.prototype = {
     let browser = win.gBrowser.getBrowserForTab(tab);
 
     if (needToFocusWin || (!loadInBackground && aIsExternal))
       win.focus();
 
     return browser;
   },
 
+  createContentWindow(aURI, aOpener, aWhere, aFlags) {
+    return this.getContentWindowOrOpenURI(null, aOpener, aWhere, aFlags);
+  },
+
   openURI(aURI, aOpener, aWhere, aFlags, aTriggeringPrincipal) {
+    if (!aURI) {
+      Cu.reportError("openURI should only be called with a valid URI");
+      throw Cr.NS_ERROR_FAILURE;
+    }
+    return this.getContentWindowOrOpenURI(aURI, aOpener, aWhere, aFlags,
+                                          aTriggeringPrincipal);
+  },
+
+  getContentWindowOrOpenURI(aURI, aOpener, aWhere, aFlags, aTriggeringPrincipal) {
     // This function should only ever be called if we're opening a URI
     // from a non-remote browser window (via nsContentTreeOwner).
     if (aOpener && Cu.isCrossProcessWrapper(aOpener)) {
       Cu.reportError("nsBrowserAccess.openURI was passed a CPOW for aOpener. " +
                      "openURI should only ever be called from non-remote browsers.");
       throw Cr.NS_ERROR_FAILURE;
     }
 
old mode 100755
new mode 100644
old mode 100755
new mode 100644
--- a/build/clang-plugin/Utils.h
+++ b/build/clang-plugin/Utils.h
@@ -329,17 +329,17 @@ inline const Stmt *IgnoreTrivials(const 
       break;
     }
   }
 
   return s;
 }
 
 inline const Expr *IgnoreTrivials(const Expr *e) {
-  return cast<Expr>(IgnoreTrivials(static_cast<const Stmt *>(e)));
+  return cast_or_null<Expr>(IgnoreTrivials(static_cast<const Stmt *>(e)));
 }
 
 const FieldDecl *getBaseRefCntMember(QualType T);
 
 inline const FieldDecl *getBaseRefCntMember(const CXXRecordDecl *D) {
   const FieldDecl *RefCntMember = getClassRefCntMember(D);
   if (RefCntMember && isClassRefCounted(D)) {
     return RefCntMember;
--- a/dom/interfaces/base/nsIBrowserDOMWindow.idl
+++ b/dom/interfaces/base/nsIBrowserDOMWindow.idl
@@ -17,29 +17,29 @@ interface nsIOpenURIInFrameParams : nsIS
   attribute DOMString referrer;
   readonly attribute boolean isPrivate;
   attribute nsIPrincipal triggeringPrincipal;
 
   [implicit_jscontext]
   readonly attribute jsval openerOriginAttributes;
 };
 
-[scriptable, uuid(9d17f3dd-672b-451e-afd2-b1115df780d5)]
+[scriptable, uuid(2a9bb880-5d73-40f3-8152-c60c8d137a14)]
 
 /**
  * The C++ source has access to the browser script source through
  * nsIBrowserDOMWindow. It is intended to be attached to the chrome DOMWindow
  * of a toplevel browser window (a XUL window). A DOMWindow that does not
  * happen to be a browser chrome window will simply have no access to any such
  * interface.
  */
 interface nsIBrowserDOMWindow : nsISupports
 {
   /**
-   * Values for openURI's aWhere parameter.
+   * Values for createContentWindow's and openURI's aWhere parameter.
    */
   /**
    * Do whatever the default is based on application state, user preferences,
    * and the value of the aContext parameter to openURI.
    */
   const short OPEN_DEFAULTWINDOW = 0;
   /**
    * Open in the "current window".  If aOpener is provided, this should be the
@@ -59,52 +59,70 @@ interface nsIBrowserDOMWindow : nsISuppo
   const short OPEN_NEWTAB        = 3;
   /**
    * Open in an existing content tab based on the URI. If a match can't be
    * found, revert to OPEN_NEWTAB behavior.
    */
   const short OPEN_SWITCHTAB     = 4;
 
   /**
-   * Values for openURI's aFlags parameter. This is a bitflags field.
+   * Values for createContentWindow's and openURI's aFlags parameter.
+   * This is a bitflags field.
    *
    * The 0x1 bit decides the behavior of OPEN_DEFAULTWINDOW, and the 0x4 bit
    * controls whether or not to set the window.opener property on the newly
    * opened window.
    *
    * NOTE: The 0x2 bit is ignored for backwards compatibility with addons, as
    * OPEN_NEW used to have the value 2. The values 0 and 2 are treated
    * the same way internally.
    */
   /**
-   * internal open new window
+   * Internal open new window.
    */
   const long OPEN_NEW           = 0x0;
   /**
-   * external link (load request from another application, xremote, etc).
+   * External link (load request from another application, xremote, etc).
    */
   const long OPEN_EXTERNAL      = 0x1;
 
   /**
-   * Don't set the window.opener property on the window which is being opened
+   * Don't set the window.opener property on the window which is being opened.
    */
   const long OPEN_NO_OPENER     = 0x4;
 
   /**
-   * Load a URI
+   * Create the content window for the given URI.
 
-   * @param aURI the URI to open. null is allowed.  If null is passed in, no
-   *             load will be done, though the window the load would have
-   *             happened in will be returned.
+   * @param aURI the URI to be opened in the window (can be null).
+   * @param aWhere see possible values described above.
+   * @param aOpener window requesting the creation (can be null).
+   * @param aFlags flags which control the behavior of the load. The
+   *               OPEN_EXTERNAL/OPEN_NEW flag is only used when
+   *               aWhere == OPEN_DEFAULTWINDOW.
+   * @param aTriggeringPrincipal the principal that would trigger the potential
+   *        load of aURI.
+   * @return the window into which the URI would have been opened.
+  */
+  mozIDOMWindowProxy
+  createContentWindow(in nsIURI aURI, in mozIDOMWindowProxy aOpener,
+                      in short aWhere, in long aFlags,
+                      in nsIPrincipal aTriggeringPrincipal);
+
+  /**
+   * Load a URI.
+
+   * @param aURI the URI to open. null is not allowed. To create the window
+   *        without loading the URI, use createContentWindow instead.
    * @param aWhere see possible values described above.
    * @param aOpener window requesting the open (can be null).
    * @param aFlags flags which control the behavior of the load. The
    *               OPEN_EXTERNAL/OPEN_NEW flag is only used when
    *               aWhere == OPEN_DEFAULTWINDOW.
-   * @param aTriggeringPrincipal the principal that triggered the load of aURI
+   * @param aTriggeringPrincipal the principal that triggered the load of aURI.
    * @return the window into which the URI was opened.
   */
   mozIDOMWindowProxy
   openURI(in nsIURI aURI, in mozIDOMWindowProxy aOpener,
           in short aWhere, in long aFlags, in nsIPrincipal aTriggeringPrincipal);
 
   /**
    * As above, but return the nsIFrameLoaderOwner for the new window.
--- a/dom/plugins/base/nsJSNPRuntime.cpp
+++ b/dom/plugins/base/nsJSNPRuntime.cpp
@@ -234,34 +234,30 @@ const static js::Class sNPObjectJSWrappe
 
 typedef struct NPObjectMemberPrivate {
     JS::Heap<JSObject *> npobjWrapper;
     JS::Heap<JS::Value> fieldValue;
     JS::Heap<jsid> methodName;
     NPP   npp;
 } NPObjectMemberPrivate;
 
-static bool
-NPObjectMember_GetProperty(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
-                           JS::MutableHandleValue vp);
-
 static void
 NPObjectMember_Finalize(JSFreeOp *fop, JSObject *obj);
 
 static bool
 NPObjectMember_Call(JSContext *cx, unsigned argc, JS::Value *vp);
 
 static void
 NPObjectMember_Trace(JSTracer *trc, JSObject *obj);
 
 static bool
 NPObjectMember_toPrimitive(JSContext *cx, unsigned argc, JS::Value *vp);
 
 static const JSClassOps sNPObjectMemberClassOps = {
-  nullptr, nullptr, NPObjectMember_GetProperty, nullptr,
+  nullptr, nullptr, nullptr, nullptr,
   nullptr, nullptr, nullptr, nullptr,
   NPObjectMember_Finalize, NPObjectMember_Call,
   nullptr, nullptr, NPObjectMember_Trace
 };
 
 static const JSClass sNPObjectMemberClass = {
   "NPObject Ambiguous Member class",
   JSCLASS_HAS_PRIVATE |
@@ -2052,17 +2048,17 @@ CreateNPObjectMember(NPP npp, JSContext 
     (NPObjectMemberPrivate*) malloc(sizeof(NPObjectMemberPrivate));
   if (!memberPrivate)
     return false;
 
   // Make sure to clear all members in case something fails here
   // during initialization.
   memset(memberPrivate, 0, sizeof(NPObjectMemberPrivate));
 
-  JSObject *memobj = ::JS_NewObject(cx, &sNPObjectMemberClass);
+  JS::Rooted<JSObject*> memobj(cx, ::JS_NewObject(cx, &sNPObjectMemberClass));
   if (!memobj) {
     free(memberPrivate);
     return false;
   }
 
   vp.setObject(*memobj);
 
   ::JS_SetPrivate(memobj, (void *)memberPrivate);
@@ -2094,38 +2090,29 @@ CreateNPObjectMember(NPP npp, JSContext 
   obj = GetNPObjectWrapper(cx, obj);
 
   memberPrivate->npobjWrapper = obj;
 
   memberPrivate->fieldValue = fieldValue;
   memberPrivate->methodName = id;
   memberPrivate->npp = npp;
 
-  return true;
-}
-
-static bool
-NPObjectMember_GetProperty(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
-                           JS::MutableHandleValue vp)
-{
-  AUTO_PROFILER_LABEL("NPObjectMember_GetProperty", OTHER);
-
-  if (JSID_IS_SYMBOL(id)) {
-    JS::RootedSymbol sym(cx, JSID_TO_SYMBOL(id));
-    if (JS::GetSymbolCode(sym) == JS::SymbolCode::toPrimitive) {
-      JS::RootedObject obj(cx, JS_GetFunctionObject(
-                                 JS_NewFunction(
-                                   cx, NPObjectMember_toPrimitive, 1, 0,
-                                   "Symbol.toPrimitive")));
-      if (!obj)
-        return false;
-      vp.setObject(*obj);
-      return true;
-    }
-  }
+  // Finally, define the Symbol.toPrimitive property on |memobj|.
+
+  JS::Rooted<jsid> toPrimitiveId(cx);
+  toPrimitiveId = SYMBOL_TO_JSID(JS::GetWellKnownSymbol(cx, JS::SymbolCode::toPrimitive));
+
+  JSFunction* fun = JS_NewFunction(cx, NPObjectMember_toPrimitive, 1, 0,
+                                   "Symbol.toPrimitive");
+  if (!fun)
+    return false;
+
+  JS::Rooted<JSObject*> funObj(cx, JS_GetFunctionObject(fun));
+  if (!JS_DefinePropertyById(cx, memobj, toPrimitiveId, funObj, 0))
+    return false;
 
   return true;
 }
 
 static void
 NPObjectMember_Finalize(JSFreeOp *fop, JSObject *obj)
 {
   NPObjectMemberPrivate *memberPrivate;
new file mode 100644
--- /dev/null
+++ b/gfx/cairo/add-cairo_scaled_font_get_hint_metrics
@@ -0,0 +1,169 @@
+# HG changeset patch
+# User Mats Palmgren <mats@mozilla.com>
+# Parent  f3483af8ecf997453064201c49c48a682c7f3c29
+Bug 1377257 part 1 - Add cairo_scaled_font_get_hint_metrics to avoid malloc/free that is required to use cairo_scaled_font_get_font_options.  r=jfkthame
+
+diff --git a/gfx/cairo/add-cairo_scaled_font_get_hint_metrics b/gfx/cairo/add-cairo_scaled_font_get_hint_metrics
+new file mode 100644
+--- /dev/null
++++ b/gfx/cairo/add-cairo_scaled_font_get_hint_metrics
+@@ -0,0 +1,82 @@
++# HG changeset patch
++# User Mats Palmgren <mats@mozilla.com>
++# Parent  f3483af8ecf997453064201c49c48a682c7f3c29
++Bug 1377257 part 1 - Add cairo_scaled_font_get_hint_metrics to avoid malloc/free that is required to use cairo_scaled_font_get_font_options.  r=jfkthame
++
++diff --git a/gfx/cairo/cairo/src/cairo-rename.h b/gfx/cairo/cairo/src/cairo-rename.h
++--- a/gfx/cairo/cairo/src/cairo-rename.h
+++++ b/gfx/cairo/cairo/src/cairo-rename.h
++@@ -262,16 +262,17 @@
++ #define cairo_scale _moz_cairo_scale
++ #define cairo_scaled_font_create _moz_cairo_scaled_font_create
++ #define cairo_scaled_font_destroy _moz_cairo_scaled_font_destroy
++ #define cairo_scaled_font_extents _moz_cairo_scaled_font_extents
++ #define cairo_scaled_font_get_ctm _moz_cairo_scaled_font_get_ctm
++ #define cairo_scaled_font_get_font_face _moz_cairo_scaled_font_get_font_face
++ #define cairo_scaled_font_get_font_matrix _moz_cairo_scaled_font_get_font_matrix
++ #define cairo_scaled_font_get_font_options _moz_cairo_scaled_font_get_font_options
+++#define cairo_scaled_font_get_hint_metrics _moz_cairo_scaled_font_get_hint_metrics
++ #define cairo_scaled_font_get_reference_count _moz_cairo_scaled_font_get_reference_count
++ #define cairo_scaled_font_get_scale_matrix _moz_cairo_scaled_font_get_scale_matrix
++ #define cairo_scaled_font_get_type _moz_cairo_scaled_font_get_type
++ #define cairo_scaled_font_get_user_data _moz_cairo_scaled_font_get_user_data
++ #define cairo_scaled_font_glyph_extents _moz_cairo_scaled_font_glyph_extents
++ #define cairo_scaled_font_reference _moz_cairo_scaled_font_reference
++ #define cairo_scaled_font_set_user_data _moz_cairo_scaled_font_set_user_data
++ #define cairo_scaled_font_status _moz_cairo_scaled_font_status
++diff --git a/gfx/cairo/cairo/src/cairo-scaled-font.c b/gfx/cairo/cairo/src/cairo-scaled-font.c
++--- a/gfx/cairo/cairo/src/cairo-scaled-font.c
+++++ b/gfx/cairo/cairo/src/cairo-scaled-font.c
++@@ -2983,8 +2983,28 @@ cairo_scaled_font_get_font_options (cair
++     if (scaled_font->status) {
++ 	_cairo_font_options_init_default (options);
++ 	return;
++     }
++ 
++     _cairo_font_options_init_copy (options, &scaled_font->options);
++ }
++ slim_hidden_def (cairo_scaled_font_get_font_options);
+++
+++/**
+++ * cairo_scaled_font_get_hint_metrics:
+++ * @scaled_font: a #cairo_scaled_font_t
+++ *
+++ * Mozilla extension since the required malloc/free to use
+++ * cairo_scaled_font_get_font_options() above is too slow.
+++ **/
+++cairo_public cairo_hint_metrics_t
+++cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font)
+++{
+++    cairo_font_options_t options;
+++    if (scaled_font->status) {
+++	_cairo_font_options_init_default (&options);
+++    } else {
+++	_cairo_font_options_init_copy (&options, &scaled_font->options);
+++    }
+++    return options.hint_metrics;
+++}
+++slim_hidden_def (cairo_scaled_font_get_hint_metrics);
++diff --git a/gfx/cairo/cairo/src/cairo.h b/gfx/cairo/cairo/src/cairo.h
++--- a/gfx/cairo/cairo/src/cairo.h
+++++ b/gfx/cairo/cairo/src/cairo.h
++@@ -1493,16 +1493,21 @@ cairo_scaled_font_get_ctm (cairo_scaled_
++ cairo_public void
++ cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t	*scaled_font,
++ 				    cairo_matrix_t	*scale_matrix);
++ 
++ cairo_public void
++ cairo_scaled_font_get_font_options (cairo_scaled_font_t		*scaled_font,
++ 				    cairo_font_options_t	*options);
++ 
+++/* mozilla extension, see https://bugzilla.mozilla.org/show_bug.cgi?id=1377257 */
+++cairo_public cairo_hint_metrics_t
+++cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font);
+++
+++
++ 
++ /* Toy fonts */
++ 
++ cairo_public cairo_font_face_t *
++ cairo_toy_font_face_create (const char           *family,
++ 			    cairo_font_slant_t    slant,
++ 			    cairo_font_weight_t   weight);
++ 
+diff --git a/gfx/cairo/cairo/src/cairo-rename.h b/gfx/cairo/cairo/src/cairo-rename.h
+--- a/gfx/cairo/cairo/src/cairo-rename.h
++++ b/gfx/cairo/cairo/src/cairo-rename.h
+@@ -262,16 +262,17 @@
+ #define cairo_scale _moz_cairo_scale
+ #define cairo_scaled_font_create _moz_cairo_scaled_font_create
+ #define cairo_scaled_font_destroy _moz_cairo_scaled_font_destroy
+ #define cairo_scaled_font_extents _moz_cairo_scaled_font_extents
+ #define cairo_scaled_font_get_ctm _moz_cairo_scaled_font_get_ctm
+ #define cairo_scaled_font_get_font_face _moz_cairo_scaled_font_get_font_face
+ #define cairo_scaled_font_get_font_matrix _moz_cairo_scaled_font_get_font_matrix
+ #define cairo_scaled_font_get_font_options _moz_cairo_scaled_font_get_font_options
++#define cairo_scaled_font_get_hint_metrics _moz_cairo_scaled_font_get_hint_metrics
+ #define cairo_scaled_font_get_reference_count _moz_cairo_scaled_font_get_reference_count
+ #define cairo_scaled_font_get_scale_matrix _moz_cairo_scaled_font_get_scale_matrix
+ #define cairo_scaled_font_get_type _moz_cairo_scaled_font_get_type
+ #define cairo_scaled_font_get_user_data _moz_cairo_scaled_font_get_user_data
+ #define cairo_scaled_font_glyph_extents _moz_cairo_scaled_font_glyph_extents
+ #define cairo_scaled_font_reference _moz_cairo_scaled_font_reference
+ #define cairo_scaled_font_set_user_data _moz_cairo_scaled_font_set_user_data
+ #define cairo_scaled_font_status _moz_cairo_scaled_font_status
+diff --git a/gfx/cairo/cairo/src/cairo-scaled-font.c b/gfx/cairo/cairo/src/cairo-scaled-font.c
+--- a/gfx/cairo/cairo/src/cairo-scaled-font.c
++++ b/gfx/cairo/cairo/src/cairo-scaled-font.c
+@@ -2983,8 +2983,28 @@ cairo_scaled_font_get_font_options (cair
+     if (scaled_font->status) {
+ 	_cairo_font_options_init_default (options);
+ 	return;
+     }
+ 
+     _cairo_font_options_init_copy (options, &scaled_font->options);
+ }
+ slim_hidden_def (cairo_scaled_font_get_font_options);
++
++/**
++ * cairo_scaled_font_get_hint_metrics:
++ * @scaled_font: a #cairo_scaled_font_t
++ *
++ * Mozilla extension since the required malloc/free to use
++ * cairo_scaled_font_get_font_options() above is too slow.
++ **/
++cairo_public cairo_hint_metrics_t
++cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font)
++{
++    cairo_font_options_t options;
++    if (scaled_font->status) {
++	_cairo_font_options_init_default (&options);
++    } else {
++	_cairo_font_options_init_copy (&options, &scaled_font->options);
++    }
++    return options.hint_metrics;
++}
++slim_hidden_def (cairo_scaled_font_get_hint_metrics);
+diff --git a/gfx/cairo/cairo/src/cairo.h b/gfx/cairo/cairo/src/cairo.h
+--- a/gfx/cairo/cairo/src/cairo.h
++++ b/gfx/cairo/cairo/src/cairo.h
+@@ -1493,16 +1493,19 @@ cairo_scaled_font_get_ctm (cairo_scaled_
+ cairo_public void
+ cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t	*scaled_font,
+ 				    cairo_matrix_t	*scale_matrix);
+ 
+ cairo_public void
+ cairo_scaled_font_get_font_options (cairo_scaled_font_t		*scaled_font,
+ 				    cairo_font_options_t	*options);
+ 
++cairo_public cairo_hint_metrics_t
++cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font);
++
+ 
+ /* Toy fonts */
+ 
+ cairo_public cairo_font_face_t *
+ cairo_toy_font_face_create (const char           *family,
+ 			    cairo_font_slant_t    slant,
+ 			    cairo_font_weight_t   weight);
+ 
--- a/gfx/cairo/cairo/src/cairo-rename.h
+++ b/gfx/cairo/cairo/src/cairo-rename.h
@@ -262,16 +262,17 @@
 #define cairo_scale _moz_cairo_scale
 #define cairo_scaled_font_create _moz_cairo_scaled_font_create
 #define cairo_scaled_font_destroy _moz_cairo_scaled_font_destroy
 #define cairo_scaled_font_extents _moz_cairo_scaled_font_extents
 #define cairo_scaled_font_get_ctm _moz_cairo_scaled_font_get_ctm
 #define cairo_scaled_font_get_font_face _moz_cairo_scaled_font_get_font_face
 #define cairo_scaled_font_get_font_matrix _moz_cairo_scaled_font_get_font_matrix
 #define cairo_scaled_font_get_font_options _moz_cairo_scaled_font_get_font_options
+#define cairo_scaled_font_get_hint_metrics _moz_cairo_scaled_font_get_hint_metrics
 #define cairo_scaled_font_get_reference_count _moz_cairo_scaled_font_get_reference_count
 #define cairo_scaled_font_get_scale_matrix _moz_cairo_scaled_font_get_scale_matrix
 #define cairo_scaled_font_get_type _moz_cairo_scaled_font_get_type
 #define cairo_scaled_font_get_user_data _moz_cairo_scaled_font_get_user_data
 #define cairo_scaled_font_glyph_extents _moz_cairo_scaled_font_glyph_extents
 #define cairo_scaled_font_reference _moz_cairo_scaled_font_reference
 #define cairo_scaled_font_set_user_data _moz_cairo_scaled_font_set_user_data
 #define cairo_scaled_font_status _moz_cairo_scaled_font_status
--- a/gfx/cairo/cairo/src/cairo-scaled-font.c
+++ b/gfx/cairo/cairo/src/cairo-scaled-font.c
@@ -2983,8 +2983,28 @@ cairo_scaled_font_get_font_options (cair
     if (scaled_font->status) {
 	_cairo_font_options_init_default (options);
 	return;
     }
 
     _cairo_font_options_init_copy (options, &scaled_font->options);
 }
 slim_hidden_def (cairo_scaled_font_get_font_options);
+
+/**
+ * cairo_scaled_font_get_hint_metrics:
+ * @scaled_font: a #cairo_scaled_font_t
+ *
+ * Mozilla extension since the required malloc/free to use
+ * cairo_scaled_font_get_font_options() above is too slow.
+ **/
+cairo_public cairo_hint_metrics_t
+cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font)
+{
+    cairo_font_options_t options;
+    if (scaled_font->status) {
+	_cairo_font_options_init_default (&options);
+    } else {
+	_cairo_font_options_init_copy (&options, &scaled_font->options);
+    }
+    return options.hint_metrics;
+}
+slim_hidden_def (cairo_scaled_font_get_hint_metrics);
--- a/gfx/cairo/cairo/src/cairo.h
+++ b/gfx/cairo/cairo/src/cairo.h
@@ -1493,16 +1493,20 @@ cairo_scaled_font_get_ctm (cairo_scaled_
 cairo_public void
 cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t	*scaled_font,
 				    cairo_matrix_t	*scale_matrix);
 
 cairo_public void
 cairo_scaled_font_get_font_options (cairo_scaled_font_t		*scaled_font,
 				    cairo_font_options_t	*options);
 
+/* mozilla extension, see https://bugzilla.mozilla.org/show_bug.cgi?id=1377257 */
+cairo_public cairo_hint_metrics_t
+cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font);
+
 
 /* Toy fonts */
 
 cairo_public cairo_font_face_t *
 cairo_toy_font_face_create (const char           *family,
 			    cairo_font_slant_t    slant,
 			    cairo_font_weight_t   weight);
 
--- a/gfx/cairo/cairo/src/cairoint.h
+++ b/gfx/cairo/cairo/src/cairoint.h
@@ -2468,16 +2468,17 @@ slim_hidden_proto (cairo_save);
 slim_hidden_proto (cairo_scale);
 slim_hidden_proto (cairo_scaled_font_create);
 slim_hidden_proto (cairo_scaled_font_destroy);
 slim_hidden_proto (cairo_scaled_font_extents);
 slim_hidden_proto (cairo_scaled_font_get_ctm);
 slim_hidden_proto (cairo_scaled_font_get_font_face);
 slim_hidden_proto (cairo_scaled_font_get_font_matrix);
 slim_hidden_proto (cairo_scaled_font_get_font_options);
+slim_hidden_proto (cairo_scaled_font_get_hint_metrics);
 slim_hidden_proto (cairo_scaled_font_glyph_extents);
 slim_hidden_proto_no_warn (cairo_scaled_font_reference);
 slim_hidden_proto (cairo_scaled_font_status);
 slim_hidden_proto (cairo_scaled_font_get_user_data);
 slim_hidden_proto (cairo_scaled_font_set_user_data);
 slim_hidden_proto (cairo_scaled_font_text_to_glyphs);
 slim_hidden_proto (cairo_set_font_options);
 slim_hidden_proto (cairo_set_font_size);
--- a/gfx/layers/wr/AsyncImagePipelineManager.cpp
+++ b/gfx/layers/wr/AsyncImagePipelineManager.cpp
@@ -273,16 +273,17 @@ AsyncImagePipelineManager::ApplyAsyncIma
       MOZ_ASSERT(pipeline->mCurrentTexture.get());
 
       float opacity = 1.0f;
       builder.PushStackingContext(wr::ToLayoutRect(pipeline->mScBounds),
                                   0,
                                   &opacity,
                                   pipeline->mScTransform.IsIdentity() ? nullptr : &pipeline->mScTransform,
                                   wr::TransformStyle::Flat,
+                                  nullptr,
                                   pipeline->mMixBlendMode,
                                   nsTArray<wr::WrFilterOp>());
 
       LayerRect rect(0, 0, pipeline->mCurrentTexture->GetSize().width, pipeline->mCurrentTexture->GetSize().height);
       if (pipeline->mScaleToSize.isSome()) {
         rect = LayerRect(0, 0, pipeline->mScaleToSize.value().width, pipeline->mScaleToSize.value().height);
       }
 
--- a/gfx/layers/wr/StackingContextHelper.cpp
+++ b/gfx/layers/wr/StackingContextHelper.cpp
@@ -28,16 +28,17 @@ StackingContextHelper::StackingContextHe
   wr::LayoutRect scBounds = aParentSC.ToRelativeLayoutRect(aLayer->BoundsForStackingContext());
   Layer* layer = aLayer->GetLayer();
   mTransform = aTransform.valueOr(layer->GetTransform());
 
   float opacity = 1.0f;
   mBuilder->PushStackingContext(scBounds, 0, &opacity,
                                 mTransform.IsIdentity() ? nullptr : &mTransform,
                                 wr::TransformStyle::Flat,
+                                nullptr,
                                 wr::ToMixBlendMode(layer->GetMixBlendMode()),
                                 aFilters);
   mOrigin = aLayer->Bounds().TopLeft();
 }
 
 StackingContextHelper::StackingContextHelper(const StackingContextHelper& aParentSC,
                                              wr::DisplayListBuilder& aBuilder,
                                              WebRenderLayer* aLayer,
@@ -52,56 +53,67 @@ StackingContextHelper::StackingContextHe
     mTransform = *aTransformPtr;
   }
 
   mBuilder->PushStackingContext(scBounds,
                                 aAnimationsId,
                                 aOpacityPtr,
                                 aTransformPtr,
                                 wr::TransformStyle::Flat,
+                                nullptr,
                                 wr::ToMixBlendMode(aLayer->GetLayer()->GetMixBlendMode()),
                                 aFilters);
   mOrigin = aLayer->Bounds().TopLeft();
 }
 
 StackingContextHelper::StackingContextHelper(const StackingContextHelper& aParentSC,
                                              wr::DisplayListBuilder& aBuilder,
                                              nsDisplayListBuilder* aDisplayListBuilder,
                                              nsDisplayItem* aItem,
                                              nsDisplayList* aDisplayList,
                                              gfx::Matrix4x4Typed<LayerPixel, LayerPixel>* aBoundTransform,
                                              uint64_t aAnimationsId,
                                              float* aOpacityPtr,
                                              gfx::Matrix4x4* aTransformPtr,
+                                             gfx::Matrix4x4* aPerspectivePtr,
                                              const nsTArray<wr::WrFilterOp>& aFilters,
                                              const gfx::CompositionOp& aMixBlendMode)
   : mBuilder(&aBuilder)
 {
-  nsRect itemBounds = aDisplayList->GetClippedBoundsWithRespectToASR(aDisplayListBuilder, aItem->GetActiveScrolledRoot());
-  nsRect childrenVisible = aItem->GetVisibleRectForChildren();
-  nsRect visibleRect = itemBounds.Intersect(childrenVisible);
+  nsRect visibleRect;
+  bool is2d = aTransformPtr && aTransformPtr->Is2D() && !aPerspectivePtr;
+  if (is2d) {
+    nsRect itemBounds = aDisplayList->GetClippedBoundsWithRespectToASR(aDisplayListBuilder, aItem->GetActiveScrolledRoot());
+    nsRect childrenVisible = aItem->GetVisibleRectForChildren();
+    visibleRect = itemBounds.Intersect(childrenVisible);
+  } else {
+    visibleRect = aDisplayList->GetBounds(aDisplayListBuilder);
+    // The position of bounds are calculated by transform and perspective matrix in 3d case. reset it to (0, 0)
+    visibleRect.MoveTo(0, 0);
+  }
   float appUnitsPerDevPixel = aItem->Frame()->PresContext()->AppUnitsPerDevPixel();
   LayerRect bounds = ViewAs<LayerPixel>(LayoutDeviceRect::FromAppUnits(visibleRect, appUnitsPerDevPixel),
                                         PixelCastJustification::WebRenderHasUnitResolution);
 
   // WR will only apply the 'translate' of the transform, so we need to do the scale/rotation manually.
-  if (aBoundTransform && !aBoundTransform->IsIdentity()) {
+  if (aBoundTransform && !aBoundTransform->IsIdentity() && is2d) {
     bounds.MoveTo(aBoundTransform->TransformPoint(bounds.TopLeft()));
   }
 
   wr::LayoutRect scBounds = aParentSC.ToRelativeLayoutRect(bounds);
   if (aTransformPtr) {
     mTransform = *aTransformPtr;
   }
 
   mBuilder->PushStackingContext(scBounds,
                                 aAnimationsId,
                                 aOpacityPtr,
                                 aTransformPtr,
-                                wr::TransformStyle::Flat,
+                                is2d ? wr::TransformStyle::Flat : wr::TransformStyle::Preserve3D,
+                                aPerspectivePtr,
                                 wr::ToMixBlendMode(aMixBlendMode),
                                 aFilters);
 
   mOrigin = bounds.TopLeft();
 }
 
 StackingContextHelper::~StackingContextHelper()
 {
--- a/gfx/layers/wr/StackingContextHelper.h
+++ b/gfx/layers/wr/StackingContextHelper.h
@@ -51,16 +51,17 @@ public:
                         wr::DisplayListBuilder& aBuilder,
                         nsDisplayListBuilder* aDisplayListBuilder,
                         nsDisplayItem* aItem,
                         nsDisplayList* aDisplayList,
                         gfx::Matrix4x4Typed<LayerPixel, LayerPixel>* aBoundTransform,
                         uint64_t aAnimationsId,
                         float* aOpacityPtr,
                         gfx::Matrix4x4* aTransformPtr,
+                        gfx::Matrix4x4* aPerspectivePtr = nullptr,
                         const nsTArray<wr::WrFilterOp>& aFilters = nsTArray<wr::WrFilterOp>(),
                         const gfx::CompositionOp& aMixBlendMode = gfx::CompositionOp::OP_OVER);
   // This version of the constructor should only be used at the root level
   // of the tree, so that we have a StackingContextHelper to pass down into
   // the RenderLayer traversal, but don't actually want it to push a stacking
   // context on the display list builder.
   StackingContextHelper();
 
--- a/gfx/thebes/gfxFont.cpp
+++ b/gfx/thebes/gfxFont.cpp
@@ -837,21 +837,18 @@ gfxFont::GetRoundOffsetsToPixels(DrawTar
   NS_ASSERTION(scaled_font, "null cairo scaled font should never be returned "
     "by cairo_get_scaled_font");
   if (!scaled_font) {
     result |= RoundingFlags::kRoundX; // default to the same as the fallback path below
     return result;
   }
 
   // Sometimes hint metrics gets set for us, most notably for printing.
-  cairo_font_options_t *font_options = cairo_font_options_create();
-  cairo_scaled_font_get_font_options(scaled_font, font_options);
   cairo_hint_metrics_t hint_metrics =
-    cairo_font_options_get_hint_metrics(font_options);
-  cairo_font_options_destroy(font_options);
+    cairo_scaled_font_get_hint_metrics(scaled_font);
 
   switch (hint_metrics) {
   case CAIRO_HINT_METRICS_OFF:
     result &= ~RoundingFlags::kRoundY;
     return result;
   case CAIRO_HINT_METRICS_DEFAULT:
     // Here we mimic what cairo surface/font backends do.  Printing
     // surfaces have already been handled by hint_metrics.  The
--- a/gfx/webrender_bindings/WebRenderAPI.cpp
+++ b/gfx/webrender_bindings/WebRenderAPI.cpp
@@ -637,29 +637,35 @@ DisplayListBuilder::Finalize(wr::LayoutS
 }
 
 void
 DisplayListBuilder::PushStackingContext(const wr::LayoutRect& aBounds,
                                         const uint64_t& aAnimationId,
                                         const float* aOpacity,
                                         const gfx::Matrix4x4* aTransform,
                                         wr::TransformStyle aTransformStyle,
+                                        const gfx::Matrix4x4* aPerspective,
                                         const wr::MixBlendMode& aMixBlendMode,
                                         const nsTArray<wr::WrFilterOp>& aFilters)
 {
   wr::LayoutTransform matrix;
   if (aTransform) {
     matrix = ToLayoutTransform(*aTransform);
   }
   const wr::LayoutTransform* maybeTransform = aTransform ? &matrix : nullptr;
+  wr::LayoutTransform perspective;
+  if (aPerspective) {
+    perspective = ToLayoutTransform(*aPerspective);
+  }
+  const wr::LayoutTransform* maybePerspective = aPerspective ? &perspective : nullptr;
   WRDL_LOG("PushStackingContext b=%s t=%s\n", Stringify(aBounds).c_str(),
       aTransform ? Stringify(*aTransform).c_str() : "none");
   wr_dp_push_stacking_context(mWrState, aBounds, aAnimationId, aOpacity,
-                              maybeTransform, aTransformStyle, aMixBlendMode,
-                              aFilters.Elements(), aFilters.Length());
+                              maybeTransform, aTransformStyle, maybePerspective,
+                              aMixBlendMode, aFilters.Elements(), aFilters.Length());
 }
 
 void
 DisplayListBuilder::PopStackingContext()
 {
   WRDL_LOG("PopStackingContext\n");
   wr_dp_pop_stacking_context(mWrState);
 }
--- a/gfx/webrender_bindings/WebRenderAPI.h
+++ b/gfx/webrender_bindings/WebRenderAPI.h
@@ -168,16 +168,17 @@ public:
   void Finalize(wr::LayoutSize& aOutContentSize,
                 wr::BuiltDisplayList& aOutDisplayList);
 
   void PushStackingContext(const wr::LayoutRect& aBounds, // TODO: We should work with strongly typed rects
                            const uint64_t& aAnimationId,
                            const float* aOpacity,
                            const gfx::Matrix4x4* aTransform,
                            wr::TransformStyle aTransformStyle,
+                           const gfx::Matrix4x4* aPerspective,
                            const wr::MixBlendMode& aMixBlendMode,
                            const nsTArray<wr::WrFilterOp>& aFilters);
   void PopStackingContext();
 
   wr::WrClipId DefineClip(const wr::LayoutRect& aClipRect,
                           const nsTArray<wr::WrComplexClipRegion>* aComplex = nullptr,
                           const wr::WrImageMask* aMask = nullptr);
   void PushClip(const wr::WrClipId& aClipId);
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -993,16 +993,17 @@ pub extern "C" fn wr_dp_end(state: &mut 
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_stacking_context(state: &mut WrState,
                                               bounds: LayoutRect,
                                               animation_id: u64,
                                               opacity: *const f32,
                                               transform: *const LayoutTransform,
                                               transform_style: TransformStyle,
+                                              perspective: *const LayoutTransform,
                                               mix_blend_mode: MixBlendMode,
                                               filters: *const WrFilterOp,
                                               filter_count: usize) {
     assert!(unsafe { !is_in_render_thread() });
 
     let bounds = bounds.into();
 
     let c_filters = make_slice(filters, filter_count);
@@ -1033,23 +1034,28 @@ pub extern "C" fn wr_dp_push_stacking_co
     let transform_binding = match animation_id {
         0 => match transform {
             Some(transform) => Some(PropertyBinding::Value(transform.clone())),
             None => None,
         },
         _ => Some(PropertyBinding::Binding(PropertyBindingKey::new(animation_id))),
     };
 
+    let perspective_ref = unsafe { perspective.as_ref() };
+    let perspective = match perspective_ref {
+        Some(perspective) => Some(perspective.clone()),
+        None => None,
+    };
     state.frame_builder
          .dl_builder
          .push_stacking_context(webrender_api::ScrollPolicy::Scrollable,
                                 bounds,
                                 transform_binding,
                                 transform_style,
-                                None,
+                                perspective,
                                 mix_blend_mode,
                                 filters);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_pop_stacking_context(state: &mut WrState) {
     assert!(unsafe { !is_in_render_thread() });
     state.frame_builder.dl_builder.pop_stacking_context();
--- a/gfx/webrender_bindings/webrender_ffi_generated.h
+++ b/gfx/webrender_bindings/webrender_ffi_generated.h
@@ -938,16 +938,17 @@ WR_FUNC;
 
 WR_INLINE
 void wr_dp_push_stacking_context(WrState *aState,
                                  LayoutRect aBounds,
                                  uint64_t aAnimationId,
                                  const float *aOpacity,
                                  const LayoutTransform *aTransform,
                                  TransformStyle aTransformStyle,
+                                 const LayoutTransform *aPerspective,
                                  MixBlendMode aMixBlendMode,
                                  const WrFilterOp *aFilters,
                                  size_t aFilterCount)
 WR_FUNC;
 
 WR_INLINE
 void wr_dp_push_text(WrState *aState,
                      LayoutRect aBounds,
--- a/js/public/Utility.h
+++ b/js/public/Utility.h
@@ -44,41 +44,46 @@ JS_Assert(const char* s, const char* fil
 /*
  * Custom allocator support for SpiderMonkey
  */
 #if defined JS_USE_CUSTOM_ALLOCATOR
 # include "jscustomallocator.h"
 #else
 
 namespace js {
-namespace oom {
 
 /*
- * To make testing OOM in certain helper threads more effective,
- * allow restricting the OOM testing to a certain helper thread
- * type. This allows us to fail e.g. in off-thread script parsing
- * without causing an OOM in the active thread first.
+ * Thread types are used to tag threads for certain kinds of testing (see
+ * below), and also used to characterize threads in the thread scheduler (see
+ * js/src/vm/HelperThreads.cpp).
  */
 enum ThreadType {
     THREAD_TYPE_NONE = 0,       // 0
     THREAD_TYPE_COOPERATING,    // 1
     THREAD_TYPE_WASM,           // 2
     THREAD_TYPE_ION,            // 3
     THREAD_TYPE_PARSE,          // 4
     THREAD_TYPE_COMPRESS,       // 5
     THREAD_TYPE_GCHELPER,       // 6
     THREAD_TYPE_GCPARALLEL,     // 7
     THREAD_TYPE_PROMISE_TASK,   // 8
     THREAD_TYPE_ION_FREE,       // 9
     THREAD_TYPE_MAX             // Used to check shell function arguments
 };
 
+namespace oom {
+
 /*
- * Getter/Setter functions to encapsulate mozilla::ThreadLocal,
- * implementation is in jsutil.cpp.
+ * Theads are tagged only in certain debug contexts.  Notably, to make testing
+ * OOM in certain helper threads more effective, we allow restricting the OOM
+ * testing to a certain helper thread type. This allows us to fail e.g. in
+ * off-thread script parsing without causing an OOM in the active thread first.
+ *
+ * Getter/Setter functions to encapsulate mozilla::ThreadLocal, implementation
+ * is in jsutil.cpp.
  */
 # if defined(DEBUG) || defined(JS_OOM_BREAKPOINT)
 extern bool InitThreadType(void);
 extern void SetThreadType(ThreadType);
 extern JS_FRIEND_API(uint32_t) GetThreadType(void);
 # else
 inline bool InitThreadType(void) { return true; }
 inline void SetThreadType(ThreadType t) {};
--- a/js/src/builtin/TestingFunctions.cpp
+++ b/js/src/builtin/TestingFunctions.cpp
@@ -1364,17 +1364,17 @@ RepresentativeStringArray(JSContext* cx,
     return true;
 }
 
 #if defined(DEBUG) || defined(JS_OOM_BREAKPOINT)
 static bool
 OOMThreadTypes(JSContext* cx, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
-    args.rval().setInt32(js::oom::THREAD_TYPE_MAX);
+    args.rval().setInt32(js::THREAD_TYPE_MAX);
     return true;
 }
 
 static bool
 SetupOOMFailure(JSContext* cx, bool failAlways, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
 
@@ -1397,21 +1397,21 @@ SetupOOMFailure(JSContext* cx, bool fail
     if (!JS::ToInt32(cx, args.get(0), &count))
         return false;
 
     if (count <= 0) {
         JS_ReportErrorASCII(cx, "OOM cutoff should be positive");
         return false;
     }
 
-    uint32_t targetThread = js::oom::THREAD_TYPE_COOPERATING;
+    uint32_t targetThread = js::THREAD_TYPE_COOPERATING;
     if (args.length() > 1 && !ToUint32(cx, args[1], &targetThread))
         return false;
 
-    if (targetThread == js::oom::THREAD_TYPE_NONE || targetThread >= js::oom::THREAD_TYPE_MAX) {
+    if (targetThread == js::THREAD_TYPE_NONE || targetThread >= js::THREAD_TYPE_MAX) {
         JS_ReportErrorASCII(cx, "Invalid thread type specified");
         return false;
     }
 
     HelperThreadState().waitForAllThreads();
     js::oom::SimulateOOMAfter(count, targetThread, failAlways);
     args.rval().setUndefined();
     return true;
@@ -1481,23 +1481,23 @@ OOMTest(JSContext* cx, unsigned argc, Va
         args.rval().setUndefined();
         return true;
     }
 
     RootedFunction function(cx, &args[0].toObject().as<JSFunction>());
 
     bool verbose = EnvVarIsDefined("OOM_VERBOSE");
 
-    unsigned threadStart = oom::THREAD_TYPE_COOPERATING;
-    unsigned threadEnd = oom::THREAD_TYPE_MAX;
+    unsigned threadStart = THREAD_TYPE_COOPERATING;
+    unsigned threadEnd = THREAD_TYPE_MAX;
 
     // Test a single thread type if specified by the OOM_THREAD environment variable.
     int threadOption = 0;
     if (EnvVarAsInt("OOM_THREAD", &threadOption)) {
-        if (threadOption < oom::THREAD_TYPE_COOPERATING || threadOption > oom::THREAD_TYPE_MAX) {
+        if (threadOption < THREAD_TYPE_COOPERATING || threadOption > THREAD_TYPE_MAX) {
             JS_ReportErrorASCII(cx, "OOM_THREAD value out of range.");
             return false;
         }
 
         threadStart = threadOption;
         threadEnd = threadOption + 1;
     }
 
--- a/js/src/jsapi-tests/testHashTable.cpp
+++ b/js/src/jsapi-tests/testHashTable.cpp
@@ -376,17 +376,17 @@ LookupWithDefaultUntilResize() {
 
     return true;
 }
 
 BEGIN_TEST(testHashMapLookupWithDefaultOOM)
 {
     uint32_t timeToFail;
     for (timeToFail = 1; timeToFail < 1000; timeToFail++) {
-        js::oom::SimulateOOMAfter(timeToFail, js::oom::THREAD_TYPE_COOPERATING, false);
+        js::oom::SimulateOOMAfter(timeToFail, js::THREAD_TYPE_COOPERATING, false);
         LookupWithDefaultUntilResize();
     }
 
     js::oom::ResetSimulatedOOM();
     return true;
 }
 
 END_TEST(testHashMapLookupWithDefaultOOM)
--- a/js/src/jsapi-tests/testOOM.cpp
+++ b/js/src/jsapi-tests/testOOM.cpp
@@ -31,17 +31,17 @@ END_TEST(testOOM)
 #ifdef DEBUG  // js::oom functions are only available in debug builds.
 
 const uint32_t maxAllocsPerTest = 100;
 
 #define START_OOM_TEST(name)                                                  \
     testName = name;                                                          \
     printf("Test %s: started\n", testName);                                   \
     for (oomAfter = 1; oomAfter < maxAllocsPerTest; ++oomAfter) {             \
-    js::oom::SimulateOOMAfter(oomAfter, js::oom::THREAD_TYPE_COOPERATING, true)
+    js::oom::SimulateOOMAfter(oomAfter, js::THREAD_TYPE_COOPERATING, true)
 
 #define OOM_TEST_FINISHED                                                     \
     {                                                                         \
         printf("Test %s: finished with %" PRIu64 " allocations\n",            \
                testName, oomAfter - 1);                                       \
         break;                                                                \
     }
 
--- a/js/src/jsutil.cpp
+++ b/js/src/jsutil.cpp
@@ -57,17 +57,17 @@ SetThreadType(ThreadType type) {
 uint32_t
 GetThreadType(void) {
     return threadType.get();
 }
 
 void
 SimulateOOMAfter(uint64_t allocations, uint32_t thread, bool always) {
     MOZ_ASSERT(counter + allocations > counter);
-    MOZ_ASSERT(thread > js::oom::THREAD_TYPE_NONE && thread < js::oom::THREAD_TYPE_MAX);
+    MOZ_ASSERT(thread > js::THREAD_TYPE_NONE && thread < js::THREAD_TYPE_MAX);
     targetThread = thread;
     maxAllocations = counter + allocations;
     failAlways = always;
 }
 
 void
 ResetSimulatedOOM() {
     if (targetThread != THREAD_TYPE_NONE && targetThread != THREAD_TYPE_COOPERATING)
--- a/js/src/moz.build
+++ b/js/src/moz.build
@@ -368,17 +368,17 @@ UNIFIED_SOURCES += [
     'wasm/WasmBinaryIterator.cpp',
     'wasm/WasmBinaryToAST.cpp',
     'wasm/WasmBinaryToText.cpp',
     'wasm/WasmBuiltins.cpp',
     'wasm/WasmCode.cpp',
     'wasm/WasmCompartment.cpp',
     'wasm/WasmCompile.cpp',
     'wasm/WasmDebug.cpp',
-    'wasm/WasmFrameIterator.cpp',
+    'wasm/WasmFrameIter.cpp',
     'wasm/WasmGenerator.cpp',
     'wasm/WasmInstance.cpp',
     'wasm/WasmIonCompile.cpp',
     'wasm/WasmJS.cpp',
     'wasm/WasmModule.cpp',
     'wasm/WasmSignalHandlers.cpp',
     'wasm/WasmStubs.cpp',
     'wasm/WasmTable.cpp',
--- a/js/src/vm/HelperThreads.cpp
+++ b/js/src/vm/HelperThreads.cpp
@@ -11,16 +11,17 @@
 #include "mozilla/Unused.h"
 
 #include "jsnativestack.h"
 
 #include "builtin/Promise.h"
 #include "frontend/BytecodeCompiler.h"
 #include "gc/GCInternals.h"
 #include "jit/IonBuilder.h"
+#include "js/Utility.h"
 #include "threading/CpuCount.h"
 #include "vm/Debugger.h"
 #include "vm/ErrorReporting.h"
 #include "vm/SharedImmutableStringsCache.h"
 #include "vm/Time.h"
 #include "vm/TraceLogging.h"
 #include "vm/Xdr.h"
 
@@ -958,112 +959,147 @@ GlobalHelperThreadState::waitForAllThrea
 {
     CancelOffThreadIonCompile();
 
     AutoLockHelperThreadState lock;
     while (hasActiveThreads(lock))
         wait(lock, CONSUMER);
 }
 
+// A task can be a "master" task, ie, it will block waiting for other worker
+// threads that perform work on its behalf.  If so it must not take the last
+// available thread; there must always be at least one worker thread able to do
+// the actual work.  (Or the system may deadlock.)
+//
+// If a task is a master task it *must* pass isMaster=true here, or perform a
+// similar calculation to avoid deadlock from starvation.
+//
+// isMaster should only be true if the thread calling checkTaskThreadLimit() is
+// a helper thread.
+//
+// NOTE: Calling checkTaskThreadLimit() from a helper thread in the dynamic
+// region after currentTask.emplace() and before currentTask.reset() may cause
+// it to return a different result than if it is called outside that dynamic
+// region, as the predicate inspects the values of the threads' currentTask
+// members.
+
 template <typename T>
 bool
-GlobalHelperThreadState::checkTaskThreadLimit(size_t maxThreads) const
+GlobalHelperThreadState::checkTaskThreadLimit(size_t maxThreads, bool isMaster) const
 {
-    if (maxThreads >= threadCount)
+    MOZ_ASSERT(maxThreads > 0);
+
+    if (!isMaster && maxThreads >= threadCount)
         return true;
 
     size_t count = 0;
+    size_t idle = 0;
     for (auto& thread : *threads) {
-        if (thread.currentTask.isSome() && thread.currentTask->is<T>())
-            count++;
+        if (thread.currentTask.isSome()) {
+            if (thread.currentTask->is<T>())
+                count++;
+        } else {
+            idle++;
+        }
         if (count >= maxThreads)
             return false;
     }
 
+    // It is possible for the number of idle threads to be zero here, because
+    // checkTaskThreadLimit() can be called from non-helper threads.  Notably,
+    // the compression task scheduler invokes it, and runs off a helper thread.
+    if (idle == 0)
+        return false;
+
+    // A master thread that's the last available thread must not be allowed to
+    // run.
+    if (isMaster && idle == 1)
+        return false;
+
     return true;
 }
 
 struct MOZ_RAII AutoSetContextRuntime
 {
     explicit AutoSetContextRuntime(JSRuntime* rt) {
         TlsContext.get()->setRuntime(rt);
     }
     ~AutoSetContextRuntime() {
         TlsContext.get()->setRuntime(nullptr);
     }
 };
 
 static inline bool
-IsHelperThreadSimulatingOOM(js::oom::ThreadType threadType)
+IsHelperThreadSimulatingOOM(js::ThreadType threadType)
 {
 #if defined(DEBUG) || defined(JS_OOM_BREAKPOINT)
     return js::oom::targetThread == threadType;
 #else
     return false;
 #endif
 }
 
 size_t
 GlobalHelperThreadState::maxIonCompilationThreads() const
 {
-    if (IsHelperThreadSimulatingOOM(js::oom::THREAD_TYPE_ION))
+    if (IsHelperThreadSimulatingOOM(js::THREAD_TYPE_ION))
         return 1;
     return threadCount;
 }
 
 size_t
 GlobalHelperThreadState::maxUnpausedIonCompilationThreads() const
 {
     return 1;
 }
 
 size_t
 GlobalHelperThreadState::maxWasmCompilationThreads() const
 {
-    if (IsHelperThreadSimulatingOOM(js::oom::THREAD_TYPE_WASM))
+    if (IsHelperThreadSimulatingOOM(js::THREAD_TYPE_WASM))
         return 1;
     return cpuCount;
 }
 
 size_t
 GlobalHelperThreadState::maxParseThreads() const
 {
-    if (IsHelperThreadSimulatingOOM(js::oom::THREAD_TYPE_PARSE))
+    if (IsHelperThreadSimulatingOOM(js::THREAD_TYPE_PARSE))
         return 1;
 
     // Don't allow simultaneous off thread parses, to reduce contention on the
     // atoms table. Note that wasm compilation depends on this to avoid
     // stalling the helper thread, as off thread parse tasks can trigger and
     // block on other off thread wasm compilation tasks.
     return 1;
 }
 
 size_t
 GlobalHelperThreadState::maxCompressionThreads() const
 {
-    if (IsHelperThreadSimulatingOOM(js::oom::THREAD_TYPE_COMPRESS))
+    if (IsHelperThreadSimulatingOOM(js::THREAD_TYPE_COMPRESS))
         return 1;
 
     // Compression is triggered on major GCs to compress ScriptSources. It is
     // considered low priority work.
     return 1;
 }
 
 size_t
 GlobalHelperThreadState::maxGCHelperThreads() const
 {
-    if (IsHelperThreadSimulatingOOM(js::oom::THREAD_TYPE_GCHELPER))
+    if (IsHelperThreadSimulatingOOM(js::THREAD_TYPE_GCHELPER))
         return 1;
     return threadCount;
 }
 
 size_t
 GlobalHelperThreadState::maxGCParallelThreads() const
 {
-    if (IsHelperThreadSimulatingOOM(js::oom::THREAD_TYPE_GCPARALLEL))
+    if (IsHelperThreadSimulatingOOM(js::THREAD_TYPE_GCPARALLEL))
         return 1;
     return threadCount;
 }
 
 bool
 GlobalHelperThreadState::canStartWasmCompile(const AutoLockHelperThreadState& lock)
 {
     // Don't execute an wasm job if an earlier one failed.
@@ -1208,17 +1244,22 @@ GlobalHelperThreadState::pendingIonCompi
 
     // Compilation will have to wait until one of the active compilations finishes.
     return false;
 }
 
 bool
 GlobalHelperThreadState::canStartParseTask(const AutoLockHelperThreadState& lock)
 {
-    return !parseWorklist(lock).empty() && checkTaskThreadLimit<ParseTask*>(maxParseThreads());
+    // Parse tasks that end up compiling asm.js in turn may use Wasm compilation
+    // threads to generate machine code.  We have no way (at present) to know
+    // ahead of time whether a parse task is going to parse asm.js content or
+    // not, so we just assume that all parse tasks are master tasks.
+    return !parseWorklist(lock).empty() &&
+           checkTaskThreadLimit<ParseTask*>(maxParseThreads(), /*isMaster=*/true);
 }
 
 bool
 GlobalHelperThreadState::canStartCompressionTask(const AutoLockHelperThreadState& lock)
 {
     return !compressionWorklist(lock).empty() &&
            checkTaskThreadLimit<SourceCompressionTask*>(maxCompressionThreads());
 }
@@ -2137,58 +2178,79 @@ HelperThread::threadLoop()
             oomUnsafe.crash("HelperThread cx.init()");
     }
     cx.setHelperThread(this);
     JS_SetNativeStackQuota(&cx, HELPER_STACK_QUOTA);
 
     while (true) {
         MOZ_ASSERT(idle());
 
-        // Block until a task is available. Save the value of whether we are
-        // going to do an Ion compile, in case the value returned by the method
-        // changes.
-        bool ionCompile = false;
+        js::ThreadType task;
         while (true) {
             if (terminate)
                 return;
-            if ((ionCompile = HelperThreadState().pendingIonCompileHasSufficientPriority(lock)) ||
-                HelperThreadState().canStartWasmCompile(lock) ||
-                HelperThreadState().canStartPromiseTask(lock) ||
-                HelperThreadState().canStartParseTask(lock) ||
-                HelperThreadState().canStartCompressionTask(lock) ||
-                HelperThreadState().canStartGCHelperTask(lock) ||
-                HelperThreadState().canStartGCParallelTask(lock) ||
-                HelperThreadState().canStartIonFreeTask(lock))
-            {
+
+            // Select the task type to run.  Task priority is determined
+            // exclusively here.
+            //
+            // The selectors may depend on the HelperThreadState not changing
+            // between task selection and task execution, in particular, on new
+            // tasks not being added (because of the lifo structure of the work
+            // lists).  Unlocking the HelperThreadState between task selection
+            // and execution is not well-defined.
+
+            if (HelperThreadState().canStartGCParallelTask(lock))
+                task = js::THREAD_TYPE_GCPARALLEL;
+            else if (HelperThreadState().canStartGCHelperTask(lock))
+                task = js::THREAD_TYPE_GCHELPER;
+            else if (HelperThreadState().pendingIonCompileHasSufficientPriority(lock))
+                task = js::THREAD_TYPE_ION;
+            else if (HelperThreadState().canStartWasmCompile(lock))
+                task = js::THREAD_TYPE_WASM;
+            else if (HelperThreadState().canStartPromiseTask(lock))
+                task = js::THREAD_TYPE_PROMISE_TASK;
+            else if (HelperThreadState().canStartParseTask(lock))
+                task = js::THREAD_TYPE_PARSE;
+            else if (HelperThreadState().canStartCompressionTask(lock))
+                task = js::THREAD_TYPE_COMPRESS;
+            else if (HelperThreadState().canStartIonFreeTask(lock))
+                task = js::THREAD_TYPE_ION_FREE;
+            else
+                task = js::THREAD_TYPE_NONE;
+
+            if (task != js::THREAD_TYPE_NONE)
                 break;
-            }
+
             HelperThreadState().wait(lock, GlobalHelperThreadState::PRODUCER);
         }
 
-        if (HelperThreadState().canStartGCParallelTask(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_GCPARALLEL);
+        js::oom::SetThreadType(task);
+        switch (task) {
+          case js::THREAD_TYPE_GCPARALLEL:
             handleGCParallelWorkload(lock);
-        } else if (HelperThreadState().canStartGCHelperTask(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_GCHELPER);
+            break;
+          case js::THREAD_TYPE_GCHELPER:
             handleGCHelperWorkload(lock);
-        } else if (ionCompile) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_ION);
+            break;
+          case js::THREAD_TYPE_ION:
             handleIonWorkload(lock);
-        } else if (HelperThreadState().canStartWasmCompile(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_WASM);
+            break;
+          case js::THREAD_TYPE_WASM:
             handleWasmWorkload(lock);
-        } else if (HelperThreadState().canStartPromiseTask(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_PROMISE_TASK);
+            break;
+          case js::THREAD_TYPE_PROMISE_TASK:
             handlePromiseTaskWorkload(lock);
-        } else if (HelperThreadState().canStartParseTask(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_PARSE);
+            break;
+          case js::THREAD_TYPE_PARSE:
             handleParseWorkload(lock);
-        } else if (HelperThreadState().canStartCompressionTask(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_COMPRESS);
+            break;
+          case js::THREAD_TYPE_COMPRESS:
             handleCompressionWorkload(lock);
-        } else if (HelperThreadState().canStartIonFreeTask(lock)) {
-            js::oom::SetThreadType(js::oom::THREAD_TYPE_ION_FREE);
+            break;
+          case js::THREAD_TYPE_ION_FREE:
             handleIonFreeWorkload(lock);
-        } else {
+            break;
+          default:
             MOZ_CRASH("No task to perform");
         }
+        js::oom::SetThreadType(js::THREAD_TYPE_NONE);
     }
 }
--- a/js/src/vm/HelperThreads.h
+++ b/js/src/vm/HelperThreads.h
@@ -141,20 +141,24 @@ class GlobalHelperThreadState
 
     void lock();
     void unlock();
 #ifdef DEBUG
     bool isLockedByCurrentThread();
 #endif
 
     enum CondVar {
-        // For notifying threads waiting for work that they may be able to make progress.
+        // For notifying threads waiting for work that they may be able to make
+        // progress, ie, a work item has been completed by a helper thread and
+        // the thread that created the work item can now consume it.
         CONSUMER,
 
-        // For notifying threads doing work that they may be able to make progress.
+        // For notifying helper threads doing the work that they may be able to
+        // make progress, ie, a work item has been enqueued and an idle helper
+        // thread may pick up up the work item and perform it.
         PRODUCER,
 
         // For notifying threads doing work which are paused that they may be
         // able to resume making progress.
         PAUSE
     };
 
     void wait(AutoLockHelperThreadState& locked, CondVar which,
@@ -230,20 +234,24 @@ class GlobalHelperThreadState
     bool canStartIonFreeTask(const AutoLockHelperThreadState& lock);
     bool canStartParseTask(const AutoLockHelperThreadState& lock);
     bool canStartCompressionTask(const AutoLockHelperThreadState& lock);
     bool canStartGCHelperTask(const AutoLockHelperThreadState& lock);
     bool canStartGCParallelTask(const AutoLockHelperThreadState& lock);
 
     // Used by a major GC to signal processing enqueued compression tasks.
     void startHandlingCompressionTasks(const AutoLockHelperThreadState&);
+
+  private:
     void scheduleCompressionTasks(const AutoLockHelperThreadState&);
 
-    // Unlike the methods above, the value returned by this method can change
-    // over time, even if the helper thread state lock is held throughout.
+  public:
+    // Unlike the public methods above, the value returned by this method can
+    // change over time, even if the helper thread state lock is held
+    // throughout.
     bool pendingIonCompileHasSufficientPriority(const AutoLockHelperThreadState& lock);
 
     jit::IonBuilder* highestPriorityPendingIonCompile(const AutoLockHelperThreadState& lock,
                                                       bool remove = false);
     HelperThread* lowestPriorityUnpausedIonCompileAtThreshold(
         const AutoLockHelperThreadState& lock);
     HelperThread* highestPriorityPausedIonCompile(const AutoLockHelperThreadState& lock);
 
@@ -305,17 +313,17 @@ class GlobalHelperThreadState
     JSScript* finishScriptDecodeTask(JSContext* cx, void* token);
     bool finishMultiScriptsDecodeTask(JSContext* cx, void* token, MutableHandle<ScriptVector> scripts);
     JSObject* finishModuleParseTask(JSContext* cx, void* token);
 
     bool hasActiveThreads(const AutoLockHelperThreadState&);
     void waitForAllThreads();
 
     template <typename T>
-    bool checkTaskThreadLimit(size_t maxThreads) const;
+    bool checkTaskThreadLimit(size_t maxThreads, bool isMaster = false) const;
 
   private:
 
     /*
      * Lock protecting all mutable shared state accessed by helper threads, and
      * used by all condition variables.
      */
     js::Mutex helperLock;
--- a/js/src/vm/Initialization.cpp
+++ b/js/src/vm/Initialization.cpp
@@ -93,17 +93,17 @@ JS::detail::InitWithFailureDiagnostic(bo
 #ifdef DEBUG
     CheckMessageParameterCounts();
 #endif
 
     RETURN_IF_FAIL(js::TlsContext.init());
 
 #if defined(DEBUG) || defined(JS_OOM_BREAKPOINT)
     RETURN_IF_FAIL(js::oom::InitThreadType());
-    js::oom::SetThreadType(js::oom::THREAD_TYPE_COOPERATING);
+    js::oom::SetThreadType(js::THREAD_TYPE_COOPERATING);
 #endif
 
     RETURN_IF_FAIL(js::Mutex::Init());
 
     RETURN_IF_FAIL(js::wasm::InitInstanceStaticData());
 
     js::gc::InitMemorySubsystem(); // Ensure gc::SystemPageSize() works.
 
--- a/js/src/vm/Stack.cpp
+++ b/js/src/vm/Stack.cpp
@@ -548,17 +548,17 @@ FrameIter::settleOnActivation()
             }
 
             nextJitFrame();
             data_.state_ = JIT;
             return;
         }
 
         if (activation->isWasm()) {
-            data_.wasmFrames_ = wasm::FrameIterator(data_.activations_->asWasm());
+            data_.wasmFrames_ = wasm::WasmFrameIter(data_.activations_->asWasm());
 
             if (data_.wasmFrames_.done()) {
                 ++data_.activations_;
                 continue;
             }
 
             data_.pc_ = nullptr;
             data_.state_ = WASM;
@@ -1074,17 +1074,17 @@ void
 FrameIter::wasmUpdateBytecodeOffset()
 {
     MOZ_RELEASE_ASSERT(data_.state_ == WASM, "Unexpected state");
 
     wasm::DebugFrame* frame = data_.wasmFrames_.debugFrame();
     WasmActivation* activation = data_.activations_->asWasm();
 
     // Relookup the current frame, updating the bytecode offset in the process.
-    data_.wasmFrames_ = wasm::FrameIterator(activation);
+    data_.wasmFrames_ = wasm::WasmFrameIter(activation);
     while (data_.wasmFrames_.debugFrame() != frame)
         ++data_.wasmFrames_;
 
     MOZ_ASSERT(data_.wasmFrames_.debugFrame() == frame);
 }
 
 JSFunction*
 FrameIter::calleeTemplate() const
--- a/js/src/vm/Stack.h
+++ b/js/src/vm/Stack.h
@@ -20,17 +20,17 @@
 #include "gc/Rooting.h"
 #include "jit/JitFrameIterator.h"
 #ifdef CHECK_OSIPOINT_REGISTERS
 #include "jit/Registers.h" // for RegisterDump
 #endif
 #include "js/RootingAPI.h"
 #include "vm/ArgumentsObject.h"
 #include "vm/SavedFrame.h"
-#include "wasm/WasmFrameIterator.h"
+#include "wasm/WasmFrameIter.h"
 #include "wasm/WasmTypes.h"
 
 struct JSCompartment;
 
 namespace JS {
 namespace dbg {
 #ifdef JS_BROKEN_GCC_ATTRIBUTE_WARNING
 #pragma GCC diagnostic push
@@ -1762,17 +1762,17 @@ class WasmActivation : public Activation
     // simulator) and cleared by WasmHandleExecutionInterrupt or WasmHandleThrow
     // when the interrupt is handled.
     void startInterrupt(const JS::ProfilingFrameIterator::RegisterState& state);
     void finishInterrupt();
     bool interrupted() const;
     void* unwindPC() const;
     void* resumePC() const;
 
-    // Used by wasm::FrameIterator during stack unwinding.
+    // Used by wasm::WasmFrameIter during stack unwinding.
     void unwindExitFP(wasm::Frame* exitFP);
 };
 
 // A FrameIter walks over a context's stack of JS script activations,
 // abstracting over whether the JS scripts were running in the interpreter or
 // different modes of compiled code.
 //
 // FrameIter is parameterized by what it includes in the stack iteration:
@@ -1807,17 +1807,17 @@ class FrameIter
 
         jsbytecode *        pc_;
 
         InterpreterFrameIterator interpFrames_;
         ActivationIterator activations_;
 
         jit::JitFrameIterator jitFrames_;
         unsigned ionInlineFrameNo_;
-        wasm::FrameIterator wasmFrames_;
+        wasm::WasmFrameIter wasmFrames_;
 
         Data(JSContext* cx, DebuggerEvalOption debuggerEvalOption, JSPrincipals* principals);
         Data(JSContext* cx, const CooperatingContext& target, DebuggerEvalOption debuggerEvalOption);
         Data(const Data& other);
     };
 
     explicit FrameIter(JSContext* cx,
                        DebuggerEvalOption = FOLLOW_DEBUGGER_EVAL_PREV_LINK);
--- a/js/src/wasm/WasmBuiltins.cpp
+++ b/js/src/wasm/WasmBuiltins.cpp
@@ -97,17 +97,17 @@ WasmHandleExecutionInterrupt()
 
 static bool
 WasmHandleDebugTrap()
 {
     WasmActivation* activation = CallingActivation();
     MOZ_ASSERT(activation);
     JSContext* cx = activation->cx();
 
-    FrameIterator iter(activation);
+    WasmFrameIter iter(activation);
     MOZ_ASSERT(iter.debugEnabled());
     const CallSite* site = iter.debugTrapCallsite();
     MOZ_ASSERT(site);
     if (site->kind() == CallSite::EnterFrame) {
         if (!iter.instance()->enterFrameTrapsEnabled())
             return true;
         DebugFrame* frame = iter.debugFrame();
         frame->setIsDebuggee();
@@ -164,28 +164,28 @@ WasmHandleDebugTrap()
 // value is the new stack address which the calling stub will set to the sp
 // register before executing a return instruction.
 static void*
 WasmHandleThrow()
 {
     WasmActivation* activation = CallingActivation();
     JSContext* cx = activation->cx();
 
-    // FrameIterator iterates down wasm frames in the activation starting at
+    // WasmFrameIter iterates down wasm frames in the activation starting at
     // WasmActivation::exitFP. Pass Unwind::True to pop WasmActivation::exitFP
-    // once each time FrameIterator is incremented, ultimately leaving exitFP
-    // null when the FrameIterator is done(). This is necessary to prevent a
+    // once each time WasmFrameIter is incremented, ultimately leaving exitFP
+    // null when the WasmFrameIter is done().  This is necessary to prevent a
     // DebugFrame from being observed again after we just called onLeaveFrame
     // (which would lead to the frame being re-added to the map of live frames,
     // right as it becomes trash).
-    FrameIterator iter(activation, FrameIterator::Unwind::True);
+    WasmFrameIter iter(activation, WasmFrameIter::Unwind::True);
     MOZ_ASSERT(!iter.done());
 
     // Live wasm code on the stack is kept alive (in wasm::TraceActivations) by
-    // marking the instance of every wasm::Frame found by FrameIterator.
+    // marking the instance of every wasm::Frame found by WasmFrameIter.
     // However, as explained above, we're popping frames while iterating which
     // means that a GC during this loop could collect the code of frames whose
     // code is still on the stack. This is actually mostly fine: as soon as we
     // return to the throw stub, the entire stack will be popped as a whole,
     // returning to the C++ caller. However, we must keep the throw stub alive
     // itself which is owned by the innermost instance.
     RootedWasmInstanceObject keepAlive(cx, iter.instance()->object());
 
--- a/js/src/wasm/WasmCode.h
+++ b/js/src/wasm/WasmCode.h
@@ -29,17 +29,16 @@ struct AsmJSMetadata;
 class WasmInstanceObject;
 
 namespace wasm {
 
 struct LinkData;
 struct LinkDataTier;
 struct Metadata;
 struct MetadataTier;
-class FrameIterator;
 
 // ShareableBytes is a reference-counted Vector of bytes.
 
 struct ShareableBytes : ShareableBase<ShareableBytes>
 {
     // Vector is 'final', so instead make Vector a member and add boilerplate.
     Bytes bytes;
     size_t sizeOfExcludingThis(MallocSizeOf m) const { return bytes.sizeOfExcludingThis(m); }
rename from js/src/wasm/WasmFrameIterator.cpp
rename to js/src/wasm/WasmFrameIter.cpp
--- a/js/src/wasm/WasmFrameIterator.cpp
+++ b/js/src/wasm/WasmFrameIter.cpp
@@ -11,45 +11,45 @@
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
-#include "wasm/WasmFrameIterator.h"
+#include "wasm/WasmFrameIter.h"
 
 #include "wasm/WasmInstance.h"
 
 #include "jit/MacroAssembler-inl.h"
 
 using namespace js;
 using namespace js::jit;
 using namespace js::wasm;
 
 using mozilla::DebugOnly;
 using mozilla::Swap;
 
 /*****************************************************************************/
-// FrameIterator implementation
+// WasmFrameIter implementation
 
-FrameIterator::FrameIterator()
+WasmFrameIter::WasmFrameIter()
   : activation_(nullptr),
     code_(nullptr),
     callsite_(nullptr),
     codeRange_(nullptr),
     fp_(nullptr),
     unwind_(Unwind::False),
     unwoundAddressOfReturnAddress_(nullptr)
 {
     MOZ_ASSERT(done());
 }
 
-FrameIterator::FrameIterator(WasmActivation* activation, Unwind unwind)
+WasmFrameIter::WasmFrameIter(WasmActivation* activation, Unwind unwind)
   : activation_(activation),
     code_(nullptr),
     callsite_(nullptr),
     codeRange_(nullptr),
     fp_(activation->exitFP()),
     unwind_(unwind)
 {
     MOZ_ASSERT(fp_);
@@ -78,25 +78,25 @@ FrameIterator::FrameIterator(WasmActivat
 
     codeRange_ = code_->lookupRange(activation->unwindPC());
     MOZ_ASSERT(codeRange_->kind() == CodeRange::Function);
 
     MOZ_ASSERT(!done());
 }
 
 bool
-FrameIterator::done() const
+WasmFrameIter::done() const
 {
     MOZ_ASSERT(!!fp_ == !!code_);
     MOZ_ASSERT(!!fp_ == !!codeRange_);
     return !fp_;
 }
 
 void
-FrameIterator::operator++()
+WasmFrameIter::operator++()
 {
     MOZ_ASSERT(!done());
 
     // When the iterator is set to Unwind::True, each time the iterator pops a
     // frame, the WasmActivation is updated so that the just-popped frame
     // is no longer visible. This is necessary since Debugger::onLeaveFrame is
     // called before popping each frame and, once onLeaveFrame is called for a
     // given frame, that frame must not be visible to subsequent stack iteration
@@ -110,17 +110,17 @@ FrameIterator::operator++()
             activation_->finishInterrupt();
         activation_->unwindExitFP(fp_);
     }
 
     popFrame();
 }
 
 void
-FrameIterator::popFrame()
+WasmFrameIter::popFrame()
 {
     Frame* prevFP = fp_;
     fp_ = prevFP->callerFP;
 
     if (!fp_) {
         code_ = nullptr;
         codeRange_ = nullptr;
         callsite_ = nullptr;
@@ -144,99 +144,99 @@ FrameIterator::popFrame()
 
     callsite_ = code_->lookupCallSite(returnAddress);
     MOZ_ASSERT(callsite_);
 
     MOZ_ASSERT(!done());
 }
 
 const char*
-FrameIterator::filename() const
+WasmFrameIter::filename() const
 {
     MOZ_ASSERT(!done());
     return code_->metadata().filename.get();
 }
 
 const char16_t*
-FrameIterator::displayURL() const
+WasmFrameIter::displayURL() const
 {
     MOZ_ASSERT(!done());
     return code_->metadata().displayURL();
 }
 
 bool
-FrameIterator::mutedErrors() const
+WasmFrameIter::mutedErrors() const
 {
     MOZ_ASSERT(!done());
     return code_->metadata().mutedErrors();
 }
 
 JSAtom*
-FrameIterator::functionDisplayAtom() const
+WasmFrameIter::functionDisplayAtom() const
 {
     MOZ_ASSERT(!done());
 
     JSContext* cx = activation_->cx();
     JSAtom* atom = instance()->getFuncAtom(cx, codeRange_->funcIndex());
     if (!atom) {
         cx->clearPendingException();
         return cx->names().empty;
     }
 
     return atom;
 }
 
 unsigned
-FrameIterator::lineOrBytecode() const
+WasmFrameIter::lineOrBytecode() const
 {
     MOZ_ASSERT(!done());
     MOZ_ASSERT_IF(!callsite_, activation_->interrupted());
     return callsite_ ? callsite_->lineOrBytecode() : codeRange_->funcLineOrBytecode();
 }
 
 Instance*
-FrameIterator::instance() const
+WasmFrameIter::instance() const
 {
     MOZ_ASSERT(!done());
     return fp_->tls->instance;
 }
 
 void**
-FrameIterator::unwoundAddressOfReturnAddress() const
+WasmFrameIter::unwoundAddressOfReturnAddress() const
 {
     MOZ_ASSERT(done());
     MOZ_ASSERT(unwind_ == Unwind::True);
     MOZ_ASSERT(unwoundAddressOfReturnAddress_);
     return unwoundAddressOfReturnAddress_;
 }
 
 bool
-FrameIterator::debugEnabled() const
+WasmFrameIter::debugEnabled() const
 {
     MOZ_ASSERT(!done());
 
     // Only non-imported functions can have debug frames.
     //
     // Metadata::debugEnabled is only set if debugging is actually enabled (both
     // requested, and available via baseline compilation), and Tier::Debug code
     // will be available.
     return code_->metadata().debugEnabled &&
            codeRange_->funcIndex() >= code_->metadata(Tier::Debug).funcImports.length();
 }
 
 DebugFrame*
-FrameIterator::debugFrame() const
+WasmFrameIter::debugFrame() const
 {
     MOZ_ASSERT(!done());
     MOZ_ASSERT(debugEnabled());
     return reinterpret_cast<DebugFrame*>((uint8_t*)fp_ - DebugFrame::offsetOfFrame());
 }
 
 const CallSite*
-FrameIterator::debugTrapCallsite() const
+WasmFrameIter::debugTrapCallsite() const
 {
     MOZ_ASSERT(!done());
     MOZ_ASSERT(callsite_);
     MOZ_ASSERT(debugEnabled());
     MOZ_ASSERT(callsite_->kind() == CallSite::EnterFrame ||
                callsite_->kind() == CallSite::LeaveFrame ||
                callsite_->kind() == CallSite::Breakpoint);
     return callsite_;
@@ -1004,17 +1004,17 @@ ProfilingFrameIterator::label() const
     MOZ_CRASH("bad code range kind");
 }
 
 void
 wasm::TraceActivations(JSContext* cx, const CooperatingContext& target, JSTracer* trc)
 {
     for (ActivationIterator iter(cx, target); !iter.done(); ++iter) {
         if (iter.activation()->isWasm()) {
-            for (FrameIterator fi(iter.activation()->asWasm()); !fi.done(); ++fi)
+            for (WasmFrameIter fi(iter.activation()->asWasm()); !fi.done(); ++fi)
                 fi.instance()->trace(trc);
         }
     }
 }
 
 Instance*
 wasm::LookupFaultingInstance(WasmActivation* activation, void* pc, void* fp)
 {
rename from js/src/wasm/WasmFrameIterator.h
rename to js/src/wasm/WasmFrameIter.h
--- a/js/src/wasm/WasmFrameIterator.h
+++ b/js/src/wasm/WasmFrameIter.h
@@ -11,18 +11,18 @@
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
-#ifndef wasm_frame_iterator_h
-#define wasm_frame_iterator_h
+#ifndef wasm_frame_iter_h
+#define wasm_frame_iter_h
 
 #include "js/ProfilingFrameIterator.h"
 
 class JSAtom;
 
 namespace js {
 
 class WasmActivation;
@@ -44,35 +44,35 @@ struct CallableOffsets;
 // Iterates over the frames of a single WasmActivation, called synchronously
 // from C++ in the thread of the asm.js.
 //
 // The one exception is that this iterator may be called from the interrupt
 // callback which may be called asynchronously from asm.js code; in this case,
 // the backtrace may not be correct. That being said, we try our best printing
 // an informative message to the user and at least the name of the innermost
 // function stack frame.
-class FrameIterator
+class WasmFrameIter
 {
   public:
     enum class Unwind { True, False };
 
   private:
     WasmActivation* activation_;
     const Code* code_;
     const CallSite* callsite_;
     const CodeRange* codeRange_;
     Frame* fp_;
     Unwind unwind_;
     void** unwoundAddressOfReturnAddress_;
 
     void popFrame();
 
   public:
-    explicit FrameIterator();
-    explicit FrameIterator(WasmActivation* activation, Unwind unwind = Unwind::False);
+    explicit WasmFrameIter();
+    explicit WasmFrameIter(WasmActivation* activation, Unwind unwind = Unwind::False);
     void operator++();
     bool done() const;
     const char* filename() const;
     const char16_t* displayURL() const;
     bool mutedErrors() const;
     JSAtom* functionDisplayAtom() const;
     unsigned lineOrBytecode() const;
     const CodeRange* codeRange() const { return codeRange_; }
@@ -231,9 +231,9 @@ typedef JS::ProfilingFrameIterator::Regi
 
 bool
 StartUnwinding(const WasmActivation& activation, const RegisterState& registers,
                UnwindState* unwindState, bool* unwoundCaller);
 
 } // namespace wasm
 } // namespace js
 
-#endif // wasm_frame_iterator_h
+#endif // wasm_frame_iter_h
--- a/layout/painting/nsDisplayList.cpp
+++ b/layout/painting/nsDisplayList.cpp
@@ -6152,16 +6152,17 @@ nsDisplayOpacity::CreateWebRenderCommand
                            aBuilder,
                            aDisplayListBuilder,
                            this,
                            &mList,
                            nullptr,
                            animationsId,
                            opacityForSC,
                            nullptr,
+                           nullptr,
                            filters);
 
   aManager->CreateWebRenderCommandsFromDisplayList(&mList,
                                                    aDisplayListBuilder,
                                                    sc,
                                                    aBuilder);
   return true;
 }
@@ -6203,17 +6204,17 @@ bool
 nsDisplayBlendMode::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
                                             const StackingContextHelper& aSc,
                                             nsTArray<WebRenderParentCommand>& aParentCommands,
                                             mozilla::layers::WebRenderLayerManager* aManager,
                                             nsDisplayListBuilder* aDisplayListBuilder)
 {
   nsTArray<mozilla::wr::WrFilterOp> filters;
   StackingContextHelper sc(aSc, aBuilder, aDisplayListBuilder, this,
-                           &mList, nullptr, 0, nullptr, nullptr,
+                           &mList, nullptr, 0, nullptr, nullptr, nullptr,
                            filters, nsCSSRendering::GetGFXBlendMode(mBlendMode));
 
   return nsDisplayWrapList::CreateWebRenderCommands(aBuilder, sc, aParentCommands,
                                                     aManager, aDisplayListBuilder);
 }
 
 // nsDisplayBlendMode uses layers for rendering
 already_AddRefed<Layer>
@@ -7848,16 +7849,17 @@ nsDisplayTransform::CreateWebRenderComma
                            aBuilder,
                            aDisplayListBuilder,
                            this,
                            mStoredList.GetChildren(),
                            &boundTransform,
                            animationsId,
                            nullptr,
                            transformForSC,
+                           nullptr,
                            filters);
 
   return mStoredList.CreateWebRenderCommands(aBuilder, sc, aParentCommands,
                                              aManager, aDisplayListBuilder);
 }
 
 already_AddRefed<Layer> nsDisplayTransform::BuildLayer(nsDisplayListBuilder *aBuilder,
                                                        LayerManager *aManager,
@@ -8430,16 +8432,71 @@ nsDisplayPerspective::BuildLayer(nsDispl
 LayerState
 nsDisplayPerspective::GetLayerState(nsDisplayListBuilder* aBuilder,
                                     LayerManager* aManager,
                                     const ContainerLayerParameters& aParameters)
 {
   return LAYER_ACTIVE_FORCE;
 }
 
+bool
+nsDisplayPerspective::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
+                                              const StackingContextHelper& aSc,
+                                              nsTArray<WebRenderParentCommand>& aParentCommands,
+                                              WebRenderLayerManager* aManager,
+                                              nsDisplayListBuilder* aDisplayListBuilder)
+{
+  float appUnitsPerPixel = mFrame->PresContext()->AppUnitsPerDevPixel();
+  Matrix4x4 perspectiveMatrix;
+  DebugOnly<bool> hasPerspective =
+    nsDisplayTransform::ComputePerspectiveMatrix(mTransformFrame, appUnitsPerPixel,
+                                                 perspectiveMatrix);
+  MOZ_ASSERT(hasPerspective, "Why did we create nsDisplayPerspective?");
+
+  /*
+   * ClipListToRange can remove our child after we were created.
+   */
+  if (!mList.GetChildren()->GetTop()) {
+    return false;
+  }
+
+  /*
+   * The resulting matrix is still in the coordinate space of the transformed
+   * frame. Append a translation to the reference frame coordinates.
+   */
+  nsDisplayTransform* transform =
+    static_cast<nsDisplayTransform*>(mList.GetChildren()->GetTop());
+
+  Point3D newOrigin =
+    Point3D(NSAppUnitsToFloatPixels(transform->ToReferenceFrame().x, appUnitsPerPixel),
+            NSAppUnitsToFloatPixels(transform->ToReferenceFrame().y, appUnitsPerPixel),
+            0.0f);
+  Point3D roundedOrigin(NS_round(newOrigin.x),
+                        NS_round(newOrigin.y),
+                        0);
+
+  gfx::Matrix4x4 transformForSC = gfx::Matrix4x4::Translation(roundedOrigin);
+
+  nsTArray<mozilla::wr::WrFilterOp> filters;
+  StackingContextHelper sc(aSc,
+                           aBuilder,
+                           aDisplayListBuilder,
+                           this,
+                           mList.GetChildren(),
+                           nullptr,
+                           0,
+                           nullptr,
+                           &transformForSC,
+                           &perspectiveMatrix,
+                           filters);
+
+  return mList.CreateWebRenderCommands(aBuilder, sc, aParentCommands,
+                                       aManager, aDisplayListBuilder);
+}
+
 int32_t
 nsDisplayPerspective::ZIndex() const
 {
   return ZIndexForFrame(mTransformFrame);
 }
 
 nsDisplayItemGeometry*
 nsCharClipDisplayItem::AllocateGeometry(nsDisplayListBuilder* aBuilder)
@@ -9194,16 +9251,17 @@ nsDisplayFilter::CreateWebRenderCommands
                            aBuilder,
                            aDisplayListBuilder,
                            this,
                            &mList,
                            nullptr,
                            0,
                            nullptr,
                            nullptr,
+                           nullptr,
                            wrFilters);
 
   nsDisplaySVGEffects::CreateWebRenderCommands(aBuilder, sc, aParentCommands, aManager, aDisplayListBuilder);
   return true;
 }
 
 #ifdef MOZ_DUMP_PAINTING
 void
--- a/layout/painting/nsDisplayList.h
+++ b/layout/painting/nsDisplayList.h
@@ -5089,16 +5089,21 @@ public:
   virtual mozilla::Maybe<nscolor> IsUniform(nsDisplayListBuilder* aBuilder) override
   {
     return mList.IsUniform(aBuilder);
   }
 
   virtual LayerState GetLayerState(nsDisplayListBuilder* aBuilder,
                                    LayerManager* aManager,
                                    const ContainerLayerParameters& aParameters) override;
+  bool CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
+                               const StackingContextHelper& aSc,
+                               nsTArray<WebRenderParentCommand>& aParentCommands,
+                               mozilla::layers::WebRenderLayerManager* aManager,
+                               nsDisplayListBuilder* aDisplayListBuilder) override;
 
   virtual bool ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder) override
   {
     if (!mList.GetChildren()->GetTop()) {
       return false;
     }
     return mList.GetChildren()->GetTop()->ShouldBuildLayerEvenIfInvisible(aBuilder);
   }
--- a/mobile/android/base/java/org/mozilla/gecko/customtabs/CustomTabsActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/customtabs/CustomTabsActivity.java
@@ -525,16 +525,30 @@ public class CustomTabsActivity extends 
     }
 
     @Override
     public void onCanGoForward(GeckoView view, boolean canGoForward) {
         mCanGoForward = canGoForward;
         updateMenuItemForward();
     }
 
+    @Override
+    public void onLoadUri(final GeckoView view, final String uriStr,
+                          final TargetWindow where) {
+        final Uri uri = Uri.parse(uriStr);
+        if (!TextUtils.isEmpty(mCurrentUrl) &&
+            Uri.parse(mCurrentUrl).getHost().equals(uri.getHost())) {
+            view.loadUri(uri);
+        } else {
+            final Intent intent = new Intent(Intent.ACTION_VIEW);
+            intent.setData(uri);
+            startActivity(intent);
+        }
+    }
+
     /* GeckoView.ProgressListener */
     @Override
     public void onPageStart(GeckoView view, String url) {
         mCurrentUrl = url;
         mCanStop = true;
         updateActionBar();
         updateCanStop();
         updateProgress(20);
--- a/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
@@ -257,9 +257,21 @@ public class WebAppActivity extends AppC
 
     @Override
     public void onCanGoBack(GeckoView view, boolean canGoBack) {
     }
 
     @Override
     public void onCanGoForward(GeckoView view, boolean canGoForward) {
     }
+
+    @Override
+    public void onLoadUri(final GeckoView view, final String uri,
+                             final TargetWindow where) {
+        if (isInScope(uri)) {
+            view.loadUri(uri);
+        } else {
+            final Intent intent = new Intent(Intent.ACTION_VIEW);
+            intent.setData(Uri.parse(uri));
+            startActivity(intent);
+        }
+    }
 }
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -3419,19 +3419,32 @@ nsBrowserAccess.prototype = {
         referrerURI: referrer,
         triggeringPrincipal: aTriggeringPrincipal,
       });
     }
 
     return browser;
   },
 
-  openURI: function browser_openURI(aURI, aOpener, aWhere, aFlags, aTriggeringPrincipal) {
-    let browser = this._getBrowser(aURI, aOpener, aWhere, aFlags, aTriggeringPrincipal);
-    return browser ? browser.contentWindow : null;
+  openURI: function browser_openURI(aURI, aOpener, aWhere, aFlags,
+                                    aTriggeringPrincipal) {
+    if (!aURI) {
+      throw "Can't open an empty uri";
+    }
+    let browser = this._getBrowser(aURI, aOpener, aWhere, aFlags,
+                                   aTriggeringPrincipal);
+    return browser && browser.contentWindow;
+  },
+
+  createContentWindow: function browser_createContentWindow(
+                                aURI, aOpener, aWhere, aFlags,
+                                aTriggeringPrincipal) {
+    let browser = this._getBrowser(null, aOpener, aWhere, aFlags,
+                                   aTriggeringPrincipal);
+    return browser && browser.contentWindow;
   },
 
   openURIInFrame: function browser_openURIInFrame(aURI, aParams, aWhere, aFlags,
                                                   aNextTabParentId, aName) {
     // We currently ignore aNextTabParentId on mobile.  This needs to change
     // when Fennec starts to support e10s.  Assertions will fire if this code
     // isn't fixed by then.
     //
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java
@@ -123,32 +123,40 @@ public class GeckoView extends LayerView
                     listener.onFullScreen(GeckoView.this, false);
                 }
             }
         };
 
     private final GeckoViewHandler<NavigationListener> mNavigationHandler =
         new GeckoViewHandler<NavigationListener>(
             "GeckoViewNavigation", this,
-            new String[]{ "GeckoView:LocationChange" }
+            new String[]{
+                "GeckoView:LocationChange",
+                "GeckoView:OnLoadUri"
+            }
         ) {
             @Override
             public void handleMessage(final NavigationListener listener,
                                       final String event,
                                       final GeckoBundle message,
                                       final EventCallback callback) {
                 if ("GeckoView:LocationChange".equals(event)) {
                     listener.onLocationChange(GeckoView.this,
                                               message.getString("uri"));
                     listener.onCanGoBack(GeckoView.this,
                                          message.getBoolean("canGoBack"));
                     listener.onCanGoForward(GeckoView.this,
                                             message.getBoolean("canGoForward"));
+                } else if ("GeckoView:OnLoadUri".equals(event)) {
+                    final String uri = message.getString("uri");
+                    final NavigationListener.TargetWindow where =
+                        NavigationListener.TargetWindow.get(
+                            message.getInt("where"));
+                    listener.onLoadUri(GeckoView.this, uri, where);
                 }
-
             }
         };
 
     private final GeckoViewHandler<ProgressListener> mProgressHandler =
         new GeckoViewHandler<ProgressListener>(
             "GeckoViewProgress", this,
             new String[]{
                 "GeckoView:PageStart",
@@ -1374,16 +1382,54 @@ public class GeckoView extends LayerView
         void onCanGoBack(GeckoView view, boolean canGoBack);
 
         /**
         * The view's ability to go forward has changed.
         * @param view The GeckoView that initiated the callback.
         * @param canGoForward The new value for the ability.
         */
         void onCanGoForward(GeckoView view, boolean canGoForward);
+
+        enum TargetWindow {
+            DEFAULT(0),
+            CURRENT(1),
+            NEW(2),
+            NEWTAB(3),
+            SWITCHTAB(4);
+
+            private static final TargetWindow[] sValues = TargetWindow.values();
+            private int mValue;
+
+            private TargetWindow(int value) {
+                mValue = value;
+            }
+
+            public static TargetWindow get(int value) {
+                return sValues[value];
+            }
+        }
+
+        enum LoadUriResult {
+            HANDLED(0),
+            LOAD_IN_FRAME(1);
+
+            private int mValue;
+
+            private LoadUriResult(int value) {
+                mValue = value;
+            }
+        }
+
+        /**
+        * A request to open an URI.
+        * @param view The GeckoView that initiated the callback.
+        * @param uri The URI to be loaded.
+        * @param where The target window.
+        */
+        void onLoadUri(GeckoView view, String uri, TargetWindow where);
     }
 
     /**
      * GeckoView applications implement this interface to handle prompts triggered by
      * content in the GeckoView, such as alerts, authentication dialogs, and select list
      * pickers.
      **/
     public interface PromptDelegate {
--- a/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/GeckoViewActivity.java
+++ b/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/GeckoViewActivity.java
@@ -262,9 +262,31 @@ public class GeckoViewActivity extends A
             normalizeMediaName(video);
             normalizeMediaName(audio);
 
             final BasicGeckoViewPrompt prompt = (BasicGeckoViewPrompt)
                     mGeckoView.getPromptDelegate();
             prompt.promptForMedia(view, title, video, audio, callback);
         }
     }
+
+    private class Navigation implements GeckoView.NavigationListener {
+        @Override
+        public void onLocationChange(GeckoView view, final String url) {
+        }
+
+        @Override
+        public void onCanGoBack(GeckoView view, boolean canGoBack) {
+        }
+
+        @Override
+        public void onCanGoForward(GeckoView view, boolean value) {
+        }
+
+        @Override
+        public void onLoadUri(final GeckoView view, final String uri,
+                              final TargetWindow where) {
+            Log.d(LOGTAG, "onLoadUriExternal=" + uri +
+                          " where=" + where);
+            view.loadUri(uri);
+        }
+    }
 }
--- a/mobile/android/modules/geckoview/GeckoViewNavigation.jsm
+++ b/mobile/android/modules/geckoview/GeckoViewNavigation.jsm
@@ -65,21 +65,71 @@ class GeckoViewNavigation extends GeckoV
     }
   }
 
   // Message manager event handler.
   receiveMessage(aMsg) {
     debug("receiveMessage " + aMsg.name);
   }
 
+  // nsIBrowserDOMWindow::createContentWindow implementation.
+  createContentWindow(aUri, aOpener, aWhere, aFlags, aTriggeringPrincipal) {
+    debug("createContentWindow: aUri=" + (aUri && aUri.spec) +
+          " aWhere=" + aWhere +
+          " aFlags=" + aFlags);
+
+    if (!aUri) {
+      throw Cr.NS_ERROR_ABORT;
+    }
+
+    if (aWhere === Ci.nsIBrowserDOMWindow.OPEN_DEFAULTWINDOW ||
+        aWhere === Ci.nsIBrowserDOMWindow.OPEN_CURRENTWINDOW) {
+      return this.browser.contentWindow;
+    }
+
+    let message = {
+      type: "GeckoView:OnLoadUri",
+      uri: aUri.spec,
+      where: aWhere,
+      flags: aFlags
+    };
+
+    debug("dispatch " + JSON.stringify(message));
+
+    this.eventDispatcher.sendRequest(message);
+
+    throw Cr.NS_ERROR_ABORT;
+  }
+
   // nsIBrowserDOMWindow::openURI implementation.
-  openURI(aUri, aOpener, aWhere, aFlags) {
-    debug("openURI: aUri.spec=" + aUri.spec);
-    // nsIWebNavigation::loadURI(URI, loadFlags, referrer, postData, headers).
-    this.browser.loadURI(aUri.spec, null, null, null);
+  openURI(aUri, aOpener, aWhere, aFlags, aTriggeringPrincipal) {
+    return this.createContentWindow(aUri, aOpener, aWhere, aFlags,
+                                    aTriggeringPrincipal);
+  }
+
+  // nsIBrowserDOMWindow::openURIInFrame implementation.
+  openURIInFrame(aUri, aParams, aWhere, aFlags, aNextTabParentId, aName) {
+    debug("openURIInFrame: aUri=" + (aUri && aUri.spec) +
+          " aParams=" + aParams +
+          " aWhere=" + aWhere +
+          " aFlags=" + aFlags +
+          " aNextTabParentId=" + aNextTabParentId +
+          " aName=" + aName);
+
+    if (aWhere === Ci.nsIBrowserDOMWindow.OPEN_DEFAULTWINDOW ||
+        aWhere === Ci.nsIBrowserDOMWindow.OPEN_CURRENTWINDOW) {
+      return this.browser.QueryInterface(Ci.nsIFrameLoaderOwner);
+    }
+
+    throw Cr.NS_ERROR_ABORT;
+  }
+
+  isTabContentWindow(aWindow) {
+    debug("isTabContentWindow " + this.browser.contentWindow === aWindow);
+    return this.browser.contentWindow === aWindow;
   }
 
   // nsIBrowserDOMWindow::canClose implementation.
   canClose() {
     debug("canClose");
     return false;
   }
 
--- a/python/mozbuild/mozbuild/repackaging/dmg.py
+++ b/python/mozbuild/mozbuild/repackaging/dmg.py
@@ -1,12 +1,13 @@
 # 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/.
 
+import errno
 import os
 import tempfile
 import tarfile
 import shutil
 import mozpack.path as mozpath
 from mozpack.dmg import create_dmg
 from application_ini import get_application_ini_value
 
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1135,9 +1135,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 = 479;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1511109988664000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1511196946849000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -39,17 +39,16 @@ 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: could not connect to host
 12vpn.org: could not connect to host
 12vpnchina.com: could not connect to host
 1536.cf: could not connect to host
 163pwd.com: could not connect to host
-166166.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
 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
@@ -79,17 +78,17 @@ 2ss.jp: did not receive HSTS header
 300651.ru: did not receive HSTS header
 300m.com: did not receive HSTS header
 300mbmovies4u.cc: could not connect to host
 301.website: could not connect to host
 302.nyc: could not connect to host
 32ph.com: could not connect to host
 33drugstore.com: did not receive HSTS header
 341.com: max-age too low: 0
-341.mg: did not receive HSTS header
+341.mg: could not connect to host
 3555.com: max-age too low: 0
 3555aa.com: could not connect to host
 360gradus.com: did not receive HSTS header
 365.or.jp: could not connect to host
 368mibn.com: could not connect to host
 3778.com: max-age too low: 0
 38sihu.com: could not connect to host
 39988.com: max-age too low: 0
@@ -145,17 +144,16 @@ 887766.com: max-age too low: 0
 888lu.co: could not connect to host
 90smthng.com: could not connect to host
 911911.pw: could not connect to host
 922.be: could not connect to host
 960news.ca: could not connect to host
 9651678.ru: could not connect to host
 99511.fi: did not receive HSTS header
 9995.com: max-age too low: 0
-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
 a.ai: could not connect to host
 a1-autopartsglasgow.com: did not receive HSTS header
 a3workshop.swiss: could not connect to host
@@ -260,30 +258,28 @@ afp548.tk: could not connect to host
 afvallendoeje.nu: could not connect to host
 afyou.co.kr: could not connect to host
 agalaxyfarfaraway.co.uk: could not connect to host
 agate.pw: did not receive HSTS header
 agatheetraphael.fr: could not connect to host
 agbremen.de: did not receive HSTS header
 agentseeker.ca: did not receive HSTS header
 agevio.com: could not connect to host
-agileui.com: could not connect to host
 agrimap.com: did not receive HSTS header
 agro-id.gov.ua: did not receive HSTS header
 agroglass.com.br: did not receive HSTS header
 ahabingo.com: did not receive HSTS header
 ahoynetwork.com: did not receive HSTS header
 ahri.ovh: could not connect to host
 aicial.co.uk: could not connect to host
 aicial.com: could not connect to host
 aicial.com.au: could not connect to host
 aidanwoods.com: did not receive HSTS header
 aids.gov: did not receive HSTS header
 aify.eu: could not connect to host
-aintevenmad.ch: could not connect to host
 aiponne.com: could not connect to host
 aircomms.com: did not receive HSTS header
 airlea.com: could not connect to host
 airlinecheckins.com: did not receive HSTS header
 airproto.com: could not connect to host
 aishnair.com: could not connect to host
 aiticon.de: did not receive HSTS header
 aiw-thkoeln.online: could not connect to host
@@ -314,17 +310,16 @@ alecvannoten.be: did not receive HSTS he
 alenan.org: could not connect to host
 alessandro.pw: did not receive HSTS header
 alethearose.com: did not receive HSTS header
 alexandre.sh: did not receive HSTS header
 alexberts.ch: did not receive HSTS header
 alexei.su: could not connect to host
 alexvetter.de: could not connect to host
 alfa24.pro: could not connect to host
-alinode.com: could not connect to host
 alisync.com: could not connect to host
 alittlebitcheeky.com: did not receive HSTS header
 aljmz.com: did not receive HSTS header
 alkami.com: did not receive HSTS header
 all-subtitles.com: could not connect to host
 all.tf: could not connect to host
 alldaymonitoring.com: could not connect to host
 allinnote.com: could not connect to host
@@ -360,16 +355,17 @@ amcvega.com: did not receive HSTS header
 american-truck-simulator.de: could not connect to host
 american-truck-simulator.net: could not connect to host
 americanworkwear.nl: 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: could not connect to host
 amlvfs.net: could not connect to host
 amoory.com: did not receive HSTS header
 amoozesh98.com: did not receive HSTS header
 amri.nl: did not receive HSTS header
 anabol.nl: could not connect to host
 anadoluefessporkulubu.org: could not connect to host
 anagra.ms: could not connect to host
@@ -406,16 +402,17 @@ animesharp.com: could not connect to hos
 animurecs.com: did not receive HSTS header
 aniplus.cf: could not connect to host
 aniplus.gq: could not connect to host
 aniplus.ml: could not connect to host
 anitklib.ml: could not connect to host
 ankakaak.com: could not connect to host
 ankaraprofesyonelnakliyat.com: did not receive HSTS header
 ankaraprofesyonelnakliyat.com.tr: did not receive HSTS header
+ankaraprofesyonelwebtasarim.com: could not connect to host
 ankarayilmaznakliyat.com: did not receive HSTS header
 ankarayucelnakliyat.com: did not receive HSTS header
 annabellaw.com: did not receive HSTS header
 anomaly.ws: did not receive HSTS header
 anonymo.co.uk: could not connect to host
 anonymo.uk: could not connect to host
 anonymousstatecollegelulzsec.com: could not connect to host
 anook.com: max-age too low: 0
@@ -452,47 +449,46 @@ apnakliyat.com: did not receive HSTS hea
 apolloyl.com: could not connect to host
 aponkral.site: could not connect to host
 aponkralsunucu.com: could not connect to host
 aponow.de: did not receive HSTS header
 app-arena.com: did not receive HSTS header
 app.lookout.com: did not receive HSTS header
 app.manilla.com: could not connect to host
 appart.ninja: could not connect to host
-appartementhaus-badria.de: could not connect to host
 appdb.cc: did not receive HSTS header
 appengine.google.com: did not receive HSTS header (error ignored - included regardless)
 apple.ax: could not connect to host
 applewatch.co.nz: could not connect to host
 applez.xyz: could not connect to host
 applic8.com: did not receive HSTS header
 appraisal-comps.com: could not connect to host
 appreciationkards.com: did not receive HSTS header
 approlys.fr: did not receive HSTS header
 apps-for-fishing.com: could not connect to host
 appsbystudio.co.uk: did not receive HSTS header
 appsdash.io: could not connect to host
 aqilacademy.com.au: could not connect to host
-aqualogy.de: could not connect to host
 aquilalab.com: could not connect to host
 arabdigitalexpression.org: did not receive HSTS header
 aradulconteaza.ro: could not connect to host
 aran.me.uk: could not connect to host
 arboineuropa.nl: did not receive HSTS header
 arboleda-hurtado.com: could not connect to host
 arbu.eu: max-age too low: 2419200
 arcbit.io: could not connect to host
 ardao.me: could not connect to host
 argennon.xyz: could not connect to host
 argh.io: could not connect to host
 arguggi.co.uk: could not connect to host
 ariacreations.net: did not receive HSTS header
 aristilabs.com: did not receive HSTS header
 arlen.se: could not connect to host
 armingrodon.de: max-age too low: 0
+arminpech.de: could not connect to host
 armor.com: did not receive HSTS header
 armored.ninja: could not connect to host
 armory.consulting: could not connect to host
 armory.supplies: could not connect to host
 armsday.com: could not connect to host
 armytricka.cz: did not receive HSTS header
 aroundme.org: did not receive HSTS header
 arpa.ph: could not connect to host
@@ -548,16 +544,17 @@ atbeckett.com: did not receive HSTS head
 atcreform.gov: did not receive HSTS header
 atelier-rk.com: did not receive HSTS header
 athaliasoft.com: could not connect to host
 athenelive.com: could not connect to host
 athensbusinessresources.us: could not connect to host
 athul.xyz: could not connect to host
 atk.me: 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
 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
@@ -607,39 +604,39 @@ aviodeals.com: could not connect to host
 avqueen.cn: did not receive HSTS header
 avus-automobile.com: did not receive HSTS header
 awanderlustadventure.com: did not receive HSTS header
 awg-mode.de: did not receive HSTS header
 aww.moe: did not receive HSTS header
 awxg.com: could not connect to host
 axado.com.br: did not receive HSTS header
 axeny.com: did not receive HSTS header
-ayahuascaadvisor.com: did not receive HSTS header
+ayahuascaadvisor.com: could not connect to host
 ayuru.info: could not connect to host
 az.search.yahoo.com: did not receive HSTS header
 azazy.net: could not connect to host
 azino777.ru: did not receive HSTS header
 azprep.us: could not connect to host
+azso.pro: could not connect to host
 b-landia.net: did not receive HSTS header
 b-rickroll-e.pw: could not connect to host
 b-space.de: did not receive HSTS header
 b2and.com: could not connect to host
 b303.me: did not receive HSTS header
 b3orion.com: max-age too low: 0
 baby-click.de: could not connect to host
 babybee.ie: could not connect to host
 babybic.hu: did not receive HSTS header
 babycs.house: could not connect to host
 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
 backschues.net: did not receive HSTS header
-backyardbbqbash.com: could not connect to host
 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: did not receive HSTS header
 bagiobella.com: max-age too low: 0
 baiduaccount.com: could not connect to host
 bair.io: could not connect to host
@@ -654,17 +651,16 @@ bananabandy.com: could not connect to ho
 banbanchs.com: could not connect to host
 banchethai.com: did not receive HSTS header
 bandb.xyz: could not connect to host
 bandrcrafts.com: could not connect to host
 banqingdiao.com: could not connect to host
 barely.sexy: did not receive HSTS header
 bariller.fr: could not connect to host
 barrelhead.org: could not connect to host
-bars.kh.ua: did not receive HSTS header
 barshout.co.uk: could not connect to host
 barss.io: could not connect to host
 barunisystems.com: could not connect to host
 bashcode.ninja: could not connect to host
 basicsolutionsus.com: did not receive HSTS header
 basilisk.io: could not connect to host
 basnieuwenhuizen.nl: could not connect to host
 bassh.net: did not receive HSTS header
@@ -725,30 +721,32 @@ bemyvictim.com: max-age too low: 2678400
 beneffy.com: did not receive HSTS header
 benjakesjohnson.com: could not connect to host
 benk.press: could not connect to host
 benny003.de: did not receive HSTS header
 benohead.com: did not receive HSTS header
 benwattie.com: did not receive HSTS header
 benzkosmetik.de: did not receive HSTS header
 beourvictim.com: max-age too low: 2678400
+beraru.tk: could not connect to host
 berger.work: could not connect to host
 berlatih.com: could not connect to host
 berlinleaks.com: could not connect to host
 berrymark.be: max-age too low: 0
 besixdouze.world: could not connect to host
 besola.de: did not receive HSTS header
 bestbeards.ca: could not connect to host
 bestcellular.com: did not receive HSTS header
 besthost.cz: did not receive HSTS header
 bestlashesandbrows.com: did not receive HSTS header
 bestmodels.su: did not receive HSTS header
 bestorangeseo.com: did not receive HSTS header
 betaclean.fr: did not receive HSTS header
 betafive.net: could not connect to host
+betakah.net: did not receive HSTS header
 betcafearena.ro: could not connect to host
 bethditto.com: did not receive HSTS header
 betnet.fr: could not connect to host
 betplanning.it: did not receive HSTS header
 bets.de: did not receive HSTS header
 betshoot.com: did not receive HSTS header
 betterlifemakers.com: could not connect to host
 bettween.com: did not receive HSTS header
@@ -792,17 +790,17 @@ bimbo.com: did not receive HSTS header
 binaryfigments.com: could not connect to host
 binderapp.net: could not connect to host
 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
 biou.me: could not connect to host
 birkman.com: did not receive HSTS header
-bisterfeldt.com: did not receive HSTS header
+bisterfeldt.com: could not connect to host
 bit-rapid.com: did not receive HSTS header
 bitbit.org: did not receive HSTS header
 bitchan.it: could not connect to host
 bitcoinprivacy.net: did not receive HSTS header
 bitcoinworld.me: could not connect to host
 bitconcepts.co.uk: did not receive HSTS header
 biteoftech.com: did not receive HSTS header
 bitf.ly: could not connect to host
@@ -818,34 +816,16 @@ bitraum.io: did not receive HSTS header
 bitsafe.systems: did not receive HSTS header
 bitvigor.com: could not connect to host
 bitwrought.net: could not connect to host
 bityes.org: could not connect to host
 bivsi.com: could not connect to host
 bizcms.com: did not receive HSTS header
 bizon.sk: did not receive HSTS header
 bkb-skandal.ch: could not connect to host
-blablacar.co.uk: did not receive HSTS header
-blablacar.com: did not receive HSTS header
-blablacar.com.tr: did not receive HSTS header
-blablacar.com.ua: did not receive HSTS header
-blablacar.de: did not receive HSTS header
-blablacar.es: did not receive HSTS header
-blablacar.fr: did not receive HSTS header
-blablacar.hr: did not receive HSTS header
-blablacar.hu: did not receive HSTS header
-blablacar.in: did not receive HSTS header
-blablacar.it: did not receive HSTS header
-blablacar.mx: did not receive HSTS header
-blablacar.nl: did not receive HSTS header
-blablacar.pl: did not receive HSTS header
-blablacar.pt: did not receive HSTS header
-blablacar.ro: did not receive HSTS header
-blablacar.rs: did not receive HSTS header
-blablacar.ru: did not receive HSTS header
 black-armada.com.pl: could not connect to host
 black-armada.pl: could not connect to host
 black-octopus.ru: did not receive HSTS header
 blackberryforums.be: did not receive HSTS header
 blackburn.link: could not connect to host
 blacklane.com: did not receive HSTS header
 blackly.uk: max-age too low: 0
 blackpayment.ru: could not connect to host
@@ -903,17 +883,17 @@ bonta.one: could not connect to host
 bookcelerator.com: did not receive HSTS header
 booked.holiday: could not connect to host
 bookofraonlinecasinos.com: could not connect to host
 bookourdjs.com: max-age too low: 0
 boomerang.com: did not receive HSTS header
 boosterlearnpro.com: did not receive HSTS header
 booth.in.th: did not receive HSTS header
 bootjp.me: did not receive HSTS header
-borchers-media.de: did not receive HSTS header
+borchers-media.de: could not connect to host
 borderlinegroup.com: could not connect to host
 boringsecurity.net: could not connect to host
 boris.one: did not receive HSTS header
 borscheid-wenig.com: did not receive HSTS header
 botox.bz: did not receive HSTS header
 bouwbedrijfpurmerend.nl: did not receive HSTS header
 bowlroll.net: max-age too low: 0
 boxcryptor.com: did not receive HSTS header
@@ -951,23 +931,23 @@ browserid.org: could not connect to host
 brunix.net: did not receive HSTS header
 brunohenc.from.hr: could not connect to host
 brunoonline.co.uk: could not connect to host
 brunoramos.com: could not connect to host
 brunoramos.org: could not connect to host
 brunosouza.org: could not connect to host
 bryn.xyz: could not connect to host
 bsagan.fr: could not connect to host
-bsdfreak.dk: could not connect to host
 bsdtips.com: could not connect to host
 bsdug.org: could not connect to host
 btc-e.com: did not receive HSTS header
 btcdlc.com: could not connect to host
 buben.tech: could not connect to host
 bubulazi.com: did not receive HSTS header
+bubulazy.com: did not receive HSTS header
 buch-cuber.de: could not connect to host
 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
 buero-stempel.de: max-age too low: 86400
 bugtrack.io: could not connect to host
@@ -986,16 +966,17 @@ built.by: did not receive HSTS header
 bukatv.cz: could not connect to host
 bulkbuy.tech: could not connect to host
 bulletpoint.cz: could not connect to host
 bullterrier.me: could not connect to host
 bulmafox.com: could not connect to host
 bunaken.asia: did not receive HSTS header
 bunbomenu.de: could not connect to host
 bunsenlabs.org: max-age too low: 259200
+bupu.ml: could not connect to host
 burian-server.cz: could not connect to host
 burningcrash.de: max-age too low: 600000
 burpsuite.site: could not connect to host
 burrow.ovh: could not connect to host
 burrowingsec.com: could not connect to host
 burtrum.me: could not connect to host
 burtrum.top: could not connect to host
 business.lookout.com: could not connect to host
@@ -1007,16 +988,17 @@ bustimes.org: could not connect to host
 butchersworkshop.com: did not receive HSTS header
 butian518.com: did not receive HSTS header
 buttercoin.com: could not connect to host
 butterfieldstraining.com: did not receive HSTS header
 buvinghausen.com: max-age too low: 86400
 buyaccessible.gov: did not receive HSTS header
 buybaby.eu: did not receive HSTS header
 buyfox.de: did not receive HSTS header
+buzzconcert.com: could not connect to host
 bw81.xyz: could not connect to host
 bwear4all.de: could not connect to host
 by1898.com: could not connect to host
 by4cqb.cn: could not connect to host
 bydisk.com: could not connect to host
 byken.cn: did not receive HSTS header
 bynet.cz: could not connect to host
 bypassed.bid: could not connect to host
@@ -1119,16 +1101,17 @@ cashlink.io: did not receive HSTS header
 cashmojo.com: max-age too low: 0
 cashmyphone.ch: could not connect to host
 casino-cashflow.ru: did not receive HSTS header
 casinostest.com: did not receive HSTS header
 casioshop.eu: did not receive HSTS header
 casovi.cf: could not connect to host
 castagnonavocats.com: did not receive HSTS header
 catarsisvr.com: could not connect to host
+catgirl.pics: did not receive HSTS header
 catinmay.com: did not receive HSTS header
 catnapstudios.com: could not connect to host
 caulong-ao.net: could not connect to host
 cavaleria.ro: did not receive HSTS header
 caveclan.org: did not receive HSTS header
 cavedevs.de: could not connect to host
 cavedroid.xyz: could not connect to host
 cbengineeringinc.com: could not connect to host
@@ -1161,16 +1144,17 @@ certmgr.org: could not connect to host
 cesal.net: could not connect to host
 cesidianroot.eu: could not connect to host
 cevrimici.com: could not connect to host
 cfcproperties.com: did not receive HSTS header
 cfetengineering.com: could not connect to host
 cfoitplaybook.com: could not connect to host
 cg.search.yahoo.com: did not receive HSTS header
 cganx.org: could not connect to host
+cgerstner.eu: could not connect to host
 cgsshelper.tk: could not connect to host
 chainmonitor.com: could not connect to host
 championsofregnum.com: did not receive HSTS header
 chandlerredding.com: did not receive HSTS header
 changetip.com: did not receive HSTS header
 chaos.fail: did not receive HSTS header
 chaoswebs.net: did not receive HSTS header
 chaoticlaw.com: did not receive HSTS header
@@ -1206,21 +1190,21 @@ chinacdn.org: could not connect to host
 chinawhale.com: did not receive HSTS header
 chirgui.eu: could not connect to host
 chiryotaisaku.com: max-age too low: 0
 chlouis.net: could not connect to host
 chm.vn: did not receive HSTS header
 chodobien.com: could not connect to host
 chontalpa.pw: could not connect to host
 choruscrowd.com: could not connect to host
-chosenplaintext.org: 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
 chrisfaber.com: could not connect to host
+chriskirchner.de: could not connect to host
 chriskyrouac.com: could not connect to host
 chrisopperwall.com: could not connect to host
 christiaandruif.nl: could not connect to host
 christianbro.gq: could not connect to host
 christiangaetano.com: did not receive HSTS header
 christophercolumbusfoundation.gov: could not connect to host
 christophersole.com: could not connect to host
 christophheich.me: could not connect to host
@@ -1247,18 +1231,17 @@ citiagent.cz: did not receive HSTS heade
 citimall.ru: max-age too low: 0
 cityoflaurel.org: did not receive HSTS header
 ciuciucadou.ro: could not connect to host
 cium.ru: could not connect to host
 cjcaron.org: could not connect to host
 clara-baumert.de: could not connect to host
 claralabs.com: did not receive HSTS header
 classicday.nl: could not connect to host
-classicsandexotics.com: did not receive HSTS header
-classicshop.ua: did not receive HSTS header
+classicsandexotics.com: could not connect to host
 classicspublishing.com: could not connect to host
 classifiedssa.co.za: could not connect to host
 clcleaningco.com: could not connect to host
 cleanexperts.co.uk: could not connect to host
 cleaningsquad.ca: max-age too low: 0
 cleanmta.com: could not connect to host
 clearc.tk: could not connect to host
 clerkendweller.uk: did not receive HSTS header
@@ -1270,17 +1253,16 @@ clicnbio.com: did not receive HSTS heade
 clint.id.au: max-age too low: 0
 clintonbloodworth.com: could not connect to host
 clintonbloodworth.io: could not connect to host
 clintwilson.technology: max-age too low: 2592000
 clipped4u.com: could not connect to host
 cloud-project.com: did not receive HSTS header
 cloud.wtf: could not connect to host
 cloudapi.vc: could not connect to host
-cloudbased.info: did not receive HSTS header
 cloudbleed.info: could not connect to host
 cloudcert.org: did not receive HSTS header
 cloudcy.net: could not connect to host
 clouddesktop.co.nz: could not connect to host
 cloudey.net: did not receive HSTS header
 cloudflare.com: did not receive HSTS header
 cloudimag.es: could not connect to host
 cloudlink.club: could not connect to host
@@ -1346,17 +1328,16 @@ collies.eu: max-age too low: 3
 collins.kg: did not receive HSTS header
 collins.press: did not receive HSTS header
 collision.fyi: could not connect to host
 colmexpro.com: did not receive HSTS header
 colognegaming.net: could not connect to host
 coloradocomputernetworking.net: could not connect to host
 coloringnotebook.com: could not connect to host
 colorlib.com: did not receive HSTS header
-comeoncolleen.com: could not connect to host
 comfortticket.de: did not receive HSTS header
 comfy.cafe: did not receive HSTS header
 comicspines.com: could not connect to host
 comitesaustria.at: could not connect to host
 comiteshopping.com: could not connect to host
 commercialplanet.eu: could not connect to host
 commune-preuilly.fr: did not receive HSTS header
 comotalk.com: could not connect to host
@@ -1400,17 +1381,17 @@ controlcenter.gigahost.dk: did not recei
 convert.zone: did not receive HSTS header
 cooink.net: could not connect to host
 coolaj86.com: could not connect to host
 coolchevy.org.ua: did not receive HSTS header
 coole-meister.de: could not connect to host
 cooxa.com: did not receive HSTS header
 cor-ser.es: could not connect to host
 coralproject.net: did not receive HSTS header
-coralrosado.com.br: did not receive HSTS header
+coralrosado.com.br: could not connect to host
 corderoscleaning.com: did not receive HSTS header
 cordial-restaurant.com: did not receive HSTS header
 core.mx: could not connect to host
 core4system.de: could not connect to host
 corenetworking.de: could not connect to host
 corgicloud.com: could not connect to host
 corkyoga.site: could not connect to host
 cormactagging.ie: could not connect to host
@@ -1475,17 +1456,16 @@ crypticshell.co.uk: could not connect to
 cryptify.eu: could not connect to host
 cryptobells.com: could not connect to host
 cryptobin.org: could not connect to host
 cryptodash.net: could not connect to host
 cryptojar.io: did not receive HSTS header
 cryptolab.pro: did not receive HSTS header
 cryptolab.tk: could not connect to host
 cryptonit.net: did not receive HSTS header
-cryptoparty.at: could not connect to host
 cryptopartyatx.org: could not connect to host
 cryptophobia.nl: did not receive HSTS header
 cryptopush.com: did not receive HSTS header
 crysadm.com: max-age too low: 1
 crystalclassics.co.uk: did not receive HSTS header
 cs-ubladego.pl: could not connect to host
 csapak.com: did not receive HSTS header
 csawctf.poly.edu: could not connect to host
@@ -1493,17 +1473,17 @@ csfs.org.uk: could not connect to host
 csgf.ru: did not receive HSTS header
 csgodicegame.com: did not receive HSTS header
 csgoelemental.com: could not connect to host
 csgokings.eu: could not connect to host
 csgoshifter.com: could not connect to host
 cshopify.com: could not connect to host
 csohack.tk: could not connect to host
 cspbuilder.info: could not connect to host
-csru.net: could not connect to host
+csru.net: did not receive HSTS header
 cssu.in: did not receive HSTS header
 csvape.com: did not receive HSTS header
 ct-status.org: could not connect to host
 ct.search.yahoo.com: did not receive HSTS header
 cthulhuden.com: could not connect to host
 cubela.tech: could not connect to host
 cubeserver.eu: could not connect to host
 cubewano.com: could not connect to host
@@ -1628,31 +1608,32 @@ daytonaseaside.com: did not receive HSTS
 db.gy: could not connect to host
 dbx.ovh: did not receive HSTS header
 dccode.gov: could not connect to host
 dcl.re: 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
+deadsoul.net: could not connect to host
 debank.tv: did not receive HSTS header
 debatch.se: could not connect to host
 debian-vhost.de: did not receive HSTS header
 debiton.dk: could not connect to host
 debtkit.co.uk: did not receive HSTS header
 decafu.co: could not connect to host
 decesus.com: could not connect to host
 decibelios.li: could not connect to host
 deco.me: could not connect to host
 decomplify.com: could not connect to host
 decor-d.com: could not connect to host
 dedicatutiempo.es: could not connect to host
 dee.pe: could not connect to host
 deepcovelabs.net: could not connect to host
-deepearth.uk: did not receive HSTS header
+deepearth.uk: could not connect to host
 deeprecce.link: could not connect to host
 deeprecce.tech: could not connect to host
 deetz.nl: did not receive HSTS header
 deetzen.de: did not receive HSTS header
 defcon.org: did not receive HSTS header
 defiler.tk: could not connect to host
 degroetenvanrosaline.nl: did not receive HSTS header
 deight.co: could not connect to host
@@ -1719,17 +1700,16 @@ diablofan.hopto.org: could not connect t
 diablotine.rocks: could not connect to host
 dianlujitao.com: did not receive HSTS header
 diannaobos.com: did not receive HSTS header
 diarbag.us: max-age too low: 0
 dicando.com: max-age too low: 2592000
 dicelab.co.uk: could not connect to host
 dicionariofinanceiro.com: did not receive HSTS header
 didierlaumen.be: could not connect to host
-diemattels.at: could not connect to host
 dierenkruiden.nl: could not connect to host
 dietrich-spielwaren.de: max-age too low: 86400
 diewebstube.de: could not connect to host
 diezel.com: could not connect to host
 diferenca.com: did not receive HSTS header
 digital.gov: could not connect to host
 digitalbank.kz: could not connect to host
 digitaldaddy.net: could not connect to host
@@ -1764,29 +1744,27 @@ dj4et.de: could not connect to host
 djbet.com: max-age too low: 0
 djlnetworks.co.uk: did not receive HSTS header
 djxmmx.net: max-age too low: 0
 djz4music.com: did not receive HSTS header
 dkniss.de: could not connect to host
 dl.google.com: did not receive HSTS header (error ignored - included regardless)
 dlc.viasinc.com: could not connect to host
 dlemper.de: did not receive HSTS header
-dlitz.net: could not connect to host
 dlscomputers.com.au: did not receive HSTS header
 dmcibulldog.com: did not receive HSTS header
 dmix.ca: could not connect to host
 dmtry.me: did not receive HSTS header
 dmwall.cn: could not connect to host
 dmz.ninja: could not connect to host
 dns.google.com: did not receive HSTS header (error ignored - included regardless)
 dnsknowledge.com: did not receive HSTS header
 do-do.tk: could not connect to host
 do.search.yahoo.com: did not receive HSTS header
 dobet.in: could not connect to host
-dobrev.family: could not connect to host
 docid.io: could not connect to host
 docket.news: could not connect to host
 docset.io: could not connect to host
 docufiel.com: could not connect to host
 docxtemplater.com: did not receive HSTS header
 doesmycodehavebugs.today: could not connect to host
 doeswindowssuckforeveryoneorjustme.com: could not connect to host
 dogbox.se: did not receive HSTS header
@@ -1797,16 +1775,17 @@ dohosting.ru: could not connect to host
 dojin.nagoya: could not connect to host
 dokan.online: did not receive HSTS header
 doked.io: could not connect to host
 dolevik.com: could not connect to host
 dollarstore24.com: could not connect to host
 dollywiki.co.uk: could not connect to host
 dolphin-cloud.com: could not connect to host
 dolphincorp.co.uk: did not receive HSTS header
+dolphinswithlasers.com: did not receive HSTS header
 domaine-aigoual-cevennes.com: did not receive HSTS header
 domaris.de: could not connect to host
 domenicocatelli.com: could not connect to host
 dominicpratt.de: max-age too low: 600000
 dominioanimal.com: could not connect to host
 dominique-mueller.de: did not receive HSTS header
 don.yokohama: could not connect to host
 donmez.uk: could not connect to host
@@ -1884,16 +1863,17 @@ dubik.su: did not receive HSTS header
 dubrovskiy.net: could not connect to host
 dubrovskiy.pro: could not connect to host
 duerls.de: did not receive HSTS header
 duesee.org: could not connect to host
 dullsir.com: did not receive HSTS header
 dungi.org: could not connect to host
 duongpho.com: did not receive HSTS header
 duskopy.top: could not connect to host
+dutchessuganda.com: did not receive HSTS header
 dutchrank.com: did not receive HSTS header
 duuu.ch: could not connect to host
 dycontrol.de: could not connect to host
 dyktig.as: did not receive HSTS header
 dylanscott.com.au: did not receive HSTS header
 dynamic-innovations.net: could not connect to host
 dynamize.solutions: could not connect to host
 dyrkar.com: did not receive HSTS header
@@ -1924,31 +1904,30 @@ eauclairecommerce.com: could not connect
 ebankcbt.com: could not connect to host
 ebecs.com: did not receive HSTS header
 ebiografia.com: did not receive HSTS header
 ebiografias.com.br: did not receive HSTS header
 ebp2p.com: did not receive HSTS header
 ebpglobal.com: did not receive HSTS header
 ebraph.com: could not connect to host
 ebrowz.com: could not connect to host
-ec-baran.de: could not connect to host
 ec-hasslau.de: did not receive HSTS header
 ecake.in: could not connect to host
 ecdn.cz: could not connect to host
 ecfs.link: could not connect to host
 ecg.fr: could not connect to host
 echipstore.com: did not receive HSTS header
 echopaper.com: could not connect to host
 eckro.com: could not connect to host
 ecogen.net.au: could not connect to host
 ecole-en-danger.fr: could not connect to host
 ecole-maternelle-saint-joseph.be: could not connect to host
 ecomlane.com: could not connect to host
 ecomparemo.com: did not receive HSTS header
-ecorus.eu: could not connect to host
+ecorus.eu: did not receive HSTS header
 ecupcafe.com: could not connect to host
 edati.lv: could not connect to host
 edcphenix.tk: could not connect to host
 eddmixpanel.com: could not connect to host
 eddyn.net: did not receive HSTS header
 edelblack.ch: could not connect to host
 edelsteincosmetic.com: did not receive HSTS header
 eden-noel.at: could not connect to host
@@ -1957,17 +1936,16 @@ edgereinvent.com: did not receive HSTS h
 ediscomp.sk: did not receive HSTS header
 edissecurity.sk: did not receive HSTS header
 edix.ru: could not connect to host
 edk.com.tr: did not receive HSTS header
 edmodo.com: did not receive HSTS header
 educatio.tech: could not connect to host
 eduroam.no: did not receive HSTS header
 eduvance.in: did not receive HSTS header
-edwar.do: could not connect to host
 eengezinswoning-in-alphen-aan-den-rijn-kopen.nl: could not connect to host
 eengezinswoning-in-de-friese-meren-kopen.nl: could not connect to host
 eengezinswoning-in-friesland-kopen.nl: could not connect to host
 eengezinswoning-in-leeuwarden-kopen.nl: could not connect to host
 eengezinswoning-in-pekela-kopen.nl: could not connect to host
 eengezinswoning-in-rijnwaarden-kopen.nl: could not connect to host
 eengezinswoning-in-sudwest-fryslan-kopen.nl: could not connect to host
 eengezinswoning-in-zeeland-kopen.nl: could not connect to host
@@ -1984,16 +1962,17 @@ egbert.net: could not connect to host
 egit.co: could not connect to host
 eglek.com: did not receive HSTS header
 ego-world.org: could not connect to host
 ehealthcounselor.com: could not connect to host
 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
+eichornenterprises.com: could not connect to host
 eidolonhost.com: did not receive HSTS header
 eigo.work: did not receive HSTS header
 einhorn.space: could not connect to host
 eit-web.de: could not connect to host
 ekbanden.nl: could not connect to host
 eksik.com: could not connect to host
 elaintehtaat.fi: did not receive HSTS header
 elan-organics.com: did not receive HSTS header
@@ -2050,17 +2029,16 @@ end.pp.ua: could not connect to host
 endlessdark.net: max-age too low: 600
 endlesshorizon.net: could not connect to host
 endlesstone.com: did not receive HSTS header
 endohaus.ca: could not connect to host
 endohaus.com: could not connect to host
 endohaus.eu: could not connect to host
 enefan.jp: could not connect to host
 engelwerbung.com: did not receive HSTS header
-engg.ca: could not connect to host
 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
 enjoy-nepal.de: max-age too low: 0
 enjoymayfield.com: max-age too low: 0
 enskat.de: could not connect to host
 enskatson-sippe.de: could not connect to host
@@ -2074,16 +2052,17 @@ entourneebeetle.com: could not connect t
 entrepreneur.or.id: did not receive HSTS header
 enum.eu.org: could not connect to host
 enumify.com: could not connect to host
 envygeeks.com: could not connect to host
 eol34.com: did not receive HSTS header
 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
 epicpages.com: could not connect to host
 epoxate.com: could not connect to host
 eq8.net.au: could not connect to host
 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
 erawanarifnugroho.com: did not receive HSTS header
@@ -2176,16 +2155,17 @@ exfiles.cz: did not receive HSTS header
 exgravitus.com: could not connect to host
 exitus.jp: max-age too low: 0
 exno.co: could not connect to host
 exousiakaidunamis.xyz: could not connect to host
 expertmile.com: did not receive HSTS header
 expo-designers.com: did not receive HSTS header
 expoundite.net: did not receive HSTS header
 expressfinance.co.za: did not receive HSTS header
+extendwings.com: could not connect to host
 extrathemeshowcase.net: could not connect to host
 extratorrentlive.xyz: could not connect to host
 extratorrents.tech: could not connect to host
 extreemhost.nl: did not receive HSTS header
 extreme-gaming.de: could not connect to host
 extreme-gaming.us: could not connect to host
 extremenetworking.net: could not connect to host
 exy.pw: could not connect to host
@@ -2228,17 +2208,16 @@ fallenangelspirits.uk: could not connect
 fame-agency.net: could not connect to host
 familie-sander.rocks: could not connect to host
 familie-sprink.de: could not connect to host
 familie-zimmermann.at: could not connect to host
 famio.cn: did not receive HSTS header
 fantasyfootballpundit.com: did not receive HSTS header
 fanyl.cn: could not connect to host
 farces.com: did not receive HSTS header
-farhadexchange.com: did not receive HSTS header
 farhood.org: did not receive HSTS header
 fashion.net: did not receive HSTS header
 fashioncare.cz: did not receive HSTS header
 fasset.jp: could not connect to host
 fastcomcorp.com: did not receive HSTS header
 fastcomcorp.net: did not receive HSTS header
 fastconfirm.com: could not connect to host
 fastdigitizing.com: max-age too low: 300
@@ -2271,23 +2250,21 @@ fenno.net: could not connect to host
 fenteo.com: could not connect to host
 feriahuamantla.com: could not connect to host
 fernseher-kauf.de: could not connect to host
 ferrolatino.com: could not connect to host
 festember.com: did not receive HSTS header
 festrip.com: could not connect to host
 fettbrot.tk: did not receive HSTS header
 fexmen.com: could not connect to host
-ff-bad-hoehenstadt.de: could not connect to host
 ff-getzersdorf.at: did not receive HSTS header
 ffmradio.de: did not receive HSTS header
 fics-twosigma.com: could not connect to host
 fideleslaici.com: did not receive HSTS header
 fiendishmasterplan.com: did not receive HSTS header
-fierman.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]
 fiftyshadesofluca.ml: could not connect to host
 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
 filemeal.com: did not receive HSTS header
 filey.co.uk: did not receive HSTS header
 filmesubtitrate2017.online: did not receive HSTS header
@@ -2317,16 +2294,17 @@ fit4medien.de: did not receive HSTS head
 fitbylo.com: did not receive HSTS header
 fitiapp.com: could not connect to host
 fitnesswerk.de: could not connect to host
 fitsw.com: did not receive HSTS header
 five.vn: did not receive HSTS header
 fivestarsitters.com: did not receive HSTS header
 fivezerocreative.com: did not receive HSTS header
 fixingdns.com: did not receive HSTS header
+fixmyglitch.com: could not connect to host
 fixtectools.co.za: could not connect to host
 fj.search.yahoo.com: did not receive HSTS header
 fjruiz.es: did not receive HSTS header
 fkcovering.be: could not connect to host
 flags.ninja: could not connect to host
 flairbros.at: could not connect to host
 flamewall.net: could not connect to host
 flareon.net: could not connect to host
@@ -2341,67 +2319,65 @@ florianlillpopp.de: max-age too low: 10
 floridaescapes.co.uk: did not receive HSTS header
 florispoort.nl: did not receive HSTS header
 flouartistique.ch: could not connect to host
 flow.pe: could not connect to host
 flow.su: could not connect to host
 flowersandclouds.com: could not connect to host
 floweslawncare.com: could not connect to host
 flowlo.me: could not connect to host
+flucke-creation.ch: max-age too low: 1209600
+flucke-creation.com: max-age too low: 1209600
 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: did not receive HSTS header
 fm83.nl: could not connect to host
 fmi.gov: did not receive HSTS header
 fnvsecurity.com: could not connect to host
 fojtova.cz: did not receive HSTS header
 fojtovi.cz: did not receive HSTS header
 fonetiq.io: could not connect to host
 food4health.guide: could not connect to host
-foodacademy.capetown: could not connect to host
 foodbuddy.ch: could not connect to host
 foodiebox.no: did not receive HSTS header
 foodievenues.com: could not connect to host
 foodsafetyworkinggroup.gov: could not connect to host
 footballmapped.com: could not connect to host
 footlegende.fr: did not receive HSTS header
 forafifty.co.za: could not connect to host
 foraje-profesionale.ro: did not receive HSTS header
 forbook.net: could not connect to host
 fordbydesign.com: could not connect to host
 foreignexchangeresource.com: did not receive HSTS header
 foreveralone.io: could not connect to host
 forex-dan.com: did not receive HSTS header
 forgix.com: could not connect to host
 formazioneopen.it: could not connect to host
-formini.dz: could not connect to host
 formula.cf: could not connect to host
 forologikidilosi.com.gr: did not receive HSTS header
 forus.be: could not connect to host
 fotiu.com: could not connect to host
 fotm.net: max-age too low: 30000
 fotocerita.net: could not connect to host
 fotografosexpertos.com: did not receive HSTS header
 fotopasja.info: could not connect to host
 fourwheelpartloanssimple.com: did not receive HSTS header
 foxdev.io: 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
 fr33d0m.link: could not connect to host
 fragilesolar.cf: could not connect to host
-fraho.eu: could not connect to host
 fralef.me: did not receive HSTS header
 francevpn.xyz: could not connect to host
 frangor.info: did not receive HSTS header
 frankwei.xyz: did not receive HSTS header
-fransallen.com: did not receive HSTS header
 franta.biz: did not receive HSTS header
 franta.email: did not receive HSTS header
 franzt.de: could not connect to host
 franzt.ovh: could not connect to host
 frasesdeamizade.pt: could not connect to host
 frasys.io: could not connect to host
 frasys.net: could not connect to host
 frau-inge.de: could not connect to host
@@ -2434,16 +2410,17 @@ frugro.be: did not receive HSTS header
 fruitusers.com: could not connect to host
 frumious.fyi: could not connect to host
 frusky.net: did not receive HSTS header
 fsinf.at: did not receive HSTS header
 fspphoto.com: could not connect to host
 fstfy.de: could not connect to host
 ftctele.com: could not connect to host
 fuckgfw233.org: could not connect to host
+fukuoka-cityliner.jp: could not connect to host
 fukushima-web.com: did not receive HSTS header
 fulilingyu.info: could not connect to host
 fullyint.com: max-age too low: 0
 fullytrained.co.uk: did not receive HSTS header
 fun-stamps.de: max-age too low: 86400
 fun-stempel.de: max-age too low: 86400
 fundacionhijosdelsol.org: could not connect to host
 funi4u.com: could not connect to host
@@ -2463,16 +2440,17 @@ futurestarsusa.org: did not receive HSTS
 futuretechnologi.es: could not connect to host
 futureyouhealth.com: did not receive HSTS header
 fuxwerk.de: did not receive HSTS header
 fwei.tk: could not connect to host
 fwest.ovh: did not receive HSTS header
 fwest98.ovh: did not receive HSTS header
 fws.gov: did not receive HSTS header
 fx-rk.com: did not receive HSTS header
+fyfywka.com: could not connect to host
 fysiohaenraets.nl: did not receive HSTS header
 fzn.io: could not connect to host
 fzslm.me: could not connect to host
 g-i-s.vn: could not connect to host
 g-rickroll-o.pw: could not connect to host
 g01.in.ua: could not connect to host
 g2a.co: did not receive HSTS header
 g2g.com: did not receive HSTS header
@@ -2527,29 +2505,29 @@ garageon.net: did not receive HSTS heade
 garciamartin.me: could not connect to host
 garden.trade: could not connect to host
 gardencarezone.com: did not receive HSTS header
 garfieldairlines.net: did not receive HSTS header
 gasser-daniel.ch: could not connect to host
 gatapro.net: could not connect to host
 gatorsa.es: did not receive HSTS header
 gaussorgues.me: could not connect to host
+gc.net: could not connect to host
 gdb-tutorial.net: could not connect to host
 gdegem.org: did not receive HSTS header
 gdpventure.com: max-age too low: 0
 gebn.co.uk: did not receive HSTS header
 gebn.uk: could not connect to host
 gedankenbude.info: could not connect to host
 geekcast.co.uk: did not receive HSTS header
 geeks.lgbt: did not receive HSTS header
 geeky.software: could not connect to host
 geemo.top: could not connect to host
 geeq.ch: could not connect to host
 geli-graphics.com: did not receive HSTS header
-gemeentemolenwaard.nl: could not connect to host
 genesischangelog.com: did not receive HSTS header
 genshiken.org: could not connect to host
 gensonline.eu: could not connect to host
 genuu.com: could not connect to host
 genuxation.com: could not connect to host
 genyaa.com: could not connect to host
 genyhitch.com: did not receive HSTS header
 geoffdev.com: could not connect to host
@@ -2621,17 +2599,17 @@ gipsic.com: did not receive HSTS header
 gis3m.org: did not receive HSTS header
 gistfy.com: could not connect to host
 git-stuff.tk: could not connect to host
 github.party: did not receive HSTS header
 givemyanswer.com: could not connect to host
 gizzo.sk: could not connect to host
 gl.search.yahoo.com: did not receive HSTS header
 glass.google.com: did not receive HSTS header (error ignored - included regardless)
-glasschmuck-millefiori.de: could not connect to host
+glasschmuck-millefiori.de: did not receive HSTS header
 glasslikes.com: could not connect to host
 glentakahashi.com: max-age too low: 0
 glitzmirror.com: could not connect to host
 global-adult-webcams.com: did not receive HSTS header
 globalado.com: could not connect to host
 globalbridge-japan.com: did not receive HSTS header
 globalchat.pk: could not connect to host
 globalexpert.co.nz: could not connect to host
@@ -2647,16 +2625,17 @@ glws.org: did not receive HSTS header
 gm-assicurazioni.it: could not connect to host
 gm.search.yahoo.com: did not receive HSTS header
 gmail.com: did not receive HSTS header (error ignored - included regardless)
 gmat.ovh: could not connect to host
 gmoes.at: max-age too low: 600000
 gnom.me: could not connect to host
 go.ax: did not receive HSTS header
 go2sh.de: did not receive HSTS header
+go4it.solutions: could not connect to host
 goabonga.com: could not connect to host
 goalsetup.com: did not receive HSTS header
 goaltree.ch: did not receive HSTS header
 goarmy.eu: could not connect to host
 goat.chat: did not receive HSTS header
 goat.xyz: max-age too low: 86400
 goben.ch: could not connect to host
 goblins.net: did not receive HSTS header
@@ -2697,17 +2676,16 @@ gotocloud.ru: could not connect to host
 gotowned.org: max-age too low: 0
 gotspot.com: could not connect to host
 gottcode.org: did not receive HSTS header
 gov.ax: could not connect to host
 goverage.org: did not receive HSTS header
 govillemo.ca: did not receive HSTS header
 gozel.com.tr: did not receive HSTS header
 gparent.org: did not receive HSTS header
-gpfclan.de: could not connect to host
 gpsfix.cz: did not receive HSTS header
 gpstuner.com: did not receive HSTS header
 graavaapi.elasticbeanstalk.com: could not connect to host
 gracesofgrief.com: could not connect to host
 grachtenpandverkopen.nl: could not connect to host
 grafitec.ru: did not receive HSTS header
 grana.com: did not receive HSTS header
 grandmascookieblog.com: did not receive HSTS header
@@ -2738,17 +2716,16 @@ greplin.com: could not connect to host
 gresb.com: did not receive HSTS header
 gretchelizartistry.com: did not receive HSTS header
 grevesgarten.de: could not connect to host
 greybit.net: could not connect to host
 greyline.se: could not connect to host
 gribani.com: could not connect to host
 grid2osm.org: could not connect to host
 grigalanzsoftware.com: could not connect to host
-grillinfools.com: could not connect to host
 gripopgriep.net: could not connect to host
 groenemeijer.frl: max-age too low: 2628000
 groenewoud.run: did not receive HSTS header
 groetzner.net: did not receive HSTS header
 grossmann.gr: could not connect to host
 groupe-cassous.com: did not receive HSTS header
 groups.google.com: did not receive HSTS header (error ignored - included regardless)
 grow-shop.lt: could not connect to host
@@ -2770,17 +2747,17 @@ gtraxapp.com: could not connect to host
 gts-schulsoftware.de: did not receive HSTS header
 guava.studio: did not receive HSTS header
 guentherhouse.com: did not receive HSTS header
 guenthernoack.de: could not connect to host
 guffrits.com: could not connect to host
 guge.gq: could not connect to host
 gugga.dk: did not receive HSTS header
 guguke.net: did not receive HSTS header
-guilde-vindicta.fr: did not receive HSTS header
+guilde-vindicta.fr: could not connect to host
 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
 gunnarhafdal.com: did not receive HSTS header
 gunnaro.com: could not connect to host
 guntbert.net: could not connect to host
@@ -2806,30 +2783,30 @@ gycis.me: could not connect to host
 gylauto.fr: could not connect to host
 gypthecat.com: max-age too low: 604800
 gyz.io: could not connect to host
 h-og.com: could not connect to host
 h-rickroll-n.pw: could not connect to host
 h2check.org: could not connect to host
 h3artbl33d.nl: could not connect to host
 haarkliniek.com: did not receive HSTS header
+haavard.me: could not connect to host
 habanaavenue.com: max-age too low: 0
 habbo.life: could not connect to host
 habbotalk.nl: could not connect to host
 hablemosdetecnologia.com.ve: could not connect to host
 hac30.com: could not connect to host
 hack.cz: could not connect to host
 hack.li: could not connect to host
 hack.sb: could not connect to host
 hackercat.ninja: did not receive HSTS header
 hackerforever.com: did not receive HSTS header
 hackerone-ext-adroll.com: could not connect to host
 hackerspace-ntnu.no: did not receive HSTS header
 hackest.org: did not receive HSTS header
-hackingand.coffee: could not connect to host
 hackit.im: could not connect to host
 hackroyale.xyz: could not connect to host
 hacksnack.io: could not connect to host
 hadaf.pro: could not connect to host
 hadzic.co: could not connect to host
 haeckdesign.com: did not receive HSTS header
 haeckl.eu: did not receive HSTS header
 haehnlein.at: could not connect to host
@@ -2841,16 +2818,17 @@ haitschi.de: did not receive HSTS header
 haitschi.net: could not connect to host
 haitschi.org: could not connect to host
 haku.moe: could not connect to host
 hakugin.org: could not connect to host
 halcyonsbastion.com: could not connect to host
 halo.red: could not connect to host
 haman.nl: could not connect to host
 hancc.net: could not connect to host
+handenafvanhetmedischdossier.nl: could not connect to host
 handicapindeles.nl: did not receive HSTS header
 handiworker.com: could not connect to host
 handleidingkwijt.com: did not receive HSTS header
 hanfu.la: could not connect to host
 hanimalis.fr: could not connect to host
 hansen.hn: could not connect to host
 hao2taiwan.com: max-age too low: 0
 haoyugao.com: could not connect to host
@@ -2860,31 +2838,29 @@ hapivm.com: could not connect to host
 happix.nl: did not receive HSTS header
 happyandrelaxeddogs.eu: did not receive HSTS header
 happyfabric.me: did not receive HSTS header
 happygastro.com: could not connect to host
 hapvm.com: could not connect to host
 harabuhouse.com: max-age too low: 7776000
 harbor-light.net: could not connect to host
 harbourweb.net: could not connect to host
-hardfalcon.net: could not connect to host
 hardline.xyz: could not connect to host
 haribosupermix.com: could not connect to host
 harisht.me: could not connect to host
 harlentimberproducts.co.uk: did not receive HSTS header
 harmonycosmetic.com: max-age too low: 300
 harristony.com: could not connect to host
 hartlep.eu: could not connect to host
 hartmancpa.com: did not receive HSTS header
 harvestrenewal.org: did not receive HSTS header
 harz.cloud: could not connect to host
 has.vision: could not connect to host
 hash-list.com: could not connect to host
 hash.my: could not connect to host
-hashi.dk: could not connect to host
 hasilocke.de: did not receive HSTS header
 hasinase.de: did not receive HSTS header
 haste.ch: could not connect to host
 hastherebeenamassshooting.today: could not connect to host
 hatoko.net: could not connect to host
 haufschild.de: could not connect to host
 haurumcraft.net: could not connect to host
 hausarzt-stader-str.de: did not receive HSTS header
@@ -2909,17 +2885,16 @@ hd0385.com: max-age too low: 0
 hd3778.com: max-age too low: 0
 hd771122.com: max-age too low: 0
 hd8003.com: max-age too low: 0
 hd881133.com: max-age too low: 0
 hd88599.com: max-age too low: 0
 hd887700.com: max-age too low: 0
 hd887766.com: max-age too low: 0
 hdrboundless.com: could not connect to host
-hds-lan.de: could not connect to host
 hdsmigrationtool.com: could not connect to host
 hduin.xyz: could not connect to host
 hdwallpapers.net: did not receive HSTS header
 head-shop.lt: could not connect to host
 healtious.com: did not receive HSTS header
 heart.ge: did not receive HSTS header
 heartlandrentals.com: did not receive HSTS header
 hearty.space: could not connect to host
@@ -2952,17 +2927,16 @@ hfi.me: did not receive HSTS header
 hibilog.com: could not connect to host
 hicn.gq: could not connect to host
 hiddendepth.ie: max-age too low: 0
 hiddenmail.xyz: could not connect to host
 hiddenrefuge.eu.org: could not connect to host
 hideftv.deals: could not connect to host
 hiexmerida-mailing.com: did not receive HSTS header
 highgrove.org.uk: could not connect to host
-highland-webcams.com: did not receive HSTS header
 highseer.com: did not receive HSTS header
 highsurf-miyazaki.com: did not receive HSTS header
 highvelocitydesign.com: could not connect to host
 hiisukun.com: could not connect to host
 hiitcentre.com: did not receive HSTS header
 hikariempire.com: could not connect to host
 hilinemerchandising.com: did not receive HSTS header
 hillcity.org.nz: did not receive HSTS header
@@ -3093,17 +3067,16 @@ ice.yt: could not connect to host
 icfl.com.br: could not connect to host
 ich-mach-druck.eu: did not receive HSTS header
 ichglaubesbackt.de: did not receive HSTS header
 ichnichtskaufmann.de: could not connect to host
 ichoosebtec.com: did not receive HSTS header
 icity.ly: did not receive HSTS header
 icloud.net: could not connect to host
 icntorrent.download: could not connect to host
-icodeconnect.com: could not connect to host
 icpc2016.in.th: could not connect to host
 icq-project.net: could not connect to host
 icreative.nl: did not receive HSTS header
 ictual.com: max-age too low: 0
 id-co.in: could not connect to host
 id-conf.com: did not receive HSTS header
 idacmedia.com: max-age too low: 5184000
 ideadozz.hu: could not connect to host
@@ -3111,30 +3084,30 @@ ideal-envelopes.co.uk: did not receive H
 idealmykonos.com: did not receive HSTS header
 ideaplus.me: did not receive HSTS header
 ideasmeetingpoint.com: could not connect to host
 ideation-inc.co.jp: could not connect to host
 idecode.net: could not connect to host
 idedr.com: could not connect to host
 identitylabs.uk: could not connect to host
 idgsupply.com: did not receive HSTS header
-idinby.dk: did not receive HSTS header
 idisplay.es: did not receive HSTS header
 idlekernel.com: could not connect to host
 idontexist.me: did not receive HSTS header
 ie.search.yahoo.com: did not receive HSTS header
 ierna.com: did not receive HSTS header
 ies-italia.it: did not receive HSTS header
 ies.id.lv: could not connect to host
 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
 igiftcards.nl: did not receive HSTS header
+ignace72.eu: could not connect to host
 ignatisd.gr: did not receive HSTS header
 ignatovich.by: could not connect to host
 ignatovich.me: could not connect to host
 igule.net: could not connect to host
 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
@@ -3200,16 +3173,17 @@ infinitude.xyz: could not connect to hos
 infinitudecloud.com: could not connect to host
 infinitusgaming.eu: could not connect to host
 infinity-freedom.com: could not connect to host
 infinity-freedom.de: did not receive HSTS header
 infinity-lifestyle.de: did not receive HSTS header
 inflation.ml: could not connect to host
 info-screen.me: did not receive HSTS header
 info-sys.tk: could not connect to host
+infoduv.fr: did not receive HSTS header
 infogrfx.com: did not receive HSTS header
 inforichjapan.com: max-age too low: 0
 informaticapremium.com: did not receive HSTS header
 infosec.rip: could not connect to host
 infosoph.org: did not receive HSTS header
 infotics.es: did not receive HSTS header
 infura.co.th: did not receive HSTS header
 ingeeibach.de: could not connect to host
@@ -3256,17 +3230,16 @@ intex.es: max-age too low: 0
 intim-uslugi-kazan.net: could not connect to host
 intimateperrierjouet.com: could not connect to host
 intimtoy.com.ua: could not connect to host
 intranetsec.fr: could not connect to host
 intrp.net: did not receive HSTS header
 inverselink-user-content.com: could not connect to host
 inverselink.com: could not connect to host
 invictusmc.uk: could not connect to host
-invisionita.com: could not connect to host
 invite24.pro: could not connect to host
 iolife.dk: could not connect to host
 ionas-law.ro: did not receive HSTS header
 ionx.co.uk: did not receive HSTS header
 ioover.net: could not connect to host
 iop.intuit.com: max-age too low: 86400
 iora.fr: could not connect to host
 iosmods.com: did not receive HSTS header
@@ -3326,18 +3299,20 @@ istanbultravelguide.info: could not conn
 istaspirtslietas.lv: did not receive HSTS header
 it-go.net: did not receive HSTS header
 it-schwerin.de: could not connect to host
 itechgeek.com: max-age too low: 0
 items.lv: did not receive HSTS header
 itemton.com: did not receive HSTS header
 ithakama.com: did not receive HSTS header
 ithakama.cz: did not receive HSTS header
+itinsight.hu: did not receive HSTS header
 itos.asia: did not receive HSTS header
 itos.pl: did not receive HSTS header
+itpros.ru: could not connect to host
 itriskltd.com: could not connect to host
 itsadog.co.uk: did not receive HSTS header
 itsagadget.com: did not receive HSTS header
 itsamurai.ru: max-age too low: 2592000
 itsecurityassurance.pw: could not connect to host
 itsg-faq.de: could not connect to host
 itshka.rv.ua: did not receive HSTS header
 itshost.ru: could not connect to host
@@ -3395,30 +3370,29 @@ janus-engineering.de: did not receive HS
 janverlaan.nl: did not receive HSTS header
 japan-foods.co.uk: max-age too low: 7776000
 japaripark.com: could not connect to host
 japlex.com: could not connect to host
 jaqen.ch: could not connect to host
 jaroslavtrsek.cz: did not receive HSTS header
 jarsater.com: could not connect to host
 jartza.org: could not connect to host
-jasmineconseil.com: could not connect to host
+jasmineconseil.com: did not receive HSTS header
 jasoncosper.com: did not receive HSTS header
 jasonroe.me: did not receive HSTS header
 jasonsansone.com: max-age too low: 0
 jastoria.pl: could not connect to host
 jav-collective.com: could not connect to host
 java-board.com: could not connect to host
 javelinsms.com: could not connect to host
 jayblock.com: did not receive HSTS header
 jaylen.com.ar: did not receive HSTS header
 jayschulman.com: did not receive HSTS header
 jayscoaching.com: did not receive HSTS header
 jayshao.com: did not receive HSTS header
-jazzanet.com: could not connect to host
 jbfp.dk: could not connect to host
 jbn.mx: could not connect to host
 jcch.de: could not connect to host
 jcf-office.com: did not receive HSTS header
 jcor.me: did not receive HSTS header
 jcoscia.com: could not connect to host
 jctf.io: could not connect to host
 jdav-leipzig.de: could not connect to host
@@ -3447,17 +3421,16 @@ jfmel.com: did not receive HSTS header
 jfx.space: did not receive HSTS header
 jh-media.eu: could not connect to host
 jhburton.uk: could not connect to host
 jhejderup.me: could not connect to host
 jia1hao.com: could not connect to host
 jiaidu.com: could not connect to host
 jiangzm.com: could not connect to host
 jichi.io: did not receive HSTS header
-jie.dance: could not connect to host
 jikegu.com: could not connect to host
 jikken.de: could not connect to host
 jimas.eu: did not receive HSTS header
 jimgao.tk: did not receive HSTS header
 jimmehcai.com: could not connect to host
 jimmycai.org: could not connect to host
 jingyuesi.com: could not connect to host
 jinshavip.com: did not receive HSTS header
@@ -3482,16 +3455,17 @@ johnbrownphotography.ch: did not receive
 johners.me: could not connect to host
 johnhgaunt.com: did not receive HSTS header
 johnrom.com: did not receive HSTS header
 jointoweb.com: could not connect to host
 jonas-keidel.de: did not receive HSTS header
 jonasgroth.se: did not receive HSTS header
 jonathan.ir: could not connect to host
 jonfor.net: could not connect to host
+jongcs.com: could not connect to host
 jongha.me: could not connect to host
 jonn.me: could not connect to host
 jonnichols.info: did not receive HSTS header
 joostbovee.nl: did not receive HSTS header
 jordanhamilton.me: could not connect to host
 jorgemesa.me: could not connect to host
 jorrit.info: could not connect to host
 josahrens.me: could not connect to host
@@ -3550,18 +3524,18 @@ kadioglumakina.com.tr: did not receive H
 kaela.design: could not connect to host
 kahopoon.net: could not connect to host
 kaisers.de: did not receive HSTS header
 kaiyuewu.com: could not connect to host
 kalami.nl: could not connect to host
 kaleidomarketing.com: did not receive HSTS header
 kamcvicit.sk: could not connect to host
 kamikano.com: could not connect to host
-kanar.nl: could not connect to host
 kaneo-gmbh.de: did not receive HSTS header
+kangkai.me: could not connect to host
 kaniklani.co.za: could not connect to host
 kanscooking.org: did not receive HSTS header
 kany.me: did not receive HSTS header
 kanzlei-wirtschaftsrecht.berlin: did not receive HSTS header
 kaohub.com: could not connect to host
 kaplatz.is: could not connect to host
 kapucini.si: max-age too low: 0
 kaputt.com: could not connect to host
@@ -3578,34 +3552,38 @@ katproxy.tech: could not connect to host
 katproxy.top: did not receive HSTS header
 katyl.info: could not connect to host
 katzen.me: could not connect to host
 kaufkraftkiel.de: could not connect to host
 kausch.at: could not connect to host
 kavinvin.me: could not connect to host
 kawaiiku.com: could not connect to host
 kawaiiku.de: could not connect to host
+kcluster.io: could not connect to host
 kcolford.com: could not connect to host
 kcptun.com: could not connect to host
 kd-plus.pp.ua: could not connect to host
 kdata.it: did not receive HSTS header
 kdm-online.de: did not receive HSTS header
 keeley.gq: could not connect to host
 keeley.ml: could not connect to host
 keeleysam.me: 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
 keezin.ga: could not connect to host
+kenvix.com: could not connect to host
 kerangalam.com: did not receive HSTS header
 kerksanders.nl: did not receive HSTS header
 kermadec.blog: could not connect to host
+kermadec.com: could not connect to host
 kermadec.net: could not connect to host
 kernl.us: did not receive HSTS header
 keskeces.com: did not receive HSTS header
+kevinbusse.de: could not connect to host
 kevinmeijer.nl: could not connect to host
 keymaster.lookout.com: did not receive HSTS header
 kfbrussels.be: could not connect to host
 kg-rating.com: could not connect to host
 kgxtech.com: max-age too low: 2592000
 khaganat.net: did not receive HSTS header
 ki-on.net: did not receive HSTS header
 kialo.com: did not receive HSTS header
@@ -3636,17 +3614,17 @@ kirkforcongress.com: could not connect t
 kirkforsenate.com: could not connect to host
 kirkpatrickdavis.com: could not connect to host
 kisa.io: could not connect to host
 kisalt.im: did not receive HSTS header
 kiss-register.org: did not receive HSTS header
 kissart.net: could not connect to host
 kisstudio.co: max-age too low: 0
 kisstyle.ru: did not receive HSTS header
-kita.id: did not receive HSTS header
+kita.id: could not connect to host
 kitabgaul.com: did not receive HSTS header
 kitakemon.com: could not connect to host
 kitashop.com.br: did not receive HSTS header
 kitchen-profi.ru: max-age too low: 2592000
 kitchenchaos.de: could not connect to host
 kitk.at: could not connect to host
 kitsostech.com: could not connect to host
 kitsta.com: could not connect to host
@@ -3659,17 +3637,17 @@ klauwd.com: did not receive HSTS header
 klaxn.org: could not connect to host
 kleertjesvoordelig.nl: could not connect to host
 kleppe.co: could not connect to host
 kletterkater.com: did not receive HSTS header
 klicktojob.de: could not connect to host
 klunkergarten.org: could not connect to host
 kmartin.io: did not receive HSTS header
 knapen.io: max-age too low: 604800
-knccloud.com: could not connect to host
+knccloud.com: did not receive HSTS header
 knight-industries.org: could not connect to host
 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
 kode-it.de: could not connect to host
 kodexplorer.ml: could not connect to host
 kodiaklabs.org: could not connect to host
@@ -3820,17 +3798,16 @@ leardev.de: did not receive HSTS header
 learnedovo.com: did not receive HSTS header
 learnfrenchfluently.com: did not receive HSTS header
 learningorder.com: could not connect to host
 lebrun.org: could not connect to host
 leddruckalarm.de: did not receive HSTS header
 ledgerscope.net: could not connect to host
 leen.io: did not receive HSTS header
 leermotorrijden.nl: max-age too low: 300
-leet2.com: could not connect to host
 legarage.org: could not connect to host
 leinir.dk: did not receive HSTS header
 leitner.com.au: did not receive HSTS header
 leiyun.me: did not receive HSTS header
 lellyboi.ml: could not connect to host
 lelongbank.com: did not receive HSTS header
 lemp.io: did not receive HSTS header
 lenagroben.de: could not connect to host
@@ -3920,26 +3897,25 @@ linux-mint.cz: could not connect to host
 linuxandstuff.de: could not connect to host
 linuxeyecandy.com: could not connect to host
 linuxfixed.it: could not connect to host
 linuxforyou.com: could not connect to host
 linuxgeek.ro: could not connect to host
 linuxmint.cz: could not connect to host
 linuxmonitoring.net: did not receive HSTS header
 liquorsanthe.in: could not connect to host
+lirion.de: could not connect to host
 lisaco.de: could not connect to host
 lisbongold.com: did not receive HSTS header
 lisonfan.com: 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
-litz.ca: could not connect to host
-litzenberger.ca: could not connect to host
 livedemo.io: could not connect to host
 livej.am: could not connect to host
 livi.co: did not receive HSTS header
 lixiang.one: could not connect to host
 lkp111138.me: could not connect to host
 lkummer.cz: could not connect to host
 loacg.com: did not receive HSTS header
 loadingdeck.com: did not receive HSTS header
@@ -4024,44 +4000,45 @@ luoe.ml: could not connect to host
 luoxiao.im: could not connect to host
 luripump.se: could not connect to host
 lusis.fr: did not receive HSTS header
 lusis.net: did not receive HSTS header
 lustrumxi.nl: could not connect to host
 luther.fi: did not receive HSTS header
 luxus-russen.de: did not receive HSTS header
 luxwatch.com: could not connect to host
-luzat.com: could not connect to host
 lv.search.yahoo.com: did not receive HSTS header
 lyuba.fr: could not connect to host
 lzkill.com: did not receive HSTS header
 m-ali.xyz: could not connect to host
 m-rickroll-v.pw: could not connect to host
 m.gparent.org: could not connect to host
 m.nu: did not receive HSTS header
 m0wef.uk: could not connect to host
 m2tc.fr: could not connect to host
 m3-gmbh.de: did not receive HSTS header
 m82labs.com: did not receive HSTS header
 maarten.nyc: could not connect to host
+maartenterpstra.xyz: could not connect to host
 mac-torrents.me: did not receive HSTS header
 macbolo.com: could not connect to host
 macchedil.com: did not receive HSTS header
 macdj.tk: could not connect to host
 macgeneral.de: did not receive HSTS header
 macsandcheesedreams.com: could not connect to host
 madars.org: did not receive HSTS header
 maddin.ga: could not connect to host
 madebymagnitude.com: did not receive HSTS header
 maderwin.com: did not receive HSTS header
 madesoftware.com.br: could not connect to host
 mafamane.com: could not connect to host
 mafiareturns.com: max-age too low: 2592000
 magenx.com: did not receive HSTS header
 magia360.com: did not receive HSTS header
+magicspaceninjapirates.de: did not receive HSTS header
 mahamed91.pw: could not connect to host
 mahfouzadedimeji.com: did not receive HSTS header
 maidofhonorcleaning.net: could not connect to host
 mail-settings.google.com: did not receive HSTS header (error ignored - included regardless)
 mail.google.com: did not receive HSTS header (error ignored - included regardless)
 mail4you.in: could not connect to host
 mailchuck.com: could not connect to host
 maildragon.com: could not connect to host
@@ -4086,17 +4063,17 @@ malmstroms-co.se: could not connect to h
 maltes.website: could not connect to host
 malwaretips.com: did not receive HSTS header
 malwre.io: could not connect to host
 mamaison.io: could not connect to host
 mamaxi.org: did not receive HSTS header
 mammothmail.com: could not connect to host
 mammothmail.net: could not connect to host
 mammothmail.org: could not connect to host
-manaboutahor.se: did not receive HSTS header
+manaboutahor.se: could not connect to host
 manage.zenpayroll.com: did not receive HSTS header
 managemynetsuite.com: did not receive HSTS header
 manageprojects.com: did not receive HSTS header
 manantial.mx: did not receive HSTS header
 maniadeprazer.com.br: could not connect to host
 manifestbin.com: did not receive HSTS header
 manitasicily.com: did not receive HSTS header
 manningbrothers.com: did not receive HSTS header
@@ -4108,16 +4085,17 @@ marchagen.nl: did not receive HSTS heade
 marcoececilia.it: did not receive HSTS header
 marcofinke.de: could not connect to host
 marcontrol.com: did not receive HSTS header
 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: could not connect to host
 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
 mario.party: did not receive HSTS header
 markaconnor.com: could not connect to host
 markayapilandirma.com: could not connect to host
@@ -4133,17 +4111,16 @@ markus-dev.com: did not receive HSTS hea
 markusweimar.de: did not receive HSTS header
 marleyresort.com: did not receive HSTS header
 marriottvetcareers.com: could not connect to host
 marsble.com: could not connect to host
 marshut.net: could not connect to host
 martialc.be: could not connect to host
 martiert.com: could not connect to host
 martijnvhoof.nl: could not connect to host
-martin-mattel.com: could not connect to host
 martinec.co.uk: could not connect to host
 martinestyle.com: could not connect to host
 martineve.com: did not receive HSTS header
 martinp.no: could not connect to host
 marumagic.com: did not receive HSTS header
 masjidtawheed.net: did not receive HSTS header
 maskt.pw: could not connect to host
 massot.eu: did not receive HSTS header
@@ -4194,33 +4171,33 @@ mca2017.org: did not receive HSTS header
 mcard.vn: did not receive HSTS header
 mcc.re: could not connect to host
 mcdonalds.ru: did not receive HSTS header
 mcga.media: could not connect to host
 mclab.su: could not connect to host
 mclist.it: could not connect to host
 mctherealm.net: could not connect to host
 mdfnet.se: did not receive HSTS header
+mdkr.nl: did not receive HSTS header
 mdosch.de: did not receive HSTS header
 mdscomp.net: did not receive HSTS header
 meamod.com: max-age too low: 0
 meat-education.com: could not connect to host
 mebio.us: did not receive HSTS header
 mecenat-cassous.com: did not receive HSTS header
 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
 medirich.co: could not connect to host
 meditek-dv.ru: could not connect to host
-medlineplus.gov: 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
 meetings2.com: did not receive HSTS header
 meetscompany.jp: did not receive HSTS header
 megakiste.de: could not connect to host
@@ -4233,16 +4210,17 @@ mein-gesundheitsmanager.com: max-age too
 meincloudspeicher.de: could not connect to host
 meinebo.it: could not connect to host
 melangebrasil.com: could not connect to host
 melearning.university: did not receive HSTS header
 melted.pw: could not connect to host
 memberpress.com: max-age too low: 86400
 members.mayfirst.org: did not receive HSTS header
 memeblast.ninja: could not connect to host
+memo-linux.com: could not connect to host
 memory-plus-180.com: could not connect to host
 memorytrace.space: could not connect to host
 menkyo-blog.com: did not receive HSTS header
 mensmaximus.de: did not receive HSTS header
 menthix.net: could not connect to host
 menudrivetest.com: could not connect to host
 meow.cloud: could not connect to host
 meozcraft.com: could not connect to host
@@ -4254,16 +4232,17 @@ meshlab.co: could not connect to host
 mesmoque.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
 metin2blog.de: did not receive HSTS header
 metis.pw: could not connect to host
+metricaid.com: did not receive HSTS header
 metzgerei-birkenhof.de: could not connect to host
 meuemail.pro: could not connect to host
 mexbt.com: could not connect to host
 mexicanbusinessweb.mx: did not receive HSTS header
 mexicansbook.ru: could not connect to host
 mfcatalin.com: could not connect to host
 mfedderke.com: could not connect to host
 mgdigital.fr: did not receive HSTS header
@@ -4271,16 +4250,17 @@ mh-bloemen.co.jp: could not connect to h
 mhdsyarif.com: did not receive HSTS header
 mhealthdemocamp.com: could not connect to host
 mhertel.com: did not receive HSTS header
 mhict.nl: could not connect to host
 mhjuma.com: could not connect to host
 mht-travel.com: could not connect to host
 mhx.pw: could not connect to host
 michaeldemuth.com: could not connect to host
+michaeleichorn.com: could not connect to host
 michaelfitzpatrickruth.com: did not receive HSTS header
 michaelmorpurgo.com: did not receive HSTS header
 michaelscrivo.com: did not receive HSTS header
 michaelwaite.org: could not connect to host
 michal-kral.cz: could not connect to host
 michalborka.cz: could not connect to host
 michelledonelan.co.uk: did not receive HSTS header
 miconware.de: could not connect to host
@@ -4301,16 +4281,17 @@ mightysounds.cz: max-age too low: 0
 mijcorijneveld.nl: did not receive HSTS header
 mijn-email.org: could not connect to host
 mijnetickets.nl: did not receive HSTS header
 mijnkredietpaspoort.nl: could not connect to host
 mikaelemilsson.net: did not receive HSTS header
 mikeburns.com: could not connect to host
 mikeg.de: did not receive HSTS header
 mikeology.org: could not connect to host
+mikepair.net: did not receive HSTS header
 mikeybot.com: could not connect to host
 mikii.club: could not connect to host
 mikk.cz: could not connect to host
 miku.be: did not receive HSTS header
 miku.hatsune.my: max-age too low: 5184000
 milang.xyz: could not connect to host
 milatrans.pl: did not receive HSTS header
 milcoresonline.com: could not connect to host
@@ -4320,17 +4301,16 @@ militarycarlot.com: did not receive HSTS
 mimoderoupa.pt: could not connect to host
 mindcraft.ga: could not connect to host
 mindoktor.se: did not receive HSTS header
 minecraftforum.ch: could not connect to host
 minecraftserverz.com: could not connect to host
 minecraftvoter.com: could not connect to host
 mineover.es: could not connect to host
 mingy.ddns.net: could not connect to host
-mingyueli.com: could not connect to host
 minh.at: could not connect to host
 mini-piraten.de: did not receive HSTS header
 minikneet.nl: did not receive HSTS header
 minimoo.se: could not connect to host
 minimvc.com: did not receive HSTS header
 minnesotadata.com: could not connect to host
 minora.io: could not connect to host
 minoris.se: could not connect to host
@@ -4371,20 +4351,19 @@ mobilemedics.com: did not receive HSTS h
 mobilethreat.net: could not connect to host
 mobilethreatnetwork.net: could not connect to host
 mobilpass.no: could not connect to host
 mobiwalk.com: could not connect to host
 mobix5.com: did not receive HSTS header
 mockmyapp.com: could not connect to host
 mocloud.eu: could not connect to host
 mocsuite.club: could not connect to host
-mocurio.com: did not receive HSTS header
 modded-minecraft-server-list.com: could not connect to host
 moddedark.com: could not connect to host
-model9.io: did not receive HSTS header
+model9.io: could not connect to host
 modemagazines.co.uk: could not connect to host
 moderatoren.org: did not receive HSTS header
 moderatortv.de: did not receive HSTS header
 modydev.club: could not connect to host
 moe4sale.in: did not receive HSTS header
 moebel-nagel.de: did not receive HSTS header
 moellers.it: could not connect to host
 moelord.org: could not connect to host
@@ -4404,16 +4383,17 @@ 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: did not receive HSTS header
 moneytoday.com: max-age too low: 0
 monika-sokol.de: did not receive HSTS header
 monitaure.io: could not connect to host
 monitman.com: did not receive HSTS header
+monkeydust.net: could not connect to host
 monsieurbureau.com: did not receive HSTS header
 monstrus.de: max-age too low: 86400
 montanacures.org: could not connect to host
 montenero.pl: could not connect to host
 montonicms.com: could not connect to host
 moobo.xyz: could not connect to host
 moon.lc: could not connect to host
 moonless.net: could not connect to host
@@ -4445,25 +4425,23 @@ motionpicturesolutions.com: did not rece
 motocyklovedily.cz: did not receive HSTS header
 motorbiketourhanoi.com: could not connect to host
 motoryz.com: max-age too low: 300
 mottvd.com: could not connect to host
 moula.com.au: did not receive HSTS header
 mountainmusicpromotions.com: did not receive HSTS header
 moviesabout.net: could not connect to host
 moy-gorod.od.ua: did not receive HSTS header
-moy.cat: could not connect to host
 mp3juices.is: could not connect to host
 mpintaamalabanna.it: could not connect to host
 mqas.net: could not connect to host
 mr-hosting.com: could not connect to host
 mrawe.com: could not connect to host
 mrdani.net: could not connect to host
 mredsanders.net: could not connect to host
-mremallin.ca: could not connect to host
 mrettich.org: did not receive HSTS header
 mrhack.cz: 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
 ms-alternativ.de: could not connect to host
 msc-seereisen.net: could not connect to host
@@ -4545,16 +4523,17 @@ myweb360.de: did not receive HSTS header
 myzone.com: did not receive HSTS header
 n-rickroll-e.pw: could not connect to host
 n0psled.nl: could not connect to host
 n2x.in: could not connect to host
 n4l.pw: could not connect to host
 nabru.co.uk: did not receive HSTS header
 nabytko.cz: could not connect to host
 nadia.pt: could not connect to host
+nadyaolcer.fr: could not connect to host
 nagoya-kyuyo.com: could not connect to host
 naiharngym.com: did not receive HSTS header
 najedlo.sk: could not connect to host
 nakamastreamingcommunity.com: could not connect to host
 nakliyatsirketi.biz: could not connect to host
 nakuro.de: could not connect to host
 nalifornia.com: did not receive HSTS header
 nallon.com.br: could not connect to host
@@ -4677,44 +4656,44 @@ nien.chat: could not connect to host
 nien.org: did not receive HSTS header
 nightsnack.cf: could not connect to host
 nightwinds.tk: could not connect to host
 niho.jp: did not receive HSTS header
 nihseniorhealth.gov: did not receive HSTS header
 nikcub.com: could not connect to host
 niklas.pw: did not receive HSTS header
 niklaslindblad.se: did not receive HSTS header
+nikobradshaw.com: did not receive HSTS header
 ninchisho-online.com: did not receive HSTS header
 ninhs.org: could not connect to host
 nippler.org: did not receive HSTS header
 nippombashi.net: did not receive HSTS header
 nipponcareers.com: did not receive HSTS header
-niva.synology.me: could not connect to host
 nixmag.net: did not receive HSTS header
 nkp-media.de: could not connect to host
 nll.fi: could not connect to host
 nmadda.com: did not receive HSTS header
 nmctest.net: could not connect to host
 nmueller.at: could not connect to host
 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: did not receive HSTS header
-node-core-app.com: could not connect to host
 nodebrewery.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
 nolberg.net: did not receive HSTS header
 nolimitsbook.de: did not receive HSTS header
 nolte.work: could not connect to host
 nomorebytes.de: could not connect to host
+nootropicsource.com: did not receive HSTS header
 nope.website: could not connect to host
 nopex.no: could not connect to host
 nopol.de: could not connect to host
 norandom.com: could not connect to host
 norb.at: could not connect to host
 nordlicht.photography: did not receive HSTS header
 northcutt.com: did not receive HSTS header
 nosecretshop.com: could not connect to host
@@ -5029,17 +5008,16 @@ paster.li: did not receive HSTS header
 pasteros.io: could not connect to host
 pataua.kiwi: did not receive HSTS header
 paternitydnatest.com: could not connect to host
 patfs.com: did not receive HSTS header
 patientinsight.net: could not connect to host
 patt.us: could not connect to host
 patterson.mp: could not connect to host
 paul-kerebel.pro: could not connect to host
-paulbramhall.uk: did not receive HSTS header
 paulbunyanmls.com: could not connect to host
 paulproell.at: could not connect to host
 paulshir.com: could not connect to host
 paulyang.cn: did not receive HSTS header
 pavelfojt.cz: did not receive HSTS header
 paxwinkel.nl: did not receive HSTS header
 pay.gigahost.dk: did not receive HSTS header
 payfreez.com: could not connect to host
@@ -5060,20 +5038,21 @@ pdamsidoarjo.co.id: could not connect to
 pdevio.com: could not connect to host
 pdf.yt: could not connect to host
 pdthings.net: could not connect to host
 peaceandwool.com: did not receive HSTS header
 peakapp.nl: could not connect to host
 pebblesdemo.com: could not connect to host
 peerherrmann.de: could not connect to host
 peetah.com: max-age too low: 0
-peissen.com: could not connect to host
+peissen.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]
 pekkapikkarainen.fi: did not receive HSTS header
 pekkarik.ru: could not connect to host
 peliculasaudiolatinoonline.com: could not connect to host
+peliseries24.com: did not receive HSTS header
 pengui.uk: could not connect to host
 penguinclientsystem.com: did not receive HSTS header
 pentagram.me: max-age too low: 2592000
 pentano.net: could not connect to host
 people-mozilla.org: could not connect to host
 peperiot.com: did not receive HSTS header
 pepperhead.com: did not receive HSTS header
 pepperworldhotshop.de: did not receive HSTS header
@@ -5171,16 +5150,17 @@ piyabute.com: max-age too low: 0
 pizzadoc.ch: could not connect to host
 pjbet.com: max-age too low: 0
 pjbet.mg: did not receive HSTS header
 pjqq.com: max-age too low: 0
 pk.search.yahoo.com: did not receive HSTS header
 placefade.com: could not connect to host
 placollection.org: could not connect to host
 plaettliaktion.ch: did not receive HSTS header
+planetexpress.cc: could not connect to host
 planpharmacy.com: could not connect to host
 plass.hamburg: could not connect to host
 plataformadeinformacion.es: did not receive HSTS header
 platform.lookout.com: could not connect to host
 platomania.eu: did not receive HSTS header
 play.google.com: did not receive HSTS header (error ignored - included regardless)
 playerhunter.com: did not receive HSTS header
 playflick.com: could not connect to host
@@ -5227,17 +5207,17 @@ politically-incorrect.xyz: could not con
 politologos.org: did not receive HSTS header
 polycoise.com: could not connect to host
 polycrypt.us: could not connect to host
 polypho.nyc: could not connect to host
 pompefunebrilariviera.it: could not connect to host
 pompompoes.com: could not connect to host
 ponolau.com: max-age too low: 7776000
 pontualcomp.com: could not connect to host
-pony.today: could not connect to host
+pony.today: did not receive HSTS header
 ponythread.com: did not receive HSTS header
 poolsandstuff.com: did not receive HSTS header
 poon.tech: could not connect to host
 popkins.ml: could not connect to host
 porno-gif.ru: did not receive HSTS header
 pornstars.me: did not receive HSTS header
 portalm.tk: could not connect to host
 portalplatform.net: could not connect to host
@@ -5304,22 +5284,22 @@ production.vn: did not receive HSTS head
 producto8.com: did not receive HSTS header
 profhome-shop.com: did not receive HSTS header
 profi-durchgangsmelder.de: did not receive HSTS header
 profivps.com: could not connect to host
 profloorstl.com: did not receive HSTS header
 profundr.com: could not connect to host
 profusion.io: could not connect to host
 progblog.net: could not connect to host
-progolfjourney.com: could not connect to host
 progress-technologies.com: could not connect to host
 prohostonline.fi: could not connect to host
 proitconsulting.com.au: could not connect to host
 project-sparks.eu: did not receive HSTS header
 projectascension.io: could not connect to host
+projectblackbook.us: could not connect to host
 projectdp.net: could not connect to host
 projectmercury.space: could not connect to host
 projekt-umbriel.de: could not connect to host
 promecon-gmbh.de: did not receive HSTS header
 prontocleaners.co.uk: could not connect to host
 prontolight.com: did not receive HSTS header
 prontomovers.co.uk: could not connect to host
 propactrading.com: could not connect to host
@@ -5336,16 +5316,17 @@ proxybay.top: did not receive HSTS heade
 proxydesk.net: could not connect to host
 proxyowl.pw: could not connect to host
 proxyportal.org: did not receive HSTS header
 proxyrox.com: could not connect to host
 pruikshop.nl: could not connect to host
 prxio.date: could not connect to host
 prxio.site: could not connect to host
 prytkov.com: did not receive HSTS header
+pseudo.coffee: could not connect to host
 pshostpk.com: did not receive HSTS header
 psw.academy: could not connect to host
 psw.consulting: could not connect to host
 psxtr.com: could not connect to host
 ptn.moscow: could not connect to host
 ptonet.com: could not connect to host
 pubkey.is: could not connect to host
 publications.qld.gov.au: did not receive HSTS header
@@ -5360,17 +5341,16 @@ puppydns.com: did not receive HSTS heade
 purewebmasters.com: could not connect to host
 purplemoon.mobi: did not receive HSTS header
 purplestar.mobi: did not receive HSTS header
 push.world: did not receive HSTS header
 pushapp.org: did not receive HSTS header
 pwd.ovh: could not connect to host
 pwnsdx.pw: could not connect to host
 py.search.yahoo.com: did not receive HSTS header
-pycrypto.org: could not connect to host
 pyol.org: could not connect to host
 pypi-mirrors.org: did not receive HSTS header
 pypi-status.org: could not connect to host
 pyplo.org: did not receive HSTS header
 pypt.lt: did not receive HSTS header
 q-rickroll-u.pw: could not connect to host
 q2.si: did not receive HSTS header
 qbik.de: did not receive HSTS header
@@ -5386,16 +5366,17 @@ qldconservation.org: could not connect t
 qonqa.de: did not receive HSTS header
 qop.io: could not connect to host
 qorm.co.uk: did not receive HSTS header
 qqq.gg: could not connect to host
 qr-city.org: did not receive HSTS header
 qrara.net: did not receive HSTS header
 qrlending.com: did not receive HSTS header
 quail.solutions: could not connect to host
+quakerlens.com: could not connect to host
 quality1.com.br: did not receive HSTS header
 qualityology.com: did not receive HSTS header
 quanglepro.com: could not connect to host
 quantacloud.ch: could not connect to host
 quantenteranik.eu: could not connect to host
 quantum-cloud.xyz: could not connect to host
 quantum-ethics.com: could not connect to host
 quantumcourse.org: did not receive HSTS header
@@ -5407,16 +5388,17 @@ quickpayservice.com: could not connect t
 quizmemes.org: could not connect to host
 quli.nl: did not receive HSTS header
 quotehex.com: could not connect to host
 quotemaster.co.za: could not connect to host
 quranserver.net: could not connect to host
 qvi.st: did not receive HSTS header
 qwaser.fr: could not connect to host
 qwilink.me: did not receive HSTS header
+r-core.ru: could not connect to host
 r-rickroll-u.pw: could not connect to host
 r10n.com: did not receive HSTS header
 r15.me: did not receive HSTS header
 r3bl.me: did not receive HSTS header
 ra-schaal.de: could not connect to host
 raajheshkannaa.com: could not connect to host
 rachelreagan.com: could not connect to host
 rackblue.com: did not receive HSTS header
@@ -5500,17 +5482,16 @@ redner.cc: did not receive HSTS header
 rednertv.de: did not receive HSTS header
 redports.org: could not connect to host
 redy.host: did not receive HSTS header
 referenten.org: did not receive HSTS header
 refitplanner.com: did not receive HSTS header
 reg.ru: did not receive HSTS header
 regaloaks.com: did not receive HSTS header
 regalpalms.com: did not receive HSTS header
-regar42.fr: did not receive HSTS header
 regenbogenwald.de: did not receive HSTS header
 regenerescence.com: did not receive HSTS header
 reggae-cdmx.com: could not connect to host
 regolithmedia.com: did not receive HSTS header
 rehabthailand.nl: could not connect to host
 rei.ki: could not connect to host
 reic.me: could not connect to host
 reikiqueen.uk: could not connect to host
@@ -5532,17 +5513,17 @@ remitatm.com: did not receive HSTS heade
 remodela.com.ve: could not connect to host
 remonttitekniikka.fi: could not connect to host
 remoteham.com: could not connect to host
 rencaijia.com: did not receive HSTS header
 renem.net: max-age too low: 2592000
 rengarenkblog.com: could not connect to host
 renideo.fr: could not connect to host
 renlong.org: did not receive HSTS header
-renrenss.com: could not connect to host
+renrenss.com: did not receive HSTS header
 rentacarcluj.xyz: did not receive HSTS header
 rentbrowsertrain.me: could not connect to host
 rentcarassist.com: could not connect to host
 renteater.com: could not connect to host
 renyiyou.com: could not connect to host
 replacemychina.com: could not connect to host
 reprolife.co.uk: could not connect to host
 reqognize.com: could not connect to host
@@ -5551,17 +5532,16 @@ res42.com: could not connect to host
 resama.eu: did not receive HSTS header
 research.facebook.com: did not receive HSTS header
 reserve-online.net: did not receive HSTS header
 residentsinsurance.co.uk: did not receive HSTS header
 resl20.servehttp.com: could not connect to host
 respice.xyz: could not connect to host
 respostas.com.br: did not receive HSTS header
 restchart.com: did not receive HSTS header
-restioson.me: could not connect to host
 restrealitaet.de: did not receive HSTS header
 returnofwar.com: could not connect to host
 revapost.ch: could not connect to host
 revealdata.com: did not receive HSTS header
 revello.org: did not receive HSTS header
 reverie.pw: could not connect to host
 reviewjust.com: did not receive HSTS header
 reviews.anime.my: max-age too low: 5184000
@@ -5659,17 +5639,17 @@ rr.in.th: could not connect to host
 rrke.cc: did not receive HSTS header
 rrom.me: could not connect to host
 rsajeey.info: could not connect to host
 rsampaio.info: could not connect to host
 rsblake.net: could not connect to host
 rsf.io: could not connect to host
 rsmaps.org: could not connect to host
 rss.sh: could not connect to host
-rtcx.net: could not connect to host
+rtcx.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]
 rubbereggs.ca: could not connect to host
 rubecodeberg.com: could not connect to host
 rubenschulz.nl: could not connect to host
 rubi-ka.net: max-age too low: 0
 ruborr.se: did not receive HSTS header
 rubysecurity.org: did not receive HSTS header
 rubyshop.nl: max-age too low: 604800
 rudeotter.com: did not receive HSTS header
@@ -5729,16 +5709,17 @@ sanasalud.org: could not connect to host
 sandviks.com: did not receive HSTS header
 sanex.ca: could not connect to host
 sanguoxiu.com: could not connect to host
 sanpham-balea.org: could not connect to host
 sansdev.com: could not connect to host
 sansemea.com: did not receive HSTS header
 sansonehowell.com: max-age too low: 0
 santing.net: did not receive HSTS header
+santojuken.co.jp: could not connect to host
 santouri.be: could not connect to host
 sarah-beckett-harpist.com: did not receive HSTS header
 sarahsweetlife.com: could not connect to host
 sarahsweger.com: could not connect to host
 sarisonproductions.com: did not receive HSTS header
 saruwebshop.co.za: could not connect to host
 satal.in: max-age too low: 0
 satanichia.moe: could not connect to host
@@ -5750,17 +5731,16 @@ saturne.tk: could not connect to host
 saturngames.co.uk: did not receive HSTS header
 saucyfox.net: did not receive HSTS header
 saumon.xyz: could not connect to host
 saunasandstuff.ca: did not receive HSTS header
 saunasandstuff.com: did not receive HSTS header
 sauvagebridge.nl: could not connect to host
 savannahtasteexperience.com: did not receive HSTS header
 saveyour.biz: did not receive HSTS header
-savic.com: did not receive HSTS header
 sawamura-rental.com: did not receive HSTS header
 say-hanabi.com: could not connect to host
 sazima.ru: did not receive HSTS header
 sbox-archives.com: could not connect to host
 sby.de: did not receive HSTS header
 sc4le.com: could not connect to host
 scannabi.com: could not connect to host
 schadegarant.net: could not connect to host
@@ -5772,43 +5752,42 @@ schooltrends.co.uk: did not receive HSTS
 schopenhauer-institut.de: did not receive HSTS header
 schreiber-netzwerk.eu: did not receive HSTS header
 schrodinger.io: could not connect to host
 schroettle.com: did not receive HSTS header
 schulterglatzen-altenwalde.de: could not connect to host
 schultzflorists.com: could not connect to host
 schurkenstaat.net: could not connect to host
 schwarzkopfforyou.de: did not receive HSTS header
-schweizerbolzonello.net: could not connect to host
 schwetz.net: could not connect to host
 scicasts.com: max-age too low: 7776000
 scienceathome.org: did not receive HSTS header
+sciencebase.gov: did not receive HSTS header
 scivillage.com: did not receive HSTS header
 sclgroup.cc: did not receive HSTS header
 scooshonline.co.uk: did not receive HSTS header
 scores4schools.com: could not connect to host
 scotbirchfield.com: did not receive HSTS header
 scottdial.com: did not receive HSTS header
 scottferguson.com.au: did not receive HSTS header
-scottgthomas.com: could not connect to host
 scottnicol.co.uk: could not connect to host
 scourt.info: could not connect to host
 scourt.org.ua: could not connect to host
 scrambl.is: could not connect to host
 scramble.io: could not connect to host
 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: could not connect to host
-scribbleserver.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
 sd4u.be: max-age too low: 86400
 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
 seans.cc: did not receive HSTS header
@@ -5822,17 +5801,16 @@ secnet.ga: could not connect to host
 secondary-survivor.com: could not connect to host
 secondary-survivor.help: could not connect to host
 secondary-survivor.net: could not connect to host
 secondarysurvivor.help: could not connect to host
 secondarysurvivorportal.com: could not connect to host
 secondarysurvivorportal.help: could not connect to host
 secondbyte.nl: could not connect to host
 secondspace.ca: could not connect to host
-secretintelligence.0.me.uk: could not connect to host
 section508.gov: did not receive HSTS header
 sectun.com: did not receive HSTS header
 secure-games.us: could not connect to host
 secure.link: did not receive HSTS header
 securechat4.me: could not connect to host
 secureradio.net: could not connect to host
 securesuisse.ch: could not connect to host
 security-carpet.com: could not connect to host
@@ -5852,17 +5830,16 @@ seefunk.net: did not receive HSTS header
 seele.ca: could not connect to host
 sehenderson.com: did not receive HSTS header
 seiko-dojo.com: could not connect to host
 seiler-bad.de: did not receive HSTS header
 sektor.team: could not connect to host
 selecadm.name: could not connect to host
 selectary.com: could not connect to host
 selectruckscalltrackingreports.com: could not connect to host
-self-evident.org: could not connect to host
 selfcarecentral.com: max-age too low: 7776000
 selfdefenserx.com: did not receive HSTS header
 selfie-france.fr: could not connect to host
 selldorado.com: could not connect to host
 sello.com: did not receive HSTS header
 sellocdn.com: could not connect to host
 sellservs.co.za: could not connect to host
 semaf.at: max-age too low: 86400
@@ -5907,16 +5884,17 @@ sfsltd.com: did not receive HSTS header
 shadoom.com: did not receive HSTS header
 shadowmorph.info: did not receive HSTS header
 shadowsocks.com.hk: did not receive HSTS header
 shadowsocks.net: could not connect to host
 shadowsocks.wiki: did not receive HSTS header
 shamka.ru: could not connect to host
 shanekoster.net: did not receive HSTS header
 shanesage.com: could not connect to host
+shannoneichorn.com: could not connect to host
 shapesedinburgh.co.uk: did not receive HSTS header
 shareimg.xyz: could not connect to host
 sharepass.pw: could not connect to host
 sharepic.xyz: could not connect to host
 sharevari.com: did not receive HSTS header
 shauncrowley.co.uk: could not connect to host
 shaunwheelhou.se: could not connect to host
 shawnh.net: could not connect to host
@@ -5930,16 +5908,17 @@ shiftins.com: could not connect to host
 shiftplanning.com: did not receive HSTS header
 shiinko.com: could not connect to host
 shindorei.fr: did not receive HSTS header
 shinebijoux.com.br: could not connect to host
 shinju.moe: could not connect to host
 shiona.xyz: could not connect to host
 shipmile.com: did not receive HSTS header
 shipping24h.com: did not receive HSTS header
+shirakaba-cc.com: could not connect to host
 shirosaki.org: 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
 shoprose.ru: could not connect to host
 shops.neonisi.com: could not connect to host
@@ -6001,40 +5980,37 @@ sinonimosonline.com.br: could not connec
 sinosky.org: did not receive HSTS header
 siriad.com: could not connect to host
 sirius-lee.net: could not connect to host
 sitennisclub.com: did not receive HSTS header
 siterip.org: could not connect to host
 sites.google.com: did not receive HSTS header (error ignored - included regardless)
 sitesten.com: did not receive HSTS header
 sixtwentyten.com: did not receive HSTS header
-skhoop.cz: did not receive HSTS header
 ski-insurance.com.au: did not receive HSTS header
 skidstresser.com: did not receive HSTS header
 skile.ru: could not connect to host
 skillproxy.com: could not connect to host
 skillproxy.net: could not connect to host
 skillproxy.org: could not connect to host
 skk.io: could not connect to host
 skoda-clever-lead.de: could not connect to host
 skotty.io: did not receive HSTS header
-skou.dk: could not connect to host
 skullhouse.nyc: did not receive HSTS header
 skyasker.cn: could not connect to host
 skyflix.me: could not connect to host
 skyoy.com: did not receive HSTS header
 skyrunners.ch: could not connect to host
 slanterns.net: could not connect to host
 slash-dev.de: could not connect to host
 slashand.co: did not receive HSTS header
 slashdesign.it: did not receive HSTS header
 slashem.me: did not receive HSTS header
 slattery.co: could not connect to host
 slauber.de: did not receive HSTS header
-slaughterhouse.fr: could not connect to host
 sleep10.com: could not connect to host
 slicketl.com: did not receive HSTS header
 slightfuture.click: could not connect to host
 slightfuture.com: did not receive HSTS header
 slix.io: could not connect to host
 slope.haus: could not connect to host
 slotboss.co.uk: did not receive HSTS header
 slovakiana.sk: did not receive HSTS header
@@ -6103,17 +6079,17 @@ soll-i.ch: did not receive HSTS header
 solosmusic.xyz: could not connect to host
 solsystems.ru: could not connect to host
 solutive.fi: did not receive HSTS header
 somali-derp.com: could not connect to host
 someshit.xyz: could not connect to host
 somethingnew.xyz: could not connect to host
 sonic.network: did not receive HSTS header
 sonicrainboom.rocks: did not receive HSTS header
-soobi.org: did not receive HSTS header
+soobi.org: could not connect to host
 soondy.com: did not receive HSTS header
 sorensen-online.com: could not connect to host
 sosaka.ml: could not connect to host
 sosiolog.com: did not receive HSTS header
 sotiran.com: could not connect to host
 sotor.de: did not receive HSTS header
 soucorneteiro.com.br: could not connect to host
 soulema.com: could not connect to host
@@ -6158,17 +6134,16 @@ spilsbury.io: could not connect to host
 spirit-dev.net: max-age too low: 0
 spisoggrin.dk: did not receive HSTS header
 spititout.it: could not connect to host
 spittersberger.recipes: did not receive HSTS header
 spokonline.com: could not connect to host
 sponsortobias.com: could not connect to host
 sportchirp-internal.azurewebsites.net: did not receive HSTS header
 sporthit.ru: did not receive HSTS header
-sportovnidum.cz: could not connect to host
 sportwette.eu: did not receive HSTS header
 spot-events.com: could not connect to host
 spotifyripper.tk: could not connect to host
 spotlightsrule.ddns.net: could not connect to host
 spr.id.au: did not receive HSTS header
 spreadsheets.google.com: did not receive HSTS header (error ignored - included regardless)
 sproutconnections.com: did not receive HSTS header
 sprutech.de: could not connect to host
@@ -6201,16 +6176,17 @@ stadjerspasonline.nl: could not connect 
 stadtbauwerk.at: did not receive HSTS header
 staffjoy.com: did not receive HSTS header
 staffjoystaging.com: could not connect to host
 stahl.xyz: could not connect to host
 stairfallgames.com: could not connect to host
 stalkerhispano.com: max-age too low: 0
 stalkerteam.pl: did not receive HSTS header
 stalschermer.nl: could not connect to host
+stamonicatourandtravel.com: could not connect to host
 standardssuck.org: did not receive HSTS header
 standingmist.com: did not receive HSTS header
 starandshield.com: did not receive HSTS header
 starapple.nl: did not receive HSTS header
 starfeeling.net: could not connect to host
 stargatepartners.com: did not receive HSTS header
 starmusic.ga: did not receive HSTS header
 starttraffic.com: did not receive HSTS header
@@ -6285,38 +6261,35 @@ studentrdh.com: did not receive HSTS hea
 studentresearcher.org: did not receive HSTS header
 studentskydenik.cz: could not connect to host
 studenttravel.cz: did not receive HSTS header
 studinf.xyz: could not connect to host
 studio-panic.com: did not receive HSTS header
 studiozelden.com: did not receive HSTS header
 studybay.com: did not receive HSTS header
 studydrive.net: did not receive HSTS header
-studyhub.cf: could not connect to host
+studyhub.cf: did not receive HSTS header
 stugb.de: did not receive HSTS header
-stuka-art.de: could not connect to host
 sturbock.me: did not receive HSTS header
 stylenda.com: could not connect to host
 subbing.work: could not connect to host
 subdimension.org: did not receive HSTS header
 subeesu.com: could not connect to host
 subhacker.net: did not receive HSTS header
 subrosa.io: could not connect to host
 subsys.no: did not receive HSTS header
 subtitle.rip: could not connect to host
-sudo.im: could not connect to host
 sudo.li: did not receive HSTS header
 sudokian.io: did not receive HSTS header
 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: did not receive HSTS header
 suncountrymarine.com: did not receive HSTS header
-sunflyer.cn: did not receive HSTS header
 sunfulong.me: could not connect to host
 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
 super-garciniaslim.com: could not connect to host
@@ -6333,25 +6306,26 @@ superschnappchen.de: could not connect t
 supersecurefancydomain.com: could not connect to host
 supertramp-dafonseca.com: did not receive HSTS header
 superuser.fi: could not connect to host
 superwally.org: could not connect to host
 suprlink.net: could not connect to host
 supweb.ovh: did not receive HSTS header
 surfeasy.com: did not receive HSTS header
 surfone-leucate.com: did not receive HSTS header
-sushifrick.de: could not connect to host
+sush.us: could not connect to host
 suzukikenichi.com: did not receive HSTS header
 sv.search.yahoo.com: did not receive HSTS header
 svatba-frantovi.cz: could not connect to host
 svenluijten.com: did not receive HSTS header
 svenskacasino.com: did not receive HSTS header
 svenskaservern.se: did not receive HSTS header
 sviz.pro: could not connect to host
 swdatlantico.pt: could not connect to host
+sweetair.com: did not receive HSTS header
 sweetstreats.ca: could not connect to host
 swfloshatraining.com: could not connect to host
 swimbee.nl: did not receive HSTS header
 swimming.ca: did not receive HSTS header
 swisstranslate.ch: did not receive HSTS header
 swisstranslate.fr: did not receive HSTS header
 swmd5c.org: could not connect to host
 swu.party: could not connect to host
@@ -6440,17 +6414,17 @@ tc-bonito.de: did not receive HSTS heade
 tc.nz: did not receive HSTS header
 tcao.info: could not connect to host
 tcby45.xyz: could not connect to host
 tcdw.net: did not receive HSTS header
 tcl.ath.cx: did not receive HSTS header
 tcomms.org: max-age too low: 0
 tcp.expert: did not receive HSTS header
 tcptun.com: could not connect to host
-tcpweb.net: did not receive HSTS header
+tcpweb.net: could not connect to host
 tcwebvn.com: could not connect to host
 teachforcanada.ca: did not receive HSTS header
 team-one.racing: could not connect to host
 team-pancake.eu: could not connect to host
 team-teasers.com: did not receive HSTS header
 teamblueridge.org: could not connect to host
 teampoint.cz: could not connect to host
 teamsocial.co: did not receive HSTS header
@@ -6503,16 +6477,17 @@ tenni.xyz: could not connect to host
 tensei-slime.com: did not receive HSTS header
 tensionup.com: could not connect to host
 tentins.com: could not connect to host
 teos.online: could not connect to host
 terra.by: did not receive HSTS header
 terrax.berlin: could not connect to host
 terrax.info: could not connect to host
 terry.pub: max-age too low: 604800
+tescoirelandpayslips.com: did not receive HSTS header
 testandroid.xyz: could not connect to host
 teufelsystem.de: could not connect to host
 teulon.eu: could not connect to host
 texte-zur-taufe.de: did not receive HSTS header
 textoplano.xyz: could not connect to host
 textracer.dk: could not connect to host
 tezcam.tk: could not connect to host
 tf2stadium.com: did not receive HSTS header
@@ -6602,16 +6577,17 @@ thiswebhost.com: did not receive HSTS he
 thkb.net: could not connect to host
 thomas-ferney.fr: did not receive HSTS header
 thomas-gibertie.fr: did not receive HSTS header
 thomasharvey.me: did not receive HSTS header
 thomaskliszowski.fr: did not receive HSTS header
 thomasmeester.nl: did not receive HSTS header
 thomasnet.fr: could not connect to host
 thomasschweizer.net: could not connect to host
+thor.edu: did not receive HSTS header
 thorncreek.net: did not receive HSTS header
 thriveapproach.co.uk: did not receive HSTS header
 throughthelookingglasslens.co.uk: could not connect to host
 thumbtack.com: did not receive HSTS header
 thundercampaign.com: could not connect to host
 ti.blog.br: could not connect to host
 tibbitshall.ca: did not receive HSTS header
 tickettoaster.de: max-age too low: 0
@@ -6631,17 +6607,17 @@ tiliaze.be: could not connect to host
 tiliaze.biz: could not connect to host
 tiliaze.eu: could not connect to host
 tiliaze.info: could not connect to host
 tiliaze.net: could not connect to host
 tilkah.com.au: could not connect to host
 tillcraft.com: could not connect to host
 timbeilby.com: could not connect to host
 timbuktutimber.com: did not receive HSTS header
-timcamara.com: did not receive HSTS header
+timcamara.com: could not connect to host
 timdoug.com: could not connect to host
 time-river.xyz: could not connect to host
 timeserver0.de: could not connect to host
 timeserver1.de: could not connect to host
 timeserver2.de: could not connect to host
 timeserver3.de: could not connect to host
 timestamp.io: did not receive HSTS header
 timetab.org: could not connect to host
@@ -6660,17 +6636,16 @@ tiremoni.ch: did not receive HSTS header
 tirex.media: did not receive HSTS header
 titanleaf.com: could not connect to host
 titouan.co: did not receive HSTS header
 tittarpuls.se: could not connect to host
 titties.ml: could not connect to host
 tjc.wiki: could not connect to host
 tjullrich.de: could not connect to host
 tkappertjedemetamorfose.nl: could not connect to host
-tlach.cz: did not receive HSTS header
 tlcdn.net: could not connect to host
 tlo.hosting: could not connect to host
 tlo.link: did not receive HSTS header
 tlo.network: could not connect to host
 tls.li: could not connect to host
 tlsbv.nl: did not receive HSTS header
 tlshost.net: could not connect to host
 tm-solutions.eu: did not receive HSTS header
@@ -6802,17 +6777,17 @@ tunebitfm.de: could not connect to host
 turkrock.com: did not receive HSTS header
 turnik-67.ru: could not connect to host
 turniker.ru: could not connect to host
 turtlementors.com: could not connect to host
 tussengelegenwoningverkopen.nl: could not connect to host
 tuturulianda.com: did not receive HSTS header
 tuvalie.com: could not connect to host
 tuxcall.de: could not connect to host
-tuxz.net: could not connect to host
+tuxz.net: did not receive HSTS header
 tv.search.yahoo.com: could not connect to host
 tvtubeflix.com: did not receive HSTS header
 tvz-materijali.com: could not connect to host
 tw2-tools.ga: could not connect to host
 twarog.cc: could not connect to host
 twee-onder-een-kap-woning-in-alphen-aan-den-rijn-kopen.nl: could not connect to host
 twee-onder-een-kap-woning-in-brielle-kopen.nl: could not connect to host
 twee-onder-een-kap-woning-in-de-friese-meren-kopen.nl: could not connect to host
@@ -6931,17 +6906,16 @@ unwiredbrain.com: could not connect to h
 unyq.me: could not connect to host
 uonstaffhub.com: could not connect to host
 uow.ninja: could not connect to host
 up1.ca: could not connect to host
 upaknship.com: did not receive HSTS header
 upboard.jp: could not connect to host
 upldr.pw: could not connect to host
 uporoops.com: could not connect to host
-upr.com.ua: could not connect to host
 uprotect.it: could not connect to host
 upstats.eu: could not connect to host
 ur-lauber.de: did not receive HSTS header
 urandom.eu.org: did not receive HSTS header
 urban-garden.lt: could not connect to host
 urbpic.com: could not connect to host
 urlchomp.com: did not receive HSTS header
 urphp.com: could not connect to host
@@ -6970,36 +6944,37 @@ uy.search.yahoo.com: did not receive HST
 uyym.com: could not connect to host
 uz.search.yahoo.com: did not receive HSTS header
 uzmandroid.com: did not receive HSTS header
 uzmandroid.net: could not connect to host
 uzmandroid.top: could not connect to host
 v0tti.com: could not connect to host
 v1sit0r.ru: could not connect to host
 v2.pw: did not receive HSTS header
+v2ex.us: did not receive HSTS header
 v4veedu.com: could not connect to host
 v7.cl: could not connect to host
 v789.com: max-age too low: 0
 v789xl.com: did not receive HSTS header
 vaalmarketplace.co.za: did not receive HSTS header
 vaddder.com: could not connect to host
-vadik.me: could not connect to host
 vaelma.fi: max-age too low: 600
 valethound.com: could not connect to host
 valhalla-agency.com: did not receive HSTS header
 valhallacostarica.com: could not connect to host
 valhallamovement.com: did not receive HSTS header
 valkyrja.xyz: could not connect to host
 valleyridgepta.org: could not connect to host
 vallis.net: did not receive HSTS header
 valmagus.com: could not connect to host
 vampirism.eu: could not connect to host
 vanacht.co.za: did not receive HSTS header
 vande-walle.eu: did not receive HSTS header
 vanderkley.it: could not connect to host
+vanderstraeten.dynv6.net: could not connect to host
 vanestack.com: could not connect to host
 vanetv.com: could not connect to host
 vanitas.xyz: could not connect to host
 vanitynailworkz.com: could not connect to host
 vansieleghem.com: could not connect to host
 vapordepot.jp: did not receive HSTS header
 vasanth.org: could not connect to host
 vbest.net: could not connect to host
@@ -7177,16 +7152,17 @@ wavefrontsystemstech.com: could not conn
 we-bb.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-redacteuren.nl: did not receive HSTS header
 web-torrent.com: max-age too low: 0
 web-vision.de: did not receive HSTS header
+web-wave.jp: could not connect to host
 web4all.fr: did not receive HSTS header
 web4pro.fr: could not connect to host
 webandwords.com.au: could not connect to host
 webapps.directory: could not connect to host
 webassadors.com: could not connect to host
 webchat.domains: did not receive HSTS header
 webdesign-kronberg.de: did not receive HSTS header
 webdev.mobi: could not connect to host
@@ -7211,23 +7187,23 @@ webstationservice.fr: could not connect 
 webstellung.com: could not connect to host
 webstory.xyz: could not connect to host
 webswitch.io: could not connect to host
 webtechgadgetry.com: did not receive HSTS header
 webtiles.co.uk: could not connect to host
 webtobesocial.de: could not connect to host
 webuni.hu: did not receive HSTS header
 webwork.pw: could not connect to host
+webyazilimankara.com: 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
-wekibe.de: could not connect to host
 welkers.org: could not connect to host
 wellastore.ru: did not receive HSTS header
 welpy.com: could not connect to host
 weltmeisterschaft.net: could not connect to host
 weme.eu: could not connect to host
 wendalyncheng.com: did not receive HSTS header
 werdeeintimo.de: did not receive HSTS header
 werkenbijkfc.nl: did not receive HSTS header
@@ -7240,19 +7216,16 @@ westsussexconnecttosupport.org: could no
 wettbuero.de: did not receive HSTS header
 wetten.eu: did not receive HSTS header
 wettertoertchen.com: could not connect to host
 wetttipps.com: did not receive HSTS header
 wetttipps.de: could not connect to host
 wevahoo.com: could not connect to host
 wevolver.com: did not receive HSTS header
 wewlad.me: could not connect to host
-wf-hosting.de: could not connect to host
-wfh.ovh: could not connect to host
-wfh.se: could not connect to host
 wftda.com: did not receive HSTS header
 whatnext.limited: did not receive HSTS header
 whats.io: could not connect to host
 whatsstalk.me: could not connect to host
 whatsyouroffer.co.uk: did not receive HSTS header
 whisker.network: could not connect to host
 whitehat.id: could not connect to host
 whiterabbit.org: did not receive HSTS header
@@ -7261,17 +7234,16 @@ whitestagforge.com: did not receive HSTS
 whoclicks.net: could not connect to host
 whoisapi.online: could not connect to host
 wholebites.com: max-age too low: 7776000
 whoneedstobeprimaried.today: could not connect to host
 whoshotya.de: did not receive HSTS header
 whysuck.com: could not connect to host
 wienholding.at: max-age too low: 0
 wieninternational.at: did not receive HSTS header
-wiimotion.de: could not connect to host
 wiire.me: could not connect to host
 wikiclash.info: could not connect to host
 wikipeter.nl: did not receive HSTS header
 wikisports.eu: could not connect to host
 wildbee.org: could not connect to host
 wilf1rst.com: could not connect to host
 wilfrid-calixte.fr: could not connect to host
 wilhelm-nathan.de: could not connect to host
@@ -7310,17 +7282,16 @@ wlzhiyin.cn: could not connect to host
 wmcuk.net: could not connect to host
 wmfinanz.com: could not connect to host
 wnmm.nl: could not connect to host
 wobblylang.org: could not connect to host
 wochenentwicklung.com: did not receive HSTS header
 wodice.com: could not connect to host
 wohnungsbau-ludwigsburg.de: did not receive HSTS header
 woima.fi: max-age too low: 604800
-wolfachtal-alpaka.de: could not connect to host
 wolfesden.com: could not connect to host
 wolfeyesusa.com: max-age too low: 3456000
 wolfwings.us: could not connect to host
 womosale.de: could not connect to host
 wonderbooks.club: could not connect to host
 wonderfall.xyz: could not connect to host
 wonderhost.info: could not connect to host
 wondy.com: could not connect to host
@@ -7428,17 +7399,16 @@ xfive.de: could not connect to host
 xgusto.com: did not receive HSTS header
 xia100.xyz: could not connect to host
 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
 xiazhanjian.com: could not connect to host
 ximens.me: could not connect to host
-xing.ml: could not connect to host
 xisa.it: could not connect to host
 xiyu.moe: could not connect to host
 xjoin.de: could not connect to host
 xlii.io: max-age too low: 86400
 xmerak.com: could not connect to host
 xmonk.org: could not connect to host
 xmr.my: did not receive HSTS header
 xn--3lqp21gwna.xn--fiqs8s: could not connect to host
@@ -7532,17 +7502,16 @@ yippie.nl: could not connect to host
 yizhu.com: could not connect to host
 yjsoft.me: did not receive HSTS header
 ynode.co: did not receive HSTS header
 ynsn.nl: did not receive HSTS header
 yntongji.com: could not connect to host
 yob.vn: could not connect to host
 yohanesmario.com: did not receive HSTS header
 yokeepo.com: max-age too low: 0
-yolobert.de: could not connect to host
 yoloboatrentals.com: did not receive HSTS header
 yoloprod.fr: did not receive HSTS header
 yoloseo.com: could not connect to host
 yomepre.com: could not connect to host
 yoru.me: did not receive HSTS header
 youcontrol.ru: could not connect to host
 youfencun.com: did not receive HSTS header
 youlog.net: could not connect to host
@@ -7639,24 +7608,22 @@ zjutv.com: could not connect to host
 zk.gd: did not receive HSTS header
 zkillboard.com: did not receive HSTS header
 zking.ga: could not connect to host
 zmsastro.co.za: could not connect to host
 zmy.im: did not receive HSTS header
 zocken.com: did not receive HSTS header
 zoe.vc: could not connect to host
 zohar.link: could not connect to host
-zolotoy-standart.com.ua: did not receive HSTS header
 zomiac.pp.ua: could not connect to host
 zoneminder.com: did not receive HSTS header
 zoo24.de: did not receive HSTS header
 zoofaeth.de: did not receive HSTS header
 zoomingin.net: max-age too low: 5184000
 zoommailing.com: did not receive HSTS header
-zooparadies.eu: could not connect to host
 zorasvobodova.cz: did not receive HSTS header
 zortium.report: could not connect to host
 zoznamrealit.sk: did not receive HSTS header
 zqhong.com: could not connect to host
 ztan.tk: could not connect to host
 ztcaoll222.cn: did not receive HSTS header
 zubel.it: did not receive HSTS header
 zudomc.me: could not connect to host
--- 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(1513529179641000);
+const PRTime gPreloadListExpirationTime = INT64_C(1513616138303000);
 %%
 0-1.party, 1
 0.me.uk, 1
 0005pay.com, 1
 007-preisvergleich.de, 1
 00881919.com, 1
 00f.net, 1
 00wbf.com, 1
@@ -104,16 +104,17 @@ 13826145000.com, 1
 1453914078.rsc.cdn77.org, 1
 1464424382.rsc.cdn77.org, 1
 14it.de, 1
 14x3.de, 1
 15-10.com, 1
 1600esplanade.com, 1
 16164f.com, 1
 1644091933.rsc.cdn77.org, 1
+166166.com, 1
 174.net.nz, 1
 1750studios.com, 0
 17hats.com, 1
 18f.gov, 1
 18f.gsa.gov, 0
 1921958389.rsc.cdn77.org, 1
 1972969867.rsc.cdn77.org, 1
 1981612088.rsc.cdn77.org, 1
@@ -365,16 +366,17 @@ 92url.com, 1
 9449-27a1-22a1-e0d9-4237-dd99-e75e-ac85-2f47-9d34.de, 1
 987987.com, 1
 9906753.net, 1
 9933445.com, 1
 99599.fi, 1
 99599.net, 1
 99buffets.com, 1
 99rst.org, 1
+9jadirect.com, 1
 9ss6.com, 1
 9uelle.jp, 1
 9vx.org, 1
 9yw.me, 1
 a-1indianawaterproofing.com, 1
 a-allard.be, 1
 a-ix.net, 1
 a-little-linux-box.at, 1
@@ -746,16 +748,17 @@ agenciadeempregosdourados.com.br, 1
 agenciafiscal.pe, 1
 agenda-loto.net, 0
 agenda21senden.de, 1
 agent6.com.au, 1
 agfmedia.com, 1
 aggr.pw, 1
 agilebits.com, 1
 agilebits.net, 0
+agileui.com, 1
 agiley.se, 1
 aging.gov, 1
 agonswim.com, 1
 agotnes.com, 1
 agowa.eu, 1
 agowa338.de, 1
 agreor.com, 1
 agrias.com.br, 1
@@ -803,16 +806,17 @@ aikenorganics.com, 1
 aikenpromotions.com, 1
 aikido-club-limburg.de, 1
 aikido-linz.at, 1
 aikido-wels.at, 1
 aim-consultants.com, 1
 aimeeandalec.com, 1
 aimgroup.co.tz, 1
 aimotive.com, 1
+aintevenmad.ch, 1
 aiois.com, 1
 aip-marine.com, 1
 air-shots.ch, 1
 airbly.com, 1
 airbnb.com, 1
 airbnbopen.com, 1
 airclass.com, 1
 airdur.eu, 1
@@ -960,16 +964,17 @@ aliacraft.net, 1
 alibangash.com, 1
 alibip.de, 1
 alicestudio.it, 1
 alicetone.net, 1
 alicialab.org, 1
 alienstat.com, 1
 alilialili.ga, 1
 alinasmusicstudio.com, 1
+alinode.com, 1
 alisonisrealestate.com, 1
 alisonlitchfield.com, 1
 alistairpialek.com, 1
 aliwebstore.com, 1
 alix-board.de, 1
 alize-theatre.ch, 1
 aljammaz.holdings, 1
 aljaspod.com, 1
@@ -1136,17 +1141,16 @@ ami-de-bastanes.fr, 1
 amicalecanyon.ch, 1
 amiciidogrescue.org.uk, 1
 amicsdelbus.com, 1
 amihub.com, 1
 amilum.org, 1
 aminafrance.com, 1
 amineptine.com, 1
 amisharingstuff.com, 1
-amitse.com, 1
 amnesy.fr, 1
 amo-entreprise-et-commerce.fr, 1
 amorim.ca, 1
 ampersandnbspsemicolon.com, 1
 amphetamines.org, 1
 amphibo.ly, 1
 ampledesigners.com, 1
 ams.co.rs, 1
@@ -1282,17 +1286,16 @@ animefluxxx.com, 1
 animorphsfanforum.com, 1
 anipassion.com, 1
 anita-mukorom.hu, 1
 anitaalbersen.nl, 1
 anitube-nocookie.ch, 1
 anitube.ch, 1
 anivar.net, 1
 ankarakart.com.tr, 1
-ankaraprofesyonelwebtasarim.com, 1
 ankarauzmanlarnakliyat.com, 1
 ankenbrand.me, 1
 ankitha.in, 1
 ankiweb.net, 1
 ankwanoma.com, 1
 anna.info, 1
 annaenemma.nl, 1
 annahmeschluss.de, 1
@@ -1436,16 +1439,17 @@ aposke.com, 1
 aposke.net, 1
 aposke.org, 1
 apothes.is, 1
 app-at.work, 1
 app.recurly.com, 1
 app.simpletax.ca, 1
 app.yinxiang.com, 0
 appartement-andrea.at, 1
+appartementhaus-badria.de, 1
 appartementmarsum.nl, 1
 appchive.net, 1
 appdrinks.com, 1
 appel-aide.ch, 1
 appelboomdefilm.nl, 1
 appengine.google.com, 1
 apperio.com, 1
 appharbor.com, 1
@@ -1489,16 +1493,17 @@ apv-ollon.ch, 1
 aqqrate.com, 1
 aqsiq.net, 1
 aqua-fotowelt.de, 1
 aquabio.ch, 1
 aquadonis.ch, 1
 aquahomo.com, 1
 aqualife.com.gr, 1
 aqualifeprojects.com, 1
+aqualogy.de, 1
 aquapoint.kiev.ua, 1
 aquaron.com, 1
 aquatechnologygroup.com, 1
 aquaundine.net, 1
 aquavitaedayspa.com.au, 1
 aquila.co.uk, 1
 aquilaguild.com, 1
 aquireceitas.com, 1
@@ -1573,17 +1578,16 @@ arlatools.com, 1
 arlen.io, 1
 arlet.click, 1
 armadaquadrat.com, 1
 armandsdiscount.com, 1
 armarinhovirtual.com.br, 1
 armazemdaminiatura.com.br, 1
 armenians.online, 1
 armil.it, 1
-arminpech.de, 1
 armleads.com, 1
 armstrongsengineering.com, 1
 army24.cz, 1
 armyofbane.com, 1
 armyprodej.cz, 1
 arnaudb.net, 1
 arnaudfeld.de, 1
 arnaudminable.net, 1
@@ -1778,17 +1782,16 @@ atlantis-kh.noip.me, 1
 atlantischild.hu, 1
 atlantiswaterproofing.com, 1
 atlas.co, 1
 atlaschiropractic.org, 1
 atlascultural.com, 1
 atlassian.io, 1
 atlassian.net, 1
 atletika.hu, 1
-atlseccon.com, 1
 atnis.com, 1
 ato4sound.com, 1
 atolm.net, 1
 atom-china.org, 1
 atom.solutions, 1
 atom86.net, 1
 atombase.org, 1
 atomism.com, 1
@@ -1973,17 +1976,16 @@ azabani.com, 1
 azamra.com, 1
 azbuki.by, 1
 azia.info, 1
 azimut.fr, 1
 azirevpn.com, 1
 azlk-team.ru, 1
 azort.com, 1
 azrazalea.net, 1
-azso.pro, 1
 aztrix.me, 1
 azu-l.com, 1
 azu-l.jp, 1
 azun.pl, 1
 azuxul.fr, 1
 azzag.co.uk, 1
 azzorti.com, 1
 b-b-law.com, 1
@@ -2024,16 +2026,17 @@ backgroundchecks.online, 1
 backgroundz.net, 1
 backintomotionphysiotherapy.com, 1
 backmountaingas.com, 1
 backpacker.dating, 1
 backscattering.de, 1
 backschues.com, 1
 backsideverbier.ch, 1
 backterris.com, 1
+backyardbbqbash.com, 1
 bacon-monitoring.org, 1
 bacontreeconsulting.com, 1
 bacula.jp, 1
 bad.horse, 1
 bad.pet, 1
 bad.show, 1
 badam.co, 1
 badbee.cc, 1
@@ -2144,16 +2147,17 @@ barlotta.net, 1
 barnabycolby.io, 1
 barnrats.com, 1
 baropkamp.be, 1
 barqo.co, 1
 barracuda.blog, 1
 barracuda.com.tr, 1
 barrett.ag, 1
 barrut.me, 0
+bars.kh.ua, 1
 barslecht.com, 1
 barslecht.nl, 1
 barta.me, 1
 bartel.ws, 1
 bartelt.name, 1
 bartlamboo.nl, 1
 bartula.de, 1
 baruch.me, 1
@@ -2393,17 +2397,16 @@ benscobie.com, 1
 bentertain.de, 1
 bentley.link, 1
 bentphotos.se, 1
 bentrask.com, 1
 benzou-space.com, 1
 beoordelingen.be, 1
 bep362.vn, 1
 beranovi.com, 1
-beraru.tk, 1
 berasavocate.com, 1
 beraten-entwickeln-steuern.de, 1
 berdu.id, 1
 bergenhave.nl, 1
 bergland-seefeld.at, 1
 bergstoneware.com, 1
 berlin-flirt.de, 1
 berlin-kohlefrei.de, 1
@@ -2449,17 +2452,16 @@ bestlashesandbrows.hu, 1
 bestleftwild.com, 1
 bestmotherfucking.website, 1
 bestof1001.de, 1
 bestperfumebrands.com, 1
 bestschools.top, 1
 bestseries.tv, 1
 bestwarezone.com, 1
 bestwebsite.gallery, 1
-betakah.net, 1
 betaworx.de, 1
 betaworx.eu, 1
 betformular.com, 1
 bethanyduke.com, 1
 betlander.com, 1
 betobaccofree.gov, 1
 betonmoney.com, 1
 betpamm.com, 1
@@ -2743,16 +2745,34 @@ bjtxl.cn, 1
 bk-bund-berlin.de, 1
 bk99.de, 0
 bl4ckb0x.com, 1
 bl4ckb0x.de, 1
 bl4ckb0x.eu, 1
 bl4ckb0x.info, 1
 bl4ckb0x.net, 1
 bl4ckb0x.org, 1
+blablacar.co.uk, 1
+blablacar.com, 1
+blablacar.com.tr, 1
+blablacar.com.ua, 1
+blablacar.de, 1
+blablacar.es, 1
+blablacar.fr, 1
+blablacar.hr, 1
+blablacar.hu, 1
+blablacar.in, 1
+blablacar.it, 1
+blablacar.mx, 1
+blablacar.nl, 1
+blablacar.pl, 1
+blablacar.pt, 1
+blablacar.ro, 1
+blablacar.rs, 1
+blablacar.ru, 1
 black-armada.com, 1
 black-gay-porn.biz, 1
 black-khat.com, 1
 black.dating, 1
 black.host, 1
 blackbag.nl, 1
 blackberrycentral.com, 1
 blackcat.ca, 1
@@ -3201,16 +3221,17 @@ brunn.email, 1
 brunner.ninja, 1
 bruun.co, 1
 bryankaplan.com, 1
 bryanquigley.com, 1
 bs-network.net, 1
 bs.to, 1
 bsalyzer.com, 1
 bsc01.dyndns.org, 1
+bsdfreak.dk, 1
 bsdracing.ca, 1
 bsg-aok-muenchen.de, 1
 bsidesf.com, 1
 bsidesf.org, 1
 bsidessf.com, 1
 bsklabels.com, 0
 bsktweetup.info, 1
 bslim-e-boutique.com, 1
@@ -3229,17 +3250,16 @@ btorrent.xyz, 1
 btrb.ml, 1
 btserv.de, 1
 btsoft.eu, 1
 btsow.com, 1
 bubba.cc, 1
 bubblegumblog.com, 1
 bubblespetspa.com, 1
 bubhub.io, 1
-bubulazy.com, 1
 buch-angucken.de, 1
 buck.com, 1
 buckmulligans.com, 1
 buckypaper.com, 1
 budaev-shop.ru, 1
 buddhistische-weisheiten.org, 1
 buddlycrafts.com, 1
 buderus-family.be, 1
@@ -3297,17 +3317,16 @@ bunbun.be, 0
 bund-von-theramore.de, 1
 bundaberg.com, 1
 bundespolizei-forum.de, 1
 bunkyo-life.com, 1
 bunny-rabbits.com, 1
 bunzy.ca, 1
 buonventosbt.eu, 1
 bupropion.com, 1
-bupu.ml, 1
 burcevo.info, 1
 burckardtnet.de, 1
 bureaubolster.nl, 1
 bureaugravity.com, 1
 burgers.io, 1
 buri.be, 0
 buricloud.fr, 1
 burke.services, 1
@@ -3348,17 +3367,16 @@ buyerdocs.com, 1
 buyessay.org, 1
 buyessays.net, 1
 buyessayscheap.com, 1
 buyinginvestmentproperty.com, 1
 buypapercheap.net, 1
 buyshoe.org, 1
 buytheway.co.za, 1
 buzz.tools, 1
-buzzconcert.com, 1
 buzzconf.io, 1
 buzzdeck.com, 1
 buzzprint.it, 1
 buzztelco.com.au, 1
 bvalle.com, 1
 bvexplained.co.uk, 1
 bvionline.eu, 1
 bw.codes, 1
@@ -3690,17 +3708,16 @@ cata.ga, 1
 catalin.pw, 1
 catalogoreina.com, 1
 catalyst-ecommerce.com, 0
 catbold.space, 1
 catburton.co.uk, 1
 catchersgear.com, 1
 catcontent.cloud, 1
 catenacondos.com, 1
-catgirl.pics, 1
 catharinesomerville.com, 1
 catharisme.eu, 1
 catharisme.net, 1
 catharisme.org, 1
 catholics.dating, 1
 cathosa.nl, 1
 cativa.net, 1
 catmoose.ca, 1
@@ -3843,17 +3860,16 @@ cfneia.org, 1
 cfo.gov, 1
 cfxdesign.com, 1
 cg-systems.hu, 1
 cgan.de, 1
 cgan.pw, 1
 cgbassurances.ch, 1
 cgbilling.com, 1
 cgcookiemarkets.com, 1
-cgerstner.eu, 1
 cgtx.us, 1
 ch-sc.de, 1
 ch.search.yahoo.com, 0
 chabaojia.com, 1
 chabaudparfum.com, 1
 chabik.com, 0
 chad.ch, 1
 chadstoneapartments.com.au, 1
@@ -4060,29 +4076,29 @@ chook.as, 1
 choosemypc.net, 1
 chopperforums.com, 1
 chordso.com, 1
 chorkley.co.uk, 1
 chorkley.com, 1
 chorkley.me, 1
 chorkley.uk, 1
 chorpinkpoemps.de, 1
+chosenplaintext.org, 1
 chourishi-shigoto.com, 1
 chris-edwards.net, 1
 chrisb.me, 1
 chrisb.xyz, 1
 chrisbrown.id.au, 1
 chrisburnell.com, 1
 chriscarey.com, 1
 chrisdecairos.ca, 1
 chrisebert.net, 1
 chrisfinazzo.com, 1
 chrisirwin.ca, 1
 chrisjean.com, 1
-chriskirchner.de, 1
 chrismathys.com, 1
 chrismcclendon.com, 1
 chrismckee.co.uk, 1
 chrisnekarda.com, 1
 chrispstreet.com, 1
 chrisshort.net, 0
 christadelphiananswers.org, 1
 christadelphians.eu, 1
@@ -4233,16 +4249,17 @@ clan-ww.com, 1
 clanrose.org.uk, 1
 clanthor.com, 1
 clapping-rhymes.com, 1
 clarkeaward.com, 1
 clashersrepublic.com, 1
 classdojo.com, 1
 classicalpilates.ca, 1
 classics.io, 1
+classicshop.ua, 1
 classpoint.cz, 1
 classteaching.com.au, 1
 claudia-urio.com, 1
 claudio4.com, 1
 clawe.de, 1
 claytoncondon.com, 1
 cldly.com, 1
 clearblueday.co.uk, 1
@@ -4305,16 +4322,17 @@ closingholding.com, 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, 1
 cloudapps.digital, 1
+cloudbased.info, 1
 cloudbasedsite.com, 1
 cloudbolin.es, 1
 cloudcaprice.net, 1
 cloudflareonazure.com, 1
 cloudfren.com, 1
 cloudia.org, 1
 cloudily.com, 1
 cloudmigrator365.com, 1
@@ -4541,16 +4559,17 @@ com.cc, 1
 comalia.com, 1
 comarkinstruments.net, 1
 combatshield.cz, 1
 combron.nl, 1
 comchezmeme.com, 1
 comdotgame.com, 1
 comdurav.com, 1
 comefollowme2016.com, 1
+comeoncolleen.com, 1
 comercialtrading.eu, 1
 comerford.net, 1
 comeseetv.com, 1
 comestoarra.com, 1
 cometcache.com, 1
 cometonovascotia.ca, 1
 comff.net, 1
 comfintouch.com, 1
@@ -4964,16 +4983,17 @@ cryptocon.org, 1
 cryptofan.org, 1
 cryptography.ch, 1
 cryptography.io, 1
 cryptoisnotacrime.org, 1
 cryptojourney.com, 1
 cryptoki.fr, 1
 cryptology.ch, 1
 cryptonym.com, 1
+cryptoparty.at, 1
 cryptoparty.dk, 1
 cryptopartynewcastle.org, 1
 cryptopartyutah.org, 1
 cryptoseb.pw, 1
 cryptoshot.pw, 1
 cryptract.co, 1
 crystalchandelierservices.com, 1
 crystalmachine.net, 0
@@ -5467,17 +5487,16 @@ dds.mil, 1
 de-medici.nl, 1
 de-rwa.de, 1
 de-servers.de, 1
 de-spil.be, 1
 de.search.yahoo.com, 0
 deadbeef.ninja, 1
 deadc0de.re, 1
 deadmann.com, 1
-deadsoul.net, 1
 deaf.dating, 1
 deaf.eu.org, 1
 deaktualisierung.org, 1
 dealbanana.at, 1
 dealbanana.be, 1
 dealbanana.co.uk, 1
 dealbanana.com, 1
 dealbanana.de, 1
@@ -5824,16 +5843,17 @@ die-speisekammer-reutlingen.de, 1
 dieb.photo, 1
 diedrich.co, 0
 diedrich.me, 1
 diegelernten.de, 1
 diegerbers.de, 1
 diegogelin.com, 1
 diegorbaquero.com, 1
 diehl.io, 1
+diemattels.at, 1
 diemogebhardt.com, 1
 dienstplan.cc, 1
 dienstplan.one, 1
 dierenartsdeconinck.be, 1
 dieselanimals.lt, 1
 dieselgalleri.com, 1
 dieser.me, 1
 dietbrand.eu, 1
@@ -5938,17 +5958,17 @@ disc.uz, 1
 discha.net, 1
 disciples.io, 1
 discipul.nl, 1
 disclosure.io, 1
 disco-crazy-world.de, 1
 discofitta.com, 1
 disconformity.net, 1
 discordapp.com, 1
-discotek.club, 0
+discotek.club, 1
 discover-mercure.com, 1
 discoverhealthage.com, 0
 discoveringdocker.com, 1
 discoverrsv.com, 1
 discoveryballoon.org, 1
 discoveryrom.org, 1
 disinclined.org, 1
 disinisharing.com, 1
@@ -6000,16 +6020,17 @@ dk.search.yahoo.com, 0
 dkcomputers.com.au, 1
 dkds.us, 1
 dkn.go.id, 1
 dkravchenko.su, 0
 dl.google.com, 1
 dlaspania.pl, 1
 dldl.fr, 1
 dlg.im, 1
+dlitz.net, 1
 dlld.com, 1
 dlouwrink.nl, 1
 dlrsp.org, 1
 dlzz.net, 1
 dm.lookout.com, 0
 dm4productions.com, 1
 dm7ds.de, 1
 dmarc.dk, 1
@@ -6041,16 +6062,17 @@ dnshallinta.fi, 1
 dnslog.com, 1
 dnsman.se, 1
 dnstwister.report, 1
 do-prod.com, 1
 do.gd, 0
 do67.de, 1
 do67.net, 1
 doak.io, 1
+dobrev.family, 1
 dobrisan.ro, 1
 dobsnet.net, 1
 doc.python.org, 1
 doc.to, 1
 doc8643.com, 1
 docabo.ch, 1
 docbox.ch, 1
 docemeldoces.com, 1
@@ -6091,17 +6113,16 @@ dokuraum.de, 1
 dolarcanadense.com.br, 1
 doleta.gov, 1
 doli.se, 1
 dolice.net, 1
 dollemore.com, 1
 dolorism.com, 1
 dolphin-hosting.com, 1
 dolphin-it.de, 1
-dolphinswithlasers.com, 1
 dom-medicina.ru, 1
 doma.in, 1
 domadillo.com, 1
 domain-ermittlung.de, 1
 domain001.info, 1
 domainedemiolan.ch, 1
 domainexpress.de, 0
 domainkauf.de, 1
@@ -6401,17 +6422,16 @@ dupree.co, 1
 durangoenergyllc.com, 1
 durdle.com, 1
 duria.de, 1
 duriaux-dentiste.ch, 1
 durys.be, 1
 dustri.org, 1
 dustygroove.com, 1
 dutch1.nl, 1
-dutchessuganda.com, 1
 dutchrank.nl, 1
 dutchwanderers.nl, 1
 dutchweballiance.nl, 1
 dutyfreeonboard.com, 1
 dvbris.co.uk, 1
 dvbris.com, 1
 dvnatura.ch, 1
 dvorupotocnych.sk, 1
@@ -6529,16 +6549,17 @@ ebaymotorssucks.com, 1
 ebcs-solutions.com, 1
 ebermannstadt.de, 0
 ebertek.com, 1
 ebonyriddle.com, 1
 ebooki.eu.org, 1
 ebooksgratuits.org, 1
 ebop.ch, 1
 eboyer.com, 1
+ec-baran.de, 1
 ecc-kaufbeuren.de, 1
 ecchidreams.com, 1
 ecco-verde.com, 0
 eccoviasolutions.com, 1
 eccux.com, 1
 ecelembrou.ovh, 1
 echatta.net, 1
 echatta.org, 1
@@ -6613,16 +6634,17 @@ educourse.ga, 1
 eductf.org, 1
 edudrugs.com, 1
 eduid.se, 1
 eduif.nl, 0
 edumundo.nl, 1
 edusantorini.com, 1
 edv-lehrgang.de, 1
 edvmesstec.de, 1
+edwar.do, 1
 edwards.me.uk, 1
 edwardsnowden.com, 1
 edwardspeyer.com, 1
 edxg.de, 0
 edyou.eu, 1
 edzilla.info, 1
 ee-terminals.com, 1
 eeb98.com, 1
@@ -6669,17 +6691,16 @@ egw-ceramica.de, 1
 egweb.tv, 1
 ehandel.com, 1
 ehazi.hu, 1
 ehipaa.com, 1
 ehomusicgear.com, 1
 ehrlichesbier.de, 1
 ehuber.info, 1
 eichel.eu, 1
-eichornenterprises.com, 1
 eickemeyer.nl, 1
 eickhof.co, 1
 eickhof.us, 1
 eickhofcolumbaria.com, 1
 eidolons.org, 1
 eifelindex.de, 1
 eiga-movie.com, 1
 eigenbubi.de, 1
@@ -6919,16 +6940,17 @@ enersec.co.uk, 1
 enet-navigator.de, 1
 enfantsdelarue.ch, 1
 enfield-kitchens.co.uk, 1
 enfoqueseguro.com, 1
 enfu.se, 1
 engarde.net, 1
 engaugetools.com, 1
 engelundlicht.ch, 1
+engg.ca, 1
 engineeryourmarketing.com, 0
 engineowning.com, 1
 enginepit.com, 1
 enginx.net, 1
 englerts.de, 1
 englishbulgaria.net, 1
 englishcast.com.br, 1
 englishclub.com, 1
@@ -6985,17 +7007,16 @@ epay.bg, 1
 epaygateway.net, 1
 epic-vistas.com, 1
 epic-vistas.de, 1
 epicenter.work, 1
 epicenter.works, 1
 epicentre.works, 1
 epichouse.net, 1
 epickitty.co.uk, 1
-epicmc.games, 1
 epicsecure.de, 1
 epicsoft.de, 1
 epicvistas.com, 1
 epicvistas.de, 1
 epicwalnutcreek.com, 1
 epiphyte.network, 1
 epistas.com, 1
 epistas.de, 1
@@ -7375,17 +7396,16 @@ expowerhps.com, 1
 express-shina.ru, 1
 express-vpn.com, 1
 expressemotion.net, 1
 expresshosting.org, 1
 expressmarket.ru, 1
 expressvpn.com, 1
 expxkcd.com, 1
 exs.lv, 1
-extendwings.com, 1
 extensiblewebmanifesto.org, 1
 extensiblewebreportcard.org, 1
 extensiblewebsummit.org, 1
 extensiontree.com, 1
 extradesktops.com, 1
 extranetpuc.com.br, 1
 extrapagetab.com, 1
 extrememanual.net, 0
@@ -7517,16 +7537,17 @@ fap.no, 1
 faq.ie, 1
 faq.lookout.com, 0
 fara.gov, 1
 faraslot8.com, 1
 faraslot8.net, 1
 faretravel.co.uk, 1
 farfetchos.com, 1
 fargtorget.se, 1
+farhadexchange.com, 1
 farkas.bz, 1
 farm24.co.uk, 1
 farmacia.pt, 1
 farmaciaformula.com.br, 1
 farmacialaboratorio.it, 1
 farmer.dating, 1
 farmkazuto.com, 1
 faroes.net, 1
@@ -7666,16 +7687,17 @@ fetclips.se, 1
 feudalisten.de, 1
 feuerwehr-illmensee.de, 1
 feuerwehr-oberkotzau.de, 1
 feuerwerksmanufaktur.de, 1
 feuetgloire.com, 1
 fewo-thueringer-wald.de, 1
 fexco.com, 1
 feyermedia.de, 1
+ff-bad-hoehenstadt.de, 1
 ff-obersunzing-niedersunzing.de, 1
 ff14-mstdn.xyz, 1
 ffbans.org, 1
 ffis.me, 1
 ffprofile.com, 1
 ffta.eu, 1
 ffxiv.cc, 1
 fhcdn.xyz, 1
@@ -7700,16 +7722,17 @@ fidelapp.com, 1
 fidelis-it.ch, 1
 fidelis-it.net, 1
 fidhouriet.ch, 1
 fiduciaire-ratio.ch, 1
 fieldclockapp.com, 1
 fieldtalk.co.uk, 1
 fierlafijn.net, 1
 fierman.eu, 0
+fierman.net, 0
 fierman.us, 0
 fifichachnil.paris, 1
 fifieldtech.com, 1
 fight215.com, 1
 fight215.org, 1
 figura.cz, 1
 figura.im, 1
 figurasdelinguagem.com.br, 1
@@ -7828,17 +7851,16 @@ fix-the-timeline.com, 1
 fix-the-timeline.org, 1
 fixate.ru, 1
 fixatom.com, 1
 fixel.express, 1
 fixforce.nl, 1
 fixhotsauce.com, 1
 fixmyalarmpanel.co.uk, 1
 fixmycomputerdude.com, 1
-fixmyglitch.com, 1
 fixthetimeline.com, 1
 fixthetimeline.org, 1
 fixvoltage.ru, 1
 fizz.buzz, 0
 fj.simple.com, 0
 fjharcu.com, 1
 fktpm.ru, 1
 flaemig42.de, 1
@@ -7919,18 +7941,16 @@ florismouwen.com, 1
 florisvdk.net, 1
 floriswesterman.nl, 1
 floseed.fr, 1
 floskelwolke.de, 1
 floth.at, 1
 flowreader.com, 1
 flox.io, 1
 flra.gov, 1
-flucke-creation.ch, 1
-flucke-creation.com, 1
 flucky.xyz, 1
 fluffycloud.de, 1
 fluidmeterusa.com, 1
 flumble.nl, 1
 fluoxetine.net, 1
 flux.by, 1
 fluxent.de, 0
 fluxfingers.net, 1
@@ -7988,16 +8008,17 @@ fondationwiggli.ch, 1
 fondy.eu, 1
 fonga.ch, 1
 fonseguin.ca, 1
 font-converter.net, 1
 fontein.de, 1
 fontlibrary.org, 1
 foo.fo, 1
 foo.hamburg, 1
+foodacademy.capetown, 1
 foodattitude.ch, 1
 foodblogger.club, 1
 foodev.de, 1
 foodies.my, 1
 foodplantengineering.com, 1
 foodsafety.gov, 1
 foodsafetyjobs.gov, 1
 foodsouvenirs.it, 1
@@ -8024,16 +8045,17 @@ forextimes.ru, 0
 forge-goerger.eu, 1
 forglemmigej.net, 1
 format-paysage.ch, 1
 formation-assureur.com, 1
 formation-mac.ch, 1
 formationseeker.com, 1
 formbetter.com, 1
 formersessalaries.com, 1
+formini.dz, 1
 formula-ot.ru, 1
 fornoreason.net.au, 1
 foro.io, 0
 forodeespanol.com, 1
 forplanetsake.com, 1
 forrestheller.com, 1
 forsakringsarkivet.se, 1
 forschbach-janssen.de, 1
@@ -8103,16 +8125,17 @@ fpersona.com, 1
 fpy.cz, 1
 fr.search.yahoo.com, 0
 fr33tux.org, 1
 frack.nl, 1
 fraesentest.de, 1
 fragmentspuren.de, 1
 fragnic.com, 1
 fragstore.net, 1
+fraho.eu, 1
 framapiaf.org, 1
 fran.cr, 1
 francescopalazzo.com, 1
 franchini.email, 1
 franchini.engineer, 1
 francisli.net, 1
 franckgirard.net, 1
 franckyz.com, 1
@@ -8127,16 +8150,17 @@ franke-chemie.de, 1
 franken-lehrmittel.de, 1
 frankenlehrmittel.de, 1
 frankhaala.com, 1
 frankierprofi.de, 1
 frankl.in, 1
 franklinhua.com, 1
 franksiler.com, 1
 frankyan.com, 1
+fransallen.com, 1
 frantic1048.com, 1
 frappant.cc, 1
 fraselab.ru, 1
 frasesaniversarios.com.br, 1
 frasesparaface.com.br, 1
 frasesytarjetas.com, 1
 frasys.cloud, 1
 frattaroli.org, 1
@@ -8306,17 +8330,16 @@ fuelingyourdreams.com, 1
 fugle.de, 1
 fuglede.dk, 1
 fuite.ch, 1
 fuitedeau.ch, 1
 fuites.ch, 1
 fukakukeiba.com, 1
 fukuko.biz, 1
 fukuko.xyz, 1
-fukuoka-cityliner.jp, 1
 fuliwang.info, 1
 fullbundle.com, 1
 fullmatch.net, 1
 fumblers.ca, 1
 fumerolles.ch, 1
 fumiware.com, 1
 funandnatural.shop, 1
 funatic.nl, 1
@@ -8382,17 +8405,16 @@ fxopen.co.uk, 1
 fxopen.com, 1
 fxopen.com.au, 1
 fxopen.com.br, 1
 fxopen.com.mx, 1
 fxopen.ru, 1
 fxp.co.il, 0
 fxpig-ib.com, 1
 fxtalk.cn, 1
-fyfywka.com, 1
 fyn.nl, 1
 fysiotherapierossum.nl, 1
 fysiovdberg.nl, 1
 g-m-w.eu, 1
 g-marketing.ro, 1
 g-o.pl, 1
 g1.ie, 1
 g10e.ch, 1
@@ -8522,17 +8544,16 @@ gaygeeks.de, 1
 gaysfisting.com, 1
 gaytorrent.ru, 1
 gayxsite.com, 1
 gazee.net, 1
 gazellegames.net, 1
 gbcsummercamps.com, 1
 gbl.selfip.net, 1
 gc-mc.de, 1
-gc.net, 1
 gchoic.com, 1
 gchp.ie, 1
 gchq.wtf, 1
 gcs-ventures.com, 1
 gcsepod.com, 1
 gdax.com, 1
 gdevpenze.ru, 1
 gdgrzeszow.pl, 1
@@ -8590,16 +8611,17 @@ gelb-computer.de, 1
 geld-im-blick.de, 1
 geld24.nl, 1
 geldimblick.de, 1
 gelis.ch, 1
 gelog-software.de, 0
 geluidsstudio.com, 1
 gem-indonesia.net, 0
 gem-info.fr, 1
+gemeentemolenwaard.nl, 1
 gemeinfreie-lieder.de, 1
 gemini.com, 1
 gemsoftheworld.org, 1
 gemuplay.com, 1
 gendrin.com, 1
 gendundrupa.ch, 1
 gene-drive.com, 1
 gene-drives.com, 1
@@ -8890,17 +8912,16 @@ gnetion.com, 1
 gnetwork.eu, 1
 gnosticjade.net, 1
 gnucashtoqif.us, 1
 gnunet.org, 1
 gnwp.eu, 1
 gnylf.com, 1
 go-zh.org, 1
 go.xero.com, 0
-go4it.solutions, 1
 goalbookapp.com, 1
 goanalyse.co.uk, 1
 goapunks.net, 1
 goatcloud.com, 1
 gocardless.com, 1
 gocleanerslondon.co.uk, 1
 godesigner.ru, 1
 godrealms.com, 1
@@ -8995,16 +9016,17 @@ gouthro-goteborg.se, 1
 gouv.ovh, 1
 governmentjobs.gov, 1
 governorhub.com, 1
 govtjobs.blog, 1
 govtrack.us, 1
 gowe.wang, 0
 gpalabs.com, 1
 gpcsolutions.fr, 1
+gpfclan.de, 1
 gplintegratedit.com, 1
 gpo.gov, 0
 gprs.uk.com, 1
 gps.com.br, 1
 gpsarena.ro, 1
 gpsvideocanada.com, 1
 gpws.ovh, 1
 gr.search.yahoo.com, 0
@@ -9122,16 +9144,17 @@ grieg.com, 1
 grieg.net, 1
 grieg.no, 1
 grieg.org, 1
 griegfoundation.no, 1
 grieglogistics.no, 1
 griegshipbrokers.com, 1
 griegshipbrokers.no, 1
 griesser2.de, 1
+grillinfools.com, 1
 grillteller42.de, 1
 grimcalc.com, 1
 grimm-gastrobedarf.de, 1
 grimneko.de, 1
 gritte.ch, 1
 gritte.net, 1
 grizzlys.com, 1
 grmp.fr, 1
@@ -9289,17 +9312,16 @@ gzpblog.com, 1
 h-jo.net, 1
 h001.ru, 1
 h11.io, 1
 h11.moe, 1
 h2u.tv, 1
 h3x.jp, 1
 h3z.jp, 1
 h404bi.com, 0
-haavard.me, 1
 habarisoft.com, 1
 habbos.es, 1
 habeo.si, 1
 habtium.com, 1
 habtium.es, 1
 hachre.de, 1
 hackademix.net, 1
 hackanders.com, 1
@@ -9317,16 +9339,17 @@ hackerchai.com, 1
 hackernet.se, 1
 hackerone-ext-content.com, 1
 hackerone-user-content.com, 1
 hackerone.com, 1
 hackerone.net, 1
 hackerpoints.com, 1
 hackerstxt.org, 1
 hackgins.com, 1
+hackingand.coffee, 1
 hackingdh.com, 1
 hackmd.io, 1
 hackthissite.org, 1
 hacktivis.me, 1
 hackyourfaceoff.com, 1
 hadaly.fr, 1
 hadleighswimmingclub.co.uk, 1
 hadouk.in, 1
@@ -9366,17 +9389,16 @@ hammer-schnaps.com, 1
 hammer-sms.com, 1
 hampl.tv, 1
 hamsters-uk.org, 1
 hamu.blue, 1
 hana.ondemand.com, 1
 hanakaraku.com, 1
 hanashi.eu, 1
 handcraft.eu.org, 1
-handenafvanhetmedischdossier.nl, 1
 handgelenkbandage-test.de, 1
 handinhandfoundation.org.uk, 1
 handmade-workshop.de, 1
 handmadegobelin.com, 1
 handmadetutorials.ro, 1
 handsandall.com, 1
 handycommerce.co, 0
 handyglas.com, 1
@@ -9417,16 +9439,17 @@ happytiger.eu, 1
 happyukgo.com, 1
 hapsfordmill.co.uk, 1
 haraj.com.sa, 1
 harambe.site, 1
 hardeman.nu, 1
 hardenize.com, 1
 hardertimes.com, 1
 hardesec.com, 1
+hardfalcon.net, 1
 hardforum.com, 1
 hardh.at, 1
 hardrain980.com, 1
 hardtfrieden.de, 1
 hardyboyplant.com, 1
 harion.fr, 1
 harmfarm.nl, 1
 harmoney.co.nz, 1
@@ -9450,16 +9473,17 @@ harveymilton.com, 1
 hasabig.wang, 1
 hasalittle.wang, 1
 haschrebellen.de, 1
 hasdf.de, 1
 haselsteiner.me, 1
 hash-archive.org, 1
 hash.works, 1
 hashcat.net, 1
+hashi.dk, 1
 hashiconf.com, 1
 hashiconf.eu, 1
 hashicorp.com, 1
 hashidays.com, 1
 hashimah.ca, 1
 hashish.net, 1
 hashiura.jp, 1
 hashnode.com, 1
@@ -9512,16 +9536,17 @@ hdcenter.cc, 1
 hdeaves.uk, 1
 hdf.world, 1
 hdfgroup.org, 1
 hdguru.com, 1
 hdhoang.space, 1
 hdm.io, 1
 hdrsource.com, 1
 hdrtranscon.com, 1
+hds-lan.de, 1
 hdserver.info, 1
 hdy.nz, 1
 head-shop.lv, 1
 head.org, 1
 headjapan.com, 1
 headlinepublishing.be, 1
 headmates.xyz, 1
 headshotharp.de, 1
@@ -9747,16 +9772,17 @@ hhs.gov, 1
 hickorywinecellar.com, 1
 hicl.org, 1
 hicoria.com, 1
 hidbo.de, 1
 hideallip.com, 1
 hieu.com.au, 1
 higgstools.org, 1
 higherpress.org, 1
+highland-webcams.com, 1
 highlegshop.com, 1
 highspeed-arnsberg.de, 1
 hightechbasementsystems.com, 1
 hightower.eu, 1
 highwaytohoell.de, 1
 higilopocht.li, 1
 higp.de, 1
 hijoan.com, 1
@@ -10237,16 +10263,17 @@ icewoman.net, 1
 ich-find-den-g.net, 1
 ich-tanke.de, 1
 ichasco.com, 1
 ichbinkeinreh.de, 1
 ichronos.net, 1
 icij.org, 0
 iclinic.ua, 1
 icmp2018.org, 1
+icodeconnect.com, 1
 icodesign.me, 0
 iconomi.net, 1
 icpc.pp.ua, 1
 icsadviseurs.nl, 1
 ict-concept.nl, 0
 ict-crew.nl, 1
 ict-radar.com, 1
 ict-radar.nl, 1
@@ -10279,16 +10306,17 @@ idemo.in, 1
 idensys.nl, 1
 identifyme.net, 1
 identity-hash.online, 1
 identitytheft.gov, 1
 idexxpublicationportal.com, 1
 idgard.de, 1
 idhosts.co.id, 1
 idid.tk, 1
+idinby.dk, 1
 idiopolis.org, 1
 idmanagement.gov, 1
 idmobile.co.uk, 1
 idndx.com, 1
 idoc24.com, 1
 idol-bikes.ru, 1
 idolf.dk, 1
 idontplaydarts.com, 1
@@ -10332,17 +10360,16 @@ igamingforums.com, 1
 igglabs.com, 1
 iggprivate.com, 1
 iggsoft.com, 1
 iggsoftware.com, 1
 igiftcards.de, 1
 igimusic.com, 1
 igk.de, 1
 igm-be.ch, 1
-ignace72.eu, 1
 ignat.by, 1
 ignitedmindz.in, 1
 igotoffer.com, 0
 igrivi.com, 1
 igsmgmt.com, 1
 iguana.com.ec, 1
 ih8sn0w.com, 1
 ihkk.net, 1
@@ -10545,17 +10572,16 @@ influencerchampions.com, 1
 influo.com, 1
 influxus.com, 0
 infmed.com, 1
 info-bay.com, 1
 info-beamer.com, 1
 info-screw.com, 1
 infocity-tech.fr, 1
 infocommsociety.com, 1
-infoduv.fr, 1
 infopagina.es, 1
 infopier.sg, 1
 informatiebeveiliging.nl, 1
 informatik-handwerk.de, 1
 informatik.zone, 1
 informationrx.org, 1
 informnapalm.org, 1
 infosec.ch, 1
@@ -10735,16 +10761,17 @@ investingtrader.net, 1
 investir.ch, 1
 investor.gov, 1
 investorforms.com, 1
 investpay.ru, 1
 invinsec.cloud, 1
 invinsec.com, 1
 inviosolutions.com, 1
 invis.net, 1
+invisionita.com, 1
 invisiverse.com, 1
 invitescene.com, 1
 invoiced.com, 1
 invoicefinance.com, 1
 invoicefinance.nl, 1
 inwestcorp.se, 1
 inzdr.com, 1
 iocheck.com, 0
@@ -10939,31 +10966,29 @@ iteke.tk, 1
 iteli.eu, 1
 iterror.co, 1
 itfaq.nl, 1
 itfh.eu, 1
 itfix.cz, 1
 itforge.nl, 1
 ithenrik.com, 1
 itilo.de, 1
-itinsight.hu, 1
 itis.gov, 1
 itis4u.ch, 1
 itludens.com, 1
 itmanie.cz, 1
 itneeds.tech, 1
 itnews-bg.com, 1
 itnota.com, 1
 itochan.jp, 1
 itooky.com, 1
 itpol.dk, 1
 itpro-mg.de, 1
 itpro.ua, 1
 itproject.guru, 1
-itpros.ru, 1
 its-future.com, 1
 its-gutachten.de, 1
 its-schindler.de, 1
 its-v.de, 1
 its4living.com, 1
 itsanicedoor.co.uk, 1
 itsatrap.nl, 0
 itsdcdn.com, 1
@@ -11173,16 +11198,17 @@ jaycouture.com, 1
 jayf.de, 1
 jayfreestone.com, 1
 jayharris.ca, 1
 jaymecd.rocks, 1
 jayxon.com, 1
 jayxu.com, 1
 jazz-alliance.com, 1
 jazz-alliance.org, 1
+jazzanet.com, 1
 jazzinutrecht.info, 1
 jazzncheese.com, 1
 jazzy.pro, 1
 jazzysumi.com, 1
 jbbd.fr, 1
 jbelien.be, 1
 jbelien.photography, 1
 jbradaric.me, 1
@@ -11289,16 +11315,17 @@ jhburton.co.uk, 1
 jhcommunitysports.co.uk, 1
 jhermsmeier.de, 1
 jhollandtranslations.com, 1
 jhuang.me, 1
 jhwestover.com, 1
 jialinwu.com, 0
 jianjia.io, 0
 jichi.me, 1
+jie.dance, 1
 jief.me, 1
 jigsawdevelopments.com, 1
 jimbraaten.com, 1
 jimenacocina.com, 1
 jimmynelson.com, 1
 jimshaver.net, 1
 jinancy.fr, 1
 jinbo123.com, 0
@@ -11426,17 +11453,16 @@ jonathanmassacand.ch, 1
 jonathanreyes.com, 1
 jonathansanchez.pro, 1
 jonathanwisdom.com, 1
 jondarby.com, 1
 jondevin.com, 1
 jonesborostatebank.com, 0
 jonferwerda.net, 1
 jongbloed.nl, 1
-jongcs.com, 1
 jonilar.com, 1
 jonirrings.com, 1
 jonkermedia.nl, 1
 jonlabelle.com, 1
 jonnybarnes.uk, 1
 jonnystoten.com, 1
 jonoalderson.com, 1
 jonpads.com, 1
@@ -11672,22 +11698,22 @@ kamikatse.net, 1
 kamitech.ch, 1
 kamixa.se, 1
 kana.me, 1
 kanaanonline.org, 1
 kanada.guide, 1
 kanaete-uranai.com, 1
 kanagawachuo-hospital.jp, 1
 kanal-tv-haensch.de, 1
+kanar.nl, 1
 kandalife.com, 1
 kanehusky.com, 1
 kanganer.com, 1
 kangarooislandholidayaccommodation.com.au, 1
 kangaroos.org, 1
-kangkai.me, 1
 kangooroule.fr, 1
 kanjo.de, 1
 kankimaru.com, 1
 kanna.cf, 1
 kannchen.de, 1
 kanotijd.nl, 1
 kantankye.nl, 1
 kantanmt.com, 1
@@ -11788,17 +11814,16 @@ kb3.net, 1
 kba-online.de, 1
 kbb-ev.de, 1
 kbcequitas.hu, 1
 kbfl.org, 1
 kbit.dk, 1
 kbjorklu.com, 1
 kc-holzfaeller.de, 1
 kc5mpk.com, 1
-kcluster.io, 1
 kcsordparticipation.org, 1
 kdex.de, 1
 kdyby.org, 1
 ke7tlf.us, 1
 keaneokelley.com, 1
 kearney.io, 1
 keartanddesign.com, 1
 keaysmillwork.com, 1
@@ -11850,41 +11875,38 @@ kenkoelectric.com, 0
 kennedy.ie, 1
 kenners.org, 1
 kennethaasan.no, 1
 kennethlim.me, 1
 kenny-peck.com, 1
 kenoschwalb.com, 1
 kentacademiestrust.org.uk, 1
 kentec.net, 1
-kenvix.com, 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
 kerp.se, 0
 kerrfrequencycombs.org, 1
 kerstkaart.nl, 1
 kerus.net, 1
 kesteren.com, 1
 kesteren.org, 1
 ketamine.co.uk, 1
 ketosecology.co.uk, 1
 kettner.com, 1
 ketty-voyance.com, 1
 kevinapease.com, 1
 kevinbowers.me, 1
-kevinbusse.de, 1
 kevincox.ca, 0
 kevindekoninck.com, 0
 kevinhill.nl, 1
 kevinkla.es, 1
 kevinlocke.name, 1
 kevinmorssink.nl, 1
 kevinpirnie.com, 1
 kevinratcliff.com, 1
@@ -12687,16 +12709,17 @@ leebiblestudycentre.com, 1
 leebiblestudycentre.net, 1
 leebiblestudycentre.org, 1
 leech360.com, 1
 leedev.org, 1
 leerkotte.eu, 1
 leerliga.de, 1
 leertipp.de, 1
 leesilvey.com, 1
+leet2.com, 1
 leetcode.net, 1
 leetgamers.asia, 1
 leetsaber.com, 1
 lefebvristes.com, 1
 lefebvristes.fr, 1
 leflibustier.ru, 1
 lefonddeloeil.com, 1
 leftclick.cloud, 1
@@ -13014,17 +13037,16 @@ lionlyrics.com, 1
 liornavok.com, 1
 lipex.com, 1
 liqd.net, 1
 liquid.cz, 1
 liquid.solutions, 1
 liquidcomm.net, 1
 liquidhost.co, 1
 liquidinternet.co, 1
-lirion.de, 1
 liris-beautywelt.de, 1
 lirnberger.com, 1
 lisamccorrie.com, 1
 lisamortimore.com, 1
 lisgade.dk, 1
 lisieuxarquitetura.com.br, 1
 liskgdt.net, 1
 lislan.org.uk, 1
@@ -13046,16 +13068,18 @@ lithesalar.se, 1
 lithianissaneugeneparts.com, 1
 little-cake.com, 1
 littledisney.ro, 1
 littlepincha.fr, 1
 littleqiu.net, 1
 littleswitch.co.jp, 1
 littlewatcher.com, 1
 litvideoserver.de, 1
+litz.ca, 1
+litzenberger.ca, 1
 liuboznaiko.eu, 1
 liud.im, 1
 liudon.org, 1
 liujunyang.com, 1
 liukang.tech, 1
 liushuyu.tk, 1
 liv3ly.com, 1
 livecards.co.uk, 1
@@ -13383,16 +13407,17 @@ luuppi.fi, 1
 luxe-it.co.uk, 1
 luxescreenprotector.nl, 1
 luxinmo.com, 1
 luxsci.com, 1
 luxuryweddingsindonesia.com, 1
 luxusnivoucher.cz, 1
 luxusnyvoucher.sk, 1
 luxvacuos.net, 1
+luzat.com, 1
 luzfaltex.com, 1
 lv0.it, 1
 lvmoo.com, 1
 lvrsystems.com, 1
 lwl-foej-bewerbung.de, 1
 lwl.moe, 1
 lwl12.com, 1
 lydia-und-simon.de, 1
@@ -13433,17 +13458,16 @@ m132.eu, 1
 m2epro.com, 1
 m2os.com, 1
 m4570.xyz, 1
 m4rcus.de, 1
 ma-plancha.ch, 1
 ma2t.com, 1
 maartenderaedemaeker.be, 1
 maartenprovo.be, 1
-maartenterpstra.xyz, 1
 maartenvandekamp.nl, 1
 mabulledu.net, 1
 mac-i-tea.ch, 1
 mac1.net, 1
 macandtonic.com, 1
 macaque.io, 0
 macaws.org, 1
 macchaberrycream.com, 0
@@ -13510,17 +13534,16 @@ magdic.eu, 1
 magebankin.com, 1
 magenbrot.net, 0
 magenda.sk, 1
 magentaize.net, 1
 magi.systems, 1
 magicball.co, 1
 magicbroccoli.de, 0
 magiclen.org, 1
-magicspaceninjapirates.de, 1
 magictable.com, 1
 magilio.com, 1
 magnacumlaude.co, 1
 magneticanvil.com, 1
 magneticattraction.com.au, 1
 magnets.jp, 1
 magnettracker.com, 1
 magnoliasib.ru, 0
@@ -13700,17 +13723,16 @@ marcusstafford.com, 1
 mardelcupon.com, 1
 mare92.cz, 1
 mareklecian.cz, 1
 margagriesser.de, 1
 margan.ch, 1
 margecommunication.com, 1
 margotlondon.co.uk, 1
 mariage-photo.ch, 1
-marialempke.com, 1
 marianatherapy.com, 1
 mariannenan.nl, 1
 mariaolesen.dk, 1
 marie.club, 1
 mariehane.com, 1
 mariemiramont.fr, 1
 marikafranke.de, 1
 marilsnijders.nl, 1
@@ -13775,16 +13797,17 @@ marriage-shrine.jp, 1
 marrickvilleapartments.com.au, 1
 marsanvet.com, 1
 marsatapp.com, 1
 marshmallow.co, 1
 martelange.ovh, 1
 martensmxservice.nl, 1
 martensson.io, 1
 martiestrimsalon.nl, 1
+martin-mattel.com, 1
 martin-smith.info, 1
 martine.nu, 1
 martingansler.de, 1
 martinkup.cz, 1
 martinkus.eu, 1
 martinmuc.de, 1
 martinreed.net, 1
 martinrogalla.com, 1
@@ -13995,17 +14018,16 @@ mcuong.tk, 0
 mcynews.com, 1
 mcyukon.com, 1
 md5file.com, 1
 md5hashing.net, 1
 mdcloudpracticesolutions.com, 1
 mdcloudps.com, 1
 mdek.at, 1
 mdewendt.de, 1
-mdkr.nl, 1
 mdma.net, 1
 mdmed.clinic, 1
 mdns.eu, 1
 mdpraha.cz, 1
 mdwftw.com, 1
 mdx.no, 1
 mdxn.org, 1
 me-center.com, 1
@@ -14051,16 +14073,17 @@ medicocompetente.it, 1
 medicoresponde.com.br, 1
 medifab.online, 1
 medifi.com, 1
 medireport.fr, 1
 mediterenopmaandag.nl, 1
 medium.com, 1
 mediumraw.org, 1
 mediweed.tk, 1
+medlineplus.gov, 1
 medo64.com, 1
 medovea.ru, 1
 medpics.com, 1
 medtalents.ch, 1
 medtehnika.ua, 1
 medusa.wtf, 1
 meduza.io, 1
 medy-me.com, 1
@@ -14139,17 +14162,16 @@ members-only-shopping.com, 1
 members.nearlyfreespeech.net, 0
 memdoc.org, 1
 meme-photostudio.com.tw, 1
 meme.fi, 1
 meme.institute, 1
 memepasmal.net, 1
 memepasmal.org, 1
 memfrob.org, 1
-memo-linux.com, 1
 memoire-resistance-ariege.fr, 1
 memoryex.net, 1
 menanwc.org, 1
 menaraannonces.com, 1
 menchez.me, 1
 menden.com, 1
 mendy.jp, 1
 menielias.com, 1
@@ -14221,17 +14243,16 @@ meteobox.sk, 1
 meteorapp.space, 1
 meteosmit.it, 1
 meter.md, 1
 meterhost.com, 1
 methamphetamine.co.uk, 1
 methylone.com, 1
 metin2sepeti.com, 1
 metrans-spedition.de, 1
-metricaid.com, 1
 metrix-money-ptc.com, 1
 metroairvirtual.com, 1
 metrobriefs.com, 1
 metronaut.de, 1
 metropop.ch, 1
 metsasta.com, 1
 meu-solutions.com, 1
 meulike.us, 1
@@ -14267,17 +14288,16 @@ miamicityballet.org, 1
 mianfei-vpn.com, 1
 miaowo.org, 1
 miasarafina.de, 1
 micasamgmt.com, 1
 micbase.com, 1
 michael-rigart.be, 1
 michael-steinhauer.eu, 1
 michaelcullen.name, 1
-michaeleichorn.com, 1
 michaelkuchta.me, 1
 michaelleibundgut.com, 1
 michaeln.net, 1
 michaelpfrommer.de, 1
 michaelrigart.be, 1
 michaelsulzer.com, 1
 michaelsulzer.eu, 1
 michaeltroger.com, 1
@@ -14338,17 +14358,16 @@ mikadoe.nl, 1
 mikaela.info, 1
 mikalikes.men, 1
 mike-bland.com, 1
 mikecb.org, 1
 mikedugan.org, 1
 mikegarnett.co.uk, 1
 mikegerwitz.com, 1
 mikek.work, 1
-mikepair.net, 1
 mikes.tk, 1
 miketabor.com, 1
 miketheuer.com, 1
 mikewest.org, 1
 mikewillia.ms, 1
 miki.it, 1
 mikkelvej.dk, 1
 miklcct.com, 1
@@ -14428,16 +14447,17 @@ minepay.net, 1
 minepic.org, 1
 minepod.fr, 1
 minesouls.fr, 1
 minez-nightswatch.com, 0
 minf3-games.de, 1
 mingo.nl, 1
 mingram.net, 1
 mingwah.ch, 1
+mingyueli.com, 1
 minhanossasenhora.com.br, 1
 mini2.fi, 1
 minigolf-reisinger.com, 1
 minikidz.es, 1
 minikneet.com, 1
 minipainting.net, 1
 minis-hip.de, 1
 miniskipper.at, 1
@@ -14595,16 +14615,17 @@ mobilisation-generale.org, 1
 mobility-events.ch, 1
 mobilux.lv, 1
 mobio.net, 1
 mobisaar-cloud.de, 1
 mobobe.com, 1
 mobsender.com, 1
 mochanstore.com, 1
 mochoko.com, 1
+mocurio.com, 0
 modafinil.com, 1
 modafinil.wiki, 1
 modafo.com, 1
 modalogi.com, 1
 modcasts.video, 1
 modcentral.pw, 1
 mode-individuell.de, 1
 mode-marine.com, 1
@@ -14680,17 +14701,16 @@ moneyhouse.de, 1
 moneytoday.se, 1
 monique.io, 1
 moniquedekermadec.com, 1
 moniquemunhoz.com.br, 1
 monitman.solutions, 1
 monitori.ng, 1
 monitzer.com, 1
 monix.io, 1
-monkeydust.net, 1
 monkeyhill.us, 1
 monloyer.quebec, 1
 monnyonle.hu, 1
 monobank.no, 1
 monolithapps.com, 1
 monolithinteractive.com, 1
 monoseis-monotica.gr, 1
 monpc-pro.fr, 1
@@ -14789,16 +14809,17 @@ moviedollars.com, 1
 movienang.com, 1
 moviepilot.com, 1
 movinglogistics.nl, 0
 movingoklahoma.org, 1
 movingtohttps.com, 1
 movio.ga, 1
 movlib.org, 1
 mowalls.net, 1
+moy.cat, 1
 moyer.pub, 1
 moylen.eu, 1
 moyoo.net, 1
 mozart-game.cz, 1
 mozartgame.cz, 1
 mozilla.cz, 1
 mozillians.org, 1
 mozoa.net, 1
@@ -14820,16 +14841,17 @@ mpserver12.org, 1
 mpsgarage.com.au, 1
 mpsoundcraft.com, 1
 mpy.ovh, 1
 mr-anderson.org, 1
 mrbmafrica.com, 1
 mrca-sharp.com, 1
 mrd.ninja, 1
 mrdayman.com, 1
+mremallin.ca, 1
 mrhee.com, 1
 mrinalpurohit.in, 1
 mrizzio.com, 1
 mrjooz.com, 1
 mrmoregame.de, 1
 mrsbairds.com, 1
 mrserge.lv, 1
 mrsk.me, 1
@@ -15175,17 +15197,16 @@ nabu-bad-nauheim.de, 1
 nachsendeauftrag.net, 1
 nachsenden.info, 1
 nachtmuziek.info, 1
 nacin.com, 1
 nacktetatsachen.at, 1
 nacyklo.cz, 1
 nadejeproninu.cz, 1
 nadelholzkulturen.de, 1
-nadyaolcer.fr, 1
 nafod.net, 1
 nagaya.biz, 1
 nagb.gov, 1
 nagb.org, 1
 nagel-dentaltechnik.de, 1
 nagelfam.com, 1
 naggie.net, 1
 nagios.by, 1
@@ -15659,17 +15680,16 @@ nijiero-ch.com, 0
 nijm.nl, 1
 nikandcara.com, 1
 nikao-tech.com, 1
 nikavandenbos.nl, 1
 nikimix.com, 1
 nikkila.me, 1
 nikklassen.ca, 1
 nikksno.io, 1
-nikobradshaw.com, 1
 nikolaichik.photo, 1
 nikolasbradshaw.com, 1
 nikolasgrottendieck.com, 1
 nikomo.fi, 0
 nil.gs, 1
 niloxy.com, 1
 nilrem.org, 1
 nimeshjm.com, 1
@@ -15702,16 +15722,17 @@ nitaonline.org, 1
 nitifilter.com, 1
 nitrix.me, 1
 nitrokey.com, 1
 nitropanel.com, 1
 nitropur.com, 1
 nitropur.de, 1
 nitrous-networks.com, 1
 niu.moe, 1
+niva.synology.me, 1
 nivi.ca, 1
 nix.org.ua, 0
 nixien.fr, 1
 niyawe.de, 1
 nja.id.au, 1
 njpjanssen.nl, 1
 nkadvertising.online, 1
 nkinka.de, 1
@@ -15734,16 +15755,17 @@ no.search.yahoo.com, 0
 noagendahr.org, 1
 nobleparkapartments.com.au, 1
 nobly.de, 1
 noc.wang, 1
 nocit.dk, 1
 nocs.cn, 1
 nodari.com.ar, 1
 nodariweb.com.ar, 1
+node-core-app.com, 1
 nodecompat.com, 1
 nodefoo.com, 1
 nodejs.de, 1
 nodelab-it.de, 1
 nodelia.com, 1
 nodepanel.net, 1
 nodeselect.com, 1
 nodespin.com, 1
@@ -15781,17 +15803,16 @@ noncombatant.org, 1
 noob-box.net, 1
 noobunbox.net, 1
 noodles.net.nz, 1
 noodlesandwich.com, 1
 noodplan.co.za, 1
 noop.ch, 1
 noordsee.de, 1
 nootropic.com, 1
-nootropicsource.com, 1
 nopaste.xyz, 1
 nord-sud.be, 1
 nordic-survival.de, 1
 nordiccasinocommunity.com, 1
 nordinfo.fi, 1
 nordor.homeip.net, 1
 nordseeblicke.de, 1
 nordwaldzendo.de, 1
@@ -16711,16 +16732,17 @@ patsytoforyou.ch, 1
 pattuka.com, 1
 paudley.ca, 1
 paudley.com, 1
 paudley.org, 1
 paul.reviews, 1
 pauladamsmith.com, 1
 paulbakaus.com, 1
 paulbdelaat.nl, 1
+paulbramhall.uk, 1
 paulchen.at, 1
 pauldcox.com, 1
 paulerhof.com, 1
 paulewen.ca, 1
 paulinewesterman.nl, 1
 paulomonteiro.pt, 1
 paulov.com, 1
 paulov.info, 1
@@ -16838,17 +16860,16 @@ peervpn.net, 1
 peg.nu, 1
 pegas-studio.net, 1
 pehapkari.cz, 1
 peifi.de, 0
 peippo.at, 1
 peirong.me, 1
 pekoe.se, 1
 pelanucto.cz, 1
-peliseries24.com, 1
 pelletsprice.com, 1
 pelopogrund.com, 1
 pelopoplot.com, 1
 pemagrid.org, 1
 penablog.com, 1
 penaugustin.com, 1
 pencepay.com, 1
 pencillab.cn, 1
@@ -17203,17 +17224,16 @@ planboardapp.com, 1
 planet-tool.com, 1
 planet-work.com, 1
 planetbeauty.com, 1
 planetbreath.ch, 1
 planete-cocoon.com, 1
 planete-lira.fr, 1
 planeteroliste.com, 1
 planeteroliste.fr, 1
-planetexpress.cc, 1
 planktonforhealth.co.uk, 1
 planktonholland.com, 1
 planktonholland.nl, 1
 planmemberpartners.com, 1
 planningexcellence.com.au, 1
 plant.ml, 1
 plantastique.ch, 1
 plantastique.com, 1
@@ -17629,28 +17649,28 @@ profile.tf, 1
 profiles.google.com, 1
 profinetz.de, 1
 profitablewebprojects.com, 1
 profitopia.de, 1
 profpay.com, 1
 progarm.org, 1
 progg.no, 1
 proggersession.de, 1
+progolfjourney.com, 1
 programsupport300procent.com, 1
 progreso.pl, 1
 progress-linux.org, 1
 progressive.work, 1
 progressivecfo.co.nz, 1
 progressiveplanning.com, 1
 proj.org.cn, 1
 project-rune.tech, 1
 project.supply, 1
 projectarmy.net, 0
 projectbenson.com, 0
-projectblackbook.us, 1
 projectnom.com, 1
 projectsecretidentity.com, 1
 projectsecretidentity.org, 1
 projectte.ch, 1
 projectunity.io, 1
 projektik.cz, 1
 projektzentrisch.de, 1
 prok.pw, 1
@@ -17729,17 +17749,16 @@ ps-qa.com, 1
 ps-w.ru, 1
 ps-x.ru, 1
 ps4all.nl, 1
 psa.gov, 1
 psb1911.com, 1
 psbarrett.com, 1
 pschierl.com, 1
 pseta.ru, 1
-pseudo.coffee, 1
 psicoexpansao.com.br, 1
 psicologia.co.ve, 1
 psicologoforensebarcelona.com, 1
 psicologoforensemadrid.com, 1
 psicosalud.online, 1
 psm.org.ph, 1
 psncardplus.be, 1
 psncardplus.com, 1
@@ -17841,16 +17860,17 @@ pwdgen.net, 0
 pwdsafe.com, 1
 pwe.vision, 1
 pwfrance.com, 1
 pwnies.dk, 1
 pwntr.com, 1
 pwolk.com, 1
 pxx.io, 1
 py-amf.org, 1
+pycrypto.org, 1
 pygarage.com, 1
 pyopenssl.org, 1
 pypa.io, 1
 pypi.io, 1
 pypi.org, 1
 pypi.python.org, 1
 pyrotechnologie.de, 1
 pyrrhonism.org, 1
@@ -17924,17 +17944,16 @@ qtpower.net, 1
 qtpower.org, 1
 qtvr.com, 1
 qtxh.net, 1
 quackerswaterproofing.com, 1
 quaedam.org, 1
 quaggan.co, 1
 quai10.org, 0
 quakelive.dk, 0
-quakerlens.com, 1
 qualityedgarsolutions.com, 1
 qualityhomesystems.com, 1
 qualityofcourse.com, 0
 qualitypropertycare.co.uk, 1
 quantoras.com, 1
 quantum-lviv.pp.ua, 1
 quantum-mechanics.com, 1
 quantumfurball.net, 1
@@ -17976,17 +17995,16 @@ quuz.org, 1
 qvitoo.com, 1
 qwans.nl, 1
 qwant.com, 1
 qwant.fr, 1
 qweepi.de, 1
 qwikdash.com, 1
 qxy.ch, 1
 r-core.org, 1
-r-core.ru, 1
 r-cut.fr, 1
 r-rwebdesign.com, 1
 r0t.co, 1
 r0uzic.net, 1
 r2d2pc.com, 1
 r3nt3r.com, 1
 r3s1stanc3.me, 1
 r40.us, 1
@@ -18277,16 +18295,17 @@ refundo.cz, 1
 refundo.sk, 1
 regain.us, 1
 regalcapitalwi.com, 1
 regalosymuestrasgratis.com, 1
 regalpaintingfdl.com, 1
 reganclassics.co.uk, 1
 reganclassics.com, 1
 reganparty.com, 1
+regar42.fr, 0
 regendevices.eu, 1
 regily.com, 1
 regime-maigrir-vite.com, 1
 regio-salland.nl, 1
 regiobeveland.nl, 1
 regionalbasementandcrawlspacerepair.com, 1
 regionalcoalition.org, 1
 regionale.org, 1
@@ -18411,16 +18430,17 @@ responsibledisclosure.nl, 0
 ressl.ch, 1
 restaurace-klokocka.cz, 1
 restaurant-mangal.ch, 1
 restaurant-rosengarten.at, 1
 restaurantesimonetti.com.br, 1
 restaurantmangal.ch, 1
 rester-a-domicile.ch, 1
 rester-autonome-chez-soi.ch, 1
+restioson.me, 1
 restoran-radovce.me, 1
 restoreresearchstudy.com, 1
 restoruns.com, 1
 restrito.org, 1
 retcor.net, 1
 retetenoi.net, 1
 reth.ch, 1
 reto.ch, 1
@@ -19089,17 +19109,16 @@ sanooktiew.com, 0
 sanradon.by, 1
 sanskritiyoga.com, 1
 santanderideas.com, 1
 santenatureetcie.com, 1
 santevie.ch, 1
 santi.eu, 1
 santmark.fi, 1
 santodomingocg.org, 1
-santojuken.co.jp, 1
 santorinibbs.com, 1
 sanvitolocapobus.com, 1
 saorsat.com, 1
 saorsat.ie, 1
 saorview.com, 1
 saorviewconnect.ie, 1
 saorviewconnected.ie, 1
 saotn.org, 1
@@ -19161,16 +19180,17 @@ saurel.me, 1
 savacloud.com, 1
 savageorgiev.com, 1
 save.gov, 1
 saveaward.gov, 1
 savecashindia.com, 1
 savekorea.net, 1
 savenet.org, 1
 savetheinternet.eu, 1
+savic.com, 1
 savingbytes.com, 1
 savingrecipe.com, 1
 savingsbondwizard.gov, 1
 savingsomegreen.com, 1
 savingsstoreonline.ca, 1
 savisasolutions.co.za, 1
 savvysuit.com, 1
 savvytime.com, 1
@@ -19300,23 +19320,23 @@ schutzwerk.com, 1
 schwabenhaus-ka.de, 1
 schwarzegar.de, 1
 schwarzer.it, 1
 schwarzhenri.ch, 1
 schwarztrade.cz, 1
 schwarzwald-flirt.de, 1
 schwarzwaldcon.de, 1
 schweiz.guide, 1
+schweizerbolzonello.net, 1
 schwinabart.com, 1
 schwinger.me, 1
 schwuppengrillen.de, 1
 science-questions.org, 1
 science-texts.de, 1
 science360.gov, 1
-sciencebase.gov, 1
 sciencemonster.co.uk, 1
 sciencesolutions.eu, 1
 sciencex.com, 1
 scintilla.nl, 1
 scintillating.stream, 1
 scionasset.com, 1
 scistarter.com, 1
 scitopia.me, 1
@@ -19325,16 +19345,17 @@ scoolcode.com, 1
 scooterservis.com, 1
 scootfleet.com, 1
 scopea.fr, 1
 score-savers.com, 1
 scorobudem.ru, 1
 scorocode.ru, 1
 scottainslie.me.uk, 1
 scottgruber.me, 1
+scottgthomas.com, 1
 scotthel.me, 1
 scotthelme.co.uk, 1
 scotthelme.com, 1
 scottstorey.co.uk, 1
 scottynordstrom.org, 0
 scoutdb.ch, 1
 scoutnet.de, 1
 scp-trens.notaires.fr, 1
@@ -19513,16 +19534,17 @@ seizoushokoyuubangou.com, 1
 sekisonn.com, 1
 selco-himejiminami.com, 1
 selcusters.nl, 1
 selected-properties.com, 1
 selectel.ru, 1
 selectorders.com, 1
 selegiline.com, 1
 selent.me, 1
+self-evident.org, 1
 self-signed.com, 1
 selfassess.govt.nz, 1
 selfdestruct.net, 1
 selfhosters.com, 1
 selfici.com, 1
 selfici.cz, 1
 selfishness.com, 1
 selfloath.in, 1
@@ -19618,17 +19640,17 @@ serveradminz.com, 1
 serverco.com, 1
 serverfrog.de, 1
 serverlauget.no, 1
 serveroffline.net, 0
 serverpedia.de, 1
 serverstuff.info, 1
 serversuit.com, 1
 servertastic.com, 1
-servethecity-karlsruhe.de, 0
+servethecity-karlsruhe.de, 1
 servgate.jp, 1
 service.gov.uk, 1
 serviceboss.de, 1
 serviettenhaus.de, 1
 servious.org, 1
 servpanel.de, 1
 seryovpn.com, 1
 seryox.com, 1
@@ -19719,17 +19741,16 @@ shakespearevet.com, 1
 shalott.org, 1
 shamara.info, 1
 shamariki.ru, 1
 shan.io, 0
 shanae.nl, 1
 shanetully.com, 1
 shanewadleigh.com, 1
 shang-yu.cn, 1
-shannoneichorn.com, 1
 shansing.cn, 1
 shansing.com, 1
 shansing.net, 1
 shansing.space, 1
 shaobin.wang, 1
 sharanyamunsi.net, 1
 shardsoft.com, 1
 shareeri.com, 1
@@ -19796,17 +19817,16 @@ shining.gifts, 1
 shinnyosangha.org, 0
 shinobi-fansub.ro, 1
 shinonome-lab.eu.org, 1
 shintoism.com, 1
 shinyuu.net, 1
 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
@@ -20108,16 +20128,17 @@ skatclub-beratzhausen.de, 1
 skatingchina.com, 1
 skatn.de, 1
 skazka.ru, 1
 skday.com, 1
 skeeley.com, 1
 skepticalsports.com, 1
 sketchmyroom.com, 1
 sketchywebsite.net, 1
+skhoop.cz, 1
 skia.org, 1
 skifairview.com, 1
 skigebiete-test.de, 1
 skiinstructor.services, 1
 skilldetector.com, 1
 skilletfood.com, 1
 skills2services.com, 1
 skillseo.com, 1
@@ -20142,16 +20163,17 @@ skoda-service-team-cup.de, 1
 skogsbruket.fi, 1
 skogskultur.fi, 1
 skolem.de, 1
 skoleniphp.cz, 1
 skommettiamo.it, 1
 skontakt.cz, 1
 skontorp-enterprise.no, 1
 skory.us, 1
+skou.dk, 1
 skpdev.net, 1
 skram.de, 1
 sktan.com, 1
 sktsolution.com, 1
 sky-aroma.com, 1
 skyasker.com, 1
 skydragoness.com, 1
 skydrive.live.com, 0
@@ -20181,16 +20203,17 @@ slamix.nl, 1
 slane.cn, 1
 slangbellor.com, 1
 slapen17.nl, 1
 slaps.be, 1
 slash64.co.uk, 1
 slash64.com, 1
 slash64.uk, 1
 slashbits.no, 1
+slaughterhouse.fr, 1
 slaws.io, 1
 sleeklounge.com, 1
 sleeplessbeastie.eu, 1
 sleepmap.de, 1
 sleepstar.co.uk, 1
 sleepstar.com.mt, 1
 sleepstar.de, 1
 sleio.com, 1
@@ -20324,17 +20347,17 @@ sneedit.com, 1
 sneedit.de, 1
 sneeuwhoogtes.eu, 1
 sneezry.com, 1
 snekchat.moe, 1
 snelshops.nl, 1
 snelwebshop.nl, 1
 snelxboxlivegold.nl, 1
 snerith.com, 1
-snfdata.com, 1
+snfdata.com, 0
 sniderman.eu.org, 1
 sniep.net, 1
 snight.co, 1
 snille.com, 1
 snl.no, 0
 snod.land, 1
 snoupon.com, 1
 snow-online.com, 1
@@ -20636,16 +20659,17 @@ spoopy.link, 1
 sporcard.com, 1
 spornkuller.de, 1
 sport-in-sundern.de, 1
 sport-potreby.cz, 1
 sport-potreby.sk, 1
 sporter.com, 1
 sportflash.info, 1
 sportifik.com, 1
+sportovnidum.cz, 1
 sports.dating, 1
 sportscollection.com.br, 1
 sportsmanadvisor.com, 1
 sportsmansblog.com, 1
 sportstraineradvisor.com, 1
 sporttrampen.de, 0
 sportxt.ru, 1
 spotlightsrule.com, 1
@@ -20763,17 +20787,16 @@ stair.ch, 1
 stalder.work, 1
 stalker-shop.com, 1
 stalkr.net, 1
 stalkthe.net, 1
 stamboommuller.nl, 1
 stamboomvanderwal.nl, 1
 stamkassa.nl, 1
 stammtisch.domains, 1
-stamonicatourandtravel.com, 1
 stamparmakarije.me, 1
 stampederadon.com, 1
 stanandjerre.org, 1
 standagainstspying.org, 1
 standards.gov, 1
 standoutbooks.com, 1
 star-citizen.wiki, 1
 star-killer.net, 1
@@ -21032,16 +21055,17 @@ studiotheatrestains.fr, 1
 studiovaud.com, 1
 studium.cz, 1
 studlan.no, 1
 studport.rv.ua, 1
 studyabroadstation.com, 1
 stuermer.me, 1
 stuetzredli.ch, 1
 stuff-fibre.co.nz, 1
+stuka-art.de, 1
 stulda.cz, 1
 stumf.si, 1
 stuntmen.xyz, 1
 stupendous.net, 1
 sturbi.de, 1
 sturge.co.uk, 1
 stutelage.com, 1
 stuur.nl, 0
@@ -21072,16 +21096,17 @@ subterfuge.io, 1
 suburban-landscape.net, 1
 suburbaninfinitioftroyparts.com, 1
 subzerolosangeles.com, 1
 succ.in, 1
 suche.org, 1
 suchmaschinen-werkstatt.de, 1
 suckmyan.us, 0
 sudaraka.org, 1
+sudo.im, 1
 sudo.ws, 1
 sudoschool.com, 1
 sudosu.fr, 1
 suempresa.cloud, 1
 suevia-ka.de, 1
 sufix.cz, 1
 sugarandcloth.com, 1
 sugarbrother.com, 1
@@ -21097,16 +21122,17 @@ sulek.eu, 1
 sumguy.com, 1
 summa.eu, 0
 summer.ga, 1
 sumthing.com, 1
 sunbritetv.com, 1
 sundanceusa.com, 1
 sundayfundayjapan.com, 1
 suneilpatel.com, 1
+sunflyer.cn, 0
 sunfox.cz, 1
 sungo.wtf, 1
 sunjaydhama.com, 1
 sunsetwx.com, 1
 sunsmartresorts.com, 1
 sunstar.bg, 1
 supa.sexy, 1
 supastuds.com, 1
@@ -21157,18 +21183,18 @@ surveymill.co.uk, 1
 survivalmonkey.com, 1
 survivebox.fr, 1
 susanbpilates.co, 1
 susanbpilates.com, 1
 susann-kerk.de, 1
 susanna-komischke.de, 1
 susastudentenjobs.de, 1
 susc.org.uk, 1
-sush.us, 1
 sushi101tempe.com, 0
+sushifrick.de, 1
 sushikatze.de, 1
 susosudon.com, 1
 suspension-shop.com, 1
 suspiciousdarknet.xyz, 1
 sustainability.gov, 1
 sustsol.com, 1
 sutas.market, 1
 suwalls.com, 1
@@ -21203,17 +21229,16 @@ swarlys-server.de, 1
 swarmation.com, 1
 swat4stats.com, 1
 sway-cdn.com, 1
 sway.com, 1
 swd.agency, 1
 swedishhost.com, 1
 swedishhost.se, 1
 sweep-me.net, 1
-sweetair.com, 1
 sweetlegs.jp, 1
 sweetll.me, 0
 sweetvanilla.jp, 1
 swehack.org, 1
 sweharris.org, 1
 swift-devedge.de, 1
 swiftqueue.com, 1
 swiggy.com, 1
@@ -21675,17 +21700,16 @@ terralimno.eu, 1
 terraluna.space, 1
 terrastaffinggroup.com, 0
 terraweb.net, 1
 terrax.net, 1
 terresmagiques.com, 1
 terrty.net, 1
 tesche.biz, 1
 teschenhausen.com, 1
-tescoirelandpayslips.com, 1
 tesoro.pr, 1
 tessai.ga, 1
 testadren.com, 1
 testadron.com, 1
 testbawks.com, 1
 testbirds.cz, 1
 testbirds.sk, 1
 testgeomed.ro, 1
@@ -22002,17 +22026,16 @@ thomasstevensmusic.com, 1
 thomastimepieces.com.au, 1
 thomasvochten.com, 1
 thomasvt.xyz, 1
 thomaswoo.com, 1
 thompsonfamily.cloud, 1
 thomsonscleaning.co.uk, 1
 thomspooren.nl, 1
 thomwiggers.nl, 1
-thor.edu, 1
 thorbis.com, 1
 thorbiswebsitedesign.com, 1
 thorgames.nl, 1
 thorsten-schaefer.com, 1
 thorstenschaefer.name, 1
 thot.space, 1
 thouni.de, 1
 threatcentral.io, 1
@@ -22157,16 +22180,17 @@ tjs.me, 1
 tkacz.pro, 1
 tkarstens.de, 0
 tkat.ch, 1
 tkjg.fi, 1
 tkn.tokyo, 1
 tkonstantopoulos.tk, 1
 tkts.cl, 1
 tkusano.jp, 1
+tlach.cz, 1
 tlehseasyads.com, 1
 tlo.xyz, 1
 tloxygen.com, 1
 tls.builders, 1
 tls.care, 1
 tls1914.org, 1
 tlsrobot.se, 1
 tlthings.net, 1
@@ -23039,16 +23063,17 @@ uplinklabs.net, 1
 upload.cat, 1
 upload.facebook.com, 0
 uploadbeta.com, 1
 upmchealthsecurity.us, 1
 upnext.io, 1
 upperbeaconsfield.org.au, 1
 upplevelse.com, 1
 upr-info.org, 1
+upr.com.ua, 1
 uptic.net, 1
 uptimed.com, 1
 uptimenotguaranteed.com, 1
 uptogood.org, 1
 uptoon.jp, 1
 uptrends.com, 1
 uptrends.de, 1
 upwork.com, 1
@@ -23140,27 +23165,27 @@ utw.me, 1
 uvocorp.com, 1
 uwesander.de, 1
 uwimonacs.org.jm, 1
 uygindir.ml, 1
 v-u-z.ru, 1
 v0rtex.xyz, 1
 v2bv.win, 1
 v2ex.com, 1
-v2ex.us, 1
 va-reitartikel.com, 1
 vaaddress.co, 1
 vacationality.com, 1
 vacationscostarica.com, 1
 vaccines.gov, 1
 vackerbetong.se, 1
 vaclavambroz.cz, 1
 vacuumpump.co.id, 1
 vacuumreviewcenter.com, 1
 vadennissanofhinesvilleparts.com, 1
+vadik.me, 1
 vadodesign.nl, 1
 vaeplatform.com, 1
 vaew.com, 1
 vagabond.fr, 1
 vagabondgal.com, 1
 vagmour.eu, 1
 vagpartsdb.com, 1
 vagrantup.com, 1
@@ -23202,17 +23227,16 @@ vanajahosting.com, 1
 vancouvercosmeticsurgery.ca, 1
 vandalfsen.me, 1
 vandam.io, 1
 vandenbroeck-usedcars.be, 1
 vandeput.be, 1
 vanderkrieken.org, 1
 vandermeer.frl, 1
 vanderrijt.nl, 1
-vanderstraeten.dynv6.net, 1
 vanderziel.org, 1
 vanessabalibridal.com, 1
 vangeluwedeberlaere.be, 1
 vanhoudt-usedcars.be, 1
 vanhoutte.be, 0
 vanhove.biz, 1
 vanlaanen.com, 1
 vanmalland.com, 1
@@ -23764,17 +23788,16 @@ wearegenki.com, 1
 wearepapermill.co, 1
 wearesouthafricans.com, 1
 wearvr.com, 1
 weather-and-climate.com, 0
 weathermyway.rocks, 1
 web-hotel.gr, 1
 web-kouza.com, 1
 web-mail.info, 1
-web-wave.jp, 1
 web.cc, 0
 web.de, 1
 web2033.com, 1
 web2ldap.de, 1
 web2screen.tv, 1
 web404.net, 1
 webaholic.co.in, 1
 webais.ru, 1
@@ -23854,17 +23877,16 @@ webstylemedia.com, 1
 webtalis.nl, 1
 webtasarim.pw, 1
 webtheapp.com, 1
 webthings.com.br, 1
 webtorrent.io, 1
 webtrh.cz, 1
 webtropia.com, 0
 webwit.nl, 1
-webyazilimankara.com, 1
 webzanem.com, 1
 weddingfantasy.ru, 1
 weddywood.ru, 1
 wedos.com, 1
 weeblr.com, 1
 weeblrpress.com, 1
 weedypedia.de, 1
 weekdone.com, 1
@@ -23891,16 +23913,17 @@ weinhandel-preissler.de, 1
 weirdesigns.com, 1
 weirdserver.com, 1
 weisse-liste.de, 1
 weissman.agency, 1
 weiterbildung-vdz.de, 1
 weiyuz.com, 1
 weizenke.im, 1
 weizenspr.eu, 1
+wekibe.de, 1
 welches-kinderfahrrad.de, 1
 welcomehelp.de, 1
 weldwp.com, 1
 wellacapability.com, 1
 wellbeing360.com.au, 1
 welldrake.com, 1
 wellensteyn.ru, 1
 weller.pm, 1
@@ -23970,21 +23993,24 @@ wettbonus.info, 1
 wetthost.com, 1
 wevenues.com, 1
 wewillgo.com, 1
 wewillgo.org, 1
 wf-bigsky-master.appspot.com, 1
 wf-demo-eu.appspot.com, 1
 wf-demo-hrd.appspot.com, 1
 wf-dogfood-hrd.appspot.com, 1
+wf-hosting.de, 1
 wf-pentest.appspot.com, 1
 wf-staging-hr.appspot.com, 1
 wf-training-hrd.appspot.com, 1
 wf-training-master.appspot.com, 1
 wf-trial-hrd.appspot.com, 1
+wfh.ovh, 1
+wfh.se, 1
 wg-tools.de, 1
 wg3k.us, 1
 wgom.org, 1
 wh-guide.de, 1
 whanau.org, 1
 whatagreatwebsite.net, 1
 whatanime.ga, 1
 whatismyipaddress.ca, 1
@@ -24073,16 +24099,17 @@ wieobensounten.de, 1
 wificafehosting.com, 1
 wifimapa.cz, 1
 wifimask.com, 1
 wifipineapple.com, 1
 wifirst.net, 1
 wifree.lv, 1
 wigggle.it, 1
 wigle.net, 1
+wiimotion.de, 1
 wijnservices.nl, 0
 wiki.python.org, 1
 wikibooks.org, 1
 wikidata.org, 1
 wikidsystems.com, 0
 wikileaks.com, 1
 wikileaks.org, 1
 wikimedia.org, 1
@@ -24223,16 +24250,17 @@ wofford-ecs.org, 1
 woffs.de, 1
 woheni.de, 1
 wohlgemuth.rocks, 0
 wohnbegleitung.ch, 1
 wohnsitz-ausland.com, 1
 woi.vision, 1
 wokeai.net, 1
 wolf-squad.de, 0
+wolfachtal-alpaka.de, 1
 wolfemg.com, 1
 wolfenland.net, 1
 wolfgang-braun.info, 1
 wolfgang-kerschbaumer.at, 1
 wolfgang-kerschbaumer.com, 1
 wolfgang-kerschbaumer.net, 1
 wolfgang-ziegler.com, 1
 wolfie.ovh, 1
@@ -24544,16 +24572,17 @@ xichuangke.com, 0
 xicreative.net, 1
 xight.org, 1
 xilef.org, 1
 xiliant.com, 1
 xilkoi.net, 1
 ximage.me, 0
 ximbo.net, 1
 xinbiji.cn, 1
+xing.ml, 1
 xiqi.us, 1
 xirion.net, 1
 xivpn.com, 1
 xj8876.com, 1
 xjd.vision, 1
 xjjeeps.com, 1
 xkbcommon.org, 0
 xkblog.xyz, 1
@@ -24842,16 +24871,17 @@ yoga.is-an-engineer.com, 1
 yogananda-roma.org, 1
 yogaschoolrishikesh.com, 1
 yogeshbeniwal.com, 1
 yogoeasy.com, 1
 yoimise.net, 1
 yoitsu.moe, 1
 yoiyado.info, 1
 yolo.jetzt, 1
+yolobert.de, 1
 yolocelebs.com, 0
 yolops.net, 1
 yombo.net, 1
 yomena.in, 1
 yooooex.com, 1
 yopers.com, 1
 yoramvandevelde.net, 1
 yorcom.nl, 0
@@ -25143,30 +25173,32 @@ zning.net.cn, 1
 zobraz.cz, 1
 zockenbiszumumfallen.de, 1
 zoeller.me, 1
 zohar.shop, 1
 zohar.wang, 0
 zoigl.club, 1
 zojadravai.com, 1
 zolokar.xyz, 1
+zolotoy-standart.com.ua, 1
 zombiesecured.com, 1
 zomerschoen.nl, 1
 zone39.com, 1
 zonecb.com, 1
 zonemaster.fr, 1
 zonemaster.net, 1
 zoners.si, 1
 zonglovani.info, 1
 zonky.io, 1
 zooish.net, 1
 zoola.io, 1
 zoological-gardens.eu, 1
 zoom.earth, 1
 zooom.azurewebsites.net, 1
+zooparadies.eu, 1
 zootime.net, 1
 zootime.org, 1
 zoowiki.us, 1
 zooxdata.com, 1
 zopy.com.br, 1
 zopyx.com, 1
 zor.com, 1
 zorgclustertool.nl, 1
--- a/taskcluster/ci/beetmover-l10n/kind.yml
+++ b/taskcluster/ci/beetmover-l10n/kind.yml
@@ -12,11 +12,13 @@ transforms:
 
 kind-dependencies:
   - nightly-l10n-signing
 
 only-for-attributes:
   - nightly
 
 not-for-build-platforms:
-   - macosx64-nightly/opt
-   - win32-nightly/opt
-   - win64-nightly/opt
+  - linux-nightly/opt
+  - linux64-nightly/opt
+  - macosx64-nightly/opt
+  - win32-nightly/opt
+  - win64-nightly/opt
--- a/taskcluster/ci/beetmover-repackage/kind.yml
+++ b/taskcluster/ci/beetmover-repackage/kind.yml
@@ -9,11 +9,13 @@ transforms:
    - taskgraph.transforms.beetmover_repackage_l10n:transforms
    - taskgraph.transforms.beetmover_repackage:transforms
    - taskgraph.transforms.task:transforms
 
 kind-dependencies:
   - repackage-signing
 
 only-for-build-platforms:
+  - linux-nightly/opt
+  - linux64-nightly/opt
   - macosx64-nightly/opt
   - win32-nightly/opt
   - win64-nightly/opt
--- a/taskcluster/ci/beetmover/kind.yml
+++ b/taskcluster/ci/beetmover/kind.yml
@@ -11,11 +11,13 @@ transforms:
 
 kind-dependencies:
   - build-signing
 
 only-for-attributes:
   - nightly
 
 not-for-build-platforms:
-   - macosx64-nightly/opt
-   - win32-nightly/opt
-   - win64-nightly/opt
+  - linux-nightly/opt
+  - linux64-nightly/opt
+  - macosx64-nightly/opt
+  - win32-nightly/opt
+  - win64-nightly/opt
--- a/taskcluster/ci/repackage-l10n/kind.yml
+++ b/taskcluster/ci/repackage-l10n/kind.yml
@@ -10,11 +10,13 @@ transforms:
    - taskgraph.transforms.repackage:transforms
    - taskgraph.transforms.job:transforms
    - taskgraph.transforms.task:transforms
 
 kind-dependencies:
   - nightly-l10n-signing
 
 only-for-build-platforms:
+  - linux-nightly/opt
+  - linux64-nightly/opt
   - macosx64-nightly/opt
   - win32-nightly/opt
   - win64-nightly/opt
--- a/taskcluster/ci/repackage-signing/kind.yml
+++ b/taskcluster/ci/repackage-signing/kind.yml
@@ -10,14 +10,18 @@ transforms:
    - taskgraph.transforms.repackage_routes:transforms
    - taskgraph.transforms.task:transforms
 
 kind-dependencies:
   - repackage
   - repackage-l10n
 
 only-for-build-platforms:
+  - linux-nightly/opt
+  - linux-devedition-nightly/opt
+  - linux64-nightly/opt
+  - linux64-devedition-nightly/opt
   - macosx64-nightly/opt
   - macosx64-devedition-nightly/opt
   - win32-nightly/opt
   - win32-devedition-nightly/opt
   - win64-nightly/opt
   - win64-devedition-nightly/opt
--- a/taskcluster/ci/repackage/kind.yml
+++ b/taskcluster/ci/repackage/kind.yml
@@ -10,14 +10,18 @@ transforms:
    - taskgraph.transforms.repackage_routes:transforms
    - taskgraph.transforms.job:transforms
    - taskgraph.transforms.task:transforms
 
 kind-dependencies:
   - build-signing
 
 only-for-build-platforms:
+  - linux-nightly/opt
+  - linux-devedition-nightly/opt
+  - linux64-nightly/opt
+  - linux64-devedition-nightly/opt
   - macosx64-nightly/opt
   - macosx64-devedition-nightly/opt
   - win32-nightly/opt
   - win32-devedition-nightly/opt
   - win64-nightly/opt
   - win64-devedition-nightly/opt
--- a/taskcluster/taskgraph/transforms/beetmover_repackage.py
+++ b/taskcluster/taskgraph/transforms/beetmover_repackage.py
@@ -11,16 +11,18 @@ from taskgraph.transforms.base import Tr
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.schema import validate_schema, Schema
 from taskgraph.util.scriptworker import (get_beetmover_bucket_scope,
                                          get_beetmover_action_scope)
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Any, Required, Optional
 
 import logging
+import re
+
 logger = logging.getLogger(__name__)
 
 
 _WINDOWS_BUILD_PLATFORMS = [
     'win64-nightly',
     'win32-nightly'
 ]
 
@@ -58,73 +60,67 @@ logger = logging.getLogger(__name__)
     "balrog_props.json",
 ]
 
 # Until bug 1331141 is fixed, if you are adding any new artifacts here that
 # need to be transfered to S3, please be aware you also need to follow-up
 # with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
 # See example in bug 1348286
 UPSTREAM_ARTIFACT_UNSIGNED_PATHS = {
-    'macosx64-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
-        "host/bin/mar",
-        "host/bin/mbsdiff",
+    r'^(linux(|64)|macosx64)-nightly$': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
+        'host/bin/mar',
+        'host/bin/mbsdiff',
     ],
-    'macosx64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
-    'win64-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
+    r'^win(32|64)-nightly$': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
         "host/bin/mar.exe",
         "host/bin/mbsdiff.exe",
     ],
-    'win64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
-    'win32-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
-        "host/bin/mar.exe",
-        "host/bin/mbsdiff.exe",
-    ],
-    'win32-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+    r'^(linux(|64)|macosx64|win(32|64))-nightly-l10n$': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
 }
 
 # Until bug 1331141 is fixed, if you are adding any new artifacts here that
 # need to be transfered to S3, please be aware you also need to follow-up
 # with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
 # See example in bug 1348286
 UPSTREAM_ARTIFACT_SIGNED_PATHS = {
-    'win64-nightly': ['target.zip'],
-    'win64-nightly-l10n': ['target.zip'],
-    'win32-nightly': ['target.zip'],
-    'win32-nightly-l10n': ['target.zip'],
+    r'^linux(|64)-nightly(|-l10n)$': ['target.tar.bz2', 'target.tar.bz2.asc'],
+    r'^win(32|64)-nightly(|-l10n)$': ['target.zip'],
 }
 
 # Until bug 1331141 is fixed, if you are adding any new artifacts here that
 # need to be transfered to S3, please be aware you also need to follow-up
 # with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
 # See example in bug 1348286
 UPSTREAM_ARTIFACT_REPACKAGE_PATHS = {
-    'macosx64-nightly': ['target.dmg'],
-    'macosx64-nightly-l10n': ['target.dmg'],
+    r'^macosx64-nightly(|-l10n)$': ['target.dmg'],
 }
 # Until bug 1331141 is fixed, if you are adding any new artifacts here that
 # need to be transfered to S3, please be aware you also need to follow-up
 # with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
 # See example in bug 1348286
 UPSTREAM_ARTIFACT_SIGNED_REPACKAGE_PATHS = {
-    'macosx64-nightly': ['target.complete.mar'],
-    'macosx64-nightly-l10n': ['target.complete.mar'],
-    'win64-nightly': ['target.complete.mar', 'target.installer.exe'],
-    'win64-nightly-l10n': ['target.complete.mar', 'target.installer.exe'],
-    'win32-nightly': [
-        'target.complete.mar',
-        'target.installer.exe',
-        'target.stub-installer.exe'
-    ],
-    'win32-nightly-l10n': [
+    r'^(linux(|64)|macosx64)-nightly(|-l10n)$': ['target.complete.mar'],
+    r'^win64-nightly(|-l10n)$': ['target.complete.mar', 'target.installer.exe'],
+    r'^win32-nightly(|-l10n)$': [
         'target.complete.mar',
         'target.installer.exe',
         'target.stub-installer.exe'
     ],
 }
 
+# Compile every regex once at import time
+for dict_ in (
+    UPSTREAM_ARTIFACT_UNSIGNED_PATHS, UPSTREAM_ARTIFACT_SIGNED_PATHS,
+    UPSTREAM_ARTIFACT_REPACKAGE_PATHS, UPSTREAM_ARTIFACT_SIGNED_REPACKAGE_PATHS,
+):
+    for uncompiled_regex, value in dict_.iteritems():
+        compiled_regex = re.compile(uncompiled_regex)
+        del dict_[uncompiled_regex]
+        dict_[compiled_regex] = value
+
 # Voluptuous uses marker objects as dictionary *keys*, but they are not
 # comparable, so we cast all of the keys back to regular strings
 task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
 
 transforms = TransformSequence()
 
 # shortcut for a string where task references are allowed
 taskref_or_string = Any(
@@ -266,28 +262,47 @@ def generate_upstream_artifacts(build_ta
     mapping = [
         build_mapping,
         build_signing_mapping,
         repackage_mapping,
         repackage_signing_mapping
     ]
 
     for ref, tasktype, mapping in zip(task_refs, tasktypes, mapping):
-        if platform in mapping:
-            upstream_artifacts.append({
-                "taskId": {"task-reference": ref},
-                "taskType": tasktype,
-                "paths": ["{}/{}".format(artifact_prefix, p)
-                          for p in mapping[platform]],
-                "locale": locale or "en-US",
-            })
+        plarform_was_previously_matched_by_regex = None
+        for platform_regex, paths in mapping.iteritems():
+            if platform_regex.match(platform) is not None:
+                _check_platform_matched_only_one_regex(
+                    tasktype, platform, plarform_was_previously_matched_by_regex, platform_regex
+                )
+
+                upstream_artifacts.append({
+                    "taskId": {"task-reference": ref},
+                    "taskType": tasktype,
+                    "paths": ["{}/{}".format(artifact_prefix, path) for path in paths],
+                    "locale": locale or "en-US",
+                })
+                plarform_was_previously_matched_by_regex = platform_regex
 
     return upstream_artifacts
 
 
+def _check_platform_matched_only_one_regex(
+    task_type, platform, plarform_was_previously_matched_by_regex, platform_regex
+):
+    if plarform_was_previously_matched_by_regex is not None:
+        raise Exception('In task type "{task_type}", platform "{platform}" matches at \
+least 2 regular expressions. First matched: "{first_matched}". Second matched: \
+"{second_matched}"'.format(
+            task_type=task_type, platform=platform,
+            first_matched=plarform_was_previously_matched_by_regex.pattern,
+            second_matched=platform_regex.pattern
+        ))
+
+
 def is_valid_beetmover_job(job):
     # windows builds don't have docker-image, so fewer dependencies
     if any(b in job['attributes']['build_platform'] for b in _WINDOWS_BUILD_PLATFORMS):
         expected_dep_count = 4
     else:
         expected_dep_count = 5
 
     return (len(job["dependencies"]) == expected_dep_count and
--- a/taskcluster/taskgraph/transforms/build_signing.py
+++ b/taskcluster/taskgraph/transforms/build_signing.py
@@ -3,16 +3,18 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 """
 Transform the signing task into an actual task description.
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
+from taskgraph.util.signed_artifacts import generate_specifications_of_artifacts_to_sign
+
 
 transforms = TransformSequence()
 
 
 @transforms.add
 def add_signed_routes(config, jobs):
     """Add routes corresponding to the routes of the build task
        this corresponds to, with .signed inserted, for all gecko.v2 routes"""
@@ -29,71 +31,31 @@ def add_signed_routes(config, jobs):
                 rest = ".".join(dep_route.split(".")[4:])
                 job['routes'].append(
                     'index.gecko.v2.{}.signed-nightly.{}'.format(branch, rest))
 
         yield job
 
 
 @transforms.add
-def make_signing_description(config, jobs):
+def define_upstream_artifacts(config, jobs):
     for job in jobs:
         dep_job = job['dependent-task']
+        build_platform = dep_job.attributes.get('build_platform')
 
-        job['upstream-artifacts'] = _generate_upstream_artifacts(
-            dep_job.attributes.get('build_platform'),
-            dep_job.attributes.get('nightly')
+        artifacts_specifications = generate_specifications_of_artifacts_to_sign(
+            build_platform,
+            dep_job.attributes.get('nightly'),
+            keep_locale_template=False
         )
 
+        if 'android' in build_platform:
+            # We're in the job that creates both multilocale and en-US APKs
+            artifacts_specifications[0]['artifacts'].append('public/build/en-US/target.apk')
+
+        job['upstream-artifacts'] = [{
+            'taskId': {'task-reference': '<build>'},
+            'taskType': 'build',
+            'paths': spec['artifacts'],
+            'formats': spec['formats'],
+        } for spec in artifacts_specifications]
+
         yield job
-
-
-def _generate_upstream_artifacts(build_platform, is_nightly=False):
-    if 'android' in build_platform:
-        artifacts_specificities = [{
-            'artifacts': [
-                'public/build/target.apk',
-                'public/build/en-US/target.apk'
-            ],
-            'format': 'jar',
-        }]
-    # XXX: Mac and Windows don't sign mars because internal aren't signed at
-    # this stage of the release
-    elif 'macosx' in build_platform:
-        artifacts_specificities = [{
-            'artifacts': ['public/build/target.dmg'],
-            'format': 'macapp',
-        }]
-    elif 'win64' in build_platform:
-        artifacts_specificities = [{
-            'artifacts': [
-                'public/build/target.zip',
-                'public/build/setup.exe'
-            ],
-            'format': 'sha2signcode',
-        }]
-    elif 'win32' in build_platform:
-        artifacts_specificities = [{
-            'artifacts': [
-                'public/build/target.zip',
-                'public/build/setup.exe',
-                ],
-            'format': 'sha2signcode',
-        }]
-        if is_nightly:
-            artifacts_specificities[0]['artifacts'] += ['public/build/setup-stub.exe']
-    elif 'linux' in build_platform:
-        artifacts_specificities = [{
-            'artifacts': ['public/build/target.tar.bz2'],
-            'format': 'gpg',
-        }, {
-            'artifacts': ['public/build/update/target.complete.mar'],
-            'format': 'mar_sha384',
-        }]
-    else:
-        raise Exception("Platform not implemented for signing")
-
-    return [{
-        'taskId': {'task-reference': '<build>'},
-        'taskType': 'build',
-        'paths': specificity['artifacts'],
-        'formats': [specificity['format']],
-    } for specificity in artifacts_specificities]
--- a/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
+++ b/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
@@ -26,30 +26,38 @@ JOB_NAME_WHITELIST = set([
     'android-findbugs',
     'android-lint',
     'android-test',
     'android-x86-old-id-opt',
     'android-x86-opt',
     'browser-haz-debug',
     'linux-debug',
     'linux-devedition',
+    'linux-devedition-nightly-repackage',
+    'linux-devedition-nightly-repackage-signing',
+    'linux-nightly-repackage',
+    'linux-nightly-repackage-signing',
     'linux-opt',
     'linux-pgo',
     'linux64-add-on-devel',
     'linux64-artifact-opt',
     'linux64-asan-debug',
     'linux64-asan-opt',
     'linux64-base-toolchains-debug',
     'linux64-base-toolchains-opt',
     'linux64-fuzzing-asan-opt',
     'linux64-ccov-opt',
     'linux64-clang-tidy',
     'linux64-debug',
     'linux64-devedition',
+    'linux64-devedition-nightly-repackage',
+    'linux64-devedition-nightly-repackage-signing',
     'linux64-jsdcov-opt',
+    'linux64-nightly-repackage',
+    'linux64-nightly-repackage-signing',
     'linux64-noopt-debug',
     'linux64-opt',
     'linux64-pgo',
     'linux64-st-an-debug',
     'linux64-st-an-opt',
     'linux64-valgrind-opt',
     'linux64-dmd-opt',
     'macosx64-add-on-devel',
--- a/taskcluster/taskgraph/transforms/nightly_l10n_signing.py
+++ b/taskcluster/taskgraph/transforms/nightly_l10n_signing.py
@@ -3,95 +3,61 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 """
 Transform the signing task into an actual task description.
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
+from taskgraph.util.signed_artifacts import generate_specifications_of_artifacts_to_sign
 from taskgraph.util.treeherder import join_symbol
 
 transforms = TransformSequence()
 
 
 @transforms.add
 def make_signing_description(config, jobs):
     for job in jobs:
         job['depname'] = 'unsigned-repack'
 
         dep_job = job['dependent-task']
-        dep_platform = dep_job.attributes.get('build_platform')
-
-        job['upstream-artifacts'] = []
-        if 'android' in dep_platform:
-            job_specs = [
-                {
-                    'artifacts': ['public/build/{locale}/target.apk'],
-                    'format': 'jar',
-                },
-            ]
-        elif 'macosx' in dep_platform:
-            job_specs = [
-                {
-                    'artifacts': ['public/build/{locale}/target.dmg'],
-                    'format': 'macapp',
-                }
-            ]
-        elif 'win32' in dep_platform:
-            job_specs = [
-                {
-                    'artifacts': [
-                        'public/build/{locale}/target.zip',
-                        'public/build/{locale}/setup.exe',
-                        'public/build/{locale}/setup-stub.exe'
-                    ],
-                    'format': 'sha2signcode',
-                }
-            ]
-        elif 'win64' in dep_platform:
-            job_specs = [
-                {
-                    'artifacts': [
-                        'public/build/{locale}/target.zip',
-                        'public/build/{locale}/setup.exe',
-                    ],
-                    'format': 'sha2signcode',
-                }
-            ]
-        elif 'linux' in dep_platform:
-            job_specs = [
-                {
-                    'artifacts': ['public/build/{locale}/target.tar.bz2'],
-                    'format': 'gpg',
-                }, {
-                    'artifacts': ['public/build/{locale}/target.complete.mar'],
-                    'format': 'mar_sha384',
-                }
-            ]
-        else:
-            raise Exception("Platform not implemented for signing")
-
-        upstream_artifacts = []
-        for spec in job_specs:
-            fmt = spec['format']
-            upstream_artifacts.append({
-                "taskId": {"task-reference": "<unsigned-repack>"},
-                "taskType": "l10n",
-                # Set paths based on artifacts in the specs (above) one per
-                # locale present in the chunk this is signing stuff for.
-                "paths": [f.format(locale=l)
-                          for l in dep_job.attributes.get('chunk_locales', [])
-                          for f in spec['artifacts']],
-                "formats": [fmt]
-            })
-
-        job['upstream-artifacts'] = upstream_artifacts
 
         # add the chunk number to the TH symbol
         symbol = 'Ns{}'.format(dep_job.attributes.get('l10n_chunk'))
         group = 'tc-L10n'
 
         job['treeherder'] = {
             'symbol': join_symbol(group, symbol),
         }
 
         yield job
+
+
+@transforms.add
+def define_upstream_artifacts(config, jobs):
+    for job in jobs:
+        dep_job = job['dependent-task']
+
+        locale_specifications = generate_specifications_of_artifacts_to_sign(
+            dep_job.attributes.get('build_platform'),
+            is_nightly=True,
+            keep_locale_template=True
+        )
+
+        upstream_artifacts = []
+        for spec in locale_specifications:
+            upstream_artifacts.append({
+                'taskId': {'task-reference': '<unsigned-repack>'},
+                'taskType': 'l10n',
+                # Set paths based on artifacts in the specs (above) one per
+                # locale present in the chunk this is signing stuff for.
+                'paths': [
+                    path_template.format(locale=locale)
+                    for locale in dep_job.attributes.get('chunk_locales', [])
+                    for path_template in spec['artifacts']
+                ],
+                'formats': spec['formats']
+            })
+
+        job['upstream-artifacts'] = upstream_artifacts
+
+        yield job
--- a/taskcluster/taskgraph/transforms/repackage.py
+++ b/taskcluster/taskgraph/transforms/repackage.py
@@ -143,18 +143,25 @@ def make_job_description(config, jobs):
 
         if locale:
             # Make sure we specify the locale-specific upload dir
             worker['env'].update(LOCALE=locale)
 
         if build_platform.startswith('win'):
             worker_type = 'aws-provisioner-v1/gecko-%s-b-win2012' % level
             run['use-magic-mh-args'] = False
-        elif build_platform.startswith('macosx'):
-            worker_type = 'aws-provisioner-v1/gecko-%s-b-macosx64' % level
+        else:
+            if build_platform.startswith('macosx'):
+                worker_type = 'aws-provisioner-v1/gecko-%s-b-macosx64' % level
+            elif build_platform.startswith('linux'):
+                worker_type = 'aws-provisioner-v1/gecko-%s-b-linux' % level
+            else:
+                raise NotImplementedError(
+                    'Unsupported build_platform: "{}"'.format(build_platform)
+                )
 
             run['tooltool-downloads'] = 'internal'
             worker['docker-image'] = {"in-tree": "desktop-build"}
 
             cot = job.setdefault('extra', {}).setdefault('chainOfTrust', {})
             cot.setdefault('inputs', {})['docker-image'] = {"task-reference": "<docker-image>"}
 
         description = (
@@ -180,71 +187,81 @@ def make_job_description(config, jobs):
             'run': run,
         }
         yield task
 
 
 def _generate_task_mozharness_config(build_platform):
     if build_platform.startswith('macosx'):
         return ['repackage/osx_signed.py']
-    elif build_platform.startswith('win'):
-        return ['repackage/win32_signed.py'] if '32' in build_platform \
-            else ['repackage/win64_signed.py']
     else:
-        raise NotImplemented('Unsupported build_platform: "{}"'.format(build_platform))
+        bits = 32 if '32' in build_platform else 64
+        if build_platform.startswith('linux'):
+            return ['repackage/linux{}_signed.py'.format(bits)]
+        elif build_platform.startswith('win'):
+            return ['repackage/win{}_signed.py'.format(bits)]
+
+    raise NotImplementedError('Unsupported build_platform: "{}"'.format(build_platform))
 
 
 def _generate_task_env(build_platform, build_task_ref, signing_task_ref, locale=None):
     mar_prefix = _generate_taskcluster_prefix(build_task_ref, postfix='host/bin/', locale=None)
     signed_prefix = _generate_taskcluster_prefix(signing_task_ref, locale=locale)
 
-    if build_platform.startswith('macosx'):
+    if build_platform.startswith('linux') or build_platform.startswith('macosx'):
+        tarball_extension = 'bz2' if build_platform.startswith('linux') else 'gz'
         return {
-            'SIGNED_INPUT': {'task-reference': '{}target.tar.gz'.format(signed_prefix)},
+            'SIGNED_INPUT': {'task-reference': '{}target.tar.{}'.format(
+                signed_prefix, tarball_extension
+            )},
             'UNSIGNED_MAR': {'task-reference': '{}mar'.format(mar_prefix)},
         }
     elif build_platform.startswith('win'):
         task_env = {
             'SIGNED_ZIP': {'task-reference': '{}target.zip'.format(signed_prefix)},
             'SIGNED_SETUP': {'task-reference': '{}setup.exe'.format(signed_prefix)},
             'UNSIGNED_MAR': {'task-reference': '{}mar.exe'.format(mar_prefix)},
         }
 
         # Stub installer is only generated on win32
         if '32' in build_platform:
             task_env['SIGNED_SETUP_STUB'] = {
                 'task-reference': '{}setup-stub.exe'.format(signed_prefix),
             }
         return task_env
 
-    else:
-        raise NotImplemented('Unsupported build_platform: "{}"'.format(build_platform))
+    raise NotImplementedError('Unsupported build_platform: "{}"'.format(build_platform))
 
 
 def _generate_taskcluster_prefix(task_id, postfix='', locale=None):
     if locale:
         postfix = '{}/{}'.format(locale, postfix)
 
     return _TC_ARTIFACT_LOCATION.format(task_id=task_id, postfix=postfix)
 
 
 def _generate_task_output_files(build_platform, locale=None):
     locale_output_path = '{}/'.format(locale) if locale else ''
-    if build_platform.startswith('macosx'):
-        return [{
-            'type': 'file',
-            'path': '/home/worker/workspace/build/artifacts/{}target.dmg'
-                    .format(locale_output_path),
-            'name': 'public/build/{}target.dmg'.format(locale_output_path),
-        }, {
+
+    if build_platform.startswith('linux') or build_platform.startswith('macosx'):
+        output_files = [{
             'type': 'file',
             'path': '/home/worker/workspace/build/artifacts/{}target.complete.mar'
                     .format(locale_output_path),
             'name': 'public/build/{}target.complete.mar'.format(locale_output_path),
         }]
+
+        if build_platform.startswith('macosx'):
+            output_files.append({
+                'type': 'file',
+                'path': '/home/worker/workspace/build/artifacts/{}target.dmg'
+                        .format(locale_output_path),
+                'name': 'public/build/{}target.dmg'.format(locale_output_path),
+            })
+
     elif build_platform.startswith('win'):
         output_files = [{
             'type': 'file',
             'path': 'public/build/{}target.installer.exe'.format(locale_output_path),
             'name': 'public/build/{}target.installer.exe'.format(locale_output_path),
         }, {
             'type': 'file',
             'path': 'public/build/{}target.complete.mar'.format(locale_output_path),
@@ -254,11 +271,12 @@ def _generate_task_output_files(build_pl
         # Stub installer is only generated on win32
         if '32' in build_platform:
             output_files.append({
                 'type': 'file',
                 'path': 'public/build/{}target.stub-installer.exe'.format(locale_output_path),
                 'name': 'public/build/{}target.stub-installer.exe'.format(locale_output_path),
             })
 
+    if output_files:
         return output_files
-    else:
-        raise NotImplemented('Unsupported build_platform: "{}"'.format(build_platform))
+
+    raise NotImplementedError('Unsupported build_platform: "{}"'.format(build_platform))
--- a/taskcluster/taskgraph/transforms/repackage_signing.py
+++ b/taskcluster/taskgraph/transforms/repackage_signing.py
@@ -125,16 +125,18 @@ def make_repackage_signing_description(c
             'scopes': scopes,
             'dependencies': dependencies,
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
         }
 
         funsize_platforms = [
+            'linux-nightly',
+            'linux64-nightly',
             'macosx64-nightly',
             'win32-nightly',
             'win64-nightly'
         ]
         if build_platform in funsize_platforms and is_nightly:
             route_template = "project.releng.funsize.level-{level}.{project}"
             task['routes'] = [
                 route_template.format(project=config.params['project'],
--- a/taskcluster/taskgraph/transforms/signing.py
+++ b/taskcluster/taskgraph/transforms/signing.py
@@ -131,21 +131,16 @@ def make_task_description(config, jobs):
             'scopes': [signing_cert_scope] + signing_format_scopes,
             'dependencies': {job['depname']: dep_job.label},
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
             'routes': job.get('routes', []),
         }
 
-        if 'linux' in dep_job.attributes.get('build_platform') and \
-                dep_job.attributes.get('nightly'):
-            task['routes'].append("project.releng.funsize.level-{level}.{project}".format(
-                project=config.params['project'], level=config.params['level']))
-
         yield task
 
 
 def _generate_treeherder_platform(dep_th_platform, build_platform, build_type):
     actual_build_type = 'pgo' if '-pgo' in build_platform else build_type
     return '{}/{}'.format(dep_th_platform, actual_build_type)
 
 
new file mode 100644
--- /dev/null
+++ b/taskcluster/taskgraph/util/signed_artifacts.py
@@ -0,0 +1,61 @@
+# 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/.
+"""
+Defines artifacts to sign before repackage.
+"""
+
+
+def generate_specifications_of_artifacts_to_sign(
+    build_platform, is_nightly=False, keep_locale_template=True
+):
+    if 'android' in build_platform:
+        artifacts_specifications = [{
+            'artifacts': [
+                'public/build/{locale}/target.apk',
+            ],
+            'formats': ['jar'],
+        }]
+    # XXX: Mars aren't signed here (on any platform) because internals will be
+    # signed at after this stage of the release
+    elif 'macosx' in build_platform:
+        artifacts_specifications = [{
+            'artifacts': ['public/build/{locale}/target.dmg'],
+            'formats': ['macapp', 'widevine'],
+        }]
+    elif 'win' in build_platform:
+        artifacts_specifications = [{
+            'artifacts': [
+                'public/build/{locale}/setup.exe',
+            ],
+            'formats': ['sha2signcode'],
+        }, {
+            'artifacts': [
+                'public/build/{locale}/target.zip',
+            ],
+            'formats': ['sha2signcode', 'widevine'],
+        }]
+        if 'win32' in build_platform and is_nightly:
+            artifacts_specifications[0]['artifacts'] += ['public/build/{locale}/setup-stub.exe']
+    elif 'linux' in build_platform:
+        artifacts_specifications = [{
+            'artifacts': ['public/build/{locale}/target.tar.bz2'],
+            'formats': ['gpg', 'widevine'],
+        }]
+    else:
+        raise Exception("Platform not implemented for signing")
+
+    if not keep_locale_template:
+        artifacts_specifications = _strip_locale_template(artifacts_specifications)
+
+    return artifacts_specifications
+
+
+def _strip_locale_template(artifacts_without_locales):
+    for spec in artifacts_without_locales:
+        for index, artifact in enumerate(spec['artifacts']):
+            stripped_artifact = artifact.format(locale='')
+            stripped_artifact = stripped_artifact.replace('//', '/')
+            spec['artifacts'][index] = stripped_artifact
+
+    return artifacts_without_locales
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/repackage/linux32_signed.py
@@ -0,0 +1,30 @@
+import os
+
+platform = "linux32"
+
+config = {
+    "input_home": "{abs_work_dir}/inputs",
+    "output_home": "{abs_work_dir}/artifacts{locale}",
+
+    "locale": os.environ.get("LOCALE"),
+
+    "download_config": {
+        "target.tar.gz": os.environ.get("SIGNED_INPUT"),
+        "mar": os.environ.get("UNSIGNED_MAR"),
+    },
+
+    "repackage_config": [[
+        "mar",
+        "-i", "{abs_work_dir}/inputs/target.tar.gz",
+        "--mar", "{abs_work_dir}/inputs/mar",
+        "-o", "{output_home}/target.complete.mar"
+    ]],
+
+    # ToolTool
+    "tooltool_manifest_src": 'browser/config/tooltool-manifests/{}/releng.manifest'.format(platform),
+    "tooltool_url": 'http://relengapi/tooltool/',
+    'tooltool_script': ["/builds/tooltool.py"],
+    'tooltool_cache': os.environ.get('TOOLTOOL_CACHE'),
+
+    'run_configure': False,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/repackage/linux64_signed.py
@@ -0,0 +1,30 @@
+import os
+
+platform = "linux64"
+
+config = {
+    "input_home": "{abs_work_dir}/inputs",
+    "output_home": "{abs_work_dir}/artifacts{locale}",
+
+    "locale": os.environ.get("LOCALE"),
+
+    "download_config": {
+        "target.tar.gz": os.environ.get("SIGNED_INPUT"),
+        "mar": os.environ.get("UNSIGNED_MAR"),
+    },
+
+    "repackage_config": [[
+        "mar",
+        "-i", "{abs_work_dir}/inputs/target.tar.gz",
+        "--mar", "{abs_work_dir}/inputs/mar",
+        "-o", "{output_home}/target.complete.mar"
+    ]],
+
+    # ToolTool
+    "tooltool_manifest_src": 'browser/config/tooltool-manifests/{}/releng.manifest'.format(platform),
+    "tooltool_url": 'http://relengapi/tooltool/',
+    'tooltool_script': ["/builds/tooltool.py"],
+    'tooltool_cache': os.environ.get('TOOLTOOL_CACHE'),
+
+    'run_configure': False,
+}
--- a/testing/mozharness/configs/repackage/win32_signed.py
+++ b/testing/mozharness/configs/repackage/win32_signed.py
@@ -27,17 +27,16 @@ repackage_config = [[
         "--tag", "{abs_mozilla_dir}\\browser\\installer\\windows\\stub.tag",
          "--setupexe", "{abs_work_dir}\\inputs\\setup-stub.exe",
          "-o", "{output_home}\\target.stub-installer.exe"
     ]]
 
 config = {
     "input_home": "{abs_work_dir}\\inputs",
     "output_home": "{base_work_dir}\\public\\build{locale}",
-    "src_mozconfig": "browser/config/mozconfigs/{}/repack".format(platform),
 
     "locale": os.environ.get("LOCALE"),
 
     "download_config": download_config,
 
     "repackage_config": repackage_config,
 
     # ToolTool
--- a/testing/mozharness/configs/repackage/win64_signed.py
+++ b/testing/mozharness/configs/repackage/win64_signed.py
@@ -20,17 +20,16 @@ repackage_config = [[
         "-i", "{abs_work_dir}\\inputs\\target.zip",
         "--mar", "{abs_work_dir}\\inputs\\mar.exe",
         "-o", "{output_home}\\target.complete.mar"
     ]]
 
 config = {
     "input_home": "{abs_work_dir}\\inputs",
     "output_home": "{base_work_dir}\\public\\build{locale}",
-    "src_mozconfig": "browser/config/mozconfigs/{}/repack".format(platform),
 
     "locale": os.environ.get("LOCALE"),
 
     "download_config": download_config,
 
     "repackage_config": repackage_config,
 
     # ToolTool
--- a/xpfe/appshell/nsContentTreeOwner.cpp
+++ b/xpfe/appshell/nsContentTreeOwner.cpp
@@ -918,26 +918,25 @@ nsContentTreeOwner::ProvideWindow(mozIDO
   {
     dom::AutoNoJSAPI nojsapi;
 
     uint32_t flags = nsIBrowserDOMWindow::OPEN_NEW;
     if (aForceNoOpener) {
       flags |= nsIBrowserDOMWindow::OPEN_NO_OPENER;
     }
 
-    // Get a new rendering area from the browserDOMWin.  We don't want
-    // to be starting any loads here, so get it with a null URI. Since/
-    // we are not loading any URI, we follow the principle of least privlege
-    // and use a nullPrincipal as the triggeringPrincipal.
+    // Get a new rendering area from the browserDOMWin.
+    // Since we are not loading any URI, we follow the principle of least
+    // privilege and use a nullPrincipal as the triggeringPrincipal.
     //
     // This method handles setting the opener for us, so we don't need to set it
     // ourselves.
     RefPtr<NullPrincipal> nullPrincipal = NullPrincipal::Create();
-    return browserDOMWin->OpenURI(nullptr, aParent, openLocation,
-                                  flags, nullPrincipal, aReturn);
+    return browserDOMWin->CreateContentWindow(aURI, aParent, openLocation,
+                                              flags, nullPrincipal, aReturn);
   }
 }
 
 //*****************************************************************************
 // nsContentTreeOwner: Accessors
 //*****************************************************************************
 
 #if defined(XP_MACOSX)