merge b93eb6ed6167 (FIREFOX_BETA_60_END) to THUNDERBIRD_60_VERBRANCH. a=tomprince DONTBUILD THUNDERBIRD_60_VERBRANCH
authorTom Prince <mozilla@hocat.ca>
Thu, 07 Jun 2018 10:36:58 -0600
branchTHUNDERBIRD_60_VERBRANCH
changeset 471210 475ee126be73
parent 471209 45c948356b4a (current diff)
parent 461094 b93eb6ed6167 (diff)
child 471318 fd5797b0b83a
push id9329
push usermozilla@hocat.ca
push dateThu, 07 Jun 2018 16:40:21 +0000
treeherdermozilla-beta@475ee126be73 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstomprince
milestone60.0
merge b93eb6ed6167 (FIREFOX_BETA_60_END) to THUNDERBIRD_60_VERBRANCH. a=tomprince DONTBUILD
build/pgo/certs/jartests-object.ca
build/pgo/certs/pgoca.p12
build/pgo/certs/secmod.db
build/virtualenv_packages.txt
taskcluster/taskgraph/decision.py
taskcluster/taskgraph/target_tasks.py
--- a/.hgtags
+++ b/.hgtags
@@ -876,8 +876,19 @@ 64eeb41e22928c9307606e9cb77afe37c0730000
 64eeb41e22928c9307606e9cb77afe37c0730000 FENNEC_60_0b12_BUILD1
 64eeb41e22928c9307606e9cb77afe37c0730000 FENNEC_60_0b12_RELEASE
 1cf6b6ff8bd2d01bf14175640971f1c28d1ea7fe DEVEDITION_60_0b13_BUILD1
 1cf6b6ff8bd2d01bf14175640971f1c28d1ea7fe DEVEDITION_60_0b13_RELEASE
 1cf6b6ff8bd2d01bf14175640971f1c28d1ea7fe FIREFOX_60_0b13_BUILD1
 1cf6b6ff8bd2d01bf14175640971f1c28d1ea7fe FIREFOX_60_0b13_RELEASE
 1cf6b6ff8bd2d01bf14175640971f1c28d1ea7fe FENNEC_60_0b13_BUILD1
 1cf6b6ff8bd2d01bf14175640971f1c28d1ea7fe FENNEC_60_0b13_RELEASE
+98d5361303491977c2c27ae35f06e8c6a6709bba DEVEDITION_60_0b14_BUILD1
+98d5361303491977c2c27ae35f06e8c6a6709bba DEVEDITION_60_0b14_RELEASE
+98d5361303491977c2c27ae35f06e8c6a6709bba FIREFOX_60_0b14_BUILD2
+98d5361303491977c2c27ae35f06e8c6a6709bba FIREFOX_60_0b14_RELEASE
+f2ac3383fb97a55d11a876f17189613a852a0077 DEVEDITION_60_0b15_BUILD1
+f2ac3383fb97a55d11a876f17189613a852a0077 DEVEDITION_60_0b15_RELEASE
+f2ac3383fb97a55d11a876f17189613a852a0077 FIREFOX_60_0b15_BUILD1
+f2ac3383fb97a55d11a876f17189613a852a0077 FIREFOX_60_0b15_RELEASE
+f2ac3383fb97a55d11a876f17189613a852a0077 FENNEC_60_0b15_BUILD1
+f2ac3383fb97a55d11a876f17189613a852a0077 FENNEC_60_0b15_RELEASE
+42d311bd68789edd7fea323f6e2bc5bbbfd86760 FIREFOX_RELEASE_60_BASE
--- a/.taskcluster.yml
+++ b/.taskcluster.yml
@@ -47,29 +47,35 @@ tasks:
         then: {createdForUser: "${ownerEmail}"}
         else:
           $if: 'tasks_for == "action"'
           then:
             createdForUser: '${ownerEmail}'
             kind: 'action-callback'
 
       routes:
-        $if: 'tasks_for == "hg-push"'
-        then:
-          - "index.gecko.v2.${repository.project}.latest.firefox.decision"
-          - "index.gecko.v2.${repository.project}.revision.${push.revision}.firefox.decision"
-          - "index.gecko.v2.${repository.project}.pushlog-id.${push.pushlog_id}.decision"
+        $flatten:
           - "tc-treeherder.v2.${repository.project}.${push.revision}.${push.pushlog_id}"
-          - "notify.email.${ownerEmail}.on-failed"
-          - "notify.email.${ownerEmail}.on-exception"
-        else:
-          - "tc-treeherder.v2.${repository.project}.${push.revision}.${push.pushlog_id}"
-          - $if: 'tasks_for == "action"'
-            then: "index.gecko.v2.${repository.project}.pushlog-id.${push.pushlog_id}.actions.${ownTaskId}"
-            else: "index.gecko.v2.${repository.project}.latest.firefox.decision-${cron.job_name}"
+          - $if: 'tasks_for == "hg-push"'
+            then:
+              - "index.gecko.v2.${repository.project}.latest.taskgraph.decision"
+              - "index.gecko.v2.${repository.project}.revision.${push.revision}.taskgraph.decision"
+              - "index.gecko.v2.${repository.project}.pushlog-id.${push.pushlog_id}.decision"
+              - "notify.email.${ownerEmail}.on-failed"
+              - "notify.email.${ownerEmail}.on-exception"
+              # These are the old index routes for the decision task.
+              # They are still here so external tools that referenced them continue to work.
+              - "index.gecko.v2.${repository.project}.latest.firefox.decision"
+              - "index.gecko.v2.${repository.project}.revision.${push.revision}.firefox.decision"
+            else:
+              $if: 'tasks_for == "action"'
+              then: "index.gecko.v2.${repository.project}.pushlog-id.${push.pushlog_id}.actions.${ownTaskId}"
+              else:
+              - "index.gecko.v2.${repository.project}.latest.taskgraph.decision-${cron.job_name}"
+              - "index.gecko.v2.${repository.project}.latest.firefox.decision-${cron.job_name}"
 
       scopes:
         $if: 'tasks_for == "hg-push"'
         then:
           - 'assume:repo:${repoUrl[8:]}:branch:default'
           - 'queue:route:notify.email.${ownerEmail}.*'
         else:
           $if: 'tasks_for == "action"'
--- a/accessible/tests/mochitest/name/test_general.xul
+++ b/accessible/tests/mochitest/name/test_general.xul
@@ -48,30 +48,30 @@
       testName("rememberAfter", "days");
 
       // Anonymous content (see name.xbl#third)
       var anonBtn = getAccessible("labelledby_box_anon").lastChild;
       testName(anonBtn, "It's a cool button");
 
       //////////////////////////////////////////////////////////////////////////
       // Name from subtree (single relation labelled_by).
-      
+
       // Gets the name from text nodes contained by nested elements.
       testName("btn_labelledby_mixed", "nomore text");
 
       // Gets the name from text nodes and selected item of menulist
       // (other items are ignored).
       testName("btn_labelledby_mixed_menulist",
                "nomore text selected item more text");
-      
+
       // Gets the name from text nodes contained by nested elements, ignores
       // hidden elements (bug 443081).
       testName("btn_labelledby_mixed_hidden_child", "nomore text2");
 
-      // Gets the name from hidden text nodes contained by nested elements, 
+      // Gets the name from hidden text nodes contained by nested elements,
       // (label element is hidden entirely), (bug 443081)
       testName("btn_labelledby_mixed_hidden", "lala more hidden text");
 
 
       //////////////////////////////////////////////////////////////////////////
       // Name for nsIDOMXULLabeledControlElement.
 
       // Gets the name from @label attribute.
@@ -229,17 +229,17 @@
 
   <!-- aria-labelledby, multiple relations -->
   <box class="third" id="labelledby_box_anon" role="group" />
 
   <!-- trick aria-labelledby -->
   <checkbox id="rememberHistoryDays"
             label="Remember "
             aria-labelledby="rememberHistoryDays historyDays rememberAfter"/>
-  <textbox id="historyDays" type="number" size="3" value="3"
+  <textbox id="historyDays" type="number" value="3"
            aria-labelledby="rememberHistoryDays historyDays rememberAfter"/>
   <label id="rememberAfter">days</label>
 
   <!-- the name from subtree, mixed content -->
   <description id="labelledby_mixed">
     no<description>more text</description>
   </description>
   <button id="btn_labelledby_mixed"
@@ -308,18 +308,18 @@
     <button id="btn_label_4"/>
   </hbox>
 
   <!-- label element, anonymous content -->
   <box id="box_label_anon1"
        class="first"
        role="group"/>
 
-  <box id="box_label_anon2" 
-       class="second" 
+  <box id="box_label_anon2"
+       class="second"
        role="group"/>
 
   <!-- tooltiptext -->
   <box id="box_tooltiptext"
        role="group"
        tooltiptext="tooltiptext label"/>
 
   <!-- the name from @title of toolbaritem -->
@@ -374,9 +374,8 @@
                   label="Send an E-mail"/>
       </menupopup>
     </menulist>
   </hbox>
 
   </vbox> <!-- close tests area -->
   </hbox> <!-- close main area -->
 </window>
-
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1256,16 +1256,18 @@ var gBrowserInit = {
 
     new LightweightThemeConsumer(document);
     gUIDensity.init();
 
     if (AppConstants.CAN_DRAW_IN_TITLEBAR) {
       gDragSpaceObserver.init();
     }
 
+    BrowserSearch.initPlaceHolder();
+
     // Hack to ensure that the about:home favicon is loaded
     // instantaneously, to avoid flickering and improve perceived performance.
     this._callWithURIToLoad(uriToLoad => {
       if (uriToLoad == "about:home") {
         gBrowser.setIcon(gBrowser.selectedTab, "chrome://branding/content/icon32.png");
       } else if (uriToLoad == "about:privatebrowsing") {
         gBrowser.setIcon(gBrowser.selectedTab, "chrome://browser/skin/privatebrowsing/favicon.svg");
       }
@@ -1331,16 +1333,17 @@ var gBrowserInit = {
       // adjust browser UI for popups
       gURLBar.setAttribute("readonly", "true");
     }
 
     // Misc. inits.
     TabletModeUpdater.init();
     CombinedStopReload.ensureInitialized();
     gPrivateBrowsingUI.init();
+    BrowserSearch.init();
     BrowserPageActions.init();
     gAccessibilityServiceIndicator.init();
 
     if (window.matchMedia("(-moz-os-version: windows-win8)").matches &&
         window.matchMedia("(-moz-windows-default-theme)").matches) {
       let windowFrameColor = new Color(...ChromeUtils.import("resource:///modules/Windows8WindowFrameColor.jsm", {})
                                             .Windows8WindowFrameColor.get());
       // Default to black for foreground text.
@@ -1462,16 +1465,17 @@ var gBrowserInit = {
     PanelUI.init();
 
     UpdateUrlbarSearchSplitterState();
 
     // Enable/Disable auto-hide tabbar
     gBrowser.tabContainer.updateVisibility();
 
     BookmarkingUI.init();
+    BrowserSearch.delayedStartupInit();
     AutoShowBookmarksToolbar.init();
 
     Services.prefs.addObserver(gHomeButton.prefDomain, gHomeButton);
 
     var homeButton = document.getElementById("home-button");
     gHomeButton.updateTooltip(homeButton);
 
     let safeMode = document.getElementById("helpSafeMode");
@@ -1880,16 +1884,18 @@ var gBrowserInit = {
     SidebarUI.uninit();
 
     DownloadsButton.uninit();
 
     gAccessibilityServiceIndicator.uninit();
 
     LanguagePrompt.uninit();
 
+    BrowserSearch.uninit();
+
     // Now either cancel delayedStartup, or clean up the services initialized from
     // it.
     if (this._boundDelayedStartup) {
       this._cancelDelayedStartup();
     } else {
       if (Win7Features)
         Win7Features.onCloseWindow();
 
@@ -3732,16 +3738,131 @@ const DOMEventHandler = {
     if (!tab)
       return;
 
     BrowserSearch.addEngine(aBrowser, aEngine, makeURI(aURL));
   },
 };
 
 const BrowserSearch = {
+  _searchInitComplete: false,
+
+  init() {
+    Services.obs.addObserver(this, "browser-search-engine-modified");
+  },
+
+  delayedStartupInit() {
+    // Asynchronously initialize the search service if necessary, to get the
+    // current engine for working out the placeholder.
+    Services.search.init(rv => {
+      if (Components.isSuccessCode(rv)) {
+        // Delay the update for this until so that we don't change it while
+        // the user is looking at it / isn't expecting it.
+        this._updateURLBarPlaceholder(Services.search.currentEngine, true);
+        this._searchInitComplete = true;
+      }
+    });
+  },
+
+  uninit() {
+    Services.obs.removeObserver(this, "browser-search-engine-modified");
+  },
+
+  observe(engine, topic, data) {
+    switch (data) {
+    case "engine-current":
+      if (this._searchInitComplete) {
+        this._updateURLBarPlaceholder(engine);
+      }
+      break;
+    }
+  },
+
+  /**
+   * Initializes the urlbar placeholder to the pre-saved engine name. We do this
+   * via a preference, to avoid needing to synchronously init the search service.
+   *
+   * This should be called around the time of DOMContentLoaded, so that it is
+   * initialized quickly before the user sees anything.
+   *
+   * Note: If the preference doesn't exist, we don't do anything as the default
+   * placeholder is a string which doesn't have the engine name.
+   */
+  initPlaceHolder() {
+    let engineName = Services.prefs.getStringPref("browser.urlbar.placeholderName", "");
+    if (engineName) {
+      // We can do this directly, since we know we're at DOMContentLoaded.
+      this._setURLBarPlaceholder(engineName);
+    }
+  },
+
+  /**
+   * Updates the URLBar placeholder for the specified engine, delaying the
+   * update if required. This also saves the current engine name in preferences
+   * for the next restart.
+   *
+   * Note: The engine name will only be displayed for built-in engines, as we
+   * know they should have short names.
+   *
+   * @param {nsISearchEngine} engine The search engine to use for the update.
+   * @param {Boolean} delayUpdate    Set to true, to delay update until the
+   *                                 placeholder is not displayed.
+   */
+  _updateURLBarPlaceholder(engine, delayUpdate = false) {
+    if (!engine) {
+      throw new Error("Expected an engine to be specified");
+    }
+
+    let engineName = "";
+    if (Services.search.getDefaultEngines().includes(engine)) {
+      engineName = engine.name;
+      Services.prefs.setStringPref("browser.urlbar.placeholderName", engineName);
+    } else {
+      Services.prefs.clearUserPref("browser.urlbar.placeholderName");
+    }
+
+    // Only delay if requested, and we're not displaying text in the URL bar
+    // currently.
+    if (delayUpdate && !gURLBar.value) {
+      // Delays changing the URL Bar placeholder until the user is not going to be
+      // seeing it, e.g. when there is a value entered in the bar, or if there is
+      // a tab switch to a tab which has a url loaded.
+      let placeholderUpdateListener = () => {
+        if (gURLBar.value) {
+          this._setURLBarPlaceholder(engineName);
+          gURLBar.removeEventListener("input", placeholderUpdateListener);
+          gBrowser.tabContainer.removeEventListener("TabSelect", placeholderUpdateListener);
+        }
+      };
+
+      gURLBar.addEventListener("input", placeholderUpdateListener);
+      gBrowser.tabContainer.addEventListener("TabSelect", placeholderUpdateListener);
+    } else {
+      this._setURLBarPlaceholder(engineName);
+    }
+  },
+
+  /**
+   * Sets the URLBar placeholder to either something based on the engine name,
+   * or the default placeholder.
+   *
+   * @param {String} name The name of the engine to use, an empty string if to
+   *                      use the default placeholder.
+   */
+  _setURLBarPlaceholder(name) {
+    let placeholder;
+    if (name) {
+      placeholder = gBrowserBundle.formatStringFromName("urlbar.placeholder",
+        [name], 1);
+    } else {
+      placeholder = gURLBar.getAttribute("defaultPlaceholder");
+    }
+    gURLBar.setAttribute("placeholder", placeholder);
+  },
+
   addEngine(browser, engine, uri) {
     // Check to see whether we've already added an engine with this title
     if (browser.engines) {
       if (browser.engines.some(e => e.title == engine.title))
         return;
     }
 
     var hidden = false;
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -772,16 +772,17 @@
                        cui-areatype="toolbar"
                        aboutHomeOverrideTooltip="&abouthome.pageTitle;"/>
         <toolbarspring cui-areatype="toolbar" class="chromeclass-toolbar-additional"/>
         <toolbaritem id="urlbar-container" flex="400" persist="width"
                      removable="false"
                      class="chromeclass-location" overflows="false">
             <textbox id="urlbar" flex="1"
                      placeholder="&urlbar.placeholder2;"
+                     defaultPlaceholder="&urlbar.placeholder2;"
                      focused="true"
                      type="autocomplete"
                      autocompletesearch="unifiedcomplete"
                      autocompletesearchparam="enable-actions"
                      autocompletepopup="PopupAutoCompleteRichResult"
                      completeselectedindex="true"
                      shrinkdelay="250"
                      tabscrolling="true"
--- a/browser/base/content/contentSearchUI.js
+++ b/browser/base/content/contentSearchUI.js
@@ -4,16 +4,17 @@
 
 "use strict";
 
 this.ContentSearchUIController = (function() {
 
 const MAX_DISPLAYED_SUGGESTIONS = 6;
 const SUGGESTION_ID_PREFIX = "searchSuggestion";
 const ONE_OFF_ID_PREFIX = "oneOff";
+const DEFAULT_INPUT_ICON = "chrome://browser/skin/search-glass.svg";
 
 const HTML_NS = "http://www.w3.org/1999/xhtml";
 
 /**
  * Creates a new object that manages search suggestions and their UI for a text
  * box.
  *
  * The UI consists of an html:table that's inserted into the DOM after the given
@@ -86,16 +87,17 @@ ContentSearchUIController.prototype = {
     } else {
       icon = "chrome://mozapps/skin/places/defaultFavicon.svg";
     }
     this._defaultEngine = {
       name: engine.name,
       icon,
     };
     this._updateDefaultEngineHeader();
+    this._updateDefaultEngineIcon();
 
     if (engine && document.activeElement == this.input) {
       this._speculativeConnect();
     }
   },
 
   get engines() {
     return this._engines;
@@ -604,16 +606,26 @@ ContentSearchUIController.prototype = {
   _onMsgStrings(strings) {
     this._strings = strings;
     this._updateDefaultEngineHeader();
     this._updateSearchWithHeader();
     document.getElementById("contentSearchSettingsButton").textContent =
       this._strings.searchSettings;
   },
 
+  _updateDefaultEngineIcon() {
+    let eng = this._engines.find(engine => engine.name === this.defaultEngine.name);
+    if (eng) {
+      // We only show the engines icon for default engines, otherwise show
+      // a default; default engines have an identifier
+      let icon = eng.identifier ? this.defaultEngine.icon : DEFAULT_INPUT_ICON;
+      document.body.style.setProperty("--newtab-search-icon", "url(" + icon + ")");
+    }
+  },
+
   _updateDefaultEngineHeader() {
     let header = document.getElementById("contentSearchDefaultEngineHeader");
     header.firstChild.setAttribute("src", this.defaultEngine.icon);
     if (!this._strings) {
       return;
     }
     while (header.firstChild.nextSibling) {
       header.firstChild.nextSibling.remove();
--- a/browser/base/content/test/general/browser_ssl_error_reports.js
+++ b/browser/base/content/test/general/browser_ssl_error_reports.js
@@ -26,17 +26,16 @@ registerCleanupFunction(() => {
 });
 
 add_task(async function test_send_report_neterror() {
   await testSendReportAutomatically(URL_BAD_CHAIN, "succeed", "neterror");
   await testSendReportAutomatically(URL_NO_CERT, "nocert", "neterror");
   await testSetAutomatic(URL_NO_CERT, "nocert", "neterror");
 });
 
-
 add_task(async function test_send_report_certerror() {
   await testSendReportAutomatically(URL_BAD_CERT, "badcert", "certerror");
   await testSetAutomatic(URL_BAD_CERT, "badcert", "certerror");
 });
 
 add_task(async function test_send_disabled() {
   Services.prefs.setBoolPref(PREF_REPORT_ENABLED, false);
   Services.prefs.setBoolPref(PREF_REPORT_AUTOMATIC, true);
@@ -154,21 +153,24 @@ function isErrorStatus(status) {
 // use the observer service to see when a report is sent
 function createReportResponseStatusPromise(expectedURI) {
   return new Promise(resolve => {
     let observer = (subject, topic, data) => {
       subject.QueryInterface(Ci.nsIHttpChannel);
       let requestURI = subject.URI.spec;
       if (requestURI == expectedURI) {
         Services.obs.removeObserver(observer, "http-on-examine-response");
+        console.log(subject.responseStatus);
+        console.log(subject.URI);
+        console.log(requestURI);
         resolve(subject.responseStatus);
       }
     };
     Services.obs.addObserver(observer, "http-on-examine-response");
   });
 }
 
 function checkErrorPage(browser, suffix) {
   return ContentTask.spawn(browser, { suffix }, async function(args) {
     let uri = content.document.documentURI;
-    Assert.ok(uri.startsWith(`about:${args.suffix}`), "correct error page loaded");
+    Assert.ok(uri.startsWith(`about:${args.suffix}`), `correct error page loaded: ${args.suffix}`);
   });
 }
--- a/browser/base/content/test/general/pinning_headers.sjs
+++ b/browser/base/content/test/general/pinning_headers.sjs
@@ -1,11 +1,11 @@
 const INVALIDPIN1 = "pin-sha256=\"d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=\";";
 const INVALIDPIN2 = "pin-sha256=\"AAAAAAAAAAAAAAAAAAAAAAAAAj0e1Md7GkYYkVoZWmM=\";";
-const VALIDPIN = "pin-sha256=\"hXweb81C3HnmM2Ai1dnUzFba40UJMhuu8qZmvN/6WWc=\";";
+const VALIDPIN = "pin-sha256=\"VCIlmPM9NkgFQtrs4Oa5TeFcDu6MWRTKSNdePEhOgD8=\";";
 
 function handleRequest(request, response)
 {
   // avoid confusing cache behaviors
   response.setHeader("Cache-Control", "no-cache", false);
 
   response.setHeader("Content-Type", "text/plain; charset=utf-8", false);
   switch (request.queryString) {
--- a/browser/base/content/test/general/ssl_error_reports.sjs
+++ b/browser/base/content/test/general/ssl_error_reports.sjs
@@ -1,11 +1,11 @@
 const EXPECTED_CHAIN = [
-  "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"
+  "MIIDHjCCAgagAwIBAgIUf1y0AgcMQaVC6jwUyh6Ixiij2hYwDQYJKoZIhvcNAQELBQAwJjEkMCIGA1UEAwwbQWx0ZXJuYXRlIFRydXN0ZWQgQXV0aG9yaXR5MCIYDzIwMTYxMTI3MDAwMDAwWhgPMjAxOTAyMDUwMDAwMDBaMDExLzAtBgNVBAMMJmluY2x1ZGUtc3ViZG9tYWlucy5waW5uaW5nLmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXXGUmYJn3cIKmeR8bh2w39c5TiwbErNIrHL1G+mWtoq3UHIwkmKxKOzwfYUh/QbaYlBvYClHDwSAkTFhKTESDMF5ROMAQbPCL6ahidguuai6PNvI8XZgxO53683g0XazlHU1tzSpss8xwbrzTBw7JjM5AqlkdcpWn9xxb5maR0rLf7ISURZC8Wj6kn9k7HXU0BfF3N2mZWGZiVHl+1CaQiICBFCIGmYikP+5Izmh4HdIramnNKDdRMfkysSjOKG+n0lHAYq0n7wFvGHzdVOgys1uJMPdLqQqovHYWckKrH9bWIUDRjEwLjGj8N0hFcyStfehuZVLx0eGR1xIWjTuwIDAQABozUwMzAxBgNVHREEKjAogiZpbmNsdWRlLXN1YmRvbWFpbnMucGlubmluZy5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAXn+yS5JdGRm8dqTCG7hUWrlgHL/85FhSTYQ4wt+m90/mb8ARr+XIZtP9GdTloHfZYepc9dRDT9E8wOC7f/nOAQWzyzLqRHrldYNpMAmQIqBmh1tJ/91aKhqbc+lvm1gAOTF5bh5wpEOJBczH0AqDkXP1rX27DI3PyCMT1lqHvFTjVXVOwiZHSOSWRsI89IqAo8Dlfs+y733bJ6/rAmnTK85IHu3Fod7nHviWXkWVDdrbsblvQ6fjMFKS0mj6Vip10++/PwX9rhXyB1seGI+0uXqZ65t3xDZR+yvPtxhc7tbwPdyiUTbVjh43vPHHMCyuK1HqmPrMbAlxZBX3EqkBHQ==",
+  "MIIC+zCCAeOgAwIBAgIUb/+pohOlRCuQgMy2GJLCUQq+HeMwDQYJKoZIhvcNAQELBQAwJjEkMCIGA1UEAwwbQWx0ZXJuYXRlIFRydXN0ZWQgQXV0aG9yaXR5MCIYDzIwMTAwMTAxMDAwMDAwWhgPMjA1MDAxMDEwMDAwMDBaMCYxJDAiBgNVBAMMG0FsdGVybmF0ZSBUcnVzdGVkIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMF1xlJmCZ93CCpnkfG4dsN/XOU4sGxKzSKxy9RvplraKt1ByMJJisSjs8H2FIf0G2mJQb2ApRw8EgJExYSkxEgzBeUTjAEGzwi+moYnYLrmoujzbyPF2YMTud+vN4NF2s5R1Nbc0qbLPMcG680wcOyYzOQKpZHXKVp/ccW+ZmkdKy3+yElEWQvFo+pJ/ZOx11NAXxdzdpmVhmYlR5ftQmkIiAgRQiBpmIpD/uSM5oeB3SK2ppzSg3UTH5MrEozihvp9JRwGKtJ+8Bbxh83VToMrNbiTD3S6kKqLx2FnJCqx/W1iFA0YxMC4xo/DdIRXMkrX3obmVS8dHhkdcSFo07sCAwEAAaMdMBswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAAS+qy/sIFV+oia7zsyFhe3Xj3ZHSvmqJ4mxIg5KOPVP2NvDaxD/+pysxGLf69QDRjIsePBdRJz0zZoVl9pSXIn1Kpk0sjzKX2bJtAomog+ZnAZUxtLzoXy/aqaheWm8cRJ8qFOJtSMDRrLISqBXCQLOECqXIxf3Nt3S+Riu2Pam3YymFdtmqUJvLhhekWtEEnXyh/xfAsoUgS3SQ27c4dCYR7XGnFsaXrKXv93QeJmtfvrAZMXEuKaBGPSNHV6QH0S0Loh9Jed2Zp7GxnFtIPYeJ2Q5qtxa8KD/tgGFpAD74eMBdgQ4SxbA/YqqXIt1lLNcr7wm0cPRpP0vIY3hk8k="
   ];
 
 const MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE = -16384;
 
 function parseReport(request) {
   // read the report from the request
   let inputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
   inputStream.init(request.bodyInputStream, 0x01, 0004, 0);
--- a/browser/base/content/test/urlbar/browser.ini
+++ b/browser/base/content/test/urlbar/browser.ini
@@ -78,16 +78,20 @@ skip-if = os == "linux" # Bug 1073339 - 
 [browser_urlbarOneOffs.js]
 support-files =
   searchSuggestionEngine.xml
   searchSuggestionEngine.sjs
 [browser_urlbarOneOffs_searchSuggestions.js]
 support-files =
   searchSuggestionEngine.xml
   searchSuggestionEngine.sjs
+[browser_urlbarPlaceholder.js]
+support-files =
+  searchSuggestionEngine.xml
+  searchSuggestionEngine.sjs
 [browser_urlbarPrivateBrowsingWindowChange.js]
 [browser_urlbarRaceWithTabs.js]
 [browser_urlbarRevert.js]
 [browser_urlbarSearchSingleWordNotification.js]
 [browser_urlbarSearchSuggestions.js]
 support-files =
   searchSuggestionEngine.xml
   searchSuggestionEngine.sjs
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/urlbar/browser_urlbarPlaceholder.js
@@ -0,0 +1,93 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * This test ensures the placeholder is set correctly for different search
+ * engines.
+ */
+
+"use strict";
+
+const TEST_ENGINE_BASENAME = "searchSuggestionEngine.xml";
+
+const originalEngine = Services.search.currentEngine;
+const expectedString = gBrowserBundle.formatStringFromName("urlbar.placeholder",
+  [originalEngine.name], 1);
+var extraEngine;
+var tabs = [];
+
+add_task(async function setup() {
+  extraEngine = await promiseNewSearchEngine(TEST_ENGINE_BASENAME);
+
+  // Force display of a tab with a URL bar, to clear out any possible placeholder
+  // initialization listeners that happen on startup.
+  let urlTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:mozilla");
+  BrowserTestUtils.removeTab(urlTab);
+
+  registerCleanupFunction(() => {
+    Services.search.currentEngine = originalEngine;
+    for (let tab of tabs) {
+      BrowserTestUtils.removeTab(tab);
+    }
+  });
+});
+
+add_task(async function test_change_default_engine_updates_placeholder() {
+  tabs.push(await BrowserTestUtils.openNewForegroundTab(gBrowser));
+
+  Services.search.currentEngine = extraEngine;
+
+  await TestUtils.waitForCondition(
+    () => gURLBar.getAttribute("placeholder") == gURLBar.getAttribute("defaultPlaceholder"),
+    "The placeholder should match the default placeholder for non-built-in engines.");
+
+  Services.search.currentEngine = originalEngine;
+
+  await TestUtils.waitForCondition(
+    () => gURLBar.getAttribute("placeholder") == expectedString,
+    "The placeholder should include the engine name for built-in engines.");
+});
+
+add_task(async function test_delayed_update_placeholder() {
+  // Since we can't easily test for startup changes, we'll at least test the delay
+  // of update for the placeholder works.
+  let urlTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:mozilla");
+  tabs.push(urlTab);
+
+  // Open a tab with a blank URL bar.
+  let blankTab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
+  tabs.push(blankTab);
+
+  // Pretend we've "initialized".
+  BrowserSearch._updateURLBarPlaceholder(extraEngine, true);
+
+  Assert.equal(gURLBar.getAttribute("placeholder"), expectedString,
+    "Placeholder should be unchanged.");
+
+  // Now switch to a tab with something in the URL Bar.
+  await BrowserTestUtils.switchTab(gBrowser, urlTab);
+
+  await TestUtils.waitForCondition(
+    () => gURLBar.getAttribute("placeholder") == gURLBar.getAttribute("defaultPlaceholder"),
+    "The placeholder should have updated in the background.");
+
+  // Do it the other way to check both named engine and fallback code paths.
+  await BrowserTestUtils.switchTab(gBrowser, blankTab);
+
+  BrowserSearch._updateURLBarPlaceholder(originalEngine, true);
+
+  Assert.equal(gURLBar.getAttribute("placeholder"), gURLBar.getAttribute("defaultPlaceholder"),
+    "Placeholder should be unchanged.");
+
+  await BrowserTestUtils.switchTab(gBrowser, urlTab);
+
+  await TestUtils.waitForCondition(
+    () => gURLBar.getAttribute("placeholder") == expectedString,
+    "The placeholder should include the engine name for built-in engines.");
+
+  // Now check when we have a URL displayed, the placeholder is updated straight away.
+  BrowserSearch._updateURLBarPlaceholder(extraEngine);
+
+  Assert.equal(gURLBar.getAttribute("placeholder"), gURLBar.getAttribute("defaultPlaceholder"),
+    "Placeholder should be the default.");
+});
--- a/browser/components/extensions/ext-url-overrides.js
+++ b/browser/components/extensions/ext-url-overrides.js
@@ -16,16 +16,17 @@ ChromeUtils.defineModuleGetter(this, "Ex
 
 XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
                                    "@mozilla.org/browser/aboutnewtab-service;1",
                                    "nsIAboutNewTabService");
 
 const STORE_TYPE = "url_overrides";
 const NEW_TAB_SETTING_NAME = "newTabURL";
 const NEW_TAB_CONFIRMED_TYPE = "newTabNotification";
+const PREF_BRANCH_INSTALLED_ADDON = "extensions.installedDistroAddon.";
 
 XPCOMUtils.defineLazyGetter(this, "strBundle", function() {
   return Services.strings.createBundle("chrome://global/locale/extensions.properties");
 });
 
 function userWasNotified(extensionId) {
   let setting = ExtensionSettingsStore.getSetting(NEW_TAB_CONFIRMED_TYPE, extensionId);
   return setting && setting.value;
@@ -58,24 +59,34 @@ function replaceUrlInTab(gBrowser, tab, 
       },
     });
   });
   gBrowser.loadURIWithFlags(
     url, {flags: Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY});
   return loaded;
 }
 
+let gDistributionAddonsList;
+
+function isDistributionAddon(id) {
+  if (!gDistributionAddonsList) {
+    gDistributionAddonsList = Services.prefs.getChildList(PREF_BRANCH_INSTALLED_ADDON)
+                                      .map(id => id.replace(PREF_BRANCH_INSTALLED_ADDON, ""));
+  }
+  return gDistributionAddonsList.includes(id);
+}
+
 async function handleNewTabOpened() {
   // We don't need to open the doorhanger again until the controlling add-on changes.
   // eslint-disable-next-line no-use-before-define
   removeNewTabObserver();
 
   let item = ExtensionSettingsStore.getSetting(STORE_TYPE, NEW_TAB_SETTING_NAME);
 
-  if (!item || !item.id || userWasNotified(item.id)) {
+  if (!item || !item.id || userWasNotified(item.id) || isDistributionAddon(item.id)) {
     return;
   }
 
   // Find the elements we need.
   let win = windowTracker.getCurrentWindow({});
   let doc = win.document;
   let panel = doc.getElementById("extension-notification-panel");
   let addon = await AddonManager.getAddonByID(item.id);
--- a/browser/components/preferences/connection.xul
+++ b/browser/components/preferences/connection.xul
@@ -74,17 +74,17 @@
             <row align="center">
               <hbox pack="end">
                 <label accesskey="&http2.accesskey;" control="networkProxyHTTP">&http2.label;</label>
               </hbox>
               <hbox align="center">
                 <textbox id="networkProxyHTTP" flex="1"
                          preference="network.proxy.http" onsyncfrompreference="return gConnectionsDialog.readHTTPProxyServer();"/>
                 <label accesskey="&HTTPport.accesskey;" control="networkProxyHTTP_Port">&port2.label;</label>
-                <textbox id="networkProxyHTTP_Port" type="number" max="65535" size="5"
+                <textbox id="networkProxyHTTP_Port" class="proxy-port-input" type="number" max="65535" hidespinbuttons="true"
                          preference="network.proxy.http_port" onsyncfrompreference="return gConnectionsDialog.readHTTPProxyPort();"/>
               </hbox>
             </row>
             <row>
               <hbox/>
               <hbox>
                 <checkbox id="shareAllProxies" label="&shareproxy.label;" accesskey="&shareproxy.accesskey;"
                           preference="network.proxy.share_proxy_settings"
@@ -94,42 +94,42 @@
             <row align="center">
               <hbox pack="end">
                 <label accesskey="&ssl2.accesskey;" control="networkProxySSL">&ssl2.label;</label>
               </hbox>
               <hbox align="center">
                 <textbox id="networkProxySSL" flex="1" preference="network.proxy.ssl"
                          onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ssl', false);"/>
                 <label accesskey="&SSLport.accesskey;" control="networkProxySSL_Port">&port2.label;</label>
-                <textbox id="networkProxySSL_Port" type="number" max="65535" size="5" preference="network.proxy.ssl_port"
-                         onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ssl', true);"/>
+                <textbox id="networkProxySSL_Port" class="proxy-port-input" type="number" max="65535" size="5" preference="network.proxy.ssl_port"
+                         hidespinbuttons="true" onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ssl', true);"/>
               </hbox>
             </row>
             <row align="center">
               <hbox pack="end">
                 <label accesskey="&ftp2.accesskey;" control="networkProxyFTP">&ftp2.label;</label>
               </hbox>
               <hbox align="center">
                 <textbox id="networkProxyFTP" flex="1" preference="network.proxy.ftp"
                          onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ftp', false);"/>
                 <label accesskey="&FTPport.accesskey;" control="networkProxyFTP_Port">&port2.label;</label>
-                <textbox id="networkProxyFTP_Port" type="number" max="65535" size="5" preference="network.proxy.ftp_port"
-                         onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ftp', true);"/>
+                <textbox id="networkProxyFTP_Port" class="proxy-port-input" type="number" max="65535" size="5" preference="network.proxy.ftp_port"
+                         hidespinbuttons="true" onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ftp', true);"/>
               </hbox>
             </row>
             <row align="center">
               <hbox pack="end">
                 <label accesskey="&socks2.accesskey;" control="networkProxySOCKS">&socks2.label;</label>
               </hbox>
               <hbox align="center">
                 <textbox id="networkProxySOCKS" flex="1" preference="network.proxy.socks"
                          onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('socks', false);"/>
                 <label accesskey="&SOCKSport.accesskey;" control="networkProxySOCKS_Port">&port2.label;</label>
-                <textbox id="networkProxySOCKS_Port" type="number" max="65535" size="5" preference="network.proxy.socks_port"
-                         onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('socks', true);"/>
+                <textbox id="networkProxySOCKS_Port" class="proxy-port-input" type="number" max="65535" size="5" preference="network.proxy.socks_port"
+                         hidespinbuttons="true" onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('socks', true);"/>
               </hbox>
             </row>
             <row>
               <spacer/>
               <box pack="start">
               <radiogroup id="networkProxySOCKSVersion" orient="horizontal"
                           preference="network.proxy.socks_version">
                 <radio id="networkProxySOCKSVersion4" value="4" label="&socks4.label;" accesskey="&socks4.accesskey;" />
--- a/browser/components/preferences/in-content/preferences.xul
+++ b/browser/components/preferences/in-content/preferences.xul
@@ -189,17 +189,17 @@
             <image class="help-icon"/>
               <label class="help-label" flex="1" data-l10n-id="help-button-label"></label>
           </hbox>
         </label>
       </hbox>
     </vbox>
 
     <keyset>
-      <key data-l10n-id="focus-search" modifiers="accel" id="focusSearch1" oncommand="gSearchResultsPane.searchInput.focus();"/>
+      <key data-l10n-id="focus-search" key="" modifiers="accel" id="focusSearch1" oncommand="gSearchResultsPane.searchInput.focus();"/>
     </keyset>
 
     <vbox class="main-content" flex="1" align="start">
       <vbox class="pane-container">
         <hbox class="sticky-container" pack="end" align="top">
           <hbox id="policies-container" align="stretch" flex="1" hidden="true">
             <hbox align="top">
               <image class="info-icon"></image>
--- a/browser/config/version_display.txt
+++ b/browser/config/version_display.txt
@@ -1,1 +1,1 @@
-60.0b14
+60.0b16
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css
@@ -719,38 +719,34 @@ main {
 .search-wrapper {
   cursor: default;
   display: flex;
   height: 35px;
   margin: 1px 1px 20px;
   position: relative;
   width: 100%; }
   .search-wrapper input {
-    background-color: #FFF;
+    background: #FFF var(--newtab-search-icon) 8px center/18px no-repeat;
     border: 0;
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.15);
     font-size: 15px;
+    -moz-context-properties: fill;
+    fill: rgba(12, 12, 13, 0.4);
     padding: 0;
     padding-inline-end: 36px;
-    padding-inline-start: 35px;
+    padding-inline-start: 34px;
     width: 100%; }
+    .search-wrapper input:dir(rtl) {
+      background-position-x: right 8px; }
   .search-wrapper:hover input {
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.25); }
   .search-wrapper:active input,
   .search-wrapper input:focus {
     box-shadow: 0 0 0 3px #0A84FF; }
-  .search-wrapper .search-label {
-    background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
-    -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
-    height: 100%;
-    offset-inline-start: 0;
-    position: absolute;
-    width: 35px; }
   .search-wrapper .search-button {
     background: url("chrome://browser/skin/forward.svg") no-repeat center center;
     background-size: 16px 16px;
     border: 0;
     border-radius: 0 3px 3px 0;
     -moz-context-properties: fill;
     fill: rgba(12, 12, 13, 0.4);
     height: 100%;
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css.map
@@ -26,19 +26,19 @@
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
 		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$grey-20-60: rgba($grey-20, 0.6);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Aliases and derived styles based on Photon colors for common usage\n$background-primary: $grey-10;\n$background-secondary: $grey-20;\n$border-primary: 1px solid $grey-40;\n$border-secondary: 1px solid $grey-30;\n$fill-primary: $grey-90-80;\n$fill-secondary: $grey-90-60;\n$fill-tertiary: $grey-30;\n$input-primary: $blue-60;\n$input-secondary: $grey-10;\n$link-primary: $blue-60;\n$link-secondary: $teal-70;\n$shadow-primary: 0 0 0 5px $grey-30;\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$text-primary: $grey-90;\n$text-conditional: $grey-60;\n$text-secondary: $grey-50;\n$input-border: solid 1px $grey-90-20;\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 2px rgba($red-60, 0.35);\n$input-focus-boxshadow: 0 0 0 2px rgba($blue-50, 0.35);\n\n$white: #FFF;\n$border-radius: 3px;\n\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-border-color: $black-20;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $context-menu-border-color;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$inner-box-shadow: 0 0 0 1px $black-10;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: $white;\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: $fill-primary;\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
 		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: $fill-primary;\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: $fill-secondary;\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-pocket-small {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n    background-size: $smaller-icon-size;\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
 		".outer-wrapper {\n  display: flex;\n  flex-grow: 1;\n  height: 100%;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    height: auto;\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.section-top-bar {\n  height: 16px;\n  margin-bottom: 16px;\n}\n\n.section-title {\n  font-size: $section-title-font-size;\n  font-weight: bold;\n  text-transform: uppercase;\n\n  span {\n    color: $text-secondary;\n    fill: $text-secondary;\n    vertical-align: middle;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n",
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: $text-conditional;\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: $text-conditional;\n    text-decoration: underline;\n  }\n}\n\n",
 		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: $text-secondary;\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: $background-primary;\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: $rich-icon-size;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: $fill-tertiary;\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing $form-spacing 40px;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n\n        & + input:dir(ltr) {\n          padding-right: 32px;\n        }\n\n        & + input:dir(rtl) {\n          padding-left: 32px;\n        }\n      }\n    }\n\n    .url input:not(:placeholder-shown):dir(rtl) {\n      direction: ltr;\n      text-align: right;\n    }\n\n    input {\n      &[type='text'] {\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
 		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: $fill-secondary;\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: $text-secondary;\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
 		".topic {\n  color: $text-secondary;\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: $link-secondary;\n  }\n\n  .topic-read-more {\n    color: $link-secondary;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: $link-secondary;\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
-		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  $search-glyph-fill: $grey-90-40;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background-color: $white;\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
+		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-icon-size: 18px;\n  $search-icon-padding: 8px;\n  $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-fill: $grey-90-40;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: $white var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-icon-width;\n    width: 100%;\n\n    &:dir(rtl) {\n      background-position-x: right $search-icon-padding;\n    }\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
 		".context-menu {\n  background: $background-primary;\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: 1px solid $context-menu-border-color;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: $input-primary;\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
 		".prefs-pane {\n  $options-spacing: 10px;\n  $prefs-spacing: 20px;\n  $prefs-width: 400px;\n\n  color: $text-conditional;\n  font-size: 14px;\n  line-height: 21px;\n\n  .sidebar {\n    background: $white;\n    border-left: $border-secondary;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n    offset-inline-end: 0;\n    overflow-y: auto;\n    padding: 40px;\n    position: fixed;\n    top: 0;\n    transition: 0.1s cubic-bezier(0, 0, 0, 1);\n    transition-property: transform;\n    width: $prefs-width;\n    z-index: 12000;\n\n    &.hidden {\n      transform: translateX(100%);\n\n      &:dir(rtl) {\n        transform: translateX(-100%);\n      }\n    }\n\n    h1 {\n      font-size: 21px;\n      margin: 0;\n      padding-top: $prefs-spacing;\n    }\n  }\n\n  hr {\n    border: 0;\n    border-bottom: $border-secondary;\n    margin: 20px 0;\n  }\n\n  .prefs-modal-inner-wrapper {\n    padding-bottom: 100px;\n\n    section {\n      margin: $prefs-spacing 0;\n\n      p {\n        margin: 5px 0 20px 30px;\n      }\n\n      label {\n        display: inline-block;\n        position: relative;\n        width: 100%;\n\n        input {\n          offset-inline-start: -30px;\n          position: absolute;\n          top: 0;\n        }\n      }\n\n      > label {\n        font-size: 16px;\n        font-weight: bold;\n        line-height: 19px;\n      }\n    }\n\n    .options {\n      background: $background-primary;\n      border: $border-secondary;\n      border-radius: 2px;\n      margin: -$options-spacing 0 $prefs-spacing;\n      margin-inline-start: 30px;\n      padding: $options-spacing;\n\n      &.disabled {\n        opacity: 0.5;\n      }\n\n      label {\n        $icon-offset-start: 35px;\n        background-position-x: $icon-offset-start;\n        background-position-y: 2.5px;\n        background-repeat: no-repeat;\n        display: inline-block;\n        font-size: 14px;\n        font-weight: normal;\n        height: auto;\n        line-height: 21px;\n        width: 100%;\n\n        &:dir(rtl) {\n          background-position-x: right $icon-offset-start;\n        }\n      }\n\n      [type='checkbox']:not(:checked) + label,\n      [type='checkbox']:checked + label {\n        padding-inline-start: 63px;\n      }\n\n      section {\n        margin: 0;\n      }\n    }\n  }\n\n  .actions {\n    background-color: $background-primary;\n    border-left: $border-secondary;\n    bottom: 0;\n    offset-inline-end: 0;\n    position: fixed;\n    width: $prefs-width;\n\n    button {\n      margin-inline-end: $prefs-spacing;\n    }\n  }\n\n  // CSS styled checkbox\n  [type='checkbox']:not(:checked),\n  [type='checkbox']:checked {\n    offset-inline-start: -9999px;\n    position: absolute;\n  }\n\n  [type='checkbox']:not(:disabled):not(:checked) + label,\n  [type='checkbox']:not(:disabled):checked + label {\n    cursor: pointer;\n    padding: 0 30px;\n    position: relative;\n  }\n\n  [type='checkbox']:not(:checked) + label::before,\n  [type='checkbox']:checked + label::before {\n    background: $white;\n    border: $border-primary;\n    border-radius: $border-radius;\n    content: '';\n    height: 21px;\n    offset-inline-start: 0;\n    position: absolute;\n    top: 0;\n    width: 21px;\n  }\n\n  // checkmark\n  [type='checkbox']:not(:checked) + label::after,\n  [type='checkbox']:checked + label::after {\n    background: url('chrome://global/skin/in-content/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n    content: '';\n    -moz-context-properties: fill, stroke;\n    fill: $input-primary;\n    height: 21px;\n    offset-inline-start: 0;\n    position: absolute;\n    stroke: none;\n    top: 0;\n    width: 21px;\n  }\n\n  // checkmark changes\n  [type='checkbox']:not(:checked) + label::after {\n    opacity: 0;\n  }\n\n  [type='checkbox']:checked + label::after {\n    opacity: 1;\n  }\n\n  // hover\n  [type='checkbox']:not(:disabled) + label:hover::before {\n    border: 1px solid $input-primary;\n  }\n\n  // accessibility\n  [type='checkbox']:not(:disabled):checked:focus + label::before,\n  [type='checkbox']:not(:disabled):not(:checked):focus + label::before {\n    border: 1px dotted $input-primary;\n  }\n}\n\n.prefs-pane-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: $fill-secondary;\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover {\n      background-color: $background-secondary;\n    }\n\n    &:active {\n      background-color: $background-primary;\n    }\n  }\n}\n",
 		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: $background-secondary;\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: $white;\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
 		".card-outer {\n  @include context-menu-button;\n  background: $white;\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: $link-primary;\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: $link-primary;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $background-primary;\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: $text-secondary;\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: $text-secondary;\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: $fill-secondary;\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: $text-conditional;\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: $fill-secondary;\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
 		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    margin: 0;\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: $grey-50;\n      height: $context-menu-button-size;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: $grey-20-60;\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: $grey-90;\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: $grey-60;\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: $link-secondary;\n      padding-left: 3px;\n    }\n\n    button {\n      background: $grey-10;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": "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"
+	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css
@@ -719,38 +719,34 @@ main {
 .search-wrapper {
   cursor: default;
   display: flex;
   height: 35px;
   margin: 1px 1px 20px;
   position: relative;
   width: 100%; }
   .search-wrapper input {
-    background-color: #FFF;
+    background: #FFF var(--newtab-search-icon) 8px center/18px no-repeat;
     border: 0;
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.15);
     font-size: 15px;
+    -moz-context-properties: fill;
+    fill: rgba(12, 12, 13, 0.4);
     padding: 0;
     padding-inline-end: 36px;
-    padding-inline-start: 35px;
+    padding-inline-start: 34px;
     width: 100%; }
+    .search-wrapper input:dir(rtl) {
+      background-position-x: right 8px; }
   .search-wrapper:hover input {
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.25); }
   .search-wrapper:active input,
   .search-wrapper input:focus {
     box-shadow: 0 0 0 3px #0A84FF; }
-  .search-wrapper .search-label {
-    background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
-    -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
-    height: 100%;
-    offset-inline-start: 0;
-    position: absolute;
-    width: 35px; }
   .search-wrapper .search-button {
     background: url("chrome://browser/skin/forward.svg") no-repeat center center;
     background-size: 16px 16px;
     border: 0;
     border-radius: 0 3px 3px 0;
     -moz-context-properties: fill;
     fill: rgba(12, 12, 13, 0.4);
     height: 100%;
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css.map
@@ -26,19 +26,19 @@
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
 		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$grey-20-60: rgba($grey-20, 0.6);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Aliases and derived styles based on Photon colors for common usage\n$background-primary: $grey-10;\n$background-secondary: $grey-20;\n$border-primary: 1px solid $grey-40;\n$border-secondary: 1px solid $grey-30;\n$fill-primary: $grey-90-80;\n$fill-secondary: $grey-90-60;\n$fill-tertiary: $grey-30;\n$input-primary: $blue-60;\n$input-secondary: $grey-10;\n$link-primary: $blue-60;\n$link-secondary: $teal-70;\n$shadow-primary: 0 0 0 5px $grey-30;\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$text-primary: $grey-90;\n$text-conditional: $grey-60;\n$text-secondary: $grey-50;\n$input-border: solid 1px $grey-90-20;\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 2px rgba($red-60, 0.35);\n$input-focus-boxshadow: 0 0 0 2px rgba($blue-50, 0.35);\n\n$white: #FFF;\n$border-radius: 3px;\n\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-border-color: $black-20;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $context-menu-border-color;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$inner-box-shadow: 0 0 0 1px $black-10;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: $white;\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: $fill-primary;\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
 		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: $fill-primary;\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: $fill-secondary;\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-pocket-small {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n    background-size: $smaller-icon-size;\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
 		".outer-wrapper {\n  display: flex;\n  flex-grow: 1;\n  height: 100%;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    height: auto;\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.section-top-bar {\n  height: 16px;\n  margin-bottom: 16px;\n}\n\n.section-title {\n  font-size: $section-title-font-size;\n  font-weight: bold;\n  text-transform: uppercase;\n\n  span {\n    color: $text-secondary;\n    fill: $text-secondary;\n    vertical-align: middle;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n",
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: $text-conditional;\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: $text-conditional;\n    text-decoration: underline;\n  }\n}\n\n",
 		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: $text-secondary;\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: $background-primary;\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: $rich-icon-size;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: $fill-tertiary;\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing $form-spacing 40px;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n\n        & + input:dir(ltr) {\n          padding-right: 32px;\n        }\n\n        & + input:dir(rtl) {\n          padding-left: 32px;\n        }\n      }\n    }\n\n    .url input:not(:placeholder-shown):dir(rtl) {\n      direction: ltr;\n      text-align: right;\n    }\n\n    input {\n      &[type='text'] {\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
 		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: $fill-secondary;\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: $text-secondary;\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
 		".topic {\n  color: $text-secondary;\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: $link-secondary;\n  }\n\n  .topic-read-more {\n    color: $link-secondary;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: $link-secondary;\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
-		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  $search-glyph-fill: $grey-90-40;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background-color: $white;\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
+		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-icon-size: 18px;\n  $search-icon-padding: 8px;\n  $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-fill: $grey-90-40;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: $white var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-icon-width;\n    width: 100%;\n\n    &:dir(rtl) {\n      background-position-x: right $search-icon-padding;\n    }\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
 		".context-menu {\n  background: $background-primary;\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: 1px solid $context-menu-border-color;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: $input-primary;\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
 		".prefs-pane {\n  $options-spacing: 10px;\n  $prefs-spacing: 20px;\n  $prefs-width: 400px;\n\n  color: $text-conditional;\n  font-size: 14px;\n  line-height: 21px;\n\n  .sidebar {\n    background: $white;\n    border-left: $border-secondary;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n    offset-inline-end: 0;\n    overflow-y: auto;\n    padding: 40px;\n    position: fixed;\n    top: 0;\n    transition: 0.1s cubic-bezier(0, 0, 0, 1);\n    transition-property: transform;\n    width: $prefs-width;\n    z-index: 12000;\n\n    &.hidden {\n      transform: translateX(100%);\n\n      &:dir(rtl) {\n        transform: translateX(-100%);\n      }\n    }\n\n    h1 {\n      font-size: 21px;\n      margin: 0;\n      padding-top: $prefs-spacing;\n    }\n  }\n\n  hr {\n    border: 0;\n    border-bottom: $border-secondary;\n    margin: 20px 0;\n  }\n\n  .prefs-modal-inner-wrapper {\n    padding-bottom: 100px;\n\n    section {\n      margin: $prefs-spacing 0;\n\n      p {\n        margin: 5px 0 20px 30px;\n      }\n\n      label {\n        display: inline-block;\n        position: relative;\n        width: 100%;\n\n        input {\n          offset-inline-start: -30px;\n          position: absolute;\n          top: 0;\n        }\n      }\n\n      > label {\n        font-size: 16px;\n        font-weight: bold;\n        line-height: 19px;\n      }\n    }\n\n    .options {\n      background: $background-primary;\n      border: $border-secondary;\n      border-radius: 2px;\n      margin: -$options-spacing 0 $prefs-spacing;\n      margin-inline-start: 30px;\n      padding: $options-spacing;\n\n      &.disabled {\n        opacity: 0.5;\n      }\n\n      label {\n        $icon-offset-start: 35px;\n        background-position-x: $icon-offset-start;\n        background-position-y: 2.5px;\n        background-repeat: no-repeat;\n        display: inline-block;\n        font-size: 14px;\n        font-weight: normal;\n        height: auto;\n        line-height: 21px;\n        width: 100%;\n\n        &:dir(rtl) {\n          background-position-x: right $icon-offset-start;\n        }\n      }\n\n      [type='checkbox']:not(:checked) + label,\n      [type='checkbox']:checked + label {\n        padding-inline-start: 63px;\n      }\n\n      section {\n        margin: 0;\n      }\n    }\n  }\n\n  .actions {\n    background-color: $background-primary;\n    border-left: $border-secondary;\n    bottom: 0;\n    offset-inline-end: 0;\n    position: fixed;\n    width: $prefs-width;\n\n    button {\n      margin-inline-end: $prefs-spacing;\n    }\n  }\n\n  // CSS styled checkbox\n  [type='checkbox']:not(:checked),\n  [type='checkbox']:checked {\n    offset-inline-start: -9999px;\n    position: absolute;\n  }\n\n  [type='checkbox']:not(:disabled):not(:checked) + label,\n  [type='checkbox']:not(:disabled):checked + label {\n    cursor: pointer;\n    padding: 0 30px;\n    position: relative;\n  }\n\n  [type='checkbox']:not(:checked) + label::before,\n  [type='checkbox']:checked + label::before {\n    background: $white;\n    border: $border-primary;\n    border-radius: $border-radius;\n    content: '';\n    height: 21px;\n    offset-inline-start: 0;\n    position: absolute;\n    top: 0;\n    width: 21px;\n  }\n\n  // checkmark\n  [type='checkbox']:not(:checked) + label::after,\n  [type='checkbox']:checked + label::after {\n    background: url('chrome://global/skin/in-content/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n    content: '';\n    -moz-context-properties: fill, stroke;\n    fill: $input-primary;\n    height: 21px;\n    offset-inline-start: 0;\n    position: absolute;\n    stroke: none;\n    top: 0;\n    width: 21px;\n  }\n\n  // checkmark changes\n  [type='checkbox']:not(:checked) + label::after {\n    opacity: 0;\n  }\n\n  [type='checkbox']:checked + label::after {\n    opacity: 1;\n  }\n\n  // hover\n  [type='checkbox']:not(:disabled) + label:hover::before {\n    border: 1px solid $input-primary;\n  }\n\n  // accessibility\n  [type='checkbox']:not(:disabled):checked:focus + label::before,\n  [type='checkbox']:not(:disabled):not(:checked):focus + label::before {\n    border: 1px dotted $input-primary;\n  }\n}\n\n.prefs-pane-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: $fill-secondary;\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover {\n      background-color: $background-secondary;\n    }\n\n    &:active {\n      background-color: $background-primary;\n    }\n  }\n}\n",
 		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: $background-secondary;\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: $white;\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
 		".card-outer {\n  @include context-menu-button;\n  background: $white;\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: $link-primary;\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: $link-primary;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $background-primary;\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: $text-secondary;\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: $text-secondary;\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: $fill-secondary;\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: $text-conditional;\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: $fill-secondary;\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
 		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    margin: 0;\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: $grey-50;\n      height: $context-menu-button-size;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: $grey-20-60;\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: $grey-90;\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: $grey-60;\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: $link-secondary;\n      padding-left: 3px;\n    }\n\n    button {\n      background: $grey-10;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": ";AAAA,6BAA6B;AEA7B,AAAA,IAAI,CAAC;EACH,UAAU,EAAE,UAAU,GACvB;;AAED,AAAA,CAAC;AACD,AAAA,CAAC,AAAA,QAAQ;AACT,AAAA,CAAC,AAAA,OAAO,CAAC;EACP,UAAU,EAAE,OAAO,GACpB;;AAED,AAAA,CAAC,AAAA,kBAAkB,CAAC;EAClB,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,MAAM;AACN,AAAA,KAAK,CAAC;EACJ,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO,GACnB;;CAED,AAAA,AAAA,MAAC,AAAA,EAAQ;EACP,OAAO,EAAE,eAAe,GACzB;;AE5BD,AAAA,KAAK,CAAC;EACJ,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EDkEL,IAAI;ECjEd,uBAAuB,EAAE,IAAI;EAC7B,OAAO,EAAE,YAAY;EACrB,IAAI,EDGI,qBAAO;ECFf,MAAM,ED8DI,IAAI;EC7Dd,cAAc,EAAE,MAAM;EACtB,KAAK,ED4DK,IAAI,GCkGf;EAvKD,AAWE,KAXG,AAWH,YAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAbH,AAeE,KAfG,AAeH,kBAAmB,CAAC;IAClB,iBAAiB,EAAE,GAAG,GACvB;EAjBH,AAmBE,KAnBG,AAmBH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yCAAyC,GAC5D;EArBH,AAuBE,KAvBG,AAuBH,qBAAsB,CAAC;IACrB,gBAAgB,EAAE,gDAAgD,GACnE;EAzBH,AA2BE,KA3BG,AA2BH,iBAAkB,CAAC;IACjB,IAAI,EDnBE,qBAAO;ICoBb,gBAAgB,EAAE,iDAAwC,GAC3D;EA9BH,AAgCE,KAhCG,AAgCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAlCH,AAoCE,KApCG,AAoCH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,uDAA8C;IAChE,eAAe,EDiCA,IAAI;IChCnB,MAAM,EDgCS,IAAI;IC/BnB,KAAK,ED+BU,IAAI,GC9BpB;EAzCH,AA2CE,KA3CG,AA2CH,aAAc,CAAC;IACb,gBAAgB,EAAE,kDAAyC,GAC5D;EA7CH,AA+CE,KA/CG,AA+CH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EAjDH,AAmDE,KAnDG,AAmDH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EArDH,AAuDE,KAvDG,AAuDH,gBAAiB,CAAC;IAEhB,gBAAgB,EAAE,oDAA2C,GAC9D;IA1DH,ADuLE,KCvLG,AAuDH,gBAAiB,ADgIpB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;ECzLH,AA4DE,KA5DG,AA4DH,wBAAyB,CAAC;IACxB,gBAAgB,EAAE,gDAAgD,GACnE;EA9DH,AAgEE,KAhEG,AAgEH,cAAe,CAAC;IACd,gBAAgB,EAAE,yCAAyC,GAC5D;EAlEH,AAoEE,KApEG,AAoEH,SAAU,CAAC;IAET,gBAAgB,EAAE,8CAAqC,GACxD;IAvEH,ADuLE,KCvLG,AAoEH,SAAU,ADmHb,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;ECzLH,AAyEE,KAzEG,AAyEH,WAAY,CAAC;IAEX,gBAAgB,EAAE,gDAAuC,GAC1D;IA5EH,ADuLE,KCvLG,AAyEH,WAAY,AD8Gf,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;ECzLH,AA8EE,KA9EG,AA8EH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EAhFH,AAkFE,KAlFG,AAkFH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EApFH,AAsFE,KAtFG,AAsFH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,iDAAwC;IAC1D,eAAe,EDlBC,IAAI,GCmBrB;EAzFH,AA2FE,KA3FG,AA2FH,iBAAkB,CAAC;IACjB,gBAAgB,EAAE,sDAA6C,GAChE;EA7FH,AA+FE,KA/FG,AA+FH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C;IAC5D,SAAS,EAAE,eAAe,GAC3B;EAlGH,AAoGE,KApGG,AAoGH,SAAU,CAAC;IACT,gBAAgB,EAAE,wCAAwC,GAC3D;EAtGH,AAwGE,KAxGG,AAwGH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EA1GH,AA4GE,KA5GG,AA4GH,eAAgB,CAAC;IAEf,gBAAgB,EAAE,8CAAqC;IACvD,eAAe,EDzCC,IAAI;IC0CpB,MAAM,ED1CU,IAAI;IC2CpB,KAAK,ED3CW,IAAI,GC4CrB;IAlHH,ADuLE,KCvLG,AA4GH,eAAgB,AD2EnB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;ECzLH,AAoHE,KApHG,AAoHH,WAAY,CAAC;IACX,gBAAgB,EAAE,sCAAsC,GACzD;EAtHH,AAwHE,KAxHG,AAwHH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,uDAA8C,GACjE;EA1HH,AA4HE,KA5HG,AA4HH,gBAAiB,CAAC;IAChB,gBAAgB,EAAE,qDAA4C,GAC/D;EA9HH,AAgIE,KAhIG,AAgIH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yDAAgD,GACnE;EAlIH,AAoIE,KApIG,AAoIH,0BAA2B,CAAC;IAC1B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EDhEC,IAAI;ICiEpB,MAAM,EDjEU,IAAI;ICkEpB,KAAK,EDlEW,IAAI,GCmErB;EAzIH,AA2IE,KA3IG,AA2IH,6BAA8B,CAAC;IAC7B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EDvEC,IAAI;ICwEpB,MAAM,EDxEU,IAAI;ICyEpB,SAAS,EAAE,cAAc;IACzB,KAAK,ED1EW,IAAI,GC+ErB;IArJH,AAkJI,KAlJC,AA2IH,6BAA8B,AAO5B,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,aAAa,GACzB;EApJL,AAuJE,KAvJG,AAuJH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,yDAAgD;IAClE,SAAS,EAAE,cAAc,GAC1B;EA1JH,AA4JE,KA5JG,AA4JH,SAAU,CAAC;IACT,gBAAgB,EAAE,8CAAqC,GACxD;EA9JH,AAgKE,KAhKG,AAgKH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EAlKH,AAoKE,KApKG,AAoKH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;;AHlKH,AAAA,IAAI;AACJ,AAAA,IAAI;AACJ,AAAA,KAAK,CAAC;EACJ,MAAM,EAAE,IAAI,GACb;;AAED,AAAA,IAAI,CAAC;EACH,UAAU,EERF,OAAO;EFSf,KAAK,EEHG,OAAO;EFIf,WAAW,EAAE,qFAAqF;EAClG,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM,GACnB;;AAED,AAAA,EAAE;AACF,AAAA,EAAE,CAAC;EACD,WAAW,EAAE,MAAM,GACpB;;AAED,AAAA,CAAC,CAAC;EACA,KAAK,EEtBG,OAAO;EFuBf,eAAe,EAAE,IAAI,GAKtB;EAPD,AAIE,CAJD,AAIC,MAAO,CAAC;IACN,KAAK,EElBC,OAAO,GFmBd;;AAIH,AAAA,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,gBAAgB;EACtB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG,GACX;;AAED,AAAA,aAAa,CAAC;EACZ,MAAM,EEJW,GAAG,CAAC,KAAK,CApClB,OAAO;EFyCf,aAAa,EEeC,GAAG;EFdjB,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,cAAc,EAAE,IAAI;EACpB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,GAAG,GACb;;AAED,UAAU,CAAV,MAAU;EACR,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;EAGZ,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;;AAId,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,oBAAoB,GAMjC;EARD,AAIE,aAJW,AAIX,GAAI,CAAC;IACH,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,CAAC,GACX;;AAGH,AAAA,QAAQ,CAAC;EACP,UAAU,EEpCO,GAAG,CAAC,KAAK,CApClB,OAAO;EFyEf,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,SAAS,EAAE,IAAI;EACf,eAAe,EAAE,UAAU;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,WAAW,GA8BrB;EArCD,AASE,QATM,CASN,MAAM,CAAC;IACL,gBAAgB,EEnFV,OAAO;IFoFb,MAAM,EE/CO,GAAG,CAAC,KAAK,CAlChB,OAAO;IFkFb,aAAa,EAAE,GAAG;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,MAAM,GAmBpB;IApCH,AASE,QATM,CASN,MAAM,AAUJ,MAAO,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;MACpB,UAAU,EE/CC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA5ChB,OAAO;MF4FX,UAAU,EAAE,gBAAgB,GAC7B;IAtBL,AASE,QATM,CASN,MAAM,AAeJ,QAAS,CAAC;MACR,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,CAAC;MACV,eAAe,EAAE,SAAS,GAC3B;IA5BL,AASE,QATM,CASN,MAAM,AAqBJ,KAAM,CAAC;MACL,UAAU,EEzGN,OAAO;MF0GX,MAAM,EAAE,KAAK,CAAC,GAAG,CE1Gb,OAAO;MF2GX,KAAK,EEjDH,IAAI;MFkDN,mBAAmB,EAAE,IAAI,GAC1B;;AAKL,AAAA,mBAAmB,CAAC;EAClB,OAAO,EAAE,CAAC,GACX;;AItHD,AAAA,cAAc,CAAC;EACb,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAA8C,CF2D3C,IAAI,CAAJ,IAAI,GEtDjB;EATD,AAME,cANY,AAMZ,aAAc,CAAC;IACb,MAAM,EAAE,IAAI,GACb;;AAGH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI;EAGZ,cAAc,EAAE,IAA4D;EAC5E,KAAK,EFyDiB,KAAmE,GEvC1F;EAhBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,IAAI,CAAC;MAQD,KAAK,EFuDiB,KAAmE,GExC5F;EAZC,MAAM,EAAE,SAAS,EAAE,KAAK;IAX1B,AAAA,IAAI,CAAC;MAYD,KAAK,EFoDkB,KAAmE,GEzC7F;EARC,MAAM,EAAE,SAAS,EAAE,KAAK;IAf1B,AAAA,IAAI,CAAC;MAgBD,KAAK,EFiDiB,KAAmE,GE1C5F;EAvBD,AAmBE,IAnBE,CAmBF,OAAO,CAAC;IACN,aAAa,EFmCC,IAAoC;IElClD,QAAQ,EAAE,QAAQ,GACnB;;AAKC,MAAM,EAAE,SAAS,EAAE,MAAM;EAF7B,AACE,oBADkB,CAClB,IAAI,CAAC;IAED,KAAK,EFsCgB,MAAmE,GEpC3F;;AAGH,AAAA,gBAAgB,CAAC;EACf,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI,GACpB;;AAED,AAAA,cAAc,CAAC;EACb,SAAS,EFqCe,IAAI;EEpC5B,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS,GAO1B;EAVD,AAKE,cALY,CAKZ,IAAI,CAAC;IACH,KAAK,EFhDC,OAAO;IEiDb,IAAI,EFjDE,OAAO;IEkDb,cAAc,EAAE,MAAM,GACvB;;AAGH,AAAA,sBAAsB,CAAC;EAErB,MAAM,EAAE,KAAK,GACd;;;AAED,AAUI,aAVS,CAUT,cAAc;AAVlB,AAWmB,aAXN,CAWT,cAAc,CAAC,QAAQ,AAAA,aAAa;AAXxC,AAYI,aAZS,CAYT,MAAM,CAHc;EACpB,OAAO,EAAE,CAAC,GACX;;;AAXH,AAeI,aAfS,AAaX,GAAI,CAEF,cAAc;AAflB,AAgBmB,aAhBN,AAaX,GAAI,CAGF,cAAc,CAAC,QAAQ,AAAA,aAAa;AAhBxC,AAiBI,aAjBS,AAaX,GAAI,CAIF,MAAM,CAHgB;EACpB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,wBAAwB,CAAC;EACvB,OAAO,EAAE,CAAC,CFvBiB,IAAI,GEwBhC;;ACxFD,AAAA,kBAAkB,CAAC;EACjB,WAAW,EAAE,MAAM;EACnB,aAAa,EH2DC,GAAG;EG1DjB,UAAU,EAAE,KAAK,CH8GA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI;EGtBV,KAAK,EHIG,OAAO;EGHf,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EHuGgB,IAAI;EGtG7B,eAAe,EAAE,MAAM;EACvB,aAAa,EAAE,MAAM;EACrB,WAAW,EHqGgB,GAAG,GG/F/B;EAhBD,AAYE,kBAZgB,CAYhB,CAAC,CAAC;IACA,KAAK,EHLC,OAAO;IGMb,eAAe,EAAE,SAAS,GAC3B;;ACJH,AAAA,UAAU,CAAC;EAGT,aAAa,EAAE,GAA4E,GAC5F;;AAED,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC,CAVQ,KAAgB;EAWjC,OAAO,EAAE,CAAC,GA0DX;EAvDC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,AJoJE,eIpJa,CAOX,UAAW,CAAA,IAAI,EJ6IjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EA1GT,KAAI,GA2Gf;IIzJH,AJ6JE,eI7Ja,CAWX,UAAW,CAAA,EAAE,EJkJf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EIjJD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAjBjD,AJ6JE,eI7Ja,CAkBX,UAAW,CAAA,IAAI,EJ2IjB,aAAa;II7Jf,AJ6JE,eI7Ja,CAmBX,UAAW,CAAA,EAAE,EJ0If,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EIzID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAzBjD,AJ6JE,eI7Ja,CA0BX,UAAW,CAAA,EAAE,EJmIf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EIpID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IA9BjD,AJ6JE,eI7Ja,CA+BX,UAAW,CAAA,IAAI,EJ8HjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EI7HD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IArClD,AJ6JE,eI7Ja,CAsCX,UAAW,CAAA,EAAE,EJuHf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EIxHD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IA1ClD,AJ6JE,eI7Ja,CA2CX,UAAW,CAAA,IAAI,EJkHjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EIlKH,AAgDE,eAhDa,CAgDb,EAAE,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,CAAC,CA/DY,GAAG,GAgE3B;EAlDH,AAsDM,eAtDS,AAoDb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAC9C,KAAK,CAAC;IJiDV,UAAU,EAAE,KAAK,CAPA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI,EAuBK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA5ChB,OAAO;IAoHf,UAAU,EAAE,gBAAgB,GIhDvB;EAxDP,AJ6IE,eI7Ia,AAoDb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EJwFlD,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,QAAQ,GACpB;;AIhFH,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,CAAC,CAzEO,IAAgB;EA0EjC,OAAO,EAAE,YAAY,GA4JtB;EA9JD,AAKE,eALa,CAKb,eAAe,CAAC;IACd,QAAQ,EAAE,QAAQ,GAanB;IAnBH,AAQM,eARS,CAKb,eAAe,GAGX,CAAC,CAAC;MACF,KAAK,EAAE,OAAO;MACd,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,IAAI,GAOd;MAlBL,AAcQ,eAdO,CAKb,eAAe,GAGX,CAAC,AAKD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;QJyBZ,UAAU,EAAE,KAAK,CAPA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI,EAuBK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA5ChB,OAAO;QAoHf,UAAU,EAAE,gBAAgB,GIxBrB;EAhBT,AJiDE,eIjDa,CJiDb,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAxEZ,IAAI;IAyER,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EA/FO,GAAG,CAAC,KAAK,CAlChB,OAAO;IAkIb,aAAa,EAAE,IAAI;IACnB,UAAU,EAnCkB,CAAC,CAAC,GAAG,CA7F3B,qBAAO;IAiIb,MAAM,EAAE,OAAO;IACf,IAAI,EAlIE,qBAAO;IAmIb,MAAM,EAvCiB,IAAI;IAwC3B,iBAAiB,EAAI,OAA6B;IAClD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA/CkB,IAAI,GAqD5B;IIzEH,AJiDE,eIjDa,CJiDb,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EIxEL,AAuBE,eAvBa,CAuBb,KAAK,CAAC;IACJ,aAAa,EAxGS,GAAG;IAyGzB,UAAU,EAAE,KAAK,CJOF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI,EAwBO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAzCpB,qBAAO;IIkGb,MAAM,EJxCE,IAAI;IIyCZ,QAAQ,EAAE,QAAQ;IAClB,KAAK,EJ1CG,IAAI;II6CZ,WAAW,EAAE,MAAM;IACnB,KAAK,EJ1GC,OAAO;II2Gb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,SAAS,GAK1B;IA1CH,AAuBE,eAvBa,CAuBb,KAAK,AAgBH,QAAS,CAAC;MACR,OAAO,EAAE,mBAAmB,GAC7B;EAzCL,AA4CE,eA5Ca,CA4Cb,WAAW,CAAC;IACV,gBAAgB,EJlEZ,IAAI;IImER,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EA5HD,KAAK;IA6HnB,aAAa,EAhIS,GAAG;IAiIzB,UAAU,EAAE,KAAK,CJjBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI;IIyGR,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,IAAI,GAKZ;IA7DH,AA4CE,eA5Ca,CA4Cb,WAAW,AAcT,OAAQ,CAAC;MACP,OAAO,EAAE,CAAC,GACX;EA5DL,AAgEE,eAhEa,CAgEb,cAAc,CAAC;IACb,gBAAgB,EJ/IV,OAAO;IIgJb,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EApJS,GAAG;IAqJzB,UAAU,EAAE,KAAK,CJrCF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI;II6HR,QAAQ,EAAE,QAAQ,GACnB;EAvEH,AAyEE,eAzEa,CAyEb,UAAU,CAAC;IACT,eAAe,EAtJF,IAAI;IAuJjB,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI,GACZ;EA/EH,AAiFE,eAjFa,CAiFb,aAAa,CAAC;IACZ,eAAe,EA5JC,IAAI;IA6JpB,MAAM,EA5JY,IAAG;IA6JrB,MAAM,EA/JkB,IAAI;IAgK5B,iBAAiB,EA9JC,IAAG;IA+JrB,KAAK,EAjKmB,IAAI;IAoK5B,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,MAAM,GAKxB;IAjGH,AAiFE,eAjFa,CAiFb,aAAa,CAaX,AAAA,aAAE,AAAA,CAAc,QAAQ,CAAC;MACvB,OAAO,EAAE,mBAAmB,GAC7B;EAhGL,AAmGE,eAnGa,CAmGb,MAAM,CAAC;IACL,IAAI,EAAE,WAAW;IACjB,MAAM,EApLe,IAAI;IAqLzB,WAAW,EArLU,IAAI;IAsLzB,UAAU,EAAE,MAAM;IAClB,KAAK,EJtHG,IAAI;IIuHZ,QAAQ,EAAE,QAAQ,GAsBnB;IA/HH,AA2GI,eA3GW,CAmGb,MAAM,CAQJ,KAAK,CAAC;MACJ,IAAI,EJxLA,OAAO;MIyLX,mBAAmB,EAAE,CAAC;MACtB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI,GACV;IAhHL,AAkHI,eAlHW,CAmGb,MAAM,CAeJ,IAAI,CAAC;MACH,MAAM,EAlMa,IAAI;MAmMvB,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,MAAM;MAChB,aAAa,EAAE,QAAQ;MACvB,WAAW,EAAE,MAAM,GACpB;IAxHL,AA2HM,eA3HS,CAmGb,MAAM,AAuBJ,OAAQ,CACN,IAAI,CAAC;MACH,OAAO,EAAE,MAAM,GAChB;EA7HP,AAiIE,eAjIa,CAiIb,YAAY,CAAC;IACX,gBAAgB,EAAE,+CAAsC,GACzD;EAnIH,AAsII,eAtIW,AAqIb,YAAa,CACX,KAAK,CAAC;IACJ,UAAU,EAAE,KAAK,CJvGJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI,GI+LP;EAxIL,AA0II,eA1IW,AAqIb,YAAa,CAKX,WAAW,CAAC;IACV,OAAO,EAAE,IAAI,GACd;EA5IL,AAgJI,eAhJW,AA+Ib,QAAS,CACP,KAAK,CAAC;IACJ,UAAU,EJ9NN,OAAO;II+NX,UAAU,EAAE,IAAI,GAMjB;IAxJL,AAoJM,eApJS,AA+Ib,QAAS,CACP,KAAK,CAIH,CAAC,EApJP,AAgJI,eAhJW,AA+Ib,QAAS,CACP,KAAK,AAKH,QAAS,CAAC;MACR,OAAO,EAAE,IAAI,GACd;EAvJP,AA0JI,eA1JW,AA+Ib,QAAS,CAWP,MAAM,CAAC;IACL,UAAU,EAAE,MAAM,GACnB;;AAKL,AAEI,qBAFiB,CACnB,eAAe,CACb,gBAAgB,CAAC;EACf,OAAO,EAAE,IAAI,GACd;;AAOD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;EAHrD,AJ5EE,oBI4EkB,CAClB,eAAe,CAGX,UAAW,CAAA,EAAE,EJhFjB,aAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,IAAI,GAC1B;;AIgFC,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;EATrD,AJ5EE,oBI4EkB,CAClB,eAAe,CASX,UAAW,CAAA,IAAI,EJtFnB,aAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,IAAI,GAC1B;;AIsFC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;EAfzC,AAgBM,oBAhBc,CAClB,eAAe,CAeX,gBAAgB,CAAC;IACf,OAAO,EAAE,IAAI,GACd;;AAKP,AACE,sBADoB,CACpB,MAAM,CAAC;EACL,UAAU,EJjOK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAzCpB,qBAAO;EI2Qb,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,MAAM;EACd,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,IAAI;EACT,KAAK,EJhNe,KAAmE,GI6NxF;EAXC,MAAM,EAAE,SAAS,EAAE,KAAK;IAV5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAUH,KAAK,EJlNe,KAAmE,GI4N1F;EAPC,MAAM,EAAE,SAAS,EAAE,KAAK;IAd5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAcH,KAAK,EJrNgB,KAAmE,GI2N3F;EAHC,MAAM,EAAE,SAAS,EAAE,KAAK;IAlB5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAkBH,KAAK,EJxNe,KAAmE,GI0N1F;;AAGH,AAIE,aAJW,CAIX,qBAAqB,CAAC;EACpB,SAAS,EAAE,KAAiD;EAC5D,MAAM,EAAE,MAAM;EACd,OAAO,EALM,IAAI,CAAJ,IAAI,CAKoB,IAAI,GAc1C;EArBH,AASI,aATS,CAIX,qBAAqB,CAKnB,eAAe,CAAC;IACd,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAVR,IAAI;IAWf,cAAc,EAAE,IAAI,GACrB;EAdL,AAgBI,aAhBS,CAIX,qBAAqB,CAYnB,cAAc,CAAC;IACb,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,QAAQ,GACjB;;AApBL,AAuBE,aAvBW,CAuBX,mBAAmB,CAAC;EAClB,OAAO,EAAE,IAAI,GACd;;AAzBH,AA2BE,aA3BW,CA2BX,KAAK,CAAC;EACJ,SAAS,EJ9Oa,IAAI,GI+O3B;;AA7BH,AA+BE,aA/BW,CA+BX,aAAa,CAAC;EACZ,KAAK,EAAE,IAAI,GA8EZ;EA9GH,AAkCI,aAlCS,CA+BX,aAAa,CAGX,MAAM,CAAC;IACL,QAAQ,EAAE,QAAQ,GAgBnB;IAnDL,AAqCM,aArCO,CA+BX,aAAa,CAGX,MAAM,CAGJ,iBAAiB,CAAC;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,iBAAiB,EAAE,GAAG,GASvB;MAlDP,AA2CY,aA3CC,CA+BX,aAAa,CAGX,MAAM,CAGJ,iBAAiB,GAMX,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;QACjB,aAAa,EAAE,IAAI,GACpB;MA7CT,AA+CY,aA/CC,CA+BX,aAAa,CAGX,MAAM,CAGJ,iBAAiB,GAUX,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;QACjB,YAAY,EAAE,IAAI,GACnB;EAjDT,AAqDS,aArDI,CA+BX,aAAa,CAsBX,IAAI,CAAC,KAAK,AAAA,IAAK,CAAA,AAAA,kBAAkB,CAAC,IAAK,CAAA,AAAA,GAAG,EAAE;IAC1C,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,KAAK,GAClB;EAxDL,AA0DI,aA1DS,CA+BX,aAAa,CA2BX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,MAAM,EJ/SC,KAAK,CAAC,GAAG,CA7Cd,qBAAO;II6VT,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI,GAMZ;IAvEP,AA0DI,aA1DS,CA+BX,aAAa,CA2BX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,CAQA,MAAO,CAAC;MACN,MAAM,EJtTM,KAAK,CAAC,GAAG,CAtDrB,OAAO;MI6WP,UAAU,EJpTI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAzDvB,wBAAO,GI8WR;EAtET,AA2EM,aA3EO,CA+BX,aAAa,CA2CX,QAAQ,CACN,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,MAAM,EJ9TK,KAAK,CAAC,GAAG,CA7CrB,OAAO;II4WN,UAAU,EJ9TI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA9CxB,sBAAO,GI6WP;EA/ET,AAmFI,aAnFS,CA+BX,aAAa,CAoDX,cAAc,CAAC;IACb,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EJnXP,OAAO;IIoXV,aAAa,EAAE,GAAG;IAClB,KAAK,EJpUH,IAAI;IIqUN,mBAAmB,EAAE,GAAG;IACxB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,CAAC,GAiBX;IA7GL,AAmFI,aAnFS,CA+BX,aAAa,CAoDX,cAAc,AAYZ,QAAS,CAAC;MACR,UAAU,EJ9XT,OAAO;MI+XR,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,IAAI;MACzB,QAAQ,EAAE,QAAQ;MAClB,WAAW,EAAE,MAAM;MACnB,GAAG,EAAE,IAAI;MACT,SAAS,EAAE,aAAa;MACxB,WAAW,EAAE,MAAM;MACnB,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,EAAE,GACZ;;AA5GP,AAgHE,aAhHW,CAgHX,QAAQ,CAAC;EACP,eAAe,EAAE,QAAQ,GAM1B;EAvHH,AAmHI,aAnHS,CAgHX,QAAQ,CAGN,MAAM,CAAC;IACL,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC,GACrB;;AAGH,MAAM,EAAE,SAAS,EAAE,KAAK;EAzH1B,AA0HI,aA1HS,CA0HT,mBAAmB,CAAC;IAClB,cAAc,EAAE,MAAM,GAKvB;IAhIL,AA6HM,aA7HO,CA0HT,mBAAmB,CAGjB,eAAe,CAAC;MACd,mBAAmB,EAAE,CAAC,GACvB;;AAMP,UAAU,CAAV,UAAU;EACR,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,gBAAgB;EAG7B,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,aAAa;;ACtb5B,AACE,cADY,CACZ,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,QAAQ,EL4DE,IAAI;EK3Dd,qBAAqB,EAAE,uBAA6B;EACpD,MAAM,EAAE,CAAC,GAiBV;EAfC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP5B,AL8KE,cK9KY,CACZ,aAAa,CL6Kb,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKxKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAXnD,AL8KE,cK9KY,CACZ,aAAa,CAWT,UAAW,CAAA,EAAE,ELkKjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKlKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IAjBpD,AL8KE,cK9KY,CACZ,aAAa,CAiBT,UAAW,CAAA,EAAE,EL4JjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;;AKnLH,AAwBE,cAxBY,CAwBZ,oBAAoB,CAAC;EACnB,MAAM,ELgBS,GAAG,CAAC,KAAK,CApClB,OAAO;EKqBb,aAAa,ELmCD,GAAG;EKlCf,OAAO,EAAE,IAAI;EACb,MAAM,EL8DI,KAAK;EK7Df,KAAK,EAAE,IAAI,GAyBZ;EAtDH,AA+BI,cA/BU,CAwBZ,oBAAoB,CAOlB,YAAY,CAAC;IACX,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK,GAoBjB;IArDL,AAmCM,cAnCQ,CAwBZ,oBAAoB,CAOlB,YAAY,CAIV,iBAAiB,CAAC;MAChB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,SAAS;MAC1B,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,KAAK;MACd,IAAI,ELhCF,qBAAO;MKiCT,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,MAAM;MACd,KAAK,EAAE,IAAI,GACZ;IA7CP,AA+CM,cA/CQ,CAwBZ,oBAAoB,CAOlB,YAAY,CAgBV,oBAAoB,CAAC;MACnB,KAAK,ELzCH,OAAO;MK0CT,SAAS,EAAE,IAAI;MACf,aAAa,EAAE,CAAC;MAChB,UAAU,EAAE,MAAM,GACnB;;AAQD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;EAHvD,ALqHE,oBKrHkB,CAClB,cAAc,CACZ,aAAa,CAET,UAAW,CAAA,EAAE,ELiHnB,aAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,IAAI,GAC1B;;AKjHG,MAAM,EAAE,SAAS,EAAE,MAAM;EAT/B,AAEI,oBAFgB,CAClB,cAAc,CACZ,aAAa,CAAC;IAQV,qBAAqB,EAAE,uBAAmC,GAE7D;;AAZL,AAeE,oBAfkB,CAelB,oBAAoB,CAAC;EACnB,MAAM,ELuBU,KAAK,GKtBtB;;AC1EH,AAAA,MAAM,CAAC;EACL,KAAK,ENMG,OAAO;EMLf,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,UAAU,EN+FO,IAAI,GMzBtB;EApEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,AAAA,MAAM,CAAC;MAOH,WAAW,EAAE,IAAI,GAmEpB;EA1ED,AAUE,MAVI,CAUJ,EAAE,CAAC;IACD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC,GAKX;IAJC,MAAM,EAAE,SAAS,EAAE,KAAK;MAb5B,AAUE,MAVI,CAUJ,EAAE,CAAC;QAIC,OAAO,EAAE,MAAM;QACf,oBAAoB,EAAE,IAAI,GAE7B;EAjBH,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,CAAC;IACJ,OAAO,EAAE,YAAY,GAUtB;IA/BH,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,AAGH,OAAQ,CAAC;MACP,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,GAAG,GACb;IA1BL,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,AAQH,WAAY,AAAA,OAAO,CAAC;MAClB,OAAO,EAAE,IAAI,GACd;EA9BL,AAiCE,MAjCI,CAiCJ,WAAW,CAAC;IACV,KAAK,ENxBC,OAAO,GMyBd;EAnCH,AAqCE,MArCI,CAqCJ,gBAAgB,CAAC;IACf,KAAK,EN5BC,OAAO,GMuDd;IAzBC,MAAM,EAAE,SAAS,EAAE,KAAK;MAxC5B,AAqCE,MArCI,CAqCJ,gBAAgB,CAAC;QAMb,KAAK,EAAE,KAAK,GAsBf;QAjEH,AAqCE,MArCI,CAqCJ,gBAAgB,AAQZ,IAAM,CAAA,AAAA,GAAG,EAAE;UACT,KAAK,EAAE,IAAI,GACZ;IA/CP,AAqCE,MArCI,CAqCJ,gBAAgB,AAad,OAAQ,CAAC;MACP,UAAU,EAAE,oDAA2C,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;MAC/E,OAAO,EAAE,EAAE;MACX,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,YAAY;MACrB,IAAI,EN7CA,OAAO;MM8CX,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,GAAG;MACxB,cAAc,EAAE,GAAG;MACnB,KAAK,EAAE,IAAI,GACZ;IA5DL,AAqCE,MArCI,CAqCJ,gBAAgB,AAyBd,IAAM,CAAA,AAAA,GAAG,CAAC,OAAO,CAAE;MACjB,SAAS,EAAE,UAAU,GACtB;EAhEL,AAqEE,MArEI,AAqEJ,OAAQ,CAAC;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK,GACf;;ACzEH,AAAA,eAAe,CAAC;EAad,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,IAAI;EACb,MAAM,EAZU,IAAI;EAgBpB,MAAM,EAAE,GAAG,CAAC,GAAG,CP+CC,IAAoC;EO9CpD,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAiEZ;EAtFD,AAuBE,eAvBa,CAuBb,KAAK,CAAC;IACJ,gBAAgB,EPoCZ,IAAI;IOnCR,MAAM,EAAE,CAAC;IACT,aAAa,EAzBQ,GAAG;IA0BxB,UAAU,EPuBK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAzCpB,qBAAO,EOkBkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CPDpC,mBAAI;IOER,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;IACV,kBAAkB,EAzBE,IAAI;IA0BxB,oBAAoB,EA3BU,IAAI;IA4BlC,KAAK,EAAE,IAAI,GACZ;EAjCH,AAmCU,eAnCK,AAmCb,MAAO,CAAC,KAAK,CAAC;IACZ,UAAU,EPcK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAzCpB,qBAAO,EO2BkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CPVpC,mBAAI,GOWT;EArCH,AAuCW,eAvCI,AAuCb,OAAQ,CAAC,KAAK;EAvChB,AAwCE,eAxCa,CAwCb,KAAK,AAAA,MAAM,CAAC;IACV,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CVpCW,GAAG,CGJzB,OAAO,GOyCd;EA1CH,AA4CE,eA5Ca,CA4Cb,aAAa,CAAC;IACZ,UAAU,EAvCS,6CAA6C,CAuChC,SAAS,CAlCd,IAAI,CAkCuC,WAA2B;IACjG,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EPtCE,qBAAO;IOuCb,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EA/CyB,IAAI,GAgDnC;EApDH,AAsDE,eAtDa,CAsDb,cAAc,CAAC;IACb,UAAU,EAhDI,wCAAwC,CAgD3B,SAAS,CAAC,MAAM,CAAC,MAAM;IAClD,eAAe,EAAE,SAAS;IAC1B,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC,CPGJ,GAAG,CAAH,GAAG,COHgC,CAAC;IAChD,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EPnDE,qBAAO;IOoDb,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EA3De,IAAI,GA0EzB;IA/EH,AAsDE,eAtDa,CAsDb,cAAc,AAYZ,MAAO,EAlEX,AAsDE,eAtDa,CAsDb,cAAc,AAaZ,MAAO,CAAC;MACN,gBAAgB,EP3DZ,qBAAO;MO4DX,MAAM,EAAE,OAAO,GAChB;IAtEL,AAsDE,eAtDa,CAsDb,cAAc,AAkBZ,OAAQ,CAAC;MACP,gBAAgB,EPhEZ,qBAAO,GOiEZ;IA1EL,AAsDE,eAtDa,CAsDb,cAAc,AAsBZ,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EA9EL,AAkFE,eAlFa,CAkFb,6BAA6B,CAAC;IAC5B,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,eAAe,GAC3B;;ACrFH,AAAA,aAAa,CAAC;EACZ,UAAU,EREF,OAAO;EQDf,aAAa,ERwGc,GAAG;EQvG9B,UAAU,ERqGU,CAAC,CAAC,GAAG,CAAC,IAAI,CA9ExB,kBAAI,EA8EgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA9E7C,kBAAI;EQtBV,OAAO,EAAE,KAAK;EACd,SAAS,ERoGc,IAAI;EQnG3B,mBAAmB,EAAE,GAAG;EACxB,mBAAmB,EAAE,IAAI;EACzB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,MAA+B;EACpC,OAAO,EAAE,KAAK,GAkDf;EA5DD,AAYI,aAZS,GAYT,EAAE,CAAC;IACH,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,ER4FkB,GAAG,CQ5FS,CAAC,GA4CvC;IA3DH,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,CAAC;MACH,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,IAAI,GAuCZ;MA1DL,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,AAIF,UAAW,CAAC;QACV,aAAa,EAAE,GAAG,CAAC,KAAK,CRIxB,kBAAI;QQHJ,MAAM,ERoFe,GAAG,CQpFY,CAAC,GACtC;MAxBP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,CAAC;QACF,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,ER2Ea,GAAG,CAAC,IAAI;QQ1E5B,WAAW,EAAE,MAAM,GAuBpB;QAzDP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;UACzB,UAAU,ERnCV,OAAO;UQoCP,KAAK,ERsBP,IAAI,GQTH;UAnDT,AAwCU,aAxCG,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAIvB,CAAC,CAAC;YACA,KAAK,ERhCP,OAAO,GQiCN;UA1CX,AA4CU,aA5CG,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAQvB,KAAK,CAAC;YACJ,IAAI,EReR,IAAI,GQdD;UA9CX,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,CAYvB,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;YACzB,KAAK,ERWT,IAAI,GQVD;QAlDX,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AA2BD,SAAU,CAAC;UACT,OAAO,EAAE,GAAG;UACZ,cAAc,EAAE,IAAI,GACrB;;ACxDT,AAAA,WAAW,CAAC;EAKV,KAAK,ETGG,OAAO;ESFf,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI,GAqLlB;EA5LD,AASE,WATS,CAST,QAAQ,CAAC;IACP,UAAU,ETkDN,IAAI;ISjDR,WAAW,ET8BI,GAAG,CAAC,KAAK,CApClB,OAAO;ISOb,UAAU,ETsCK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAzCpB,qBAAO;ISIb,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,CAAC;IACpB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,IAAI,CAAC,wBAAwB;IACzC,mBAAmB,EAAE,SAAS;IAC9B,KAAK,EAlBO,KAAK;IAmBjB,OAAO,EAAE,KAAK,GAef;IArCH,AASE,WATS,CAST,QAAQ,AAeN,OAAQ,CAAC;MACP,SAAS,EAAE,gBAAgB,GAK5B;MA9BL,AASE,WATS,CAST,QAAQ,AAeN,OAAQ,AAGN,IAAM,CAAA,AAAA,GAAG,EAAE;QACT,SAAS,EAAE,iBAAiB,GAC7B;IA7BP,AAgCI,WAhCO,CAST,QAAQ,CAuBN,EAAE,CAAC;MACD,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,CAAC;MACT,WAAW,EAjCC,IAAI,GAkCjB;EApCL,AAuCE,WAvCS,CAuCT,EAAE,CAAC;IACD,MAAM,EAAE,CAAC;IACT,aAAa,ETAE,GAAG,CAAC,KAAK,CApClB,OAAO;ISqCb,MAAM,EAAE,MAAM,GACf;EA3CH,AA6CE,WA7CS,CA6CT,0BAA0B,CAAC;IACzB,cAAc,EAAE,KAAK,GAkEtB;IAhHH,AAgDI,WAhDO,CA6CT,0BAA0B,CAGxB,OAAO,CAAC;MACN,MAAM,EA/CM,IAAI,CA+CO,CAAC,GAuBzB;MAxEL,AAmDM,WAnDK,CA6CT,0BAA0B,CAGxB,OAAO,CAGL,CAAC,CAAC;QACA,MAAM,EAAE,eAAe,GACxB;MArDP,AAuDM,WAvDK,CA6CT,0BAA0B,CAGxB,OAAO,CAOL,KAAK,CAAC;QACJ,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,IAAI,GAOZ;QAjEP,AA4DQ,WA5DG,CA6CT,0BAA0B,CAGxB,OAAO,CAOL,KAAK,CAKH,KAAK,CAAC;UACJ,mBAAmB,EAAE,KAAK;UAC1B,QAAQ,EAAE,QAAQ;UAClB,GAAG,EAAE,CAAC,GACP;MAhET,AAmEQ,WAnEG,CA6CT,0BAA0B,CAGxB,OAAO,GAmBH,KAAK,CAAC;QACN,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI,GAClB;IAvEP,AA0EI,WA1EO,CA6CT,0BAA0B,CA6BxB,QAAQ,CAAC;MACP,UAAU,ETxEN,OAAO;MSyEX,MAAM,ETnCO,GAAG,CAAC,KAAK,CApClB,OAAO;MSwEX,aAAa,EAAE,GAAG;MAClB,MAAM,EA7EQ,KAAI,CA6EQ,CAAC,CA5Ef,IAAI;MA6EhB,mBAAmB,EAAE,IAAI;MACzB,OAAO,EA/EO,IAAI,GA8GnB;MA/GL,AA0EI,WA1EO,CA6CT,0BAA0B,CA6BxB,QAAQ,AAQN,SAAU,CAAC;QACT,OAAO,EAAE,GAAG,GACb;MApFP,AAsFM,WAtFK,CA6CT,0BAA0B,CA6BxB,QAAQ,CAYN,KAAK,CAAC;QAEJ,qBAAqB,EADD,IAAI;QAExB,qBAAqB,EAAE,KAAK;QAC5B,iBAAiB,EAAE,SAAS;QAC5B,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,IAAI,GAKZ;QArGP,AAsFM,WAtFK,CA6CT,0BAA0B,CA6BxB,QAAQ,CAYN,KAAK,AAYH,IAAM,CAAA,AAAA,GAAG,EAAE;UACT,qBAAqB,EAAE,KAAK,CAZV,IAAI,GAavB;MApGT,AAuGwC,WAvG7B,CA6CT,0BAA0B,CA6BxB,QAAQ,EA6BN,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK;MAvG7C,AAwGkC,WAxGvB,CA6CT,0BAA0B,CA6BxB,QAAQ,EA8BN,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,CAAC;QAChC,oBAAoB,EAAE,IAAI,GAC3B;MA1GP,AA4GM,WA5GK,CA6CT,0BAA0B,CA6BxB,QAAQ,CAkCN,OAAO,CAAC;QACN,MAAM,EAAE,CAAC,GACV;EA9GP,AAkHE,WAlHS,CAkHT,QAAQ,CAAC;IACP,gBAAgB,EThHV,OAAO;ISiHb,WAAW,ET3EI,GAAG,CAAC,KAAK,CApClB,OAAO;ISgHb,MAAM,EAAE,CAAC;IACT,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,KAAK;IACf,KAAK,EArHO,KAAK,GA0HlB;IA7HH,AA0HI,WA1HO,CAkHT,QAAQ,CAQN,MAAM,CAAC;MACL,iBAAiB,EAzHL,IAAI,GA0HjB;EA5HL,AAgIE,WAhIS,EAgIT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ;EAhIhC,AAiIE,WAjIS,EAiIT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,CAAC;IACxB,mBAAmB,EAAE,OAAO;IAC5B,QAAQ,EAAE,QAAQ,GACnB;EApIH,AAsImD,WAtIxC,EAsIT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,SAAS,CAAC,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK;EAtIxD,AAuI6C,WAvIlC,EAuIT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/C,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,QAAQ,GACnB;EA3IH,AA6IoC,WA7IzB,EA6IT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,QAAQ;EA7IjD,AA8I8B,WA9InB,EA8IT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,QAAQ,CAAC;IACxC,UAAU,ETnFN,IAAI;ISoFR,MAAM,ETxGO,GAAG,CAAC,KAAK,CAlChB,OAAO;IS2Ib,aAAa,ETpFD,GAAG;ISqFf,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI,GACZ;EAxJH,AA2JoC,WA3JzB,EA2JT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,OAAO;EA3JhD,AA4J8B,WA5JnB,EA4JT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,OAAO,CAAC;IACvC,UAAU,EAAE,gDAAgD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;IACpF,OAAO,EAAE,EAAE;IACX,uBAAuB,EAAE,YAAY;IACrC,IAAI,ET9JE,OAAO;IS+Jb,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI,GACZ;EAvKH,AA0KoC,WA1KzB,EA0KT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,OAAO,CAAC;IAC7C,OAAO,EAAE,CAAC,GACX;EA5KH,AA8K8B,WA9KnB,EA8KT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,OAAO,CAAC;IACvC,OAAO,EAAE,CAAC,GACX;EAhLH,AAmLqC,WAnL1B,EAmLT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,SAAS,IAAI,KAAK,AAAA,MAAM,AAAA,QAAQ,CAAC;IACrD,MAAM,EAAE,GAAG,CAAC,KAAK,CTlLX,OAAO,GSmLd;EArLH,AAwLmD,WAxLxC,EAwLT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,SAAS,CAAC,QAAQ,AAAA,MAAM,GAAG,KAAK,AAAA,QAAQ;EAxLhE,AAyLyD,WAzL9C,EAyLT,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,SAAS,CAAC,IAAK,CAAA,AAAA,QAAQ,CAAC,MAAM,GAAG,KAAK,AAAA,QAAQ,CAAC;IACnE,MAAM,EAAE,GAAG,CAAC,MAAM,CTxLZ,OAAO,GSyLd;;AAGH,AACE,kBADgB,CAChB,MAAM,CAAC;EACL,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,OAAO;EACf,IAAI,ET1LE,qBAAO;ES2Lb,iBAAiB,EAAE,IAAI;EACvB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,KAAK,GASf;EAnBH,AACE,kBADgB,CAChB,MAAM,AAWJ,MAAO,CAAC;IACN,gBAAgB,ETvMZ,OAAO,GSwMZ;EAdL,AACE,kBADgB,CAChB,MAAM,AAeJ,OAAQ,CAAC;IACP,gBAAgB,ET5MZ,OAAO,GS6MZ;;AChNL,AACE,oBADkB,CAClB,MAAM,CAAC;EACL,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CVwBnB,kBAAI;EUvBR,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,MAAM;EACnB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK,GACb;;AARH,AAUE,oBAVkB,CAUlB,OAAO,CAAC;EACN,MAAM,EAAE,CAAC,GACV;;AAZH,AAcE,oBAdkB,CAclB,cAAc,CAAC;EACb,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,CAAC,GAMlB;EAvBH,AAmBI,oBAnBgB,CAclB,cAAc,CAKZ,CAAC,CAAC;IACA,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,IAAI,GACpB;;AAtBL,AAyBE,oBAzBkB,CAyBlB,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,MAAM;EACjB,OAAO,EAAE,MAAM,GAchB;EA3CH,AA+BI,oBA/BgB,CAyBlB,QAAQ,CAMN,MAAM,CAAC;IACL,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,GAAG,GAMX;IA1CL,AA+BI,oBA/BgB,CAyBlB,QAAQ,CAMN,MAAM,AAOJ,KAAM,CAAC;MACL,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,CAAC,GACvB;;AAzCP,AA6CE,oBA7CkB,CA6ClB,KAAK,CAAC;EACJ,iBAAiB,EAAE,IAAI,GACxB;;AAGH,AAAA,cAAc,CAAC;EACb,UAAU,EV/CF,OAAO;EUgDf,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,OAAO,EAAE,GAAG;EACZ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK,GACf;;AAED,AAAA,MAAM,CAAC;EACL,UAAU,EVFJ,IAAI;EUGV,MAAM,EVtBW,GAAG,CAAC,KAAK,CApClB,OAAO;EU2Df,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,KAAK,GACf;;ACnED,AAAA,WAAW,CAAC;EAEV,UAAU,EX0DJ,IAAI;EWzDV,aAAa,EX0DC,GAAG;EWzDjB,OAAO,EAAE,YAAY;EACrB,MAAM,EXqFM,KAAK;EWpFjB,iBAAiB,EXyDL,IAAI;EWxDhB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAmKZ;EA3KD,AXkIE,WWlIS,CXkIT,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAxEZ,IAAI;IAyER,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EA/FO,GAAG,CAAC,KAAK,CAlChB,OAAO;IAkIb,aAAa,EAAE,IAAI;IACnB,UAAU,EAnCkB,CAAC,CAAC,GAAG,CA7F3B,qBAAO;IAiIb,MAAM,EAAE,OAAO;IACf,IAAI,EAlIE,qBAAO;IAmIb,MAAM,EAvCiB,IAAI;IAwC3B,iBAAiB,EAAI,OAA6B;IAClD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA/CkB,IAAI,GAqD5B;IW1JH,AXkIE,WWlIS,CXkIT,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EWzJL,AAUE,WAVS,AAUT,YAAa,CAAC;IACZ,UAAU,EAAE,WAAW,GAKxB;IAhBH,AAaI,WAbO,AAUT,YAAa,CAGX,KAAK,CAAC;MACJ,UAAU,EAAE,KAAK,CXmGJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAvFpB,kBAAI,GWXP;EAfL,AAkBE,WAlBS,CAkBT,KAAK,CAAC;IACJ,aAAa,EX0CD,GAAG;IWzCf,UAAU,EX8BK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAzCpB,qBAAO;IWYb,MAAM,EAAE,IAAI,GACb;EAtBH,AAwBI,WAxBO,GAwBP,CAAC,CAAC;IACF,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,IAAI,GAWZ;IAzCH,AAiCM,WAjCK,GAwBP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;MX4FV,UAAU,EA5EK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA5ChB,OAAO;MAyHf,UAAU,EAAE,gBAAgB,GW3FvB;IAnCP,AAqCM,WArCK,GAwBP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAKxB,WAAW,CAAC;MACV,KAAK,EXpCH,OAAO,GWqCV;EAvCP,AA2CE,WA3CS,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAAE;IXkFtD,UAAU,EA5EK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA5ChB,OAAO;IAyHf,UAAU,EAAE,gBAAgB;IWhF1B,OAAO,EAAE,IAAI,GAKd;IAnDH,AX8JE,WW9JS,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EXmHpD,oBAAoB,CAAC;MACnB,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;IWjKH,AAgDI,WAhDO,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAKlD,WAAW,CAAC;MACV,KAAK,EX/CD,OAAO,GWgDZ;EAlDL,AAqDE,WArDS,CAqDT,yBAAyB,CAAC;IACxB,gBAAgB,EXnDV,OAAO;IWoDb,aAAa,EXMD,GAAG,CAAH,GAAG,CWN8B,CAAC,CAAC,CAAC;IAChD,MAAM,EXmCkB,KAAK;IWlC7B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,QAAQ,GAuBnB;IAjFH,AAqDE,WArDS,CAqDT,yBAAyB,AAOvB,OAAQ,CAAC;MACP,aAAa,EAAE,GAAG,CAAC,KAAK,CXnCtB,mBAAI;MWoCN,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI,GACZ;IAlEL,AAoEI,WApEO,CAqDT,yBAAyB,CAevB,mBAAmB,CAAC;MAClB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,KAAK;MACtB,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,CAAC;MACV,UAAU,EAAE,OAAO,CAAC,EAAE,CXvCZ,8BAA8B;MWwCxC,KAAK,EAAE,IAAI,GAKZ;MAhFL,AAoEI,WApEO,CAqDT,yBAAyB,CAevB,mBAAmB,AASjB,OAAQ,CAAC;QACP,OAAO,EAAE,CAAC,GACX;EA/EP,AAmFE,WAnFS,CAmFT,aAAa,CAAC;IACZ,OAAO,EAAE,cAAc,GAKxB;IAzFH,AAmFE,WAnFS,CAmFT,aAAa,AAGX,SAAU,CAAC;MACT,WAAW,EAAE,IAAI,GAClB;EAxFL,AA2FE,WA3FS,CA2FT,UAAU,CAAC;IACT,UAAU,EAAE,IAA+C;IAC3D,QAAQ,EAAE,MAAM,GA4BjB;IAzHH,AA2FE,WA3FS,CA2FT,UAAU,AAIR,SAAU,CAAC;MACT,UAAU,EAAE,KAAgD,GAC7D;IAjGL,AA2FE,WA3FS,CA2FT,UAAU,AAQR,aAAc,EAnGlB,AA2FE,WA3FS,CA2FT,UAAU,AASR,WAAY,CAAC;MACX,UAAU,EAAE,IAA+C,GAC5D;IAtGL,AA2FE,WA3FS,CA2FT,UAAU,AAaR,SAAU,AAAA,aAAa,EAxG3B,AA2FE,WA3FS,CA2FT,UAAU,AAcR,SAAU,AAAA,WAAW,CAAC;MACpB,UAAU,EAAE,KAAgD,GAC7D;IA3GL,AA2FE,WA3FS,CA2FT,UAAU,AAkBR,aAAc,AAAA,WAAW,CAAC;MACxB,UAAU,EAAE,KAA+C,GAC5D;IA/GL,AA2FE,WA3FS,CA2FT,UAAU,AAsBR,SAAU,AAAA,aAAa,AAAA,WAAW,CAAC;MACjC,UAAU,EAAE,KAAgD,GAC7D;IAnHL,AAqH2B,WArHhB,CA2FT,UAAU,AA0BR,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;MACjC,UAAU,EAAE,IAA0B;MACtC,QAAQ,EAAE,MAAM,GACjB;EAxHL,AA2HE,WA3HS,CA2HT,eAAe,CAAC;IACd,KAAK,EXrHC,OAAO;IWsHb,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS,GAC1B;EAlIH,AAoIE,WApIS,CAoIT,WAAW,CAAC;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EXzCS,IAAI;IW0CxB,MAAM,EAAE,CAAC,CAAC,CAAC,CX3CK,GAAG;IW4CnB,SAAS,EAAE,UAAU,GACtB;EAzIH,AA2IE,WA3IS,CA2IT,iBAAiB,CAAC;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EXhDS,IAAI;IWiDxB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,UAAU,GACtB;EAjJH,AAmJE,WAnJS,CAmJT,aAAa,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,KAAK,EX9IC,OAAO;IW+Ib,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,CAAC,GACT;EA5JH,AA8JE,WA9JS,CA8JT,kBAAkB,CAAC;IACjB,IAAI,EXtJE,qBAAO;IWuJb,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAlKH,AAoKE,WApKS,CAoKT,mBAAmB,CAAC;IAClB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;;AAOC,MAAM,EAAE,SAAS,EAAE,MAAM;EAJ7B,AAGE,oBAHkB,CAGlB,WAAW,CAAC;IAER,MAAM,EXlFQ,KAAK,GW2HtB;IA9CH,AAOM,oBAPc,CAGlB,WAAW,CAIP,yBAAyB,CAAC;MACxB,MAAM,EXpFoB,KAAK,GWqFhC;IATP,AAWM,oBAXc,CAGlB,WAAW,CAQP,aAAa,CAAC;MACZ,OAAO,EAAE,cAAc,GACxB;IAbP,AAeM,oBAfc,CAGlB,WAAW,CAYP,UAAU,CAAC;MACT,UAAU,EAAE,KAAqC,GAClD;IAjBP,AAmBM,oBAnBc,CAGlB,WAAW,CAgBP,eAAe,CAAC;MACd,SAAS,EAAE,IAAI;MACf,cAAc,EAAE,GAAG,GACpB;IAtBP,AAwBM,oBAxBc,CAGlB,WAAW,CAqBP,WAAW,CAAC;MACV,SAAS,EAAE,IAAI;MACf,WAAW,EAzBH,IAAI;MA0BZ,aAAa,EAAE,CAAC,GACjB;IA5BP,AA+BQ,oBA/BY,CAGlB,WAAW,CA2BP,UAAU,AAAA,IAAK,CAAA,AAAA,eAAe,EAC5B,WAAW,CAAC;MACV,UAAU,EAAE,IAAgB,GAC7B;IAjCT,AAoCM,oBApCc,CAGlB,WAAW,CAiCP,iBAAiB,CAAC;MAChB,SAAS,EAAE,IAAI;MACf,WAAW,EArCH,IAAI,GAsCb;IAvCP,AAyCM,oBAzCc,CAGlB,WAAW,CAsCP,aAAa,CAAC;MACZ,MAAM,EAAE,GAAG;MACX,SAAS,EAAE,IAAI,GAChB;;ACzNP,AAAA,2BAA2B,CAAC;EAC1B,KAAK,EZOG,OAAO;EYNf,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,aAAa,EZ8DG,IAAoC;EY7DpD,UAAU,EAAE,MAAM,GA0BnB;EAxBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,2BAA2B,CAAC;MAQxB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,UAAU,EAAE,IAAI,GAqBnB;EA/BD,AAaE,2BAbyB,CAazB,CAAC,CAAC;IACA,MAAM,EAAE,CAAC,GAMV;IALC,MAAM,EAAE,SAAS,EAAE,KAAK;MAf5B,AAaE,2BAbyB,CAazB,CAAC,CAAC;QAGE,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,aAAa,GAEjC;EApBH,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;IACJ,OAAO,EAAE,IAAI,GAOd;IANC,MAAM,EAAE,SAAS,EAAE,KAAK;MAxB5B,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;QAGF,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK;QACd,IAAI,EZlBA,qBAAO;QYmBX,iBAAiB,EAAE,GAAG,GAEzB;;AAGH,AAAA,yBAAyB,CAAC;EACxB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,MAAM,GAelB;EAbC,MAAM,EAAE,SAAS,EAAE,KAAK;IAL1B,AAAA,yBAAyB,CAAC;MAMtB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,OAAO,EAAE,CAAC,GAUb;EAlBD,AAWE,yBAXuB,CAWvB,MAAM,CAAC;IACL,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IACT,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE,MAAM,GAChB;;AClDH,AAAA,oBAAoB,CAAC;EACnB,OAAO,EbgEkB,IAAI,CADF,IAAI;Ea9D/B,gBAAgB,EAAE,KAAK;EACvB,mBAAmB,EAAE,KAAK;EAC1B,mBAAmB,EAAE,gBAAgB,GAoJtC;EAxJD,AAME,oBANkB,CAMlB,cAAc,CAAC;IACb,MAAM,EAAE,CAAC,GAYV;IAnBH,AASI,oBATgB,CAMlB,cAAc,CAGZ,aAAa,CAAC;MACZ,MAAM,EAAE,OAAO;MACf,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,MAAM,GACpB;IAbL,AAeI,oBAfgB,CAMlB,cAAc,CASZ,kBAAkB,CAAC;MACjB,mBAAmB,EAAE,GAAG;MACxB,UAAU,EAAE,IAAI,GACjB;EAlBL,AAqBE,oBArBkB,CAqBlB,gBAAgB,CAAC;IACf,QAAQ,EAAE,QAAQ,GA6BnB;IAnDH,AAwBI,oBAxBgB,CAqBlB,gBAAgB,CAGd,oBAAoB,CAAC;MACnB,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;MAC/E,MAAM,EAAE,CAAC;MACT,MAAM,EAAE,OAAO;MACf,IAAI,EbrBA,OAAO;MasBX,MAAM,EbwEe,IAAI;MavEzB,iBAAiB,EAAE,CAAC;MACpB,OAAO,EAAE,CAAC;MACV,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,mBAAmB,EAAE,KAAK;MAC1B,mBAAmB,EAAE,OAAO;MAC5B,KAAK,EbiEgB,IAAI,Ga3D1B;MA1CL,AAwBI,oBAxBgB,CAqBlB,gBAAgB,CAGd,oBAAoB,AAclB,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;QAClC,IAAI,Eb9BF,OAAO;Qa+BT,OAAO,EAAE,CAAC,GACX;IAzCP,AA4CI,oBA5CgB,CAqBlB,gBAAgB,CAuBd,aAAa,CAAC;MACZ,GAAG,EAAE,IAAI,GACV;IAED,MAAM,EAAE,SAAS,EAAE,MAAM;MAhD7B,Ab8KE,oBa9KkB,CAqBlB,gBAAgB,CbyJhB,aAAa,CAAC;QACZ,iBAAiB,EAAE,GAAG;QACtB,mBAAmB,EAAE,IAAI;QACzB,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,IAAI,GAC1B;EanLH,AAwDM,oBAxDc,AAqDlB,MAAO,CAEL,gBAAgB,CACd,oBAAoB,EAxD1B,AAwDM,oBAxDc,AAsDlB,OAAQ,CACN,gBAAgB,CACd,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC,GACX;EA1DP,AA8DE,oBA9DkB,AA8DlB,OAAQ,CAAC;IACP,UAAU,Eb3DJ,wBAAO;Ia4Db,aAAa,EAAE,GAAG,GAOnB;IAvEH,AAmEM,oBAnEc,AA8DlB,OAAQ,CAIN,gBAAgB,CACd,oBAAoB,CAAC;MACnB,IAAI,Eb3DF,OAAO,Ga4DV;EArEP,AAyEE,oBAzEkB,CAyElB,mBAAmB,CAAC;IAIlB,KAAK,EbrEC,OAAO;IasEb,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GAoCnB;IApHH,AAkFI,oBAlFgB,CAyElB,mBAAmB,CASjB,wBAAwB,CAAC;MACvB,OAAO,EAAE,YAAY;MACrB,UAAU,EATQ,IAAI;MAUtB,KAAK,EAAE,kBAAiC,GAKzC;MAHC,MAAM,EAAE,SAAS,EAAE,KAAK;QAvF9B,AAkFI,oBAlFgB,CAyElB,mBAAmB,CASjB,wBAAwB,CAAC;UAMrB,KAAK,EbCA,KAA6B,GaCrC;IA1FL,AA4FI,oBA5FgB,CAyElB,mBAAmB,CAmBjB,CAAC,CAAC;MACA,KAAK,EbnFD,OAAO;MaoFX,YAAY,EAAE,GAAG,GAClB;IA/FL,AAiGI,oBAjGgB,CAyElB,mBAAmB,CAwBjB,MAAM,CAAC;MACL,UAAU,Eb/FN,OAAO;MagGX,MAAM,EAAE,GAAG,CAAC,KAAK,Cb7Fb,OAAO;Ma8FX,aAAa,EAAE,GAAG;MAClB,MAAM,EAAE,OAAO;MACf,UAAU,EAAE,GAAG;MACf,SAAS,EA7BQ,KAAK;MA8BtB,UAAU,EA7BQ,IAAI;MA8BtB,iBAAiB,EAAE,CAAC,GAUrB;MAnHL,AAiGI,oBAjGgB,CAyElB,mBAAmB,CAwBjB,MAAM,AAUJ,MAAO,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;QACpB,UAAU,Eb3DD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA5ChB,OAAO;QawGT,UAAU,EAAE,gBAAgB,GAC7B;MAED,MAAM,EAAE,SAAS,EAAE,KAAK;QAhH9B,AAiGI,oBAjGgB,CAyElB,mBAAmB,CAwBjB,MAAM,CAAC;UAgBH,QAAQ,EAAE,QAAQ,GAErB;EAnHL,AAsHE,oBAtHkB,CAsHlB,sBAAsB,CAAC;IACrB,MAAM,Eb7BI,KAAK,Ga8BhB;EAxHH,AA0HE,oBA1HkB,CA0HlB,aAAa,CAAC;IAGZ,MAAM,EAAE,CAAC,CADY,IAAG;IAExB,OAAO,EAAE,CAAC,CAFW,GAAG,GAQzB;IApIH,AA0HE,oBA1HkB,CA0HlB,aAAa,AAMX,UAAW,CAAC;MACV,QAAQ,EAAE,MAAM;MAChB,cAAc,EAAE,IAAI,GACrB;EAnIL,AAwIM,oBAxIc,AAsIlB,kBAAmB,CACjB,cAAc,CACZ,kBAAkB,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC,IAAI,CbtGlB,8BAA8B,GauGvC;EA1IP,AA6II,oBA7IgB,AAsIlB,kBAAmB,CAOjB,aAAa,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC,IAAI,Cb3GjB,8BAA8B,Ga4GzC;EA/IL,AAmJI,oBAnJgB,AAkJlB,UAAW,CACT,aAAa,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,GACjB"
+	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css
@@ -719,38 +719,34 @@ main {
 .search-wrapper {
   cursor: default;
   display: flex;
   height: 35px;
   margin: 1px 1px 20px;
   position: relative;
   width: 100%; }
   .search-wrapper input {
-    background-color: #FFF;
+    background: #FFF var(--newtab-search-icon) 8px center/18px no-repeat;
     border: 0;
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.15);
     font-size: 15px;
+    -moz-context-properties: fill;
+    fill: rgba(12, 12, 13, 0.4);
     padding: 0;
     padding-inline-end: 36px;
-    padding-inline-start: 35px;
+    padding-inline-start: 34px;
     width: 100%; }
+    .search-wrapper input:dir(rtl) {
+      background-position-x: right 8px; }
   .search-wrapper:hover input {
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.25); }
   .search-wrapper:active input,
   .search-wrapper input:focus {
     box-shadow: 0 0 0 1px #0A84FF; }
-  .search-wrapper .search-label {
-    background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
-    -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
-    height: 100%;
-    offset-inline-start: 0;
-    position: absolute;
-    width: 35px; }
   .search-wrapper .search-button {
     background: url("chrome://browser/skin/forward.svg") no-repeat center center;
     background-size: 16px 16px;
     border: 0;
     border-radius: 0 3px 3px 0;
     -moz-context-properties: fill;
     fill: rgba(12, 12, 13, 0.4);
     height: 100%;
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css.map
@@ -26,19 +26,19 @@
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
 		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$grey-20-60: rgba($grey-20, 0.6);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Aliases and derived styles based on Photon colors for common usage\n$background-primary: $grey-10;\n$background-secondary: $grey-20;\n$border-primary: 1px solid $grey-40;\n$border-secondary: 1px solid $grey-30;\n$fill-primary: $grey-90-80;\n$fill-secondary: $grey-90-60;\n$fill-tertiary: $grey-30;\n$input-primary: $blue-60;\n$input-secondary: $grey-10;\n$link-primary: $blue-60;\n$link-secondary: $teal-70;\n$shadow-primary: 0 0 0 5px $grey-30;\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$text-primary: $grey-90;\n$text-conditional: $grey-60;\n$text-secondary: $grey-50;\n$input-border: solid 1px $grey-90-20;\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 2px rgba($red-60, 0.35);\n$input-focus-boxshadow: 0 0 0 2px rgba($blue-50, 0.35);\n\n$white: #FFF;\n$border-radius: 3px;\n\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-border-color: $black-20;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $context-menu-border-color;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$inner-box-shadow: 0 0 0 1px $black-10;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: $white;\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: $fill-primary;\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
 		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: $fill-primary;\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: $fill-secondary;\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-pocket-small {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n    background-size: $smaller-icon-size;\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
 		".outer-wrapper {\n  display: flex;\n  flex-grow: 1;\n  height: 100%;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    height: auto;\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.section-top-bar {\n  height: 16px;\n  margin-bottom: 16px;\n}\n\n.section-title {\n  font-size: $section-title-font-size;\n  font-weight: bold;\n  text-transform: uppercase;\n\n  span {\n    color: $text-secondary;\n    fill: $text-secondary;\n    vertical-align: middle;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n",
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: $text-conditional;\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: $text-conditional;\n    text-decoration: underline;\n  }\n}\n\n",
 		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: $text-secondary;\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: $background-primary;\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: $rich-icon-size;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: $fill-tertiary;\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing $form-spacing 40px;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n\n        & + input:dir(ltr) {\n          padding-right: 32px;\n        }\n\n        & + input:dir(rtl) {\n          padding-left: 32px;\n        }\n      }\n    }\n\n    .url input:not(:placeholder-shown):dir(rtl) {\n      direction: ltr;\n      text-align: right;\n    }\n\n    input {\n      &[type='text'] {\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
 		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: $fill-secondary;\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: $text-secondary;\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
 		".topic {\n  color: $text-secondary;\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: $link-secondary;\n  }\n\n  .topic-read-more {\n    color: $link-secondary;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: $link-secondary;\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
-		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  $search-glyph-fill: $grey-90-40;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background-color: $white;\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
+		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-icon-size: 18px;\n  $search-icon-padding: 8px;\n  $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-fill: $grey-90-40;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: $white var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-icon-width;\n    width: 100%;\n\n    &:dir(rtl) {\n      background-position-x: right $search-icon-padding;\n    }\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
 		".context-menu {\n  background: $background-primary;\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: 1px solid $context-menu-border-color;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: $input-primary;\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
 		".prefs-pane {\n  $options-spacing: 10px;\n  $prefs-spacing: 20px;\n  $prefs-width: 400px;\n\n  color: $text-conditional;\n  font-size: 14px;\n  line-height: 21px;\n\n  .sidebar {\n    background: $white;\n    border-left: $border-secondary;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n    offset-inline-end: 0;\n    overflow-y: auto;\n    padding: 40px;\n    position: fixed;\n    top: 0;\n    transition: 0.1s cubic-bezier(0, 0, 0, 1);\n    transition-property: transform;\n    width: $prefs-width;\n    z-index: 12000;\n\n    &.hidden {\n      transform: translateX(100%);\n\n      &:dir(rtl) {\n        transform: translateX(-100%);\n      }\n    }\n\n    h1 {\n      font-size: 21px;\n      margin: 0;\n      padding-top: $prefs-spacing;\n    }\n  }\n\n  hr {\n    border: 0;\n    border-bottom: $border-secondary;\n    margin: 20px 0;\n  }\n\n  .prefs-modal-inner-wrapper {\n    padding-bottom: 100px;\n\n    section {\n      margin: $prefs-spacing 0;\n\n      p {\n        margin: 5px 0 20px 30px;\n      }\n\n      label {\n        display: inline-block;\n        position: relative;\n        width: 100%;\n\n        input {\n          offset-inline-start: -30px;\n          position: absolute;\n          top: 0;\n        }\n      }\n\n      > label {\n        font-size: 16px;\n        font-weight: bold;\n        line-height: 19px;\n      }\n    }\n\n    .options {\n      background: $background-primary;\n      border: $border-secondary;\n      border-radius: 2px;\n      margin: -$options-spacing 0 $prefs-spacing;\n      margin-inline-start: 30px;\n      padding: $options-spacing;\n\n      &.disabled {\n        opacity: 0.5;\n      }\n\n      label {\n        $icon-offset-start: 35px;\n        background-position-x: $icon-offset-start;\n        background-position-y: 2.5px;\n        background-repeat: no-repeat;\n        display: inline-block;\n        font-size: 14px;\n        font-weight: normal;\n        height: auto;\n        line-height: 21px;\n        width: 100%;\n\n        &:dir(rtl) {\n          background-position-x: right $icon-offset-start;\n        }\n      }\n\n      [type='checkbox']:not(:checked) + label,\n      [type='checkbox']:checked + label {\n        padding-inline-start: 63px;\n      }\n\n      section {\n        margin: 0;\n      }\n    }\n  }\n\n  .actions {\n    background-color: $background-primary;\n    border-left: $border-secondary;\n    bottom: 0;\n    offset-inline-end: 0;\n    position: fixed;\n    width: $prefs-width;\n\n    button {\n      margin-inline-end: $prefs-spacing;\n    }\n  }\n\n  // CSS styled checkbox\n  [type='checkbox']:not(:checked),\n  [type='checkbox']:checked {\n    offset-inline-start: -9999px;\n    position: absolute;\n  }\n\n  [type='checkbox']:not(:disabled):not(:checked) + label,\n  [type='checkbox']:not(:disabled):checked + label {\n    cursor: pointer;\n    padding: 0 30px;\n    position: relative;\n  }\n\n  [type='checkbox']:not(:checked) + label::before,\n  [type='checkbox']:checked + label::before {\n    background: $white;\n    border: $border-primary;\n    border-radius: $border-radius;\n    content: '';\n    height: 21px;\n    offset-inline-start: 0;\n    position: absolute;\n    top: 0;\n    width: 21px;\n  }\n\n  // checkmark\n  [type='checkbox']:not(:checked) + label::after,\n  [type='checkbox']:checked + label::after {\n    background: url('chrome://global/skin/in-content/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n    content: '';\n    -moz-context-properties: fill, stroke;\n    fill: $input-primary;\n    height: 21px;\n    offset-inline-start: 0;\n    position: absolute;\n    stroke: none;\n    top: 0;\n    width: 21px;\n  }\n\n  // checkmark changes\n  [type='checkbox']:not(:checked) + label::after {\n    opacity: 0;\n  }\n\n  [type='checkbox']:checked + label::after {\n    opacity: 1;\n  }\n\n  // hover\n  [type='checkbox']:not(:disabled) + label:hover::before {\n    border: 1px solid $input-primary;\n  }\n\n  // accessibility\n  [type='checkbox']:not(:disabled):checked:focus + label::before,\n  [type='checkbox']:not(:disabled):not(:checked):focus + label::before {\n    border: 1px dotted $input-primary;\n  }\n}\n\n.prefs-pane-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: $fill-secondary;\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover {\n      background-color: $background-secondary;\n    }\n\n    &:active {\n      background-color: $background-primary;\n    }\n  }\n}\n",
 		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: $background-secondary;\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: $white;\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
 		".card-outer {\n  @include context-menu-button;\n  background: $white;\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: $link-primary;\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: $link-primary;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $background-primary;\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: $text-secondary;\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: $text-secondary;\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: $fill-secondary;\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: $text-conditional;\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: $fill-secondary;\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
 		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    margin: 0;\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: $grey-50;\n      height: $context-menu-button-size;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: $grey-20-60;\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: $grey-90;\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: $grey-60;\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: $link-secondary;\n      padding-left: 3px;\n    }\n\n    button {\n      background: $grey-10;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": "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"
+	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/install.rdf.in
+++ b/browser/extensions/activity-stream/install.rdf.in
@@ -3,17 +3,17 @@
 #filter substitution
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
   <Description about="urn:mozilla:install-manifest">
     <em:id>activity-stream@mozilla.org</em:id>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:unpack>false</em:unpack>
-    <em:version>2018.04.18.1109-e897108a</em:version>
+    <em:version>2018.04.20.1103-b3b95672</em:version>
     <em:name>Activity Stream</em:name>
     <em:description>A rich visual history feed and a reimagined home page make it easier than ever to find exactly what you're looking for in Firefox.</em:description>
     <em:multiprocessCompatible>true</em:multiprocessCompatible>
 
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
         <em:minVersion>@MOZ_APP_VERSION@</em:minVersion>
--- a/browser/locales/en-US/chrome/browser-region/region.properties
+++ b/browser/locales/en-US/chrome/browser-region/region.properties
@@ -2,18 +2,17 @@
 # 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/.
 
 # Default search engine
 browser.search.defaultenginename=Google
 
 # Search engine order (order displayed in the search bar dropdown)s
 browser.search.order.1=Google
-browser.search.order.2=Yahoo
-browser.search.order.3=Bing
+browser.search.order.2=Bing
 
 # This is the default set of web based feed handlers shown in the reader
 # selection UI
 browser.contentHandlers.types.0.title=My Yahoo!
 browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s
 
 # increment this number when anything gets changed in the list below.  This will
 # cause Firefox to re-read these prefs and inject any new handlers into the 
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -425,17 +425,16 @@ These should match what Safari and other
 
 <!-- LOCALIZATION NOTE (moreMenu.label) This label is used in the new Photon
     app (hamburger) menu. When clicked, it opens a subview that contains
     secondary commands. -->
 <!ENTITY moreMenu.label "More">
 
 <!ENTITY openCmd.commandkey           "l">
 <!ENTITY urlbar.placeholder2          "Search or enter address">
-<!ENTITY urlbar.placeholder3          "Enter search terms and addresses here">
 <!ENTITY urlbar.accesskey             "d">
 <!-- LOCALIZATION NOTE (urlbar.extension.label): Used to indicate that a selected autocomplete entry is provided by an extension. -->
 <!ENTITY urlbar.extension.label       "Extension:">
 <!ENTITY urlbar.switchToTab.label     "Switch to tab:">
 
 <!-- LOCALIZATION NOTE (urlbar.searchSuggestionsNotification.hintPrefix): Shown just before the suggestions opt-out hint. -->
 <!ENTITY urlbar.searchSuggestionsNotification.hintPrefix "Tip:">
 <!-- LOCALIZATION NOTE (urlbar.searchSuggestionsNotification.hint): &#x1F50E; is the magnifier icon emoji, please don't change it. -->
--- a/browser/locales/l10n-changesets.json
+++ b/browser/locales/l10n-changesets.json
@@ -52,17 +52,17 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "9914f123aea2"
+        "revision": "eb5766ad7cbd"
     }, 
     "as": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -97,62 +97,62 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "dc23669c9110"
+        "revision": "aead64d9bda0"
     }, 
     "be": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "1f580295a1bf"
+        "revision": "f04b0f474390"
     }, 
     "bg": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "fe6ccf093d77"
+        "revision": "bcdcec3f28ad"
     }, 
     "bn-BD": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "e273e445ec93"
+        "revision": "fe79a2afcbc1"
     }, 
     "bn-IN": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -187,17 +187,17 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "bb050c54666f"
+        "revision": "6ec289047243"
     }, 
     "ca": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -217,92 +217,92 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "a7a686bcee45"
+        "revision": "b9fb57cf8036"
     }, 
     "cs": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "c5456c55f976"
+        "revision": "dccde3b5a213"
     }, 
     "cy": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "7a4933220b15"
+        "revision": "e93b47466800"
     }, 
     "da": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "be4ee9ff5121"
+        "revision": "a92ec223ca74"
     }, 
     "de": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "5febce22ded2"
+        "revision": "f52e71ea7c43"
     }, 
     "dsb": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "e42f4180a41e"
+        "revision": "1917a9f97b4c"
     }, 
     "el": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -352,107 +352,107 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "a8d4a3b94906"
+        "revision": "6ec6a33c631e"
     }, 
     "es-AR": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "ceaf20c8274c"
+        "revision": "b1c463b1395f"
     }, 
     "es-CL": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "771b18378e68"
+        "revision": "9ac21e9125c1"
     }, 
     "es-ES": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "f3915bbf8773"
+        "revision": "88c476641aca"
     }, 
     "es-MX": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "0135a5923d10"
+        "revision": "f52db3819e4b"
     }, 
     "et": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "6269ab28d960"
+        "revision": "7d75815bf909"
     }, 
     "eu": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "b8514c10535b"
+        "revision": "ae5f03f8a40a"
     }, 
     "fa": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -487,47 +487,47 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "9eda0d16b5ca"
+        "revision": "2ff91d51a5b5"
     }, 
     "fr": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "176a7e5ab738"
+        "revision": "101a9f9f61e5"
     }, 
     "fy-NL": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "27021b5306b7"
+        "revision": "6d81f0fa3e26"
     }, 
     "ga-IE": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -562,77 +562,77 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "8bc0ee88f8e4"
+        "revision": "9a6a8fbce341"
     }, 
     "gn": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "167edee56dd9"
+        "revision": "885b1962b2d5"
     }, 
     "gu-IN": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "7dedf17945c4"
+        "revision": "dca225bbefbe"
     }, 
     "he": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "ea16cf5f16f2"
+        "revision": "9eeb0e1e0156"
     }, 
     "hi-IN": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "3c7ec3f44d98"
+        "revision": "7f184e254c61"
     }, 
     "hr": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -652,17 +652,17 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "3069b1947c4b"
+        "revision": "20a3c6f9dfa7"
     }, 
     "hu": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -697,127 +697,127 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "f143b4383cc9"
+        "revision": "22dc34ce9463"
     }, 
     "id": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "1103a8354004"
+        "revision": "a7535ecc925a"
     }, 
     "is": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "fdf6560b09e4"
+        "revision": "ae514e67f7b6"
     }, 
     "it": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "34e913cd5454"
+        "revision": "b2a4b233d201"
     }, 
     "ja": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "7e8d0fcd5ebb"
+        "revision": "5ba864c5339f"
     }, 
     "ja-JP-mac": {
         "platforms": [
             "macosx64", 
             "macosx64-devedition"
         ], 
-        "revision": "362ee42fc3ad"
+        "revision": "ab2ad877aa3a"
     }, 
     "ka": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "aeb241ed081f"
+        "revision": "dcb0274cb206"
     }, 
     "kab": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "18c28ca4ab61"
+        "revision": "c89b3adee8a3"
     }, 
     "kk": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "5bc5a5fe56f1"
+        "revision": "5d32adbda172"
     }, 
     "km": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -852,47 +852,47 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "c218057c6183"
+        "revision": "1eb47d443011"
     }, 
     "lij": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "d160a233f5db"
+        "revision": "4f8107ef9dc0"
     }, 
     "lt": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "96b8209b3dad"
+        "revision": "a45848a6799a"
     }, 
     "lv": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -972,17 +972,17 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "bfeda262dbe5"
+        "revision": "2ae58018c473"
     }, 
     "my": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1002,17 +1002,17 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "83cf0a81d746"
+        "revision": "8f521cc6b3df"
     }, 
     "ne-NP": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1032,47 +1032,47 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "1a809d479e5d"
+        "revision": "69a5d79042bc"
     }, 
     "nn-NO": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "7e6490f0c36a"
+        "revision": "83ed7e420099"
     }, 
     "oc": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "760a7237206c"
+        "revision": "0dc4c1d3a26a"
     }, 
     "or": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1092,62 +1092,62 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "dc480235f737"
+        "revision": "5e2e96c7b917"
     }, 
     "pl": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "9865311ac24e"
+        "revision": "c4014b5cccfa"
     }, 
     "pt-BR": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "d1202b7fdcd5"
+        "revision": "e8c3c39876ac"
     }, 
     "pt-PT": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "ca1a896cf366"
+        "revision": "0ae50cbbeec3"
     }, 
     "rm": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1167,32 +1167,32 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "dc912319788c"
+        "revision": "71c8cf8f7cae"
     }, 
     "ru": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "dac25bad8775"
+        "revision": "fd2ab9534e6b"
     }, 
     "si": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1212,32 +1212,32 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "8bbb3bb07e0d"
+        "revision": "fd9e45f4618c"
     }, 
     "sl": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "38b6debc565f"
+        "revision": "53146042d6d8"
     }, 
     "son": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1272,107 +1272,107 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "fb965a54464f"
+        "revision": "50ba892d492d"
     }, 
     "sv-SE": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "2cae4a987365"
+        "revision": "7dadfa5a89c3"
     }, 
     "ta": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "bdede914ca35"
+        "revision": "450b1ce51eb5"
     }, 
     "te": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "abf31de646b6"
+        "revision": "a6b69118f3be"
     }, 
     "th": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "447865643017"
+        "revision": "0c46375f5352"
     }, 
     "tr": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "5e196bd50ada"
+        "revision": "7e555e100443"
     }, 
     "uk": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "d707a9890564"
+        "revision": "ded2ffb46089"
     }, 
     "ur": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1392,32 +1392,32 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "186290df1e16"
+        "revision": "afba28898693"
     }, 
     "vi": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "4a076e8614f4"
+        "revision": "90f53282a17b"
     }, 
     "xh": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
@@ -1437,26 +1437,26 @@
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "440ff2c35327"
+        "revision": "d29c167a74f1"
     }, 
     "zh-TW": {
         "platforms": [
             "linux", 
             "linux-devedition", 
             "linux64", 
             "linux64-devedition", 
             "macosx64", 
             "macosx64-devedition", 
             "win32", 
             "win32-devedition", 
             "win64", 
             "win64-devedition"
         ], 
-        "revision": "9a819385afb8"
+        "revision": "ab07b948cb89"
     }
 }
--- a/browser/modules/ContentSearch.jsm
+++ b/browser/modules/ContentSearch.jsm
@@ -334,16 +334,17 @@ var ContentSearch = {
       let iconBuffer = uri;
       if (!uriFlag) {
         iconBuffer = await this._arrayBufferFromDataURI(uri);
       }
       state.engines.push({
         name: engine.name,
         iconBuffer,
         hidden: hiddenList.includes(engine.name),
+        identifier: engine.identifier
       });
     }
     return state;
   },
 
   _processEventQueue() {
     if (this._currentEventPromise || !this._eventQueue.length) {
       return;
--- a/browser/modules/test/browser/browser_ContentSearch.js
+++ b/browser/modules/test/browser/browser_ContentSearch.js
@@ -369,16 +369,17 @@ var currentStateObj = async function() {
     currentEngine: await currentEngineObj(),
   };
   for (let engine of Services.search.getVisibleEngines()) {
     let uri = engine.getIconURLBySize(16, 16);
     state.engines.push({
       name: engine.name,
       iconBuffer: await arrayBufferFromDataURI(uri),
       hidden: false,
+      identifier: engine.identifier,
     });
   }
   return state;
 };
 
 var currentEngineObj = async function() {
   let engine = Services.search.currentEngine;
   let uriFavicon = engine.getIconURLBySize(16, 16);
--- a/browser/themes/osx/customizableui/panelUI.css
+++ b/browser/themes/osx/customizableui/panelUI.css
@@ -11,17 +11,17 @@
 .subviewbutton {
   padding-inline-start: 18px;
 }
 
 .subviewbutton.download {
   padding-inline-start: 14px;
 }
 
-panelmultiview .toolbaritem-combined-buttons > spacer {
+panelmultiview .toolbaritem-combined-buttons > spacer.before-label {
   width: 42px; /* 18px toolbarbutton padding + 16px icon + 8px label padding start */
 }
 
 #appMenu-addon-banners > .addon-banner-item,
 #appMenu-mainView > .panel-subview-body > .panel-banner-item {
   padding-inline-start: 18px;
 }
 
--- a/browser/themes/shared/incontentprefs/preferences.inc.css
+++ b/browser/themes/shared/incontentprefs/preferences.inc.css
@@ -891,8 +891,14 @@ menulist[indicator=true] > menupopup men
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
 }
 
 .no-results-message[query*=🔥🦊] > .no-results-container {
   visibility: hidden;
 }
+
+/* Proxy port input */
+
+.proxy-port-input {
+  width: calc(5ch + 22px); /* 5 chars + 11px padding on both sides */
+}
--- a/build/pgo/certs/README
+++ b/build/pgo/certs/README
@@ -1,16 +1,31 @@
-The certificate authority and server certificates here are generated by $topsrcdir/build/pgo/genpgocert.py.
+The certificate authority and server certificates here are generated by
+$topsrcdir/build/pgo/genpgocert.py.
+
+You can regenerate the certificates by running: ./mach python
+build/pgo/genpgocert.py
+
+To add a new CA, add a ${cert_name}.ca.keyspec as well as a corresponding
+${cert_name}.certspec to this folder.
 
-You can generate a new CA cert by running:
-./mach python build/pgo/genpgocert.py --gen-ca
+To add new server certificates, add a ${cert_name}.certspec file to this folder.
+If it needs a non-default private key, add a corresponding
+${cert_name}.server.keyspec.
 
-You can generate new server certificates by running:
-./mach python build/pgo/genpgocert.py --gen-server
+For new client certificates, add a ${cert_name}.client.keyspec and corresponding
+${cert_name}.certspec.
+
+The naming convention here is because the generated ".client" and ".ca" PEM
+files need to be copied into this folder for Mochitests' runtests.py to import.
 
 These commands will modify cert9.db and key4.db. The changes to these should be
 committed.
 
-WARNING: These commands do not recreate all necessary certificates; some are
-mentioned only on their tests. Before completely replacing these DBs, you should
-be careful that you include all the correct certificates. Or fix genpgocert.py
-to create the correct certs. See bug 1441338.
+Specific notes for certs:
 
+  dynamicPinningGood: Changing this keyspec will require changing
+  browser/base/content/test/general/pinning_headers.sjs . You can obtain a new
+  valid pin via:
+
+  certutil -L -d . -n dynamicPinningGood -r | openssl x509 -inform der -pubkey \
+  -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary \
+  | openssl enc -base64
--- a/build/pgo/certs/alternateroot.ca
+++ b/build/pgo/certs/alternateroot.ca
@@ -1,18 +1,18 @@
------BEGIN CERTIFICATE-----
-MIIC2jCCAcKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDExtBbHRl
-cm5hdGUgVHJ1c3RlZCBBdXRob3JpdHkwHhcNMTQwOTI1MjEyMTU0WhcNMjQwOTI1
-MjEyMTU0WjAmMSQwIgYDVQQDExtBbHRlcm5hdGUgVHJ1c3RlZCBBdXRob3JpdHkw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBT+BwAhO52IWgSIdZZifU
-9LHOs3IR/+8DCC0WP5d/OuyKlZ6Rqd0tsd3i7durhQyjHSbLf2lJStcnFjcVEbEn
-NI76RuvlN8xLLn5eV+2Ayr4cZYKztudwRmw+DV/iYAiMSy0hs7m3ssfX7qpoi1aN
-RjUanwU0VTCPQhF1bEKAC2du+C5Z8e92zN5t87w7bYr7lt+m8197XliXEu+0s9Rg
-nGwGaZ296BIRz6NOoJYTa43n06LU1I1+Z4d6lPdzUFrSR0GBaMhUSurUBtOin3yW
-iMhg1VHX/KwqGc4als5GyCVXy8HGrA/0zQPOhetxrlhEVAdK/xBt7CZvByj1Rcc7
-AgMBAAGjEzARMA8GA1UdEwQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAJq/
-hogSRqzPWTwX4wTn/DVSNdWwFLv53qep9YrSMJ8ZsfbfK9Es4VP4dBLRQAVMJ0Z5
-mW1I6d/n0KayTanuUBvemYdxPi/qQNSs8UJcllqdhqWzmzAg6a0LxrMnEeKzPBPD
-6q8PwQ7tYP+B4sBN9tnnsnyPgti9ZiNZn5FwXZliHXseQ7FE9/SqHlLw5LXW3YtK
-juti6RmuV6fq3j+D4oeC5vb1mKgIyoTqGN6ze57v8RHi+pQ8Q+kmoUn/L3Z2YmFe
-4SKN/4WoyXr8TdejpThGOCGCAd3565s5gOx5QfSQX11P8NZKO8hcN0tme3VzmGpH
-K0Z/6MTmdpNaTwQ6odk=
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC+zCCAeOgAwIBAgIUb/+pohOlRCuQgMy2GJLCUQq+HeMwDQYJKoZIhvcNAQEL
+BQAwJjEkMCIGA1UEAwwbQWx0ZXJuYXRlIFRydXN0ZWQgQXV0aG9yaXR5MCIYDzIw
+MTAwMTAxMDAwMDAwWhgPMjA1MDAxMDEwMDAwMDBaMCYxJDAiBgNVBAMMG0FsdGVy
+bmF0ZSBUcnVzdGVkIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMF1xlJmCZ93CCpnkfG4dsN/XOU4sGxKzSKxy9RvplraKt1ByMJJisSj
+s8H2FIf0G2mJQb2ApRw8EgJExYSkxEgzBeUTjAEGzwi+moYnYLrmoujzbyPF2YMT
+ud+vN4NF2s5R1Nbc0qbLPMcG680wcOyYzOQKpZHXKVp/ccW+ZmkdKy3+yElEWQvF
+o+pJ/ZOx11NAXxdzdpmVhmYlR5ftQmkIiAgRQiBpmIpD/uSM5oeB3SK2ppzSg3UT
+H5MrEozihvp9JRwGKtJ+8Bbxh83VToMrNbiTD3S6kKqLx2FnJCqx/W1iFA0YxMC4
+xo/DdIRXMkrX3obmVS8dHhkdcSFo07sCAwEAAaMdMBswCwYDVR0PBAQDAgEGMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAAS+qy/sIFV+oia7zsyFhe3X
+j3ZHSvmqJ4mxIg5KOPVP2NvDaxD/+pysxGLf69QDRjIsePBdRJz0zZoVl9pSXIn1
+Kpk0sjzKX2bJtAomog+ZnAZUxtLzoXy/aqaheWm8cRJ8qFOJtSMDRrLISqBXCQLO
+ECqXIxf3Nt3S+Riu2Pam3YymFdtmqUJvLhhekWtEEnXyh/xfAsoUgS3SQ27c4dCY
+R7XGnFsaXrKXv93QeJmtfvrAZMXEuKaBGPSNHV6QH0S0Loh9Jed2Zp7GxnFtIPYe
+J2Q5qtxa8KD/tgGFpAD74eMBdgQ4SxbA/YqqXIt1lLNcr7wm0cPRpP0vIY3hk8k=
+-----END CERTIFICATE-----
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/alternateroot.ca.keyspec
@@ -0,0 +1,1 @@
+alternate
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/alternateroot.certspec
@@ -0,0 +1,7 @@
+issuer:Alternate Trusted Authority
+subject:Alternate Trusted Authority
+validity:20100101-20500101
+extension:keyUsage:keyCertSign,cRLSign
+extension:basicConstraints:cA,
+issuerKey:alternate
+subjectKey:alternate
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/bug413909cert.certspec
@@ -0,0 +1,3 @@
+subject:bug413909.xn--hxajbheg2az3al.xn--jxalpdlp
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+extension:subjectAlternativeName:bug413909.xn--hxajbheg2az3al.xn--jxalpdlp
index 023644e48df7b605e69d62ce8645184a27ed80f4..dff0b7ef1e7c815d0568d95ad919ebe7b449df1a
GIT binary patch
literal 229376
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
z+o9v!cIf=w_<C5&0xv7-5WTbN^Omo@ZgKgvPapH0XU^<zwWALl{2^3#-{`k1$yt;;
zO%qKIOq?90&62T;sd+@tPW!ly_4dt4=3$?SQ_k!?&Ga2o*@x4A)3cQOO0je9R^jhc
zDf|_#8dIxk@r=36fjbY>8V{Q~;5gHN9Gx+4sG(8F{d1($H8(9vj)a>Zz1zQV<-vnW
z3hY^P$}Lv-x=l?oAwMv^JuymW*>sagZ}URN?Mc%=`-FeEe`?ng7A@LfLUjDfhL|-v
zw>O`h$ygL|>!WE+2H#wZe;4mj5?-WIKZ1V*f8yxO-VyZ$ZpE{L%tBsqoeSh&+MbZ@
zyLA)Ev!Y%Ff8eFu%Ny5bp=V#$N335uJvxm3io$l-^5<g&?*vZ;cLi4jrv--uje^aB
zHG*2f9Klq<I6<*sq+o;~MG!9-B<L#$5_A_31@;2GKu@45km0xRU-BRFZ}89akMZ~N
zxAWKYmkSpM0000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000N}q)9w&`e@-b+!6(xuz=WRp@
z*KY3CqJ&cqYb!~@%2JfDkGN_fNn9}(C2Twj@sdP=nJ8fyJkC^-7;7R*;K^5wC5bCW
zqJ&9CsG%egVjxNwR><m05;A(CgdVe0SCS~v5hb)MCTU9&6SYJMjTM(PC5ej~qJ(Ox
zo4O=HR1+nXYI>?l5<OHz33;x*vLvCWBudB>TvwDNt|^ETQjGWVlEgbXG@<x8Ge}mF
z2$T^eT6$lVmL#s=M2YwAF;a3kX$4_okfN}MZ8;<i$B)yUL&_@7O6KNs$s95#IIBmN
zPWGDY;!J7YIqqKWOu=}834b}?JAYq(bgtgWMI+sEcIEWXzLKqxRg<|Olfa{KUvi#u
z^7B}^WnF#D0000000000000000000000000000000000000000000000000000000
z000000000000000000000000000000004llC5^*iZPAGhI<Ypwb;BY$1T92E78fmz
zQ&x;-rZHJrOnjif)nDXUj*u>-Vv$sW9bzNO)G`}LOV41j$?P0_AdStXC($WnE)DO`
z<EF6KbZ!noAJIiiDr%|qWsRgW7-alF8iz|~CKId>3p7Vb%P4})N}@Ap_z)hQN~7ZY
zXK?B1^pRvPoyD~H<7+hki}vIHBG1eT7l%b`zN`eNY~;`2(%4LN;|8*M9IkLZUpLb9
zR|=c_@jfvA<7+hfl@2ldmBI#pye;~Fe2sc`xPe&2f`CU%#T}x@p)r!2IrL;Ejp{<n
zCZ}gGXf701y6(>w)cK1eUHdQcwElS8HUIb;HGbvrQ~#C1YJa>fs(*ZqDt~;9%71)~
zN`HKfihq2K3WZeZ;&3cdc$uJtD4^wKwWOk>zC4lFk_z-E=px$a6FDuFzAPS-OQtjN
zgXpv@f+b=uUbo?wbvxsO2jQu-L|!tUE8GlWC?S|2M&ixTj-pX`=r-ennaOk}jmAc|
zl7zU6Tk0&VDcN+qop3GaS(U|Nb5nBcg^O`zlGACvv`lAovCb4S!3lAYRd6T?EqSYg
zRlw?+P*TWj2ANA{`f<ez`8E#9|DR~3+#f%BWdHaYW&ZdYrT_REaesV`QW?TED*Vw%
zCww(yo12Rf926`NjNq5>2k?>nXZbtwC+D;CgYpgYj^_=@GtRxA+mJgsKa1}nSdzOt
z-z<Md?u`7f{3bzW?qhz8;8>n{{_DImdBgc*bI0Zu3l|3f00000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000006+RlEZ0Y7hz&;B|mK>Kdq&47_5~IE&_|-38sj#=<k3l>q!1aJ&pS9Uz)c>
z%UW3C!m)@6!3Z%Bm(}E?kO?%}w*}47f_N8P0v53&*dSKof+k-V>P*YdptIXA+zhQ_
z>WO1x5dy&#aTeFHp))BA9+l?I;U!X8>0~;S<B~yVGU?3ZZ!4Rim5u-SA5b?!S8Es~
zU8smfd<oqVZ}CPG6UkJU&Ntkdn!_Zg(<$FJzyMv6z7?(y7BM9lBZlGyX?4&~dT2>q
zJKR7lVnM(ors9%%92z6ZnL|%zwlA%Nmew}Hb;BY$1T92ETv{=jnZ{&gG4X-^T4(`H
zYg|7pVn#4QjKl@Bh5MA~L2AEOHPE8!PPjNMV)LbcaLPvh3@(k$MEiB1c<;9LuNqoI
zwHq!Qi?|br2qLawpU6vgC%Abd-Y(fpXXlh`a%y4<EtyCj=|*OVW~FA685vYYh6-9=
z*%;@8MRW<;h^Dx{(l^_rgqBeJ;YiEM%5q60Gt&rY8I1TD)j64$gFaV4>&O>UrHh3J
za^Yoy5~6@slhu-nj{5RMUP~&_pP-9qqfg|tRQj@n2d{7^;s?=bSp-YOTzuFVemQKM
z@xg=eRGP45c&_jW5_asD&Q#LUj-pX`Xm{X)naOk}jmAa~FcRV}K1iK~H6=$K-cE9g
zWU<)XlpK5EVqArX3eA_6>5MMcnL;KwAr7(%4ke)_Z&k1gSX~oJ3YpCybID9Uu6QBe
z?lL*Fsj@%pGRXnx+`*Y7gVvBX$MwP@Mg#*yPh3O2FN=~w7qyJSpwpOK99m2Y!6hjm
zjs$zeR@@YPSbDm!flMwV2OmV|NX~X)v(X1v*aM2fKxE6;#t7U5efb*%YX$j&>HJfI
zdx8`E1%hP$J$|@AhhM^P<-7Bf1lI%y1j_{D1w28#AXwliP~pGfU*jL*ujE(p`TXJh
z0KOC7if=4j8~^|S00000000000000000000000000000000000000000000000000
z0000000000000000000000000000000000000000008_?ki%(W7hz&;B|mK>KdmJ{
ztyFNPSRPaIx8yA)b1k%R4p>eKnGjE7QiTunkIS1&^6+{%Vp|O|lS<3ZptEUIGfBRw
zHqHsl;gY#@N(7zBq%)HP$W#+arm+G}7n_mHqL7Uwa}0HGE?8;~lbrr-c>_tVz7oz5
zD_Mb_WS*`n4v*!~7)cy@GLuHtk<8XcXY-h8OjZ^%o<i1=%+^GgFKi0YgY->fG$gs|
z8aNv)nZc#8nPlOF#p0?-a#YcrL|(Ex!Oa`-rqI}26-kaV+GWBvaA@pI8e2&+R}n2w
z<50*MG%}Y<rlb)RBsub$I6EvYlg<>bAe}~~3s)p3$&%H@A>TDVgvFxDNV28THKnsC
zDReH4!^KJFO6lWB3iR}JI#bvdMov7H&XMd4MdALo&7Xx4+!E{&)C$T3X@b52SAhoq
zCI1Y66MrT@mp_c(lW)$)<=+wL@(cJu`G*Df1qTHy1Q~(>0(bs9{zd*a{v3WH--a)r
z|1f`@pi;Ov0000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000QfJ`$GKxChtD~oucEwkYTEf)
z)z#B(`$o!~vPCoUa<}yuHO>0jwpxL6uap}p9?RD_+MpSv<eKe`_i-(+3k|SOD$A`e
z7pf#!OXDzDtIn!fqPZ5G<(i|p_|9_8&|K5b)@y?18h2LL2+cL@tgZo?tKV5&Jv3Lh
zvs@iCSG%)ZEi_lNvs?`{SG}{XQbTi9JFBaL<|=oVtAyq%c9yGv=E`@r&*jiu+0N?9
Upt;hW<>Js>DLtIKLPxp(4++`IRsaA1
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/dynamicPinningBad.certspec
@@ -0,0 +1,5 @@
+subject:bad.include-subdomains.pinning-dynamic.example.com
+issuer:Alternate Trusted Authority
+extension:subjectAlternativeName:bad.include-subdomains.pinning-dynamic.example.com
+subjectKey:alternate
+issuerKey:alternate
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/dynamicPinningBad.server.keyspec
@@ -0,0 +1,1 @@
+alternate
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/dynamicPinningGood.certspec
@@ -0,0 +1,3 @@
+subject:dynamic-pinning.example.com
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+extension:subjectAlternativeName:*.include-subdomains.pinning-dynamic.example.com,*.pinning-dynamic.example.com
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/escapeattack1.certspec
@@ -0,0 +1,3 @@
+subject:www.bank1.com\00www.bad-guy.com
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+extension:subjectAlternativeName:www.bank1.com\00www.bad-guy.com
--- a/build/pgo/certs/evintermediate.ca
+++ b/build/pgo/certs/evintermediate.ca
@@ -1,34 +1,26 @@
------BEGIN CERTIFICATE-----
-MIIF9zCCBN+gAwIBAgIBAzANBgkqhkiG9w0BAQUFADCB4TELMAkGA1UEBhMCVVMx
-CzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MSMwIQYDVQQKExpN
-b3ppbGxhIC0gRVYgZGVidWcgdGVzdCBDQTEdMBsGA1UECxMUU2VjdXJpdHkgRW5n
-aW5lZXJpbmcxJjAkBgNVBAMTHUVWIFRlc3RpbmcgKHVudHJ1c3R3b3J0aHkpIENB
-MRMwEQYDVQQpEwpldi10ZXN0LWNhMSwwKgYJKoZIhvcNAQkBFh1jaGFybGF0YW5A
-dGVzdGluZy5leGFtcGxlLmNvbTAeFw0xMzAyMTQxNzU5MDlaFw0yMzAyMTIxNzU5
-MDlaMIHRMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50
-YWluIFZpZXcxIzAhBgNVBAoTGk1vemlsbGEgLSBFViBkZWJ1ZyB0ZXN0IENBMR0w
-GwYDVQQLExRTZWN1cml0eSBFbmdpbmVlcmluZzEWMBQGA1UEAxMNaW50ZXJtZWRp
-YXRlMzETMBEGA1UEKRMKZXYtdGVzdC1jYTEsMCoGCSqGSIb3DQEJARYdY2hhcmxh
-dGFuQHRlc3RpbmcuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDAfzrlJdawr7v8m7lslODk5FTqCiBO7tPxnWhAOEL5g05knLTZTc5J
-3ywmGoW6ae6RwPlWuqRuFd2Ea+yCawyjkUoLOpFH/xziDzvaS6LXNdJoxQqWk/LX
-8YYQVFfmxh8E11fz74IoCzX++mY1byaNONf3bLU2HU8vnVvENr1gy9Bzpm8wUuKm
-HkBYuG0SVzaeym2H/mo5PJICPVhPa+YxfEVS8EIFCigXGH7xrz/bPXnpfgsSJTnN
-4amBNkORfjf7H9x6IWkJGEkIvkVoYKT4iQ9q6/C4YDjWa9p5lA4F/qxnJefezH/I
-6hcqEODSaDsY+I6vsN8ks8r8MTTnd7BjAgMBAAGjggHGMIIBwjAdBgNVHQ4EFgQU
-fluXMAT0ZS21pV13vv46m8k7nRkwggEYBgNVHSMEggEPMIIBC4AUyJg651hwk+3B
-V0rQvQZv9n2bWPahgeekgeQwgeExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEW
-MBQGA1UEBxMNTW91bnRhaW4gVmlldzEjMCEGA1UEChMaTW96aWxsYSAtIEVWIGRl
-YnVnIHRlc3QgQ0ExHTAbBgNVBAsTFFNlY3VyaXR5IEVuZ2luZWVyaW5nMSYwJAYD
-VQQDEx1FViBUZXN0aW5nICh1bnRydXN0d29ydGh5KSBDQTETMBEGA1UEKRMKZXYt
-dGVzdC1jYTEsMCoGCSqGSIb3DQEJARYdY2hhcmxhdGFuQHRlc3RpbmcuZXhhbXBs
-ZS5jb22CCQCvxT0iZiZJMjAMBgNVHRMEBTADAQH/MDYGA1UdHwQvMC0wK6ApoCeG
-JWh0dHA6Ly9leGFtcGxlLmNvbS9yb290LWV2LXRlc3Rlci5jcmwwPwYDVR0gBDgw
-NjA0BgRVHSAAMCwwKgYIKwYBBQUHAgEWHmh0dHA6Ly9teXRlc3Rkb21haW4ubG9j
-YWwvY3BzOzANBgkqhkiG9w0BAQUFAAOCAQEAC4grNTV5K8yqiAJ/0f6oIkTMqyJ4
-lyHXvvKXMHTpRZ7Jdy0aq5KTSHswx64ZRN7V2ds+czzDWgxX3rBuZZAgOW1JYva3
-Ps3XRYUiaTW8eeaWjuVRFAp7ytRmSsOGeOtHbez8jDmTqPRQ1mTMsMzpY4bFD8do
-5y0xsbz4DYIeeNnX9+XGB5u2ml8t5L8Cj65wwMAx9HlsjTrfQTMIwpwbNle6GuZ3
-9FzmE2piAND73yCgU5W66K2lZg8N6vHBq0UhPDCF72y8MlHxQOpTr3/jIGr4X7k9
-uyYq0Pw5Y/LKyGbyW5iMFdLzabm1ua8IWAf7DSFMH6L3WlK8mngCfJ1icQ==
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEfDCCA2SgAwIBAgIUETbLA86peOWkUFhyKYIuZVGUEygwDQYJKoZIhvcNAQEL
+BQAwgdwxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRh
+aW4gVmlldzEjMCEGA1UEChMaTW96aWxsYSAtIEVWIGRlYnVnIHRlc3QgQ0ExHTAb
+BgNVBAsTFFNlY3VyaXR5IEVuZ2luZWVyaW5nMTYwNAYDVQQDEy1FViBUZXN0aW5n
+ICh1bnRydXN0d29ydGh5KSBDQS9uYW1lPWV2LXRlc3QtY2ExLDAqBgkqhkiG9w0B
+CQEWHWNoYXJsYXRhbkB0ZXN0aW5nLmV4YW1wbGUuY29tMCIYDzIwMTAwMTAxMDAw
+MDAwWhgPMjA1MDAxMDEwMDAwMDBaMIHcMQswCQYDVQQGEwJVUzELMAkGA1UECBMC
+Q0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxIzAhBgNVBAoTGk1vemlsbGEgLSBF
+ViBkZWJ1ZyB0ZXN0IENBMR0wGwYDVQQLExRTZWN1cml0eSBFbmdpbmVlcmluZzE2
+MDQGA1UEAxMtRVYgVGVzdGluZyAodW50cnVzdHdvcnRoeSkgQ0EvbmFtZT1ldi10
+ZXN0LWNhMSwwKgYJKoZIhvcNAQkBFh1jaGFybGF0YW5AdGVzdGluZy5leGFtcGxl
+LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALVJiVydABCNEaH5
+n4ep49Gl21367PGI2le/ZBNojyzkciz/EJA4wXQCyToqRz29KGrtP9zTY89aKRR3
+Ab3YGNdhW/k1a9XTyDNqqowJcTaKBsPNRGG5PlFCThdEuy6q1GqrOM4ZaCGWH4dx
+ShZjaT8JdhzfTWuhJerOx74nDTiPeJ9s33iuMUTtKMReeSk4Y6eiKkiYCjakDnLV
+ecm5Jd/4x5M2L/1ol6fBdUxel8lnw+rdGq6KoszONIoBabgOKKLXDBqWDG8zXy2g
+m5tkP1q/uknoqqmB6WDifYdIC91V3ZQX+hhQn7tVTM+BpDl+i6gSijS98nhlwYnl
+c0+yKQUCAwEAAaMwMC4wCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wEQYDVR0g
+BAowCDAGBgRVHSAAMA0GCSqGSIb3DQEBCwUAA4IBAQArG5slgBRJuytlKFa4qcHW
+pAOfjN9fwi57fDds1yNv6tXhESdkbVPhIgw+GanVbrVcorGdCkfB51+dPJM+cBgH
+HSwEB7TQnNYvm/csA1zH4n+CnX9nBL7dwK63n6dyR9f1uvu6KSB+YJm3amKil85a
+d7HeDWdh+gNhC58lEC2QzuOMivP593aS5vLJHfp8pjc21XJkO8M7SRw44OJKYq9/
+v0k6v4SznbfZzSLg3gM4aSNuCLExUtUY2myxPFwJs9QQ4xx5zJTjJTRlpxUm630Z
+n4IYlseao949U+UbBNU4PZKH7dzSQzfhdFJpvK3dsPOPNnHYiXO0xAhsEvvjq8zQ
+-----END CERTIFICATE-----
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/evintermediate.ca.keyspec
@@ -0,0 +1,1 @@
+ev
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/evintermediate.certspec
@@ -0,0 +1,7 @@
+issuer:printableString/C=US/ST=CA/L=Mountain View/O=Mozilla - EV debug test CA/OU=Security Engineering/CN=EV Testing (untrustworthy) CA/name=ev-test-ca/emailAddress=charlatan@testing.example.com
+subject:printableString/C=US/ST=CA/L=Mountain View/O=Mozilla - EV debug test CA/OU=Security Engineering/CN=EV Testing (untrustworthy) CA/name=ev-test-ca/emailAddress=charlatan@testing.example.com
+subjectKey:ev
+validity:20100101-20500101
+extension:keyUsage:keyCertSign,cRLSign
+extension:basicConstraints:cA,
+extension:certificatePolicies:any
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/expired.certspec
@@ -0,0 +1,4 @@
+subject:expired.example.com
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+extension:subjectAlternativeName:expired.example.com
+validity:20100105-20100106
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/imminently_distrusted.certspec
@@ -0,0 +1,4 @@
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+subject:printableString/CN=Imminently Distrusted End Entity
+validity:20100101-20500101
+extension:subjectAlternativeName:imminently-distrusted.example.com
deleted file mode 100644
--- a/build/pgo/certs/jartests-object.ca
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICTTCCAbagAwIBAgIBADANBgkqhkiG9w0BAQUFADBaMRMwEQYDVQQLEwpVbml0
-IFRlc3RzMRgwFgYDVQQKEw9Nb3ppbGxhIFRlc3RpbmcxKTAnBgNVBAMTIFNpZ25l
-ZCBKQVIgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA5MDExNTE0MDkwM1oXDTM0
-MDExNTE0MDkwM1owWjETMBEGA1UECxMKVW5pdCBUZXN0czEYMBYGA1UEChMPTW96
-aWxsYSBUZXN0aW5nMSkwJwYDVQQDEyBTaWduZWQgSkFSIENlcnRpZmljYXRlIEF1
-dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsQd8eUw4WSK7YoKl
-hqe+CjEgI5Rs3TirWtDsfmMtMBmTvRhJpdTeMAFTpWvlOPuXJwkKXMMFLxE8ayNX
-fO5ixCgJ7LrpguOVZ3pY4RvEyE6yh3Hv81Ztblbo120IdcrkyN4KMs5EgeauDllU
-ehhbq9lmnmQxIQs3KPcoMteqAXcCAwEAAaMjMCEwEQYJYIZIAYb4QgEBBAQDAgAH
-MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAAZHhPT133TcavAKnn37X
-0VE9davrX7t20CLb06KYpgkg7yO0BjIjTnYeJBQgaH652pZVEFT7dbi0JTn4BMXz
-EwOQ2JjzjwNUDHpWAopiCKxAnjwy/kGcZfkKUydwQHKr8m1Faywu1Cyrj0gBHClL
-b2b9ywK4pb545mE6V9pi1zg=
------END CERTIFICATE-----
index e5c08aafc61b2f6eaf5f3657b7210c73faf245f5..daedff91f957b276dba44e71e4ae4ecf232fb223
GIT binary patch
literal 294912
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
zs`AuKvAJf6<Bv;^Z2ro9<vhRngyR>{bmHJ|4_~`QU86@NH1Rv{U(1a_kV!@m)A2lE
z+mZ97VJ=8P_T2}IuaA|@PgE?{?B{w%+~nFEue&7CG7zRRFqV;);j^o}!0~;}HTo5w
z$4W%uJs#;v*U4-f%Fetywa|?&<_ZibeVN>b^l0iu3#3|{GAlL5e5g{0e?syK>9M(e
z^8cUS*$D{9oBwyu+yDRo0QkRxYU_<SbebS^HT2WgI{*Lx00000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z000000002s|6vrwB!txRd%h8GuZTqs6Oj{>P*MxaiBoMoN*wxyAao;iW$PUP00000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000PsHq2{8d7@y`VjF);xpRp=lAafmuWh<d1P$l3qf
z*#H0l000000000000000000000000000000000000000000000000000000000000
z000000000000000000000000000000007{>IVoZ<N)b^}VG%(xViOW#n*Gl1cCNnm
zXhCmZTYC>Tl(W0Hkf*b|yR*Ba5IO+m=IM$Svh#4m*pq~76N+HQM5#q6f9^@fNMvI4
z#|;WbB2^VpW)Y^JH^>=jk9qjI`)mz`Fm*=zi*ku@{=A=xk@c9z8E02l6haW8Zi=u+
z+xj{pe9+!Lh^?JDMA&|AM9s)#gtqhba`p*CsJlBlyQ9%wTTw)%L?pKJG74_(X}q=1
z)}096t!MG__4e`i@bYmA<l7oX*d67DRzUj+{v1}&4kda}grAI(KT<Ptg_e+#keS2I
z3FYOA@<F*P`}`W@-#<v=(<B&sLJ=2HUXlI3o^78o+Rf9$3*{AvP(^$BI6FAop?uH?
z6<;4GkDnPucZ)Fp`q=3I_}KmxPLx{&`RfB>)A#alaCSu_G<==y(e?;EPakJD=QAiD
zXAgIxts`;}-$O?g`iX!z^d3QIf9Tt-cK`qY000000000000000000000000000000
z0000000000000000000000000000000000000000000000000000000000000002M
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
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/mochitest.certspec
@@ -0,0 +1,3 @@
+subject:Mochitest client
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+serialNumber:3
index 5d72cd2b739b3127724e12d63c0c7e79c62666ed..124d04377341d01a30d7cdac4822937e2f310de3
GIT binary patch
literal 2448
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
F{{}8WdprOD
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/mochitest.client.keyspec
@@ -0,0 +1,1 @@
+default
--- a/build/pgo/certs/pgoca.ca
+++ b/build/pgo/certs/pgoca.ca
@@ -1,15 +1,21 @@
 -----BEGIN CERTIFICATE-----
-MIICXTCCAcagAwIBAgIBATANBgkqhkiG9w0BAQUFADBqMSQwIgYDVQQLExtQcm9m
-aWxlIEd1aWRlZCBPcHRpbWl6YXRpb24xGDAWBgNVBAoTD01vemlsbGEgVGVzdGlu
-ZzEoMCYGA1UEAxMfVGVtcG9yYXJ5IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0w
-ODA1MjIwMDM4MDVaFw0xODA1MjIwMDM4MDVaMGoxJDAiBgNVBAsTG1Byb2ZpbGUg
-R3VpZGVkIE9wdGltaXphdGlvbjEYMBYGA1UEChMPTW96aWxsYSBUZXN0aW5nMSgw
-JgYDVQQDEx9UZW1wb3JhcnkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIGfMA0GCSqG
-SIb3DQEBAQUAA4GNADCBiQKBgQDg6iipAXGZYmgTcHfx8M2hcLqmqDalcj7sZ1A7
-a3LiCBb+1uHKKy9hUxRUe61aJF4NgMAF5oc+HpXN0hpvkiNHxqqD7R6hrkP3gAJ3
-eczEFKsFUI6AqaCL0+xpyhaaZmmarcHxU+PL2h5zq6VssxfBAsO0DkzWzk6E8vM+
-jrku7QIDAQABoxMwETAPBgNVHRMECDAGAQH/AgEAMA0GCSqGSIb3DQEBBQUAA4GB
-ALPbn3Ztg0m8qDt8Vkf5You6HEqIxZe+ffDTrfq/L7ofHk/OXEpL7OWKRHU33pNG
-QS8khBG+sO461C51s6u9giW+eq2PaQv2HGASBpDbvPqc/Hf+zupZsdsXzHv6rt0V
-lu5B6nOpMse1nhA494i1ARSuBNzLv5mas38YWG8Rr6jR
+MIIDgzCCAmugAwIBAgIUQx5pxD+JMg1qPztfSg1Ucw8xsz0wDQYJKoZIhvcNAQEL
+BQAwajEoMCYGA1UEAxMfVGVtcG9yYXJ5IENlcnRpZmljYXRlIEF1dGhvcml0eTEY
+MBYGA1UEChMPTW96aWxsYSBUZXN0aW5nMSQwIgYDVQQLExtQcm9maWxlIEd1aWRl
+ZCBPcHRpbWl6YXRpb24wIhgPMjAxMDAxMDEwMDAwMDBaGA8yMDUwMDEwMTAwMDAw
+MFowajEoMCYGA1UEAxMfVGVtcG9yYXJ5IENlcnRpZmljYXRlIEF1dGhvcml0eTEY
+MBYGA1UEChMPTW96aWxsYSBUZXN0aW5nMSQwIgYDVQQLExtQcm9maWxlIEd1aWRl
+ZCBPcHRpbWl6YXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6
+iFGoRI4W1kH9braIBjYQPTwT2erkNUq07PVoV2wke8HHJajg2B+9sZwGm24ahvJr
+4q9adWtqZHEIeqVap0WH9xzVJJwCfs1D/B5p0DggKZOrIMNJ5Nu5TMJrbA7tFYIP
+8X6taRqx0wI6iypB7qdw4A8Njf1mCyuwJJKkfbmIYXmQsVeQPdI7xeC4SB+oN9OI
+Q+8nFthVt2Zaqn4CkC86exCABiTMHGyXrZZhW7filhLAdTGjDJHdtMr3/K0dJdMJ
+77kXDqdo4bN7LyJvaeO0ipVhHe4m1iWdq5EITjbLHCQELL8Wiy/l8Y+ZFzG4s/5J
+I/pyUcQx1QOs2hgKNe2NAgMBAAGjHTAbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTAD
+AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAYFnzom5ROuxDR3WFQatxHs5ekni4uUbEx
+6pN8fOzcsllEfCwvmMLVCh36ffSguf/UlmR5Hq1s/S7iMiic5mnK4aaVwixzS4Z3
+ug7Dc+fG7j0VOcBTKWU983xUK/1F409ghQ5KlO38KA7hyx1kzjYjzvxLaweDXRqr
+J/RZ1ACP2fKNziEOCbXzzzEx39oc17NBV+LotPFzKZ+pcxMDrtiNts4hwCw/UUw7
+Gp0tKte2CevGJbzjPHP3/6FUzHfOatZSpxEmvAcSTDp5sjdVuOStx4v6jVrwvyAz
+VQzDPzaRWh3NtY5JNasrhExr5qxQlygfBngCMgZ9gESG9FvLG+sx
 -----END CERTIFICATE-----
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/pgoca.ca.keyspec
@@ -0,0 +1,1 @@
+default
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/pgoca.certspec
@@ -0,0 +1,5 @@
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+subject:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+validity:20100101-20500101
+extension:keyUsage:keyCertSign,cRLSign
+extension:basicConstraints:cA,
deleted file mode 100644
index 4867c286bbf6950a51078caedff875a945b2d93c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a3341f767ce01ccdc4a54adf64e82f9ef6b0c2f1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/selfsigned.certspec
@@ -0,0 +1,3 @@
+issuer:self-signed.example.com
+subject:self-signed.example.com
+extension:subjectAlternativeName:self-signed.example.com
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/sha1_end_entity.certspec
@@ -0,0 +1,4 @@
+subject:sha1ee.example.com
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+extension:subjectAlternativeName:sha1ee.example.com
+signature:sha1WithRSAEncryption
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/sha256_end_entity.certspec
@@ -0,0 +1,4 @@
+subject:sha256ee.example.com
+issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization
+extension:subjectAlternativeName:sha256ee.example.com
+signature:sha256WithRSAEncryption
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/staticPinningBad.certspec
@@ -0,0 +1,5 @@
+subject:include-subdomains.pinning.example.com
+issuer:Alternate Trusted Authority
+extension:subjectAlternativeName:include-subdomains.pinning.example.com
+subjectKey:alternate
+issuerKey:alternate
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/staticPinningBad.server.keyspec
@@ -0,0 +1,1 @@
+alternate
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/unknown_ca.certspec
@@ -0,0 +1,5 @@
+issuer:Unknown CA
+subject:Unknown CA
+validity:20100101-20500101
+extension:keyUsage:keyCertSign,cRLSign
+extension:basicConstraints:cA,
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/untrusted.certspec
@@ -0,0 +1,3 @@
+subject:untrusted.example.com
+issuer:Unknown CA
+extension:subjectAlternativeName:untrusted.example.com
new file mode 100644
--- /dev/null
+++ b/build/pgo/certs/untrustedandexpired.certspec
@@ -0,0 +1,4 @@
+subject:untrusted-expired.example.com
+issuer:Unknown CA
+extension:subjectAlternativeName:untrusted-expired.example.com
+validity:20121012-20121012
--- a/build/pgo/genpgocert.py
+++ b/build/pgo/genpgocert.py
@@ -10,19 +10,20 @@
 import mozinfo
 import os
 import random
 import re
 import shutil
 import subprocess
 import sys
 import tempfile
+import distutils
 
 from mozbuild.base import MozbuildObject
-from mozfile import NamedTemporaryFile
+from mozfile import NamedTemporaryFile, TemporaryDirectory
 from mozprofile.permissions import ServerLocations
 
 dbFiles = [
   re.compile("^cert[0-9]+\.db$"),
   re.compile("^key[0-9]+\.db$"),
   re.compile("^secmod\.db$")
 ]
 
@@ -36,181 +37,147 @@ def unlinkDbFiles(path):
 def dbFilesExist(path):
   for root, dirs, files in os.walk(path):
     for name in files:
       for dbFile in dbFiles:
         if dbFile.match(name) and os.path.exists(os.path.join(root, name)):
           return True
   return False
 
-
-def runUtil(util, args, inputdata = None):
+def runUtil(util, args, inputdata = None, outputstream = None):
   env = os.environ.copy()
   if mozinfo.os == "linux":
     pathvar = "LD_LIBRARY_PATH"
     app_path = os.path.dirname(util)
     if pathvar in env:
       env[pathvar] = "%s%s%s" % (app_path, os.pathsep, env[pathvar])
     else:
       env[pathvar] = app_path
   proc = subprocess.Popen([util] + args, env=env,
-                          stdin=subprocess.PIPE if inputdata else None)
+                          stdin=subprocess.PIPE if inputdata else None,
+                          stdout=outputstream)
   proc.communicate(inputdata)
   return proc.returncode
 
-
 def createRandomFile(randomFile):
   for count in xrange(0, 2048):
     randomFile.write(chr(random.randint(0, 255)))
 
-
-def createCertificateAuthority(build, srcDir):
-  certutil = build.get_binary_path(what="certutil")
-  pk12util = build.get_binary_path(what="pk12util")
-
-  #TODO: mozfile.TemporaryDirectory
-  tempDbDir = tempfile.mkdtemp()
-  with NamedTemporaryFile() as pwfile, NamedTemporaryFile() as rndfile:
-    pgoCAModulePathSrc = os.path.join(srcDir, "pgoca.p12")
-    pgoCAPathSrc = os.path.join(srcDir, "pgoca.ca")
-
-    pwfile.write("\n")
-
-    # Create temporary certification database for CA generation
-    status = runUtil(certutil, ["-N", "-d", tempDbDir, "-f", pwfile.name])
-    if status:
-      return status
-
-    createRandomFile(rndfile)
-    status = runUtil(certutil, ["-S", "-d", tempDbDir, "-s", "CN=Temporary Certificate Authority, O=Mozilla Testing, OU=Profile Guided Optimization", "-t", "C,,", "-x", "-m", "1", "-v", "120", "-n", "pgo temporary ca", "-2", "-f", pwfile.name, "-z", rndfile.name], "Y\n0\nN\n")
-    if status:
-      return status
-
-    status = runUtil(certutil, ["-L", "-d", tempDbDir, "-n", "pgo temporary ca", "-a", "-o", pgoCAPathSrc, "-f", pwfile.name])
-    if status:
-      return status
-
-    status = runUtil(pk12util, ["-o", pgoCAModulePathSrc, "-n", "pgo temporary ca", "-d", tempDbDir, "-w", pwfile.name, "-k", pwfile.name])
-    if status:
-      return status
-
-  shutil.rmtree(tempDbDir)
-  return 0
-
-
-def createSSLServerCertificate(build, srcDir):
-  certutil = build.get_binary_path(what="certutil")
-  pk12util = build.get_binary_path(what="pk12util")
-
-  with NamedTemporaryFile() as pwfile, NamedTemporaryFile() as rndfile:
-    pgoCAPath = os.path.join(srcDir, "pgoca.p12")
-
-    pwfile.write("\n")
-
-    if not dbFilesExist(srcDir):
-      # Make sure all DB files from src are really deleted
-      unlinkDbFiles(srcDir)
-
-      # Create certification database for ssltunnel
-      status = runUtil(certutil, ["-N", "-d", srcDir, "-f", pwfile.name])
-      if status:
-        return status
-
-      status = runUtil(pk12util, ["-i", pgoCAPath, "-w", pwfile.name, "-d", srcDir, "-k", pwfile.name])
-      if status:
-        return status
-
-    # Generate automatic certificate
+def writeCertspecForServerLocations(fd):
     locations = ServerLocations(os.path.join(build.topsrcdir,
                                              "build", "pgo",
                                              "server-locations.txt"))
-    iterator = iter(locations)
+    SAN=[]
+    for loc in [i for i in iter(locations) if i.scheme == "https" and "nocert" not in i.options]:
+      customCertOption = False
+      customCertRE = re.compile("^cert=(?:\w+)")
+      for _ in [i for i in loc.options if customCertRE.match(i)]:
+        customCertOption = True
+        break
+
+      if not customCertOption:
+        SAN.append(loc.host)
 
-    # Skips the first entry, I don't know why: bug 879740
-    iterator.next()
+    fd.write("issuer:printableString/CN=Temporary Certificate Authority/O=Mozilla Testing/OU=Profile Guided Optimization\n")
+    fd.write("subject:{}\n".format(SAN[0]))
+    fd.write("extension:subjectAlternativeName:{}\n".format(",".join(SAN)))
+
+def constructCertDatabase(build, srcDir):
+  certutil = build.get_binary_path(what="certutil")
+  pk12util = build.get_binary_path(what="pk12util")
+  openssl = distutils.spawn.find_executable("openssl")
+  pycert = os.path.join(build.topsrcdir, "security", "manager", "ssl", "tests",
+                        "unit", "pycert.py")
+  pykey = os.path.join(build.topsrcdir, "security", "manager", "ssl", "tests",
+                        "unit", "pykey.py")
+
 
-    locationsParam = ""
-    firstLocation = ""
-    for loc in iterator:
-      if loc.scheme == "https" and "nocert" not in loc.options:
-        customCertOption = False
-        customCertRE = re.compile("^cert=(?:\w+)")
-        for option in loc.options:
-          match = customCertRE.match(option)
-          if match:
-            customCertOption = True
-            break
+  with NamedTemporaryFile() as pwfile, NamedTemporaryFile() as rndfile, TemporaryDirectory() as pemfolder:
+    pgoCAPath = os.path.join(srcDir, "pgoca.p12")
+
+    pwfile.write("\n")
+    pwfile.flush()
+
+    if dbFilesExist(srcDir):
+      # Make sure all DB files from src are really deleted
+      unlinkDbFiles(srcDir)
 
-        if not customCertOption:
-          if len(locationsParam) > 0:
-            locationsParam += ","
-          locationsParam += loc.host
+    # Copy  all .certspec and .keyspec files to a temporary directory
+    for root, dirs, files in os.walk(srcDir):
+      for spec in [i for i in files if i.endswith(".certspec") or i.endswith(".keyspec")]:
+        shutil.copyfile(os.path.join(root, spec), os.path.join(pemfolder, spec))
 
-          if firstLocation == "":
-            firstLocation = loc.host
+    # Write a certspec for the "server-locations.txt" file to that temporary directory
+    pgoserver_certspec = os.path.join(pemfolder, "pgoserver.certspec")
+    if os.path.exists(pgoserver_certspec):
+      raise Exception("{} already exists, which isn't allowed".format(pgoserver_certspec))
+    with open(pgoserver_certspec, "w") as fd:
+      writeCertspecForServerLocations(fd)
 
-    if not firstLocation:
-      print "Nothing to generate, no automatic secure hosts specified"
-    else:
-      createRandomFile(rndfile)
+    # Generate certs for all certspecs
+    for root, dirs, files in os.walk(pemfolder):
+      for certspec in [i for i in files if i.endswith(".certspec")]:
+        name = certspec.split(".certspec")[0]
+        pem = os.path.join(pemfolder, "{}.cert.pem".format(name))
 
-      runUtil(certutil, ["-D", "-n", "pgo server certificate", "-d", srcDir, "-z", rndfile.name, "-f", pwfile.name])
-      # Ignore the result, the certificate may not be present when new database is being built
+        print("Generating public certificate {} (pem={})".format(name, pem))
 
-      status = runUtil(certutil, ["-S", "-s", "CN=%s" % firstLocation, "-t", "Pu,,", "-c", "pgo temporary ca", "-m", "2", "-8", locationsParam, "-v", "120", "-n", "pgo server certificate", "-d", srcDir, "-z", rndfile.name, "-f", pwfile.name])
-      if status:
-        return status
+        with open(os.path.join(root, certspec), "r") as certspec_file:
+          certspec_data = certspec_file.read()
+          with open(pem, "w") as pem_file:
+            status = runUtil(pycert, [], inputdata=certspec_data, outputstream=pem_file)
+            if status:
+              return status
 
-      status = runUtil(certutil, ["-S", "-s", "CN=Imminently Distrusted End Entity", "-t", "P,,", "-c", "pgo temporary ca", "-k", "rsa", "-g", "2048", "-Z", "SHA256", "-m", "1519140221", "-n", "imminently_distrusted", "-v", "120", "-8", "imminently-distrusted.example.com", "-d", srcDir, "-z", rndfile.name, "-f", pwfile.name])
-      if status:
-        return status
+        status = runUtil(certutil, ["-A", "-n", name, "-t", "P,,", "-i", pem, "-d", srcDir, "-f", pwfile.name])
+        if status:
+          return status
+
 
-    """
-    As of February 2018, there are 15 more certificates which are not created by
-    this script. See bug 1441338:
+      for keyspec in [i for i in files if i.endswith(".keyspec")]:
+        parts = keyspec.split(".")
+        name = parts[0]
+        key_type = parts[1]
+        if key_type not in ["ca", "client", "server"]:
+          raise Exception("{}: keyspec filenames must be of the form XXX.client.keyspec or XXX.ca.keyspec (key_type={})".format(keyspec, key_type))
+        key_pem = os.path.join(pemfolder, "{}.key.pem".format(name))
+
+        print("Generating private key {} (pem={})".format(name, key_pem))
 
-    selfsigned                                                   Pu,u,u
-    Unknown CA                                                   Cu,u,u
-    escapeattack1                                                Pu,u,u
-    untrustedandexpired                                          Pu,u,u
-    alternateTrustedAuthority                                    Cu,u,u
-    dynamicPinningGood                                           Pu,u,u
-    staticPinningBad                                             Pu,u,u
-    sha1_end_entity                                              Pu,u,u
-    bug413909cert                                                u,u,u
-    untrusted                                                    Pu,u,u
-    escapeattack2                                                Pu,u,u
-    expired                                                      Pu,u,u
-    dynamicPinningBad                                            Pu,u,u
-    sha256_end_entity                                            Pu,u,u
-    """
+        with open(os.path.join(root, keyspec), "r") as keyspec_file:
+          keyspec_data = keyspec_file.read()
+          with open(key_pem, "w") as pem_file:
+            status = runUtil(pykey, [], inputdata=keyspec_data, outputstream=pem_file)
+            if status:
+              return status
+
+        cert_pem = os.path.join(pemfolder, "{}.cert.pem".format(name))
+        if not os.path.exists(cert_pem):
+          raise Exception("There has to be a corresponding certificate named {} for the keyspec {}".format(cert_pem, keyspec))
+
+        p12 = os.path.join(pemfolder, "{}.key.p12".format(name))
+        print("Converting private key {} to PKCS12 (p12={})".format(key_pem, p12))
+        status = runUtil(openssl, ["pkcs12", "-export", "-inkey", key_pem, "-in", cert_pem, "-name", name, "-out", p12, "-passout", "file:"+pwfile.name])
+        if status:
+          return status
+
+        print("Importing private key {} to database".format(key_pem))
+        status = runUtil(pk12util, ["-i", p12, "-d", srcDir, "-w", pwfile.name, "-k", pwfile.name])
+        if status:
+          return status
+
+        if key_type == "ca":
+          shutil.copyfile(cert_pem, os.path.join(srcDir, "{}.ca".format(name)))
+        elif key_type == "client":
+          shutil.copyfile(p12, os.path.join(srcDir, "{}.client".format(name)))
+        elif key_type == "server":
+          pass # Nothing to do for server keys
+        else:
+          raise Exception("State error: Unknown keyspec key_type: {}".format(key_type))
 
   return 0
 
-if len(sys.argv) == 1:
-  print "Specify --gen-server or --gen-ca"
-  sys.exit(1)
-
 build = MozbuildObject.from_environment()
 certdir = os.path.join(build.topsrcdir, "build", "pgo", "certs")
-if sys.argv[1] == "--gen-server":
-  certificateStatus = createSSLServerCertificate(build, certdir)
-  if certificateStatus:
-    print "TEST-UNEXPECTED-FAIL | SSL Server Certificate generation"
-
-  sys.exit(certificateStatus)
-
-if sys.argv[1] == "--gen-ca":
-  certificateStatus = createCertificateAuthority(build, certdir)
-  if certificateStatus:
-    print "TEST-UNEXPECTED-FAIL | Certificate Authority generation"
-  else:
-    print "\n\n"
-    print "==================================================="
-    print " IMPORTANT:"
-    print " To use this new certificate authority in tests"
-    print " run 'make' at testing/mochitest"
-    print "==================================================="
-
-  sys.exit(certificateStatus)
-
-print "Invalid option specified"
-sys.exit(1)
+certificateStatus = constructCertDatabase(build, certdir)
+if certificateStatus:
+  print "TEST-UNEXPECTED-FAIL | SSL Server Certificate generation"
+sys.exit(certificateStatus)
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -13811,17 +13811,17 @@ nsDocShell::OnOverLink(nsIContent* aCont
   if (!browserChrome2) {
     browserChrome = do_GetInterface(mTreeOwner);
     if (!browserChrome) {
       return rv;
     }
   }
 
   nsAutoCString spec;
-  rv = aURI->GetSpec(spec);
+  rv = aURI->GetDisplaySpec(spec);
   NS_ENSURE_SUCCESS(rv, rv);
 
   NS_ConvertUTF8toUTF16 uStr(spec);
 
   mozilla::net::PredictorPredict(aURI, mCurrentURI,
                                  nsINetworkPredictor::PREDICT_LINK,
                                  aContent->NodePrincipal()->OriginAttributesRef(),
                                  nullptr);
--- a/dom/base/nsRange.cpp
+++ b/dom/base/nsRange.cpp
@@ -3202,26 +3202,25 @@ nsRange::CreateContextualFragment(const 
   return nsContentUtils::CreateContextualFragment(mStart.Container(), aFragment,
                                                   false, aRv);
 }
 
 static void ExtractRectFromOffset(nsIFrame* aFrame,
                                   const int32_t aOffset, nsRect* aR,
                                   bool aFlushToOriginEdge, bool aClampToEdge)
 {
+  MOZ_ASSERT(aFrame);
+  MOZ_ASSERT(aR);
+
   nsPoint point;
   aFrame->GetPointFromOffset(aOffset, &point);
 
-  // Determine if point was generated from a vertical text run, which will change
-  // our math on the output rect.
-  bool isVertical = false;
-  if (aFrame->IsTextFrame()) {
-    nsTextFrame* textFrame = static_cast<nsTextFrame*>(aFrame);
-    isVertical = textFrame->GetTextRun(nsTextFrame::eInflated)->IsVertical();
-  }
+  // Determine if aFrame has a vertical writing mode, which will change our math
+  // on the output rect.
+  bool isVertical = aFrame->GetWritingMode().IsVertical();
 
   if (!aClampToEdge && !aR->Contains(point)) {
     // If point is outside aR, and we aren't clamping, output an empty rect
     // with origin at the point.
     if (isVertical) {
       aR->SetHeight(0);
       aR->y = point.y;
     } else {
--- a/dom/html/test/test_bug1166138.html
+++ b/dom/html/test/test_bug1166138.html
@@ -11,20 +11,16 @@ https://bugzilla.mozilla.org/show_bug.cg
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
 </head>
 <body>
   <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1166138">Mozilla Bug 1166138</a>
   <p id="display"></p>
   <div id="content" style="display: none">
   </div>
 
-  <img srcset="file_bug1166138_1x.png 1x, file_bug1166138_2x.png 2x"
-       src="file_bug1166138_def.png"
-       onload="onLoad()">
-
   <script type="application/javascript">
     var img1x = "http://mochi.test:8888/tests/dom/html/test/file_bug1166138_1x.png";
     var img2x = "http://mochi.test:8888/tests/dom/html/test/file_bug1166138_2x.png";
     var imgdef = "http://mochi.test:8888/tests/dom/html/test/file_bug1166138_def.png";
     var onLoadCallback = null;
     var done = false;
 
     var startPromise = new Promise((a) => {
@@ -121,10 +117,15 @@ https://bugzilla.mozilla.org/show_bug.cg
       await spin(true);
       is(newImage.currentSrc, img1x, "new image after switching to 1x");
       is(image.currentSrc, img1x, "old image after switching to 1x");
 
       // Clear the listener
       done = true;
     });
   </script>
+
+  <img srcset="file_bug1166138_1x.png 1x, file_bug1166138_2x.png 2x"
+       src="file_bug1166138_def.png"
+       onload="onLoad()">
+
 </body>
 </html>
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -585,17 +585,18 @@ static const char* sObserverTopics[] = {
   "last-pb-context-exited",
   "file-watcher-update",
 #ifdef ACCESSIBILITY
   "a11y-init-or-shutdown",
 #endif
   "cacheservice:empty-cache",
   "intl:app-locales-changed",
   "intl:requested-locales-changed",
-  "non-js-cookie-changed",
+  "cookie-changed",
+  "private-cookie-changed",
 };
 
 // PreallocateProcess is called by the PreallocatedProcessManager.
 // ContentParent then takes this process back within GetNewOrUsedBrowserProcess.
 /*static*/ already_AddRefed<ContentParent>
 ContentParent::PreallocateProcess()
 {
   RefPtr<ContentParent> process =
@@ -2946,29 +2947,34 @@ ContentParent::Observe(nsISupports* aSub
     LocaleService::GetInstance()->GetAppLocalesAsLangTags(appLocales);
     Unused << SendUpdateAppLocales(appLocales);
   }
   else if (!strcmp(aTopic, "intl:requested-locales-changed")) {
     nsTArray<nsCString> requestedLocales;
     LocaleService::GetInstance()->GetRequestedLocales(requestedLocales);
     Unused << SendUpdateRequestedLocales(requestedLocales);
   }
-  else if (!strcmp(aTopic, "non-js-cookie-changed")) {
+  else if (!strcmp(aTopic, "cookie-changed") ||
+           !strcmp(aTopic, "private-cookie-changed")) {
     if (!aData) {
       return NS_ERROR_UNEXPECTED;
     }
     PNeckoParent *neckoParent = LoneManagedOrNullAsserts(ManagedPNeckoParent());
     if (!neckoParent) {
       return NS_OK;
     }
     PCookieServiceParent *csParent = LoneManagedOrNullAsserts(neckoParent->ManagedPCookieServiceParent());
     if (!csParent) {
       return NS_OK;
     }
     auto *cs = static_cast<CookieServiceParent*>(csParent);
+    // Do not push these cookie updates to the same process they originated from.
+    if (cs->ProcessingCookie()) {
+      return NS_OK;
+    }
     if (!nsCRT::strcmp(aData, u"batch-deleted")) {
       nsCOMPtr<nsIArray> cookieList = do_QueryInterface(aSubject);
       NS_ASSERTION(cookieList, "couldn't get cookie list");
       cs->RemoveBatchDeletedCookies(cookieList);
       return NS_OK;
     }
 
     if (!nsCRT::strcmp(aData, u"cleared")) {
--- a/dom/ipc/tests/test_child_docshell.html
+++ b/dom/ipc/tests/test_child_docshell.html
@@ -70,17 +70,25 @@ SpecialPowers.pushPrefEnv({'set':[
                                 .QueryInterface(Ci.nsIDocShell);
       sendAsyncMessage("DOMWindowCreatedReceived", {
         stableChromeEventHandler: chromeEventHandler === docShell.chromeEventHandler,
         iframeHasNewDocShell: new_docShell !== docShell,
         iframeHasSameChromeEventHandler: new_docShell.chromeEventHandler === chromeEventHandler
       });
     });
 
-    let i = content.document.createElement("iframe");
-    i.setAttribute("src", "data:text/html,foo");
-    content.document.documentElement.appendChild(i);
+    function go() {
+      let i = content.document.createElement("iframe");
+      i.setAttribute("src", "data:text/html,foo");
+      content.document.documentElement.appendChild(i);
+    }
+
+    if (content.document.readyState == "complete") {
+      go();
+    } else {
+      addEventListener("load", go, { once: true, capture: true });
+    }
   }, false);
 });
 
 </script>
 </body>
 </html>
--- a/dom/media/MediaStreamTrack.cpp
+++ b/dom/media/MediaStreamTrack.cpp
@@ -161,21 +161,25 @@ MediaStreamTrack::Destroy()
   }
   if (mPrincipalHandleListener) {
     if (GetOwnedStream()) {
       RemoveListener(mPrincipalHandleListener);
     }
     mPrincipalHandleListener->Forget();
     mPrincipalHandleListener = nullptr;
   }
-  for (auto l : mTrackListeners) {
-    RemoveListener(l);
+  // Remove all listeners -- avoid iterating over the list we're removing from
+  const nsTArray<RefPtr<MediaStreamTrackListener>> trackListeners(mTrackListeners);
+  for (auto listener : trackListeners) {
+    RemoveListener(listener);
   }
-  for (auto l : mDirectTrackListeners) {
-    RemoveDirectListener(l);
+  // Do the same as above for direct listeners
+  const nsTArray<RefPtr<DirectMediaStreamTrackListener>> directTrackListeners(mDirectTrackListeners);
+  for (auto listener : directTrackListeners) {
+    RemoveDirectListener(listener);
   }
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(MediaStreamTrack)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(MediaStreamTrack,
                                                 DOMEventTargetHelper)
   tmp->Destroy();
--- a/dom/xslt/xslt/txFormatNumberFunctionCall.cpp
+++ b/dom/xslt/xslt/txFormatNumberFunctionCall.cpp
@@ -260,16 +260,22 @@ txFormatNumberFunctionCall::evaluate(txI
 
     /*
      * FINALLY we're done with the parsing
      * now build the result string
      */
 
     value = fabs(value) * multiplier;
 
+    // Make sure the multiplier didn't push value to infinity.
+    if (value == mozilla::PositiveInfinity<double>()) {
+        return aContext->recycler()->getStringResult(format->mInfinity,
+                                                     aResult);
+    }
+
     // Prefix
     nsAutoString res(prefix);
 
     int bufsize;
     if (value > 1)
         bufsize = (int)log10(value) + 30;
     else
         bufsize = 1 + 30;
--- a/editor/libeditor/EditorDOMPoint.h
+++ b/editor/libeditor/EditorDOMPoint.h
@@ -230,16 +230,26 @@ public:
    */
   bool
   IsInTextNode() const
   {
     return mParent && mParent->IsNodeOfType(nsINode::eTEXT);
   }
 
   /**
+   * IsInNativeAnonymousSubtree() returns true if the container is in
+   * native anonymous subtree.
+   */
+  bool
+  IsInNativeAnonymousSubtree() const
+  {
+    return mParent && mParent->IsInNativeAnonymousSubtree();
+  }
+
+  /**
    * IsContainerHTMLElement() returns true if the container node is an HTML
    * element node and its node name is aTag.
    */
   bool
   IsContainerHTMLElement(nsAtom* aTag) const
   {
     return mParent && mParent->IsHTMLElement(aTag);
   }
@@ -526,16 +536,43 @@ public:
 
     if (mOffset.isSome()) {
       mOffset = mozilla::Some(mOffset.value() - 1);
     }
     mChild = previousSibling;
     return true;
   }
 
+  /**
+   * GetNonAnonymousSubtreePoint() returns a DOM point which is NOT in
+   * native-anonymous subtree.  If the instance isn't in native-anonymous
+   * subtree, this returns same point.  Otherwise, climbs up until finding
+   * non-native-anonymous parent and returns the point of it.  I.e.,
+   * container is parent of the found non-anonymous-native node.
+   */
+  EditorRawDOMPoint
+  GetNonAnonymousSubtreePoint() const
+  {
+    if (NS_WARN_IF(!IsSet())) {
+      return EditorRawDOMPoint();
+    }
+    if (!IsInNativeAnonymousSubtree()) {
+      return EditorRawDOMPoint(*this);
+    }
+    nsINode* parent;
+    for (parent = mParent->GetParentNode();
+         parent && parent->IsInNativeAnonymousSubtree();
+         parent = mParent->GetParentNode()) {
+    }
+    if (!parent) {
+      return EditorRawDOMPoint();
+    }
+    return EditorRawDOMPoint(parent);
+  }
+
   bool
   IsSet() const
   {
     return mParent && (mIsChildInitialized || mOffset.isSome());
   }
 
   bool
   IsSetAndValid() const
--- a/editor/libeditor/HTMLEditor.cpp
+++ b/editor/libeditor/HTMLEditor.cpp
@@ -1460,60 +1460,66 @@ HTMLEditor::RebuildDocumentFromSource(co
 EditorRawDOMPoint
 HTMLEditor::GetBetterInsertionPointFor(nsINode& aNodeToInsert,
                                        const EditorRawDOMPoint& aPointToInsert)
 {
   if (NS_WARN_IF(!aPointToInsert.IsSet())) {
     return aPointToInsert;
   }
 
+  EditorRawDOMPoint pointToInsert(aPointToInsert.GetNonAnonymousSubtreePoint());
+  if (NS_WARN_IF(!pointToInsert.IsSet())) {
+    // Cannot insert aNodeToInsert into this DOM tree.
+    return EditorRawDOMPoint();
+  }
+
   // If the node to insert is not a block level element, we can insert it
   // at any point.
   if (!IsBlockNode(&aNodeToInsert)) {
-    return aPointToInsert;
-  }
-
-  WSRunObject wsObj(this, aPointToInsert.GetContainer(),
-                    aPointToInsert.Offset());
+    return pointToInsert;
+  }
+
+  WSRunObject wsObj(this, pointToInsert.GetContainer(),
+                    pointToInsert.Offset());
 
   // If the insertion position is after the last visible item in a line,
   // i.e., the insertion position is just before a visible line break <br>,
   // we want to skip to the position just after the line break (see bug 68767).
   nsCOMPtr<nsINode> nextVisibleNode;
   int32_t nextVisibleOffset = 0;
   WSType nextVisibleType;
-  wsObj.NextVisibleNode(aPointToInsert.GetContainer(), aPointToInsert.Offset(),
+  wsObj.NextVisibleNode(pointToInsert.GetContainer(), pointToInsert.Offset(),
                         address_of(nextVisibleNode),
                         &nextVisibleOffset, &nextVisibleType);
   // So, if the next visible node isn't a <br> element, we can insert the block
   // level element to the point.
   if (!nextVisibleNode ||
       !(nextVisibleType & WSType::br)) {
-    return aPointToInsert;
+    return pointToInsert;
   }
 
   // However, we must not skip next <br> element when the caret appears to be
   // positioned at the beginning of a block, in that case skipping the <br>
   // would not insert the <br> at the caret position, but after the current
   // empty line.
   nsCOMPtr<nsINode> previousVisibleNode;
   int32_t previousVisibleOffset = 0;
   WSType previousVisibleType;
-  wsObj.PriorVisibleNode(aPointToInsert.GetContainer(), aPointToInsert.Offset(),
+  wsObj.PriorVisibleNode(pointToInsert.GetContainer(), pointToInsert.Offset(),
                          address_of(previousVisibleNode),
                          &previousVisibleOffset, &previousVisibleType);
   // So, if there is no previous visible node,
   // or, if both nodes of the insertion point is <br> elements,
   // or, if the previous visible node is different block,
   // we need to skip the following <br>.  So, otherwise, we can insert the
   // block at the insertion point.
   if (!previousVisibleNode ||
       (previousVisibleType & WSType::br) ||
       (previousVisibleType & WSType::thisBlock)) {
-    return aPointToInsert;
+    return pointToInsert;
   }
 
   EditorRawDOMPoint afterBRNode(nextVisibleNode);
   DebugOnly<bool> advanced = afterBRNode.AdvanceOffset();
   NS_WARNING_ASSERTION(advanced,
     "Failed to advance offset to after the <br> node");
   return afterBRNode;
 }
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -1,16 +1,17 @@
 /* vim:set ts=4 sw=4 et cindent: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsAuth.h"
 #include "nsAuthSambaNTLM.h"
 #include "nsMemory.h"
+#include "nspr.h"
 #include "prenv.h"
 #include "plbase64.h"
 #include "prerror.h"
 #include "mozilla/Telemetry.h"
 
 #include <stdlib.h>
 
 nsAuthSambaNTLM::nsAuthSambaNTLM()
@@ -19,17 +20,17 @@ nsAuthSambaNTLM::nsAuthSambaNTLM()
 {
 }
 
 nsAuthSambaNTLM::~nsAuthSambaNTLM()
 {
     // ntlm_auth reads from stdin regularly so closing our file handles
     // should cause it to exit.
     Shutdown();
-    free(mInitialMessage);
+    PR_Free(mInitialMessage);
 }
 
 void
 nsAuthSambaNTLM::Shutdown()
 {
     if (mFromChildFD) {
         PR_Close(mFromChildFD);
         mFromChildFD = nullptr;
@@ -244,34 +245,34 @@ nsAuthSambaNTLM::GetNextToken(const void
     /* inToken must be a type 2 message. Get ntlm_auth to generate our response */
     char* encoded = PL_Base64Encode(static_cast<const char*>(inToken), inTokenLen, nullptr);
     if (!encoded)
         return NS_ERROR_OUT_OF_MEMORY;
 
     nsCString request;
     request.AssignLiteral("TT ");
     request.Append(encoded);
-    free(encoded);
+    PR_Free(encoded);
     request.Append('\n');
 
     if (!WriteString(mToChildFD, request))
         return NS_ERROR_FAILURE;
     nsCString line;
     if (!ReadLine(mFromChildFD, line))
         return NS_ERROR_FAILURE;
     if (!StringBeginsWith(line, NS_LITERAL_CSTRING("KK ")) &&
         !StringBeginsWith(line, NS_LITERAL_CSTRING("AF "))) {
         // Something went wrong. Perhaps no credentials are accessible.
         return NS_ERROR_FAILURE;
     }
     uint8_t* buf = ExtractMessage(line, outTokenLen);
     if (!buf)
         return NS_ERROR_FAILURE;
     *outToken = nsMemory::Clone(buf, *outTokenLen);
-    free(buf);
+    PR_Free(buf);
     if (!*outToken) {
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
     // We're done. Close our file descriptors now and reap the helper
     // process.
     Shutdown();
     return NS_SUCCESS_AUTH_FINISHED;
--- a/gfx/2d/NativeFontResourceDWrite.cpp
+++ b/gfx/2d/NativeFontResourceDWrite.cpp
@@ -7,16 +7,17 @@
 #include "NativeFontResourceDWrite.h"
 #include "UnscaledFontDWrite.h"
 
 #include <unordered_map>
 
 #include "Logging.h"
 #include "mozilla/RefPtr.h"
 #include "mozilla/StaticMutex.h"
+#include "nsTArray.h"
 
 namespace mozilla {
 namespace gfx {
 
 static StaticMutex sFontFileStreamsMutex;
 static uint64_t sNextFontFileKey = 0;
 static std::unordered_map<uint64_t, IDWriteFontFileStream*> sFontFileStreams;
 
@@ -79,25 +80,27 @@ public:
 
 private:
   static IDWriteFontFileLoader* mInstance;
 };
 
 class DWriteFontFileStream final : public IDWriteFontFileStream
 {
 public:
+  explicit DWriteFontFileStream(uint64_t aFontFileKey);
+
   /**
     * Used by the FontFileLoader to create a new font stream,
     * this font stream is created from data in memory. The memory
     * passed may be released after object creation, it will be
     * copied internally.
     *
     * @param aData Font data
     */
-  DWriteFontFileStream(uint8_t *aData, uint32_t aSize, uint64_t aFontFileKey);
+  bool Initialize(uint8_t *aData, uint32_t aSize);
 
   // IUnknown interface
   IFACEMETHOD(QueryInterface)(IID const& iid, OUT void** ppObject)
   {
     if (iid == __uuidof(IDWriteFontFileStream)) {
       *ppObject = static_cast<IDWriteFontFileStream*>(this);
       return S_OK;
     } else if (iid == __uuidof(IUnknown)) {
@@ -130,17 +133,17 @@ public:
 
   virtual void STDMETHODCALLTYPE ReleaseFileFragment(void* fragmentContext);
 
   virtual HRESULT STDMETHODCALLTYPE GetFileSize(OUT UINT64* fileSize);
 
   virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime(OUT UINT64* lastWriteTime);
 
 private:
-  std::vector<uint8_t> mData;
+  nsTArray<uint8_t> mData;
   Atomic<uint32_t> mRefCnt;
   uint64_t mFontFileKey;
 
   ~DWriteFontFileStream();
 };
 
 IDWriteFontFileLoader* DWriteFontFileLoader::mInstance = nullptr;
 
@@ -161,52 +164,59 @@ DWriteFontFileLoader::CreateStreamFromKe
     return E_FAIL;
   }
 
   found->second->AddRef();
   *fontFileStream = found->second;
   return S_OK;
 }
 
-DWriteFontFileStream::DWriteFontFileStream(uint8_t *aData, uint32_t aSize,
-                                           uint64_t aFontFileKey)
+DWriteFontFileStream::DWriteFontFileStream(uint64_t aFontFileKey)
   : mRefCnt(0)
   , mFontFileKey(aFontFileKey)
 {
-  mData.resize(aSize);
-  memcpy(&mData.front(), aData, aSize);
 }
 
 DWriteFontFileStream::~DWriteFontFileStream()
 {
   StaticMutexAutoLock lock(sFontFileStreamsMutex);
   sFontFileStreams.erase(mFontFileKey);
 }
 
+bool
+DWriteFontFileStream::Initialize(uint8_t *aData, uint32_t aSize)
+{
+  if (!mData.SetLength(aSize, fallible)) {
+    return false;
+  }
+  memcpy(mData.Elements(), aData, aSize);
+  return true;
+}
+
 HRESULT STDMETHODCALLTYPE
 DWriteFontFileStream::GetFileSize(UINT64 *fileSize)
 {
-  *fileSize = mData.size();
+  *fileSize = mData.Length();
   return S_OK;
 }
 
 HRESULT STDMETHODCALLTYPE
 DWriteFontFileStream::GetLastWriteTime(UINT64 *lastWriteTime)
 {
   return E_NOTIMPL;
 }
 
 HRESULT STDMETHODCALLTYPE
 DWriteFontFileStream::ReadFileFragment(const void **fragmentStart,
                                        UINT64 fileOffset,
                                        UINT64 fragmentSize,
                                        void **fragmentContext)
 {
   // We are required to do bounds checking.
-  if (fileOffset + fragmentSize > mData.size()) {
+  if (fileOffset + fragmentSize > mData.Length()) {
     return E_FAIL;
   }
 
   // truncate the 64 bit fileOffset to size_t sized index into mData
   size_t index = static_cast<size_t>(fileOffset);
 
   // We should be alive for the duration of this.
   *fragmentStart = &mData[index];
@@ -227,18 +237,22 @@ NativeFontResourceDWrite::Create(uint8_t
   RefPtr<IDWriteFactory> factory = Factory::GetDWriteFactory();
   if (!factory) {
     gfxWarning() << "Failed to get DWrite Factory.";
     return nullptr;
   }
 
   sFontFileStreamsMutex.Lock();
   uint64_t fontFileKey = sNextFontFileKey++;
-  RefPtr<IDWriteFontFileStream> ffsRef =
-    new DWriteFontFileStream(aFontData, aDataLength, fontFileKey);
+  RefPtr<DWriteFontFileStream> ffsRef = new DWriteFontFileStream(fontFileKey);
+  if (!ffsRef->Initialize(aFontData, aDataLength)) {
+    sFontFileStreamsMutex.Unlock();
+    gfxWarning() << "Failed to create DWriteFontFileStream.";
+    return nullptr;
+  }
   sFontFileStreams[fontFileKey] = ffsRef;
   sFontFileStreamsMutex.Unlock();
 
   RefPtr<IDWriteFontFile> fontFile;
   HRESULT hr =
     factory->CreateCustomFontFileReference(&fontFileKey, sizeof(fontFileKey),
                                            DWriteFontFileLoader::Instance(),
                                            getter_AddRefs(fontFile));
--- a/gfx/2d/NativeFontResourceFontconfig.cpp
+++ b/gfx/2d/NativeFontResourceFontconfig.cpp
@@ -27,17 +27,20 @@ NativeFontResourceFontconfig::~NativeFon
 }
 
 already_AddRefed<NativeFontResourceFontconfig>
 NativeFontResourceFontconfig::Create(uint8_t *aFontData, uint32_t aDataLength, FT_Library aFTLibrary)
 {
   if (!aFontData || !aDataLength) {
     return nullptr;
   }
-  UniquePtr<uint8_t[]> fontData(new uint8_t[aDataLength]);
+  UniquePtr<uint8_t[]> fontData(new (fallible) uint8_t[aDataLength]);
+  if (!fontData) {
+    return nullptr;
+  }
   memcpy(fontData.get(), aFontData, aDataLength);
 
   FT_Face face = Factory::NewFTFaceFromData(aFTLibrary, fontData.get(), aDataLength, 0);
   if (!face) {
     return nullptr;
   }
   if (FT_Select_Charmap(face, FT_ENCODING_UNICODE) != FT_Err_Ok) {
     Factory::ReleaseFTFace(face);
--- a/js/src/jit/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -709,72 +709,77 @@ BlockIsSingleTest(MBasicBlock* phiBlock,
     *pphi = phi;
     *ptest = test;
 
     return true;
 }
 
 // Change block so that it ends in a goto to the specific target block.
 // existingPred is an existing predecessor of the block.
-static void
+static MOZ_MUST_USE bool
 UpdateGotoSuccessor(TempAllocator& alloc, MBasicBlock* block, MBasicBlock* target,
                      MBasicBlock* existingPred)
 {
     MInstruction* ins = block->lastIns();
     MOZ_ASSERT(ins->isGoto());
     ins->toGoto()->target()->removePredecessor(block);
     block->discardLastIns();
 
     MGoto* newGoto = MGoto::New(alloc, target);
     block->end(newGoto);
 
-    target->addPredecessorSameInputsAs(block, existingPred);
+    return target->addPredecessorSameInputsAs(block, existingPred);
 }
 
 // Change block so that it ends in a test of the specified value, going to
 // either ifTrue or ifFalse. existingPred is an existing predecessor of ifTrue
 // or ifFalse with the same values incoming to ifTrue/ifFalse as block.
 // existingPred is not required to be a predecessor of ifTrue/ifFalse if block
 // already ends in a test going to that block on a true/false result.
-static void
+static MOZ_MUST_USE bool
 UpdateTestSuccessors(TempAllocator& alloc, MBasicBlock* block,
                      MDefinition* value, MBasicBlock* ifTrue, MBasicBlock* ifFalse,
                      MBasicBlock* existingPred)
 {
     MInstruction* ins = block->lastIns();
     if (ins->isTest()) {
         MTest* test = ins->toTest();
         MOZ_ASSERT(test->input() == value);
 
         if (ifTrue != test->ifTrue()) {
             test->ifTrue()->removePredecessor(block);
-            ifTrue->addPredecessorSameInputsAs(block, existingPred);
+            if (!ifTrue->addPredecessorSameInputsAs(block, existingPred))
+                return false;
             MOZ_ASSERT(test->ifTrue() == test->getSuccessor(0));
             test->replaceSuccessor(0, ifTrue);
         }
 
         if (ifFalse != test->ifFalse()) {
             test->ifFalse()->removePredecessor(block);
-            ifFalse->addPredecessorSameInputsAs(block, existingPred);
+            if (!ifFalse->addPredecessorSameInputsAs(block, existingPred))
+                return false;
             MOZ_ASSERT(test->ifFalse() == test->getSuccessor(1));
             test->replaceSuccessor(1, ifFalse);
         }
 
-        return;
+        return true;
     }
 
     MOZ_ASSERT(ins->isGoto());
     ins->toGoto()->target()->removePredecessor(block);
     block->discardLastIns();
 
     MTest* test = MTest::New(alloc, value, ifTrue, ifFalse);
     block->end(test);
 
-    ifTrue->addPredecessorSameInputsAs(block, existingPred);
-    ifFalse->addPredecessorSameInputsAs(block, existingPred);
+    if (!ifTrue->addPredecessorSameInputsAs(block, existingPred))
+        return false;
+    if (!ifFalse->addPredecessorSameInputsAs(block, existingPred))
+        return false;
+    return true;
 }
 
 static bool
 MaybeFoldConditionBlock(MIRGraph& graph, MBasicBlock* initialBlock)
 {
     // Optimize the MIR graph to improve the code generated for conditional
     // operations. A test like 'if (a ? b : c)' normally requires four blocks,
     // with a phi for the intermediate value. This can be improved to use three
@@ -869,37 +874,48 @@ MaybeFoldConditionBlock(MIRGraph& graph,
 
     MBasicBlock* trueTarget = trueBranch;
     bool constBool;
     if (BlockComputesConstant(trueBranch, trueResult, &constBool)) {
         trueTarget = constBool ? finalTest->ifTrue() : finalTest->ifFalse();
         phiBlock->removePredecessor(trueBranch);
         graph.removeBlock(trueBranch);
     } else if (initialTest->input() == trueResult) {
-        UpdateGotoSuccessor(graph.alloc(), trueBranch, finalTest->ifTrue(), testBlock);
+        if (!UpdateGotoSuccessor(graph.alloc(), trueBranch, finalTest->ifTrue(), testBlock))
+            return false;
     } else {
-        UpdateTestSuccessors(graph.alloc(), trueBranch, trueResult,
-                             finalTest->ifTrue(), finalTest->ifFalse(), testBlock);
+        if (!UpdateTestSuccessors(graph.alloc(), trueBranch, trueResult,
+                                  finalTest->ifTrue(), finalTest->ifFalse(), testBlock))
+        {
+            return false;
+        }
     }
 
     MBasicBlock* falseTarget = falseBranch;
     if (BlockComputesConstant(falseBranch, falseResult, &constBool)) {
         falseTarget = constBool ? finalTest->ifTrue() : finalTest->ifFalse();
         phiBlock->removePredecessor(falseBranch);
         graph.removeBlock(falseBranch);
     } else if (initialTest->input() == falseResult) {
-        UpdateGotoSuccessor(graph.alloc(), falseBranch, finalTest->ifFalse(), testBlock);
+        if (!UpdateGotoSuccessor(graph.alloc(), falseBranch, finalTest->ifFalse(), testBlock))
+            return false;
     } else {
-        UpdateTestSuccessors(graph.alloc(), falseBranch, falseResult,
-                             finalTest->ifTrue(), finalTest->ifFalse(), testBlock);
+        if (!UpdateTestSuccessors(graph.alloc(), falseBranch, falseResult,
+                                  finalTest->ifTrue(), finalTest->ifFalse(), testBlock))
+        {
+            return false;
+        }
     }
 
     // Short circuit the initial test to skip any constant branch eliminated above.
-    UpdateTestSuccessors(graph.alloc(), initialBlock, initialTest->input(),
-                         trueTarget, falseTarget, testBlock);
+    if (!UpdateTestSuccessors(graph.alloc(), initialBlock, initialTest->input(),
+                              trueTarget, falseTarget, testBlock))
+    {
+        return false;
+    }
 
     // Remove phiBlock, if different from testBlock.
     if (phiBlock != testBlock) {
         testBlock->removePredecessor(phiBlock);
         graph.removeBlock(phiBlock);
     }
 
     // Remove testBlock itself.
@@ -945,17 +961,18 @@ jit::FoldEmptyBlocks(MIRGraph& graph)
         if (succ->numPredecessors() != 1)
             continue;
 
         size_t pos = pred->getSuccessorIndex(block);
         pred->lastIns()->replaceSuccessor(pos, succ);
 
         graph.removeBlock(block);
 
-        succ->addPredecessorSameInputsAs(pred, block);
+        if (!succ->addPredecessorSameInputsAs(pred, block))
+            return false;
         succ->removePredecessor(block);
     }
     return true;
 }
 
 static void
 EliminateTriviallyDeadResumePointOperands(MIRGraph& graph, MResumePoint* rp)
 {
--- a/js/src/jit/MIRGraph.cpp
+++ b/js/src/jit/MIRGraph.cpp
@@ -1141,38 +1141,37 @@ MBasicBlock::addPredecessorPopN(TempAllo
                     entryResumePoint()->replaceOperand(i, phi);
             }
         }
     }
 
     return predecessors_.append(pred);
 }
 
-void
+bool
 MBasicBlock::addPredecessorSameInputsAs(MBasicBlock* pred, MBasicBlock* existingPred)
 {
     MOZ_ASSERT(pred);
     MOZ_ASSERT(predecessors_.length() > 0);
 
     // Predecessors must be finished, and at the correct stack depth.
     MOZ_ASSERT(pred->hasLastIns());
     MOZ_ASSERT(!pred->successorWithPhis());
 
-    AutoEnterOOMUnsafeRegion oomUnsafe;
-
     if (!phisEmpty()) {
         size_t existingPosition = indexForPredecessor(existingPred);
         for (MPhiIterator iter = phisBegin(); iter != phisEnd(); iter++) {
             if (!iter->addInputSlow(iter->getOperand(existingPosition)))
-                oomUnsafe.crash("MBasicBlock::addPredecessorAdjustPhis");
+                return false;
         }
     }
 
     if (!predecessors_.append(pred))
-        oomUnsafe.crash("MBasicBlock::addPredecessorAdjustPhis");
+        return false;
+    return true;
 }
 
 bool
 MBasicBlock::addPredecessorWithoutPhis(MBasicBlock* pred)
 {
     // Predecessors must be finished.
     MOZ_ASSERT(pred && pred->hasLastIns());
     return predecessors_.append(pred);
--- a/js/src/jit/MIRGraph.h
+++ b/js/src/jit/MIRGraph.h
@@ -267,17 +267,17 @@ class MBasicBlock : public TempObject, p
     // Adds a predecessor. Every predecessor must have the same exit stack
     // depth as the entry state to this block. Adding a predecessor
     // automatically creates phi nodes and rewrites uses as needed.
     MOZ_MUST_USE bool addPredecessor(TempAllocator& alloc, MBasicBlock* pred);
     MOZ_MUST_USE bool addPredecessorPopN(TempAllocator& alloc, MBasicBlock* pred, uint32_t popped);
 
     // Add a predecessor which won't introduce any new phis to this block.
     // This may be called after the contents of this block have been built.
-    void addPredecessorSameInputsAs(MBasicBlock* pred, MBasicBlock* existingPred);
+    MOZ_MUST_USE bool addPredecessorSameInputsAs(MBasicBlock* pred, MBasicBlock* existingPred);
 
     // Stranger utilities used for inlining.
     MOZ_MUST_USE bool addPredecessorWithoutPhis(MBasicBlock* pred);
     void inheritSlots(MBasicBlock* parent);
     MOZ_MUST_USE bool initEntrySlots(TempAllocator& alloc);
 
     // Replaces an edge for a given block with a new block. This is
     // used for critical edge splitting.
--- a/js/src/vm/TypeInference.cpp
+++ b/js/src/vm/TypeInference.cpp
@@ -3324,16 +3324,18 @@ js::TypeMonitorResult(JSContext* cx, JSS
 void
 js::TypeMonitorResult(JSContext* cx, JSScript* script, jsbytecode* pc, StackTypeSet* types,
                       TypeSet::Type type)
 {
     assertSameCompartment(cx, script, type);
 
     AutoEnterAnalysis enter(cx);
 
+    script->maybeSweepTypes(nullptr);
+
     MOZ_ASSERT(types == TypeScript::BytecodeTypes(script, pc));
     MOZ_ASSERT(!types->hasType(type));
 
     InferSpew(ISpewOps, "bytecodeType: %p %05zu: %s",
               script, script->pcToOffset(pc), TypeSet::TypeString(type).get());
     types->addType(cx, type);
 }
 
--- a/layout/base/PresShell.cpp
+++ b/layout/base/PresShell.cpp
@@ -7315,36 +7315,39 @@ PresShell::HandleEvent(nsIFrame* aFrame,
             pointerCapturingContent);
           return NS_OK;
         }
 
         targetFrame = pointerCapturingContent->GetPrimaryFrame();
         frame = targetFrame;
       }
 
-      AutoWeakFrame weakFrame(targetFrame);
+      AutoWeakFrame weakTargetFrame(targetFrame);
+      AutoWeakFrame weakFrame(frame);
       nsCOMPtr<nsIContent> targetContent;
       PointerEventHandler::DispatchPointerFromMouseOrTouch(
                              shell, targetFrame, targetElement, aEvent,
                              aDontRetargetEvents, aEventStatus,
                              getter_AddRefs(targetContent));
 
-      if (!weakFrame.IsAlive() && aEvent->mClass == eMouseEventClass) {
+      if (!weakTargetFrame.IsAlive() && aEvent->mClass == eMouseEventClass) {
         // Spec only defines that mouse events must be dispatched to the same
         // target as the pointer event. If the target is no longer participating
         // in its ownerDocument's tree, fire the event at the original target's
         // nearest ancestor node
         if (!targetContent) {
           return NS_OK;
         }
         frame = targetContent->GetPrimaryFrame();
         shell = GetShellForEventTarget(frame, targetContent);
         if (!shell) {
           return NS_OK;
         }
+      } else if (!weakFrame.IsAlive()) {
+        return NS_OK;
       }
     }
 
     // frame could be null after dispatching pointer events.
     if (aEvent->mClass == eTouchEventClass) {
       if (aEvent->mMessage == eTouchStart) {
         WidgetTouchEvent* touchEvent = aEvent->AsTouchEvent();
         if (nsIFrame* newFrame =
--- a/layout/generic/nsFlexContainerFrame.cpp
+++ b/layout/generic/nsFlexContainerFrame.cpp
@@ -1658,36 +1658,55 @@ nsFlexContainerFrame::
  *
  * Caching it prevents us from doing exponential reflows in cases of deeply
  * nested flex and scroll frames.
  *
  * We store them in the frame property table for simplicity.
  */
 class nsFlexContainerFrame::CachedMeasuringReflowResult
 {
-  // Members that are part of the cache key:
-  const LogicalSize mAvailableSize;
-  const nscoord mComputedBSize;
-
-  // Members that are part of the cache value:
+  struct Key
+  {
+    const LogicalSize mAvailableSize;
+    const nscoord mComputedBSize;
+    const nscoord mComputedMinBSize;
+    const nscoord mComputedMaxBSize;
+
+    explicit Key(const ReflowInput& aRI)
+      : mAvailableSize(aRI.AvailableSize())
+      , mComputedBSize(aRI.ComputedBSize())
+      , mComputedMinBSize(aRI.ComputedMinBSize())
+      , mComputedMaxBSize(aRI.ComputedMaxBSize())
+    { }
+
+    bool operator==(const Key& aOther) const
+    {
+      return mAvailableSize == aOther.mAvailableSize &&
+        mComputedBSize == aOther.mComputedBSize &&
+        mComputedMinBSize == aOther.mComputedMinBSize &&
+        mComputedMaxBSize == aOther.mComputedMaxBSize;
+    }
+  };
+
+  const Key mKey;
+
   const nscoord mBSize;
   const nscoord mAscent;
 
 public:
   CachedMeasuringReflowResult(const ReflowInput& aReflowInput,
                               const ReflowOutput& aDesiredSize)
-    : mAvailableSize(aReflowInput.AvailableSize())
-    , mComputedBSize(aReflowInput.ComputedBSize())
+    : mKey(aReflowInput)
     , mBSize(aDesiredSize.BSize(aReflowInput.GetWritingMode()))
     , mAscent(aDesiredSize.BlockStartAscent())
-  {}
-
-  bool IsValidFor(const ReflowInput& aReflowInput) const {
-    return mAvailableSize == aReflowInput.AvailableSize() &&
-      mComputedBSize == aReflowInput.ComputedBSize();
+  { }
+
+  bool IsValidFor(const ReflowInput& aReflowInput) const
+  {
+    return mKey == Key(aReflowInput);
   }
 
   nscoord BSize() const { return mBSize; }
 
   nscoord Ascent() const { return mAscent; }
 };
 
 NS_DECLARE_FRAME_PROPERTY_DELETABLE(CachedFlexMeasuringReflow,
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -3338,16 +3338,18 @@ ScrollFrameHelper::BuildDisplayList(nsDi
       if (mScrollPosForLayerPixelAlignment == nsPoint(-1,-1)) {
         mScrollPosForLayerPixelAlignment = mScrollPosAtLastPaint;
       }
     } else {
       mScrollPosForLayerPixelAlignment = nsPoint(-1,-1);
     }
   }
 
+  aBuilder->Check();
+
   // It's safe to get this value before the DecideScrollableLayer call below
   // because that call cannot create a displayport for root scroll frames,
   // and hence it cannot create an ignore scroll frame.
   bool ignoringThisScrollFrame =
     aBuilder->GetIgnoreScrollFrame() == mOuter || IsIgnoringViewportClipping();
 
   // Overflow clipping can never clip frames outside our subtree, so there
   // is no need to worry about whether we are a moving frame that might clip
@@ -3362,16 +3364,17 @@ ScrollFrameHelper::BuildDisplayList(nsDi
   if (!ignoringThisScrollFrame) {
     visibleRect = visibleRect.Intersect(mScrollPort);
     dirtyRect = dirtyRect.Intersect(mScrollPort);
   }
 
   bool dirtyRectHasBeenOverriden = false;
   Unused << DecideScrollableLayer(aBuilder, &visibleRect, &dirtyRect,
               /* aSetBase = */ !mIsRoot, &dirtyRectHasBeenOverriden);
+  aBuilder->Check();
 
   if (aBuilder->IsForFrameVisibility()) {
     // We expand the dirty rect to catch frames just outside of the scroll port.
     // We use the dirty rect instead of the whole scroll port to prevent
     // too much expansion in the presence of very large (bigger than the
     // viewport) scroll ports.
     dirtyRect = ExpandRectToNearlyVisible(dirtyRect);
     visibleRect = dirtyRect;
@@ -3453,25 +3456,29 @@ ScrollFrameHelper::BuildDisplayList(nsDi
         // scroll frame for the display root, then we don't need a scroll
         // info layer. nsDisplayList::PaintForFrame already calls
         // ComputeFrameMetrics for us.
         (!(gfxPrefs::LayoutUseContainersForRootFrames() && mIsRoot) ||
          (aBuilder->RootReferenceFrame()->PresContext() != mOuter->PresContext()));
     }
   }
 
+  aBuilder->Check();
+
   // Now display the scrollbars and scrollcorner. These parts are drawn
   // in the border-background layer, on top of our own background and
   // borders and underneath borders and backgrounds of later elements
   // in the tree.
   // Note that this does not apply for overlay scrollbars; those are drawn
   // in the positioned-elements layer on top of everything else by the call
   // to AppendScrollPartsTo(..., true) further down.
   AppendScrollPartsTo(aBuilder, aLists, createLayersForScrollbars, false);
 
+  aBuilder->Check();
+
   const nsStyleDisplay* disp = mOuter->StyleDisplay();
   if (disp && (disp->mWillChangeBitField & NS_STYLE_WILL_CHANGE_SCROLL)) {
     aBuilder->AddToWillChangeBudget(mOuter, GetScrollPositionClampingScrollPortSize());
   }
 
   mScrollParentID = aBuilder->GetCurrentScrollParentId();
 
   Maybe<nsRect> contentBoxClip;
@@ -3523,16 +3530,18 @@ ScrollFrameHelper::BuildDisplayList(nsDi
         // caret height on the top, and its full width on the right.
         nsRect inflatedClip = clipRect;
         inflatedClip.Inflate(nsMargin(caretRect.height / 2, caretRect.width, 0, 0));
         contentBoxClip = Some(inflatedClip);
       }
     }
   }
 
+  aBuilder->Check();
+
   nsDisplayListCollection scrolledContent(aBuilder);
   {
     // Note that setting the current scroll parent id here means that positioned children
     // of this scroll info layer will pick up the scroll info layer as their scroll handoff
     // parent. This is intentional because that is what happens for positioned children
     // of scroll layers, and we want to maintain consistent behaviour between scroll layers
     // and scroll info layers.
     nsDisplayListBuilder::AutoCurrentScrollParentIdSetter idSetter(
@@ -3576,16 +3585,18 @@ ScrollFrameHelper::BuildDisplayList(nsDi
     if (mWillBuildScrollableLayer && aBuilder->IsPaintingToWindow()) {
       asrSetter.EnterScrollFrame(sf);
     }
 
     if (mIsScrollableLayerInRootContainer) {
       aBuilder->SetActiveScrolledRootForRootScrollframe(aBuilder->CurrentActiveScrolledRoot());
     }
 
+    aBuilder->Check();
+
     if (mWillBuildScrollableLayer) {
       // Create a hit test info item for the scrolled content that's not
       // clipped to the displayport. This ensures that within the bounds
       // of the scroll frame, the scrolled content is always hit, even
       // if we are checkerboarding.
       if (aBuilder->BuildCompositorHitTestInfo()) {
         CompositorHitTestInfo info = mScrolledFrame->GetCompositorHitTestInfo(aBuilder);
         if (info != CompositorHitTestInfo::eInvisibleToHitTest) {
@@ -3876,16 +3887,18 @@ ScrollFrameHelper::DecideScrollableLayer
   // Since making new layers is expensive, only create a scrollable layer
   // for some scroll frames.
   // When a displayport is being used, force building of a layer so that
   // the compositor can find the scrollable layer for async scrolling.
   // If the element is marked 'scrollgrab', also force building of a layer
   // so that APZ can implement scroll grabbing.
   mWillBuildScrollableLayer = usingDisplayPort || nsContentUtils::HasScrollgrab(content);
 
+  aBuilder->Check();
+
   // The cached animated geometry root for the display builder is out of
   // date if we just introduced a new animated geometry root.
   if (oldWillBuildScrollableLayer != mWillBuildScrollableLayer) {
     aBuilder->RecomputeCurrentAnimatedGeometryRoot();
   }
 
   if (gfxPrefs::LayoutUseContainersForRootFrames() && mWillBuildScrollableLayer && mIsRoot) {
     mIsScrollableLayerInRootContainer = true;
--- a/layout/painting/nsDisplayList.h
+++ b/layout/painting/nsDisplayList.h
@@ -703,17 +703,17 @@ public:
     return mCurrentAGR;
   }
   AnimatedGeometryRoot* GetRootAnimatedGeometryRoot() {
     return mRootAGR;
   }
 
   void RecomputeCurrentAnimatedGeometryRoot();
 
-  void Check() {
+  MOZ_NEVER_INLINE void Check() {
     mPool.Check();
   }
 
   /**
    * Returns true if merging and flattening of display lists should be
    * performed while computing visibility.
    */
   bool AllowMergingAndFlattening() { return mAllowMergingAndFlattening; }
new file mode 100644
--- /dev/null
+++ b/layout/reftests/w3c-css/submitted/flexbox/flexbox-definite-sizes-001-ref.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test Reference</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<style>
+div {
+  width: 100px;
+  height: 100px;
+  background: green;
+}
+</style>
+<p>Test passes if you see a green 100px x 100px square, and no red</p>
+<div></div>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/w3c-css/submitted/flexbox/flexbox-definite-sizes-001.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test: nested flex containers with height established by 'min-height'</title>
+<link rel="match" href="flexbox-definite-sizes-001-ref.html">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#definite-sizes">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1449326">
+<style>
+div {
+  display: flex;
+}
+
+.item {
+  width: 100px;
+  background: red;
+  align-items: center;
+}
+
+.item span {
+  min-height: 100%;
+  width: 100%;
+  background: green;
+}
+</style>
+<p>Test passes if you see a green 100px x 100px square, and no red</p>
+<div style="min-height: 100px;">
+  <div class="item">
+    <span></span>
+  </div>
+</div>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/w3c-css/submitted/flexbox/flexbox-definite-sizes-002.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test: nested flex containers with height established by 'min-height'</title>
+<link rel="match" href="flexbox-definite-sizes-001-ref.html">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#definite-sizes">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1449326">
+<style>
+div {
+  display: flex;
+}
+
+.item {
+  width: 100px;
+  background: red;
+  align-items: center;
+  min-height: 100px;
+}
+
+.item span {
+  min-height: 100%;
+  width: 100%;
+  background: green;
+}
+</style>
+<p>Test passes if you see a green 100px x 100px square, and no red</p>
+<div>
+  <div class="item">
+    <span></span>
+  </div>
+</div>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/w3c-css/submitted/flexbox/flexbox-definite-sizes-003.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test: nested flex containers with definite max-height</title>
+<link rel="match" href="flexbox-definite-sizes-001-ref.html">
+<link rel="author" href="mailto:dholbert@mozilla.com" title="Daniel Holbert">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#definite-sizes">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1449326">
+<style>
+body { overflow: hidden }
+
+.outerFlex {
+  display: flex;
+  width: 100px;
+  /* Implicit "align-items:stretch" */
+}
+
+.innerFlex {
+  display: flex;
+  width: 100px;
+  background: red;
+
+  /* This reveals if we miscalculate the height of our flex item: */
+  align-items: flex-end;
+}
+
+.block {
+  width: 100px;
+  max-height: 100%;
+  background-color: green;
+}
+</style>
+<p>Test passes if you see a green 100px x 100px square, and no red</p>
+<div class="outerFlex" style="max-height: 100px">
+  <div class="innerFlex">
+    <div class="block"><div style="height:9999px"></div></div>
+  </div>
+</div>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/w3c-css/submitted/flexbox/flexbox-definite-sizes-004.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test: nested flex containers with definite max-height</title>
+<link rel="match" href="flexbox-definite-sizes-001-ref.html">
+<link rel="author" href="mailto:dholbert@mozilla.com" title="Daniel Holbert">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#definite-sizes">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1449326">
+<style>
+body { overflow: hidden }
+
+.outerFlex {
+  display: flex;
+  width: 100px;
+  /* Implicit "align-items:stretch" */
+}
+
+.innerFlex {
+  display: flex;
+  width: 100px;
+  background: red;
+
+  /* This reveals if we miscalculate the height of our flex item: */
+  align-items: flex-end;
+}
+
+.block {
+  width: 100px;
+  max-height: 100%;
+  background-color: green;
+}
+</style>
+<p>Test passes if you see a green 100px x 100px square, and no red</p>
+<div class="outerFlex">
+  <div class="innerFlex" style="max-height: 100px">
+    <div class="block"><div style="height:9999px"></div></div>
+  </div>
+</div>
--- a/layout/reftests/w3c-css/submitted/flexbox/reftest.list
+++ b/layout/reftests/w3c-css/submitted/flexbox/reftest.list
@@ -118,16 +118,22 @@ fuzzy-if(Android,158,32) == flexbox-alig
 == flexbox-intrinsic-ratio-003v.html flexbox-intrinsic-ratio-003-ref.html
 == flexbox-intrinsic-ratio-004.html flexbox-intrinsic-ratio-004-ref.html
 == flexbox-intrinsic-ratio-004v.html flexbox-intrinsic-ratio-004-ref.html
 == flexbox-intrinsic-ratio-005.html flexbox-intrinsic-ratio-005-ref.html
 == flexbox-intrinsic-ratio-005v.html flexbox-intrinsic-ratio-005-ref.html
 == flexbox-intrinsic-ratio-006.html flexbox-intrinsic-ratio-006-ref.html
 == flexbox-intrinsic-ratio-006v.html flexbox-intrinsic-ratio-006-ref.html
 
+# Test for definite and indefinite sizes.
+== flexbox-definite-sizes-001.html flexbox-definite-sizes-001-ref.html
+== flexbox-definite-sizes-002.html flexbox-definite-sizes-001-ref.html
+== flexbox-definite-sizes-003.html flexbox-definite-sizes-001-ref.html
+== flexbox-definite-sizes-004.html flexbox-definite-sizes-001-ref.html
+
 # Tests for flex items as (pseudo) stacking contexts
 == flexbox-items-as-stacking-contexts-001.xhtml flexbox-items-as-stacking-contexts-001-ref.xhtml
 == flexbox-items-as-stacking-contexts-002.html flexbox-items-as-stacking-contexts-002-ref.html
 == flexbox-items-as-stacking-contexts-003.html flexbox-items-as-stacking-contexts-003-ref.html
 
 # Tests for main-axis alignment (jusify-content property)
 == flexbox-justify-content-horiz-001a.xhtml flexbox-justify-content-horiz-001-ref.xhtml
 == flexbox-justify-content-horiz-001b.xhtml flexbox-justify-content-horiz-001-ref.xhtml
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -681,16 +681,17 @@ MustReresolveStyle(const nsStyleContext*
 already_AddRefed<nsStyleContext>
 nsComputedDOMStyle::DoGetStyleContextNoFlush(Element* aElement,
                                              nsAtom* aPseudo,
                                              nsIPresShell* aPresShell,
                                              StyleType aStyleType,
                                              AnimationFlag aAnimationFlag)
 {
   MOZ_ASSERT(aElement, "NULL element");
+
   // If the content has a pres shell, we must use it.  Otherwise we'd
   // potentially mix rule trees by using the wrong pres shell's style
   // set.  Using the pres shell from the content also means that any
   // content that's actually *in* a document will get the style from the
   // correct document.
   nsIPresShell* presShell = nsContentUtils::GetPresShellForContent(aElement);
   bool inDocWithShell = true;
   if (!presShell) {
@@ -723,16 +724,24 @@ nsComputedDOMStyle::DoGetStyleContextNoF
   if (aPseudo) {
     pseudoType = nsCSSPseudoElements::
       GetPseudoType(aPseudo, CSSEnabledState::eIgnoreEnabledState);
     if (pseudoType >= CSSPseudoElementType::Count) {
       return nullptr;
     }
   }
 
+  if (aElement->IsInNativeAnonymousSubtree() && !aElement->IsInComposedDoc()) {
+    // Normal web content can't access NAC, but Accessibility, DevTools and
+    // Editor use this same API and this may get called for anonymous content.
+    // Computing the style of a pseudo-element that doesn't have a parent doesn't
+    // really make sense.
+    return nullptr;
+  }
+
   // XXX the !aElement->IsHTMLElement(nsGkAtoms::area)
   // check is needed due to bug 135040 (to avoid using
   // mPrimaryFrame). Remove it once that's fixed.
   if (inDocWithShell &&
       aStyleType == eAll &&
       !aElement->IsHTMLElement(nsGkAtoms::area)) {
     nsIFrame* frame = nullptr;
     if (aPseudo == nsCSSPseudoElements::before) {
--- a/mobile/locales/l10n-changesets.json
+++ b/mobile/locales/l10n-changesets.json
@@ -4,17 +4,17 @@
             "android-multilocale"
         ], 
         "revision": "15f8a676acc9"
     }, 
     "ar": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "7e8ca94bfb92"
+        "revision": "eb5766ad7cbd"
     }, 
     "as": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "fde1a0b5c549"
     }, 
     "ast": {
@@ -22,35 +22,35 @@
             "android-multilocale"
         ], 
         "revision": "793d7478bddb"
     }, 
     "az": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "00fc78d53433"
+        "revision": "689dcd7ece60"
     }, 
     "be": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "6d251ea495d7"
+        "revision": "f04b0f474390"
     }, 
     "bg": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "23f936302582"
+        "revision": "03a1517d8960"
     }, 
     "bn-BD": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "e273e445ec93"
+        "revision": "759f41226279"
     }, 
     "bn-IN": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "e52d510f3317"
     }, 
     "br": {
@@ -64,47 +64,47 @@
             "android-multilocale"
         ], 
         "revision": "1bc9e713773e"
     }, 
     "cak": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "51ef748f7689"
+        "revision": "383a170600d7"
     }, 
     "cs": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "1c6fe157583d"
+        "revision": "dccde3b5a213"
     }, 
     "cy": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "7a4933220b15"
     }, 
     "da": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "7a3788be5bf7"
+        "revision": "c9167074e0e9"
     }, 
     "de": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "9b5b8a856ac6"
     }, 
     "dsb": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "e42f4180a41e"
+        "revision": "9dfc9da4c565"
     }, 
     "el": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "5be08eb300d8"
     }, 
     "en-GB": {
@@ -118,35 +118,35 @@
             "android-multilocale"
         ], 
         "revision": "1ec9a17a922d"
     }, 
     "eo": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "3239cd34090c"
+        "revision": "6ec6a33c631e"
     }, 
     "es-AR": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "379e8f6b20ba"
     }, 
     "es-CL": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "52c2d3c52f4d"
+        "revision": "9ac21e9125c1"
     }, 
     "es-ES": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "3cd373bedd3f"
+        "revision": "88c476641aca"
     }, 
     "es-MX": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "47e08e96e19f"
     }, 
     "et": {
@@ -172,29 +172,29 @@
             "android-multilocale"
         ], 
         "revision": "b97ee1cdd8bd"
     }, 
     "fi": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "70f81471c9ca"
+        "revision": "64b53f191ffc"
     }, 
     "fr": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "43fe0b2d5e3a"
+        "revision": "5900a464e32e"
     }, 
     "fy-NL": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "27021b5306b7"
+        "revision": "6d81f0fa3e26"
     }, 
     "ga-IE": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "2c67c144e22a"
     }, 
     "gd": {
@@ -208,47 +208,47 @@
             "android-multilocale"
         ], 
         "revision": "53960d5907bf"
     }, 
     "gn": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "42a86858712c"
+        "revision": "885b1962b2d5"
     }, 
     "gu-IN": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "7dedf17945c4"
+        "revision": "dca225bbefbe"
     }, 
     "he": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "a7b43bbc7b69"
+        "revision": "9eeb0e1e0156"
     }, 
     "hi-IN": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "7e8a036de3ff"
+        "revision": "7f2fe96dc1e1"
     }, 
     "hr": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "098b6fc8e071"
     }, 
     "hsb": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "3069b1947c4b"
+        "revision": "20a3c6f9dfa7"
     }, 
     "hu": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "c34df74c8c92"
     }, 
     "hy-AM": {
@@ -256,77 +256,77 @@
             "android-multilocale"
         ], 
         "revision": "492ff65c7bd8"
     }, 
     "id": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "54e2bae23e24"
+        "revision": "37883d45f6cc"
     }, 
     "is": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "a004c9ae754c"
+        "revision": "7dd1c5cfc753"
     }, 
     "it": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "34e913cd5454"
+        "revision": "107abe275ae9"
     }, 
     "ja": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "d8d109c8ba3e"
+        "revision": "10449937c3e4"
     }, 
     "ka": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "a29de576dea6"
     }, 
     "kab": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "500c781bb93e"
+        "revision": "c89b3adee8a3"
     }, 
     "kk": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "b03674a3a268"
+        "revision": "5d32adbda172"
     }, 
     "kn": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "98fb8e54633d"
     }, 
     "ko": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "66d7dd813eb0"
+        "revision": "64709e8a7a08"
     }, 
     "lo": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "1d3a10f511ce"
+        "revision": "a5df554eef0e"
     }, 
     "lt": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "cb6a1884f9ac"
+        "revision": "a45848a6799a"
     }, 
     "lv": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "6147b1f72dc8"
     }, 
     "mai": {
@@ -346,71 +346,71 @@
             "android-multilocale"
         ], 
         "revision": "b38e5a7e2a22"
     }, 
     "ms": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "fce02bad1d41"
+        "revision": "2ae58018c473"
     }, 
     "my": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "89f91484960c"
     }, 
     "nb-NO": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "81024170d907"
+        "revision": "8f521cc6b3df"
     }, 
     "ne-NP": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "721a59dc3d8a"
     }, 
     "nl": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "9bdc5366a0c8"
+        "revision": "69a5d79042bc"
     }, 
     "nn-NO": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "c4d7b2fb68a7"
+        "revision": "c8f121b3d3cd"
     }, 
     "or": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "e6f116d1b158"
     }, 
     "pa-IN": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "f55f5e385533"
+        "revision": "7706f744af5a"
     }, 
     "pl": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "ec821c2e0b48"
+        "revision": "c4014b5cccfa"
     }, 
     "pt-BR": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "7116f4ad6d44"
+        "revision": "e8c3c39876ac"
     }, 
     "pt-PT": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "ca1a896cf366"
     }, 
     "rm": {
@@ -418,35 +418,35 @@
             "android-multilocale"
         ], 
         "revision": "90a081ea3372"
     }, 
     "ro": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "db2f27c9bc45"
+        "revision": "6dab7e7cec0d"
     }, 
     "ru": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "d3e9d5a16f89"
+        "revision": "fd2ab9534e6b"
     }, 
     "sk": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "869223cdeb64"
+        "revision": "8f5f3ce8c654"
     }, 
     "sl": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "b64ab6491a3c"
+        "revision": "ad230ec7cce5"
     }, 
     "son": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "f4aee1a4ff37"
     }, 
     "sq": {
@@ -454,71 +454,71 @@
             "android-multilocale"
         ], 
         "revision": "dc0edbe00c87"
     }, 
     "sr": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "84c9edb85b13"
+        "revision": "50ba892d492d"
     }, 
     "sv-SE": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "6531f66fb514"
+        "revision": "d4177228b212"
     }, 
     "ta": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "2b6836bc7316"
+        "revision": "ec05a7e0c692"
     }, 
     "te": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "44add728826c"
+        "revision": "b40430793ead"
     }, 
     "th": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "447865643017"
+        "revision": "175726882855"
     }, 
     "tr": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "458e65790ba0"
+        "revision": "e6fdd60b8089"
     }, 
     "uk": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "08ba3df8ca2a"
+        "revision": "ded2ffb46089"
     }, 
     "ur": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "17e4cbd41a43"
     }, 
     "uz": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "45f91e58c147"
+        "revision": "afba28898693"
     }, 
     "vi": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "2d7be500c031"
+        "revision": "90f53282a17b"
     }, 
     "wo": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "ed0bf05ee9a1"
     }, 
     "xh": {
@@ -532,17 +532,17 @@
             "android-multilocale"
         ], 
         "revision": "afa92a819b9f"
     }, 
     "zh-CN": {
         "platforms": [
             "android-multilocale"
         ], 
-        "revision": "3f31234487c8"
+        "revision": "c4ebd39875b4"
     }, 
     "zh-TW": {
         "platforms": [
             "android-multilocale"
         ], 
         "revision": "47d91e36330f"
     }
 }
--- a/netwerk/base/nsNetUtil.cpp
+++ b/netwerk/base/nsNetUtil.cpp
@@ -2156,16 +2156,25 @@ bool NS_IsSameSiteForeign(nsIChannel* aC
 {
   if (!aChannel) {
     return false;
   }
   nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
   if (!loadInfo) {
     return false;
   }
+
+  // Do not treat loads triggered by web extensions as foreign
+  nsCOMPtr<nsIURI> channelURI;
+  NS_GetFinalChannelURI(aChannel, getter_AddRefs(channelURI));
+  if (BasePrincipal::Cast(loadInfo->TriggeringPrincipal())->
+        AddonAllowsLoad(channelURI)) {
+    return false;
+  }
+
   nsCOMPtr<nsIURI> uri;
   if (loadInfo->GetExternalContentPolicyType() == nsIContentPolicy::TYPE_DOCUMENT) {
     // for loads of TYPE_DOCUMENT we query the hostURI from the triggeringPricnipal
     // which returns the URI of the document that caused the navigation.
     loadInfo->TriggeringPrincipal()->GetURI(getter_AddRefs(uri));
   }
   else {
     uri = aHostURI;
--- a/netwerk/cookie/CookieServiceParent.cpp
+++ b/netwerk/cookie/CookieServiceParent.cpp
@@ -62,16 +62,17 @@ CookieServiceParent::CookieServiceParent
 {
   // Instantiate the cookieservice via the service manager, so it sticks around
   // until shutdown.
   nsCOMPtr<nsICookieService> cs = do_GetService(NS_COOKIESERVICE_CONTRACTID);
 
   // Get the nsCookieService instance directly, so we can call internal methods.
   mCookieService = nsCookieService::GetSingleton();
   NS_ASSERTION(mCookieService, "couldn't get nsICookieService");
+  mProcessingCookie = false;
 }
 
 CookieServiceParent::~CookieServiceParent()
 {
 }
 
 void
 GetInfoFromCookie(nsCookie         *aCookie,
@@ -265,17 +266,22 @@ CookieServiceParent::RecvSetCookieString
   // to use the channel to inspect it.
   nsCOMPtr<nsIChannel> dummyChannel;
   CreateDummyChannel(hostURI, channelURI,
                      const_cast<OriginAttributes&>(aAttrs),
                      getter_AddRefs(dummyChannel));
 
   // NB: dummyChannel could be null if something failed in CreateDummyChannel.
   nsDependentCString cookieString(aCookieString, 0);
+
+  // We set this to true while processing this cookie update, to make sure
+  // we don't send it back to the same content process.
+  mProcessingCookie = true;
   mCookieService->SetCookieStringInternal(hostURI, aIsForeign, cookieString,
-                                          aServerTime, aFromHttp, true, aAttrs,
+                                          aServerTime, aFromHttp, aAttrs,
                                           dummyChannel);
+  mProcessingCookie = false;
   return IPC_OK();
 }
 
 } // namespace net
 } // namespace mozilla
 
--- a/netwerk/cookie/CookieServiceParent.h
+++ b/netwerk/cookie/CookieServiceParent.h
@@ -27,16 +27,21 @@ public:
   void RemoveBatchDeletedCookies(nsIArray *aCookieList);
 
   void RemoveAll();
 
   void RemoveCookie(nsICookie *aCookie);
 
   void AddCookie(nsICookie *aCookie);
 
+  // This will return true if the CookieServiceParent is currently processing
+  // an update from the content process. This is used in ContentParent to make
+  // sure that we are only forwarding those cookie updates to other content
+  // processes, not the one they originated from.
+  bool ProcessingCookie() { return mProcessingCookie; }
 protected:
   virtual void ActorDestroy(ActorDestroyReason aWhy) override;
 
   virtual mozilla::ipc::IPCResult RecvGetCookieString(const URIParams& aHost,
                                                       const bool& aIsForeign,
                                                       const bool& aIsSafeTopLevelNav,
                                                       const bool& aIsSameSiteForeign,
                                                       const OriginAttributes& aAttrs,
@@ -57,15 +62,16 @@ protected:
                                                 const OriginAttributes &aAttrs) override;
 
   void
   SerialializeCookieList(const nsTArray<nsCookie*> &aFoundCookieList,
                          nsTArray<CookieStruct> &aCookiesList,
                          nsIURI *aHostURI);
 
   RefPtr<nsCookieService> mCookieService;
+  bool mProcessingCookie;
 };
 
 } // namespace net
 } // namespace mozilla
 
 #endif // mozilla_net_CookieServiceParent_h
 
--- a/netwerk/cookie/nsCookieService.cpp
+++ b/netwerk/cookie/nsCookieService.cpp
@@ -2133,27 +2133,26 @@ nsCookieService::SetCookieStringCommon(n
   OriginAttributes attrs;
   if (aChannel) {
     NS_GetOriginAttributes(aChannel, attrs);
   }
 
   nsDependentCString cookieString(aCookieHeader);
   nsDependentCString serverTime(aServerTime ? aServerTime : "");
   SetCookieStringInternal(aHostURI, isForeign, cookieString,
-                          serverTime, aFromHttp, false, attrs, aChannel);
+                          serverTime, aFromHttp, attrs, aChannel);
   return NS_OK;
 }
 
 void
 nsCookieService::SetCookieStringInternal(nsIURI                 *aHostURI,
                                          bool                    aIsForeign,
                                          nsDependentCString     &aCookieHeader,
                                          const nsCString        &aServerTime,
                                          bool                    aFromHttp,
-                                         bool                    aFromChild,
                                          const OriginAttributes &aOriginAttrs,
                                          nsIChannel             *aChannel)
 {
   NS_ASSERTION(aHostURI, "null host!");
 
   if (!mDBState) {
     NS_WARNING("No DBState! Profile already closed?");
     return;
@@ -2211,17 +2210,17 @@ nsCookieService::SetCookieStringInternal
   default:
     break;
   }
 
   int64_t serverTime = ParseServerTime(aServerTime);
 
   // process each cookie in the header
   while (SetCookieInternal(aHostURI, key, requireHostMatch, cookieStatus,
-                           aCookieHeader, serverTime, aFromHttp, aFromChild, aChannel)) {
+                           aCookieHeader, serverTime, aFromHttp, aChannel)) {
     // document.cookie can only set one cookie at a time
     if (!aFromHttp)
       break;
   }
 }
 
 // notify observers that a cookie was rejected due to the users' prefs.
 void
@@ -2294,31 +2293,27 @@ nsCookieService::NotifyThirdParty(nsIURI
 // "changed" means a cookie was altered. aSubject is the new cookie.
 // "cleared" means the entire cookie list was cleared. aSubject is null.
 // "batch-deleted" means a set of cookies was purged. aSubject is the list of
 // cookies.
 void
 nsCookieService::NotifyChanged(nsISupports     *aSubject,
                                const char16_t *aData,
                                bool aOldCookieIsSession,
-                               bool aFromHttp,
-                               bool aFromChild)
+                               bool aFromHttp)
 {
   const char* topic = mDBState == mPrivateDBState ?
       "private-cookie-changed" : "cookie-changed";
   nsCOMPtr<nsIObserverService> os = mozilla::services::GetObserverService();
   if (!os) {
     return;
   }
   // Notify for topic "private-cookie-changed" or "cookie-changed"
   os->NotifyObservers(aSubject, topic, aData);
 
-  if (!aFromChild) {
-    os->NotifyObservers(aSubject, "non-js-cookie-changed", aData);
-  }
   // Notify for topic "session-cookie-changed" to update the copy of session
   // cookies in session restore component.
   // Ignore private session cookies since they will not be restored.
   if (mDBState == mPrivateDBState) {
     return;
   }
   // Filter out notifications for individual non-session cookies.
   if (NS_LITERAL_STRING("changed").Equals(aData) ||
@@ -3482,22 +3477,36 @@ nsCookieService::CanSetCookie(nsIURI*   
     return newCookie;
   }
 
   // If the new cookie is same-site but in a cross site context,
   // browser must ignore the cookie.
   if ((aCookieAttributes.sameSite != nsICookie2::SAMESITE_UNSET) &&
       aThirdPartyUtil &&
       IsSameSiteEnabled()) {
-    bool isThirdParty = false;
-    aThirdPartyUtil->IsThirdPartyChannel(aChannel, aHostURI, &isThirdParty);
-    if (isThirdParty) {
-      COOKIE_LOGFAILURE(SET_COOKIE, aHostURI, savedCookieHeader,
-                        "failed the samesite tests");
-      return newCookie;
+
+    // Do not treat loads triggered by web extensions as foreign
+    bool addonAllowsLoad = false;
+    if (aChannel) {
+      nsCOMPtr<nsIURI> channelURI;
+      NS_GetFinalChannelURI(aChannel, getter_AddRefs(channelURI));
+      nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
+      addonAllowsLoad = loadInfo &&
+        BasePrincipal::Cast(loadInfo->TriggeringPrincipal())->
+          AddonAllowsLoad(channelURI);
+    }
+
+    if (!addonAllowsLoad) {
+      bool isThirdParty = false;
+      nsresult rv = aThirdPartyUtil->IsThirdPartyChannel(aChannel, aHostURI, &isThirdParty);
+      if (NS_FAILED(rv) || isThirdParty) {
+        COOKIE_LOGFAILURE(SET_COOKIE, aHostURI, savedCookieHeader,
+                          "failed the samesite tests");
+        return newCookie;
+      }
     }
   }
 
   aSetCookie = true;
   return newCookie;
 }
 
 // processes a single cookie, and returns true if there are more cookies
@@ -3505,17 +3514,16 @@ nsCookieService::CanSetCookie(nsIURI*   
 bool
 nsCookieService::SetCookieInternal(nsIURI                        *aHostURI,
                                    const mozilla::nsCookieKey    &aKey,
                                    bool                           aRequireHostMatch,
                                    CookieStatus                   aStatus,
                                    nsDependentCString            &aCookieHeader,
                                    int64_t                        aServerTime,
                                    bool                           aFromHttp,
-                                   bool                           aFromChild,
                                    nsIChannel                    *aChannel)
 {
   NS_ASSERTION(aHostURI, "null host!");
   bool canSetCookie = false;
   nsDependentCString savedCookieHeader(aCookieHeader);
   nsCookieAttributes cookieAttributes;
   bool newCookie = CanSetCookie(aHostURI, aKey, cookieAttributes, aRequireHostMatch,
                                 aStatus, aCookieHeader, aServerTime, aFromHttp,
@@ -3563,33 +3571,32 @@ nsCookieService::SetCookieInternal(nsIUR
     // update isSession and expiry attributes, in case they changed
     cookie->SetIsSession(cookieAttributes.isSession);
     cookie->SetExpiry(cookieAttributes.expiryTime);
   }
 
   // add the cookie to the list. AddInternal() takes care of logging.
   // we get the current time again here, since it may have changed during prompting
   AddInternal(aKey, cookie, PR_Now(), aHostURI, savedCookieHeader.get(),
-              aFromHttp, aFromChild);
+              aFromHttp);
   return newCookie;
 }
 
 // this is a backend function for adding a cookie to the list, via SetCookie.
 // also used in the cookie manager, for profile migration from IE.
 // it either replaces an existing cookie; or adds the cookie to the hashtable,
 // and deletes a cookie (if maximum number of cookies has been
 // reached). also performs list maintenance by removing expired cookies.
 void
 nsCookieService::AddInternal(const nsCookieKey &aKey,
                              nsCookie          *aCookie,
                              int64_t            aCurrentTimeInUsec,
                              nsIURI            *aHostURI,
                              const char        *aCookieHeader,
-                             bool               aFromHttp,
-                             bool               aFromChild)
+                             bool               aFromHttp)
 {
   MOZ_ASSERT(mInitializedDBStates);
   MOZ_ASSERT(mInitializedDBConn);
 
   int64_t currentTime = aCurrentTimeInUsec / PR_USEC_PER_SEC;
 
   nsListIter exactIter;
   bool foundCookie = false;
@@ -3697,17 +3704,17 @@ nsCookieService::AddInternal(const nsCoo
       // Remove the old cookie.
       RemoveCookieFromList(exactIter);
 
       // If the new cookie has expired -- i.e. the intent was simply to delete
       // the old cookie -- then we're done.
       if (aCookie->Expiry() <= currentTime) {
         COOKIE_LOGFAILURE(SET_COOKIE, aHostURI, aCookieHeader,
           "previously stored cookie was deleted");
-        NotifyChanged(oldCookie, u"deleted", oldCookieIsSession, aFromHttp, aFromChild);
+        NotifyChanged(oldCookie, u"deleted", oldCookieIsSession, aFromHttp);
         return;
       }
 
       // Preserve creation time of cookie for ordering purposes.
       aCookie->SetCreationTime(oldCookie->CreationTime());
     }
 
   } else {
@@ -3771,17 +3778,17 @@ nsCookieService::AddInternal(const nsCoo
   COOKIE_LOGSUCCESS(SET_COOKIE, aHostURI, aCookieHeader, aCookie, foundCookie);
 
   // Now that list mutations are complete, notify observers. We do it here
   // because observers may themselves attempt to mutate the list.
   if (purgedList) {
     NotifyChanged(purgedList, u"batch-deleted");
   }
 
-  NotifyChanged(aCookie, foundCookie ? u"changed" : u"added", oldCookieIsSession, aFromHttp, aFromChild);
+  NotifyChanged(aCookie, foundCookie ? u"changed" : u"added", oldCookieIsSession, aFromHttp);
 }
 
 /******************************************************************************
  * nsCookieService impl:
  * private cookie header parsing functions
  ******************************************************************************/
 
 // The following comment block elucidates the function of ParseAttributes.
--- a/netwerk/cookie/nsCookieService.h
+++ b/netwerk/cookie/nsCookieService.h
@@ -294,19 +294,19 @@ class nsCookieService final : public nsI
     void                          RebuildCorruptDB(DBState* aDBState);
     OpenDBResult                  Read();
     mozilla::UniquePtr<ConstCookie> GetCookieFromRow(mozIStorageStatement *aRow, const OriginAttributes &aOriginAttributes);
     void                          EnsureReadComplete(bool aInitDBConn);
     nsresult                      NormalizeHost(nsCString &aHost);
     nsresult                      GetCookieStringCommon(nsIURI *aHostURI, nsIChannel *aChannel, bool aHttpBound, char** aCookie);
     void                          GetCookieStringInternal(nsIURI *aHostURI, bool aIsForeign, bool aIsSafeTopLevelNav, bool aIsTopLevelForeign, bool aHttpBound, const OriginAttributes& aOriginAttrs, nsCString &aCookie);
     nsresult                      SetCookieStringCommon(nsIURI *aHostURI, const char *aCookieHeader, const char *aServerTime, nsIChannel *aChannel, bool aFromHttp);
-    void                          SetCookieStringInternal(nsIURI *aHostURI, bool aIsForeign, nsDependentCString &aCookieHeader, const nsCString &aServerTime, bool aFromHttp, bool aFromChild, const OriginAttributes &aOriginAttrs, nsIChannel* aChannel);
-    bool                          SetCookieInternal(nsIURI *aHostURI, const nsCookieKey& aKey, bool aRequireHostMatch, CookieStatus aStatus, nsDependentCString &aCookieHeader, int64_t aServerTime, bool aFromHttp, bool aFromChild, nsIChannel* aChannel);
-    void                          AddInternal(const nsCookieKey& aKey, nsCookie *aCookie, int64_t aCurrentTimeInUsec, nsIURI *aHostURI, const char *aCookieHeader, bool aFromHttp, bool aFromChild = false);
+    void                          SetCookieStringInternal(nsIURI *aHostURI, bool aIsForeign, nsDependentCString &aCookieHeader, const nsCString &aServerTime, bool aFromHttp, const OriginAttributes &aOriginAttrs, nsIChannel* aChannel);
+    bool                          SetCookieInternal(nsIURI *aHostURI, const nsCookieKey& aKey, bool aRequireHostMatch, CookieStatus aStatus, nsDependentCString &aCookieHeader, int64_t aServerTime, bool aFromHttp, nsIChannel* aChannel);
+    void                          AddInternal(const nsCookieKey& aKey, nsCookie *aCookie, int64_t aCurrentTimeInUsec, nsIURI *aHostURI, const char *aCookieHeader, bool aFromHttp);
     void                          RemoveCookieFromList(const nsListIter &aIter, mozIStorageBindingParamsArray *aParamsArray = nullptr);
     void                          AddCookieToList(const nsCookieKey& aKey, nsCookie *aCookie, DBState *aDBState, mozIStorageBindingParamsArray *aParamsArray, bool aWriteToDB = true);
     void                          UpdateCookieInList(nsCookie *aCookie, int64_t aLastAccessed, mozIStorageBindingParamsArray *aParamsArray);
     static bool                   GetTokenValue(nsACString::const_char_iterator &aIter, nsACString::const_char_iterator &aEndIter, nsDependentCSubstring &aTokenString, nsDependentCSubstring &aTokenValue, bool &aEqualsFound);
     static bool                   ParseAttributes(nsDependentCString &aCookieHeader, nsCookieAttributes &aCookie);
     bool                          RequireThirdPartyCheck();
     static bool                   CheckDomain(nsCookieAttributes &aCookie, nsIURI *aHostURI, const nsCString &aBaseDomain, bool aRequireHostMatch);
     static bool                   CheckPath(nsCookieAttributes &aCookie, nsIURI *aHostURI);
@@ -315,17 +315,17 @@ class nsCookieService final : public nsI
     void                          RemoveAllFromMemory();
     already_AddRefed<nsIArray>    PurgeCookies(int64_t aCurrentTimeInUsec);
     bool                          FindCookie(const nsCookieKey& aKey, const nsCString& aHost, const nsCString& aName, const nsCString& aPath, nsListIter &aIter);
     bool                          FindSecureCookie(const nsCookieKey& aKey, nsCookie* aCookie);
     int64_t                       FindStaleCookie(nsCookieEntry *aEntry, int64_t aCurrentTime, nsIURI* aSource, const mozilla::Maybe<bool> &aIsSecure, nsListIter &aIter);
     void                          TelemetryForEvictingStaleCookie(nsCookie* aEvicted, int64_t oldestCookieTime);
     void                          NotifyRejected(nsIURI *aHostURI);
     void                          NotifyThirdParty(nsIURI *aHostURI, bool aAccepted, nsIChannel *aChannel);
-    void                          NotifyChanged(nsISupports *aSubject, const char16_t *aData, bool aOldCookieIsSession = false, bool aFromHttp = false, bool aFromChild=false);
+    void                          NotifyChanged(nsISupports *aSubject, const char16_t *aData, bool aOldCookieIsSession = false, bool aFromHttp = false);
     void                          NotifyPurged(nsICookie2* aCookie);
     already_AddRefed<nsIArray>    CreatePurgeList(nsICookie2* aCookie);
     void                          UpdateCookieOldestTime(DBState* aDBState, nsCookie* aCookie);
 
     nsresult                      GetCookiesWithOriginAttributes(const mozilla::OriginAttributesPattern& aPattern, const nsCString& aBaseDomain, nsISimpleEnumerator **aEnumerator);
     nsresult                      RemoveCookiesWithOriginAttributes(const mozilla::OriginAttributesPattern& aPattern, const nsCString& aBaseDomain);
 
     /**
--- a/python/mozrelease/mozrelease/versions.py
+++ b/python/mozrelease/mozrelease/versions.py
@@ -1,44 +1,94 @@
 from __future__ import absolute_import
 
-from distutils.version import StrictVersion
+from distutils.version import StrictVersion, LooseVersion
 import re
 
 
-class ModernMozillaVersion(StrictVersion):
+class MozillaVersionCompareMixin():
+    def __cmp__(self, other):
+        has_esr = set()
+        if isinstance(other, LooseModernMozillaVersion) and str(other).endswith('esr'):
+            # If other version ends with esr, coerce through MozillaVersion ending up with
+            # a StrictVersion if possible
+            has_esr.add('other')
+            other = MozillaVersion(str(other)[:-3])  # strip ESR from end of string
+        if isinstance(self, LooseModernMozillaVersion) and str(self).endswith('esr'):
+            # If our version ends with esr, coerce through MozillaVersion ending up with
+            # a StrictVersion if possible
+            has_esr.add('self')
+            self = MozillaVersion(str(self)[:-3])  # strip ESR from end of string
+        if isinstance(other, LooseModernMozillaVersion) or \
+                isinstance(self, LooseModernMozillaVersion):
+            # If we're still LooseVersion for self or other, run LooseVersion compare
+            # Being sure to pass through Loose Version type first
+            val = LooseVersion.__cmp__(
+                    LooseModernMozillaVersion(str(self)),
+                    LooseModernMozillaVersion(str(other)))
+        else:
+            # No versions are loose, therefore we can use StrictVersion
+            val = StrictVersion.__cmp__(self, other)
+        if has_esr.isdisjoint(set(['other', 'self'])) or \
+                has_esr.issuperset(set(['other', 'self'])):
+            #  If both had esr string or neither, then cmp() was accurate
+            return val
+        elif val is not 0:
+            # cmp is accurate here even if esr is present in only 1 compare, since
+            # versions are not equal
+            return val
+        elif 'other' in has_esr:
+            return -1  # esr is not greater than non esr
+        return 1  # non esr is greater than esr
+
+
+class ModernMozillaVersion(MozillaVersionCompareMixin, StrictVersion):
     """A version class that is slightly less restrictive than StrictVersion.
        Instead of just allowing "a" or "b" as prerelease tags, it allows any
        alpha. This allows us to support the once-shipped "3.6.3plugin1" and
        similar versions."""
     version_re = re.compile(r"""^(\d+) \. (\d+) (\. (\d+))?
                                 ([a-zA-Z]+(\d+))?$""", re.VERBOSE)
 
 
-class AncientMozillaVersion(StrictVersion):
+class AncientMozillaVersion(MozillaVersionCompareMixin, StrictVersion):
     """A version class that is slightly less restrictive than StrictVersion.
        Instead of just allowing "a" or "b" as prerelease tags, it allows any
        alpha. This allows us to support the once-shipped "3.6.3plugin1" and
        similar versions.
        It also supports versions w.x.y.z by transmuting to w.x.z, which
        is useful for versions like 1.5.0.x and 2.0.0.y"""
     version_re = re.compile(r"""^(\d+) \. (\d+) \. \d (\. (\d+))
                                 ([a-zA-Z]+(\d+))?$""", re.VERBOSE)
 
 
+class LooseModernMozillaVersion(MozillaVersionCompareMixin, LooseVersion):
+    """A version class that is more restrictive than LooseVersion.
+       This class reduces the valid strings to "esr", "a", "b" and "rc" in order
+       to support esr. StrictVersion requires a trailing number after all strings."""
+    component_re = re.compile(r'(\d+ | a | b | rc | esr | \.)', re.VERBOSE)
+
+    def __repr__(self):
+        return "LooseModernMozillaVersion ('%s')" % str(self)
+
+
 def MozillaVersion(version):
     try:
         return ModernMozillaVersion(version)
     except ValueError:
         pass
     try:
         if version.count('.') == 3:
             return AncientMozillaVersion(version)
     except ValueError:
         pass
+    try:
+        return LooseModernMozillaVersion(version)
+    except ValueError:
+        pass
     raise ValueError("Version number %s is invalid." % version)
 
 
 def getPrettyVersion(version):
     version = re.sub(r'a([0-9]+)$', r' Alpha \1', version)
     version = re.sub(r'b([0-9]+)$', r' Beta \1', version)
     version = re.sub(r'rc([0-9]+)$', r' RC \1', version)
     return version
--- a/python/mozrelease/test/test_versions.py
+++ b/python/mozrelease/test/test_versions.py
@@ -43,27 +43,27 @@ ALL_VERSIONS = [  # Keep this sorted
     '3.5.5',
     '3.5.6',
     '3.5.7',
     '3.5.8',
     '3.5.9',
     '3.5.10',
     # ... Start skipping around...
     '4.0b9',
-    # '10.0.2esr',
-    # '10.0.3esr',
+    '10.0.2esr',
+    '10.0.3esr',
     '32.0',
     '49.0a1',
     '49.0a2',
     '59.0',
     '60.0',
-    # '60.0esr',
-    # '60.0.1esr',
+    '60.0esr',
+    '60.0.1esr',
     '60.1',
-    # '60.1.0esr',
+    '60.1esr',
     '61.0',
 ]
 
 
 @pytest.fixture(scope='function',
                 params=range(len(ALL_VERSIONS) - 1),
                 ids=lambda x: "{}, {}".format(ALL_VERSIONS[x], ALL_VERSIONS[x+1]))
 def comparable_versions(request):
@@ -75,22 +75,26 @@ def comparable_versions(request):
 def test_versions_parseable(version):
     """Test that we can parse previously shipped versions.
 
     We only test 3.0 and up, since we never generate updates against
     versions that old."""
     assert MozillaVersion(version) is not None
 
 
-def test_versions_compare(comparable_versions):
+def test_versions_compare_less(comparable_versions):
     """Test that versions properly compare in order."""
     smaller_version, larger_version = comparable_versions
     assert MozillaVersion(smaller_version) < MozillaVersion(larger_version)
+
+
+def test_versions_compare_greater(comparable_versions):
+    """Test that versions properly compare in order."""
+    smaller_version, larger_version = comparable_versions
     assert MozillaVersion(larger_version) > MozillaVersion(smaller_version)
-    assert MozillaVersion(larger_version) != MozillaVersion(smaller_version)
 
 
 @pytest.mark.parametrize('version', ALL_VERSIONS)
 def test_versions_compare_equal(version):
     """Test that versions properly compare as equal through multiple passes."""
     assert MozillaVersion(version) == MozillaVersion(version)
 
 
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1158,9 +1158,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 = 485;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1529264935824000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1536105600000000);
--- 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(1531684123172000);
+const PRTime gPreloadListExpirationTime = INT64_C(1536105600000000);
 %%
 0-1.party, 1
 0.me.uk, 1
 0005pay.com, 1
 00100010.net, 1
 0010100.net, 1
 00120012.net, 1
 00130013.net, 1
--- a/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js
+++ b/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js
@@ -77,18 +77,18 @@ function checkDialogContents(win, notBef
     win.document.getElementById("details").value.split("\n");
   Assert.equal(subject, "Issued to: CN=Mochitest client",
                "Actual and expected subject should be equal");
   Assert.equal(serialNum, "Serial number: 03",
                "Actual and expected serial number should be equal");
   Assert.equal(validity, `Valid from ${notBefore} to ${notAfter}`,
                "Actual and expected validity should be equal");
   Assert.equal(issuer,
-               "Issued by: CN=Temporary Certificate Authority,O=Mozilla " +
-               "Testing,OU=Profile Guided Optimization",
+               "Issued by: OU=Profile Guided Optimization,O=Mozilla Testing," +
+               "CN=Temporary Certificate Authority",
                "Actual and expected issuer should be equal");
   Assert.equal(tokenName, "Stored on: Software Security Device",
                "Actual and expected token name should be equal");
 }
 
 function findCertByCommonName(commonName) {
   let certEnumerator = certDB.getCerts().getEnumerator();
   while (certEnumerator.hasMoreElements()) {
--- a/security/manager/ssl/tests/unit/pycert.py
+++ b/security/manager/ssl/tests/unit/pycert.py
@@ -721,17 +721,17 @@ class Certificate(object):
 
     def toPEM(self):
         output = '-----BEGIN CERTIFICATE-----'
         der = self.toDER()
         b64 = base64.b64encode(der)
         while b64:
             output += '\n' + b64[:64]
             b64 = b64[64:]
-        output += '\n-----END CERTIFICATE-----\n'
+        output += '\n-----END CERTIFICATE-----'
         return output
 
 
 # The build harness will call this function with an output
 # file-like object and a path to a file containing a
 # specification. This will read the specification and output
 # the certificate as PEM.
 # This utility tries as hard as possible to ensure that two
--- a/security/manager/ssl/tests/unit/pykey.py
+++ b/security/manager/ssl/tests/unit/pykey.py
@@ -751,9 +751,9 @@ def keyFromSpecification(specification):
 def main(output, inputPath):
     with open(inputPath) as configStream:
         output.write(keyFromSpecification(configStream.read().strip()).toPEM())
 
 
 # When run as a standalone program, this will read a specification from
 # stdin and output the certificate as PEM to stdout.
 if __name__ == '__main__':
-    print keyFromSpecification(sys.stdin.read()).toPEM()
+    print keyFromSpecification(sys.stdin.read().strip()).toPEM()
new file mode 100644
--- /dev/null
+++ b/taskcluster/taskgraph/actions/rerun.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+
+# 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/.
+
+from __future__ import absolute_import, print_function, unicode_literals
+
+import logging
+import sys
+
+from taskgraph.util.taskcluster import (
+    status_task,
+    rerun_task
+)
+from .registry import register_callback_action
+from .util import fetch_graph_and_labels
+
+logger = logging.getLogger(__name__)
+
+RERUN_STATES = ('exception', 'failed')
+
+
+@register_callback_action(
+    title='Rerun',
+    name='rerun',
+    symbol='rr',
+    description=(
+        'Rerun a task.\n\n'
+        'This only works on failed or exception tasks in the original taskgraph,'
+        ' and is CoT friendly.'
+    ),
+    order=1,
+    context=[{}],
+    schema={
+        'type': 'object',
+        'properties': {}
+    }
+)
+def rerun_action(parameters, input, task_group_id, task_id, task):
+    parameters = dict(parameters)
+    decision_task_id, full_task_graph, label_to_taskid = fetch_graph_and_labels(parameters)
+    label = task['metadata']['name']
+    if task_id not in label_to_taskid.values():
+        logger.error(
+            "Refusing to rerun {}: taskId {} not in decision task {} label_to_taskid!".format(
+                label, task_id, decision_task_id
+            )
+        )
+
+    status = status_task(task_id)
+    if status not in RERUN_STATES:
+        logger.error(
+            "Refusing to rerun {}: state {} not in {}!".format(label, status, RERUN_STATES)
+        )
+        sys.exit(1)
+    rerun_task(task_id)
+    logger.info('Reran {}'.format(label))
--- a/taskcluster/taskgraph/decision.py
+++ b/taskcluster/taskgraph/decision.py
@@ -69,16 +69,22 @@ PER_PROJECT_PARAMETERS = {
     },
 
     'mozilla-release': {
         'target_tasks_method': 'mozilla_release_tasks',
         'optimize_target_tasks': True,
         'include_nightly': True,
     },
 
+    'mozilla-esr60': {
+        'target_tasks_method': 'mozilla_esr60_tasks',
+        'optimize_target_tasks': True,
+        'include_nightly': True,
+    },
+
     'comm-beta': {
         'target_tasks_method': 'mozilla_beta_tasks',
         'optimize_target_tasks': True,
         'include_nightly': True,
     },
 
     'comm-esr60': {
         'target_tasks_method': 'mozilla_beta_tasks',
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -262,16 +262,38 @@ def target_tasks_mozilla_release(full_ta
     """Select the set of tasks required for a promotable beta or release build
     of desktop, plus android CI. The candidates build process involves a pipeline
     of builds and signing, but does not include beetmover or balrog jobs."""
 
     return [l for l, t in full_task_graph.tasks.iteritems() if
             filter_beta_release_tasks(t, parameters)]
 
 
+@_target_task('mozilla_esr60_tasks')
+def target_tasks_mozilla_esr60(full_task_graph, parameters, graph_config):
+    """Select the set of tasks required for a promotable beta or release build
+    of desktop, plus android CI. The candidates build process involves a pipeline
+    of builds and signing, but does not include beetmover or balrog jobs."""
+
+    def filter(task):
+        if not filter_beta_release_tasks(task, parameters):
+            return False
+
+        platform = task.attributes.get('build_platform')
+
+        # Android is not built on esr.
+        if platform and 'android' in platform:
+            return False
+
+        # All else was already filtered
+        return True
+
+    return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
+
+
 @_target_task('promote_desktop')
 def target_tasks_promote_desktop(full_task_graph, parameters, graph_config):
     """Select the superset of tasks required to promote a beta or release build
     of a desktop product. This should include all non-android
     mozilla_{beta,release} tasks, plus l10n, beetmover, balrog, etc."""
 
     beta_release_tasks = [l for l, t in full_task_graph.tasks.iteritems() if
                           filter_beta_release_tasks(t, parameters,
--- a/taskcluster/taskgraph/util/taskcluster.py
+++ b/taskcluster/taskgraph/util/taskcluster.py
@@ -172,16 +172,33 @@ def cancel_task(task_id, use_proxy=False
     """Cancels a task given a task_id. In testing mode, just logs that it would
     have cancelled."""
     if testing:
         logger.info('Would have cancelled {}.'.format(task_id))
     else:
         _do_request(get_task_url(task_id, use_proxy) + '/cancel', json={})
 
 
+def status_task(task_id, use_proxy=False):
+    """Gets the status of a task given a task_id. In testing mode, just logs that it would
+    have retrieved status."""
+    resp = _do_request(get_task_url(task_id, use_proxy) + '/status')
+    status = resp.json().get("status", {}).get('state') or 'unknown'
+    return status
+
+
+def rerun_task(task_id):
+    """Reruns a task given a task_id. In testing mode, just logs that it would
+    have reran."""
+    if testing:
+        logger.info('Would have rerun {}.'.format(task_id))
+    else:
+        _do_request(get_task_url(task_id, use_proxy=True) + '/rerun', json={})
+
+
 def get_purge_cache_url(provisioner_id, worker_type, use_proxy=False):
     if use_proxy:
         TASK_URL = 'http://taskcluster/purge-cache/v1/purge-cache/{}/{}'
     else:
         TASK_URL = 'https://purge-cache.taskcluster.net/v1/purge-cache/{}/{}'
     return TASK_URL.format(provisioner_id, worker_type)
 
 
--- a/testing/mochitest/runtests.py
+++ b/testing/mochitest/runtests.py
@@ -616,17 +616,17 @@ class SSLTunnel:
             prefix="ssltunnel", suffix=".cfg")
         with os.fdopen(configFd, "w") as config:
             config.write("httpproxy:1\n")
             config.write("certdbdir:%s\n" % self.certPath)
             config.write("forward:127.0.0.1:%s\n" % self.httpPort)
             config.write(
                 "websocketserver:%s:%s\n" %
                 (self.webServer, self.webSocketPort))
-            config.write("listen:*:%s:pgo server certificate\n" % self.sslPort)
+            config.write("listen:*:%s:pgoserver\n" % self.sslPort)
 
             for loc in locations:
                 if loc.scheme == "https" and "nocert" not in loc.options:
                     self.writeLocation(config, loc)
 
     def start(self):
         """ Starts the SSL Tunnel """
 
--- a/testing/mozharness/configs/android/android_common.py
+++ b/testing/mozharness/configs/android/android_common.py
@@ -235,16 +235,17 @@ config = {
             "options": [
                 "--emulator",
                 "--app=fennec",
                 "--package=%(app)s",
                 "--address=%(address)s",
                 "%(test_manifest)s",
                 "--disable-e10s",
                 "--gecko-log=-",
+                "-vv",
                 "--log-raw=%(raw_log_file)s",
                 "--log-errorsummary=%(error_summary_file)s",
                 "--symbols-path=%(symbols_path)s",
                 "--startup-timeout=300",
             ],
         },
         "geckoview": {
             "run_filename": "rungeckoview.py",
new file mode 100644
--- /dev/null
+++ b/toolkit/components/extensions/test/mochitest/file_same_site_cookies_webextension.sjs
@@ -0,0 +1,40 @@
+// Custom *.sjs file specifically for the needs of Bug 1454914
+
+const WIN = `<html><body>dummy page setting a same-site cookie</body></html>`;
+const FRAME = `<html><body>dummy frame getting a same-site cookie</body></html>`;
+
+// small red image
+const IMG_BYTES = atob(
+  "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12" +
+  "P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==");
+
+function handleRequest(request, response)
+{
+  // avoid confusing cache behaviors
+  response.setHeader("Cache-Control", "no-cache", false);
+
+  if (request.queryString === "loadWin") {
+    response.write(WIN);
+    return;
+  }
+
+  // using startsWith and discard the math random
+  if (request.queryString.startsWith("loadImage")) {
+    response.setHeader("Set-Cookie", "myKey=mySameSiteExtensionCookie; samesite=strict", true);
+    response.setHeader("Content-Type", "image/png");
+    response.write(IMG_BYTES);
+    return;
+  }
+
+  if (request.queryString === "loadXHR") {
+    let cookie = "noCookie";
+    if (request.hasHeader("Cookie")) {
+      cookie = request.getHeader("Cookie");
+    }
+    response.write(cookie);
+    return;
+  }
+
+  // we should never get here, but just in case return something unexpected
+  response.write("D'oh");
+}
--- a/toolkit/components/extensions/test/mochitest/mochitest-common.ini
+++ b/toolkit/components/extensions/test/mochitest/mochitest-common.ini
@@ -59,16 +59,17 @@ support-files =
   redirect_auto.sjs
   redirection.sjs
   return_headers.sjs
   slow_response.sjs
   webrequest_worker.js
   !/dom/tests/mochitest/geolocation/network_geolocation.sjs
   !/toolkit/components/passwordmgr/test/authenticate.sjs
   file_redirect_data_uri.html
+  file_same_site_cookies_webextension.sjs
 prefs =
   security.mixed_content.upgrade_display_content=false
 
 [test_ext_background_api_injection.html]
 [test_ext_background_generated_url.html]
 [test_ext_background_canvas.html]
 [test_ext_background_page.html]
 skip-if = (toolkit == 'android') # android doesn't have devtools
@@ -170,8 +171,9 @@ skip-if = os == 'android' || os == 'linu
 [test_ext_webrequest_suspend.html]
 [test_ext_webrequest_upgrade.html]
 [test_ext_webrequest_upload.html]
 skip-if = os == 'android' # Currently fails in emulator tests
 [test_ext_webrequest_websocket.html]
 [test_ext_webrequest_redirect_data_uri.html]
 [test_ext_window_postMessage.html]
 [test_ext_xhr_capabilities.html]
+[test_same_site_cookies_webextension.html]
new file mode 100644
--- /dev/null
+++ b/toolkit/components/extensions/test/mochitest/test_same_site_cookies_webextension.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Bug 1454914: Exempt web-extensions from same-site cookie policy</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
+  <script type="text/javascript" src="head.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+
+<script type="text/javascript">
+"use strict";
+
+/* Description of the test:
+ * (1) We load an image from mochi.test which sets a same site cookie
+ * (2) We have the web extension perform an XHR request to mochi.test
+ * (3) We verify the web-extension can access the same-site cookie
+ */
+
+add_task(async function test_webRequest_same_site_cookie_access() {
+  let extension = ExtensionTestUtils.loadExtension({
+    manifest: {
+      permissions: [
+        "http://example.com/*",
+      ],
+      content_scripts: [{
+        matches: ["http://example.com/*"],
+        run_at: "document_start",
+        js: ["content_script.js"],
+      }],
+    },
+
+    background() {
+      browser.test.onMessage.addListener(msg => {
+        if (msg === "verify-same-site-cookie-moz-extension") {
+          let xhr = new XMLHttpRequest();
+          try {
+            xhr.open("GET", "http://example.com/tests/toolkit/components/extensions/test/mochitest/file_same_site_cookies_webextension.sjs?loadXHR", true);
+            xhr.onload = function() {
+              browser.test.assertEq("myKey=mySameSiteExtensionCookie", xhr.responseText,
+                                    "cookie should be accessible from moz-extension context");
+              browser.test.sendMessage("same-site-cookie-test-done");
+            };
+            xhr.onerror = function() {
+              browser.test.fail("xhr onerror");
+              browser.test.sendMessage("same-site-cookie-test-done");
+            };
+          } catch (e) {
+            browser.test.fail("xhr failure: " + e);
+          }
+          xhr.send();
+        }
+      });
+    },
+
+    files: {
+      "content_script.js": function() {
+        let myImage = document.createElement("img");
+        // Set the src via wrappedJSObject so the load is triggered with the
+        // content page's principal rather than ours.
+        myImage.wrappedJSObject.setAttribute("src", "http://example.com/tests/toolkit/components/extensions/test/mochitest/file_same_site_cookies_webextension.sjs?loadImage" + Math.random());
+        myImage.onload = function() {
+          browser.test.log("image onload");
+          browser.test.sendMessage("image-loaded-and-same-site-cookie-set");
+        };
+        myImage.onerror = function() {
+          browser.test.log("image onerror");
+        };
+        document.body.appendChild(myImage);
+      },
+    },
+  });
+
+  await extension.startup();
+  let win = window.open("http://example.com/tests/toolkit/components/extensions/test/mochitest/file_same_site_cookies_webextension.sjs?loadWin");
+  await extension.awaitMessage("image-loaded-and-same-site-cookie-set");
+  extension.sendMessage("verify-same-site-cookie-moz-extension");
+  await extension.awaitMessage("same-site-cookie-test-done");
+  win.close();
+  await extension.unload();
+});
+
+</script>
+
+</body>
+</html>
--- a/toolkit/components/printing/content/printPreviewBindings.xml
+++ b/toolkit/components/printing/content/printPreviewBindings.xml
@@ -30,17 +30,17 @@
       <xul:vbox align="center" pack="center">
         <xul:label value="&page.label;" accesskey="&page.accesskey;" control="pageNumber"/>
       </xul:vbox>
       <xul:toolbarbutton anonid="navigateHome" class="navigate-button tabbable"
         oncommand="parentNode.navigate(0, 0, 'home');" tooltiptext="&homearrow.tooltip;"/>
       <xul:toolbarbutton anonid="navigatePrevious" class="navigate-button tabbable"
         oncommand="parentNode.navigate(-1, 0, 0);" tooltiptext="&previousarrow.tooltip;"/>
       <xul:hbox align="center" pack="center">
-        <xul:textbox id="pageNumber" size="3" value="1" min="1" type="number"
+        <xul:textbox id="pageNumber" value="1" min="1" type="number"
           hidespinbuttons="true" onchange="navigate(0, this.valueNumber, 0);"/>
         <xul:label value="&of.label;"/>
         <xul:label value="1"/>
       </xul:hbox>
       <xul:toolbarbutton anonid="navigateNext" class="navigate-button tabbable"
         oncommand="parentNode.navigate(1, 0, 0);" tooltiptext="&nextarrow.tooltip;"/>
       <xul:toolbarbutton anonid="navigateEnd" class="navigate-button tabbable"
         oncommand="parentNode.navigate(0, 0, 'end');" tooltiptext="&endarrow.tooltip;"/>
--- a/toolkit/components/reader/test/browser.ini
+++ b/toolkit/components/reader/test/browser.ini
@@ -9,13 +9,19 @@ support-files =
 support-files =
   readerModeArticleHiddenNodes.html
 [browser_readerMode_with_anchor.js]
 support-files =
   readerModeArticle.html
 [browser_bug1124271_readerModePinnedTab.js]
 support-files =
   readerModeArticle.html
+[browser_bug1453818_samesite_cookie.js]
+support-files =
+  getCookies.html
+  linkToGetCookies.html
+  setSameSiteCookie.html
+  setSameSiteCookie.html^headers^
 [browser_readerMode_readingTime.js]
 support-files =
   readerModeArticle.html
   readerModeArticleShort.html
   readerModeArticleMedium.html
new file mode 100644
--- /dev/null
+++ b/toolkit/components/reader/test/browser_bug1453818_samesite_cookie.js
@@ -0,0 +1,97 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_ORIGIN1 = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "http://example.com");
+const TEST_ORIGIN2 = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "http://example.org");
+
+async function clickLink(browser) {
+  info("Waiting for the page to load after clicking the link...");
+  let pageLoaded = BrowserTestUtils.waitForContentEvent(browser, "DOMContentLoaded");
+  await ContentTask.spawn(browser, null, async function() {
+    let link = content.document.getElementById("link");
+    ok(link, "The link element was found.");
+    link.click();
+  });
+  await pageLoaded;
+}
+
+async function checkCookiePresent(browser) {
+  await ContentTask.spawn(browser, null, async function() {
+    let cookieSpan = content.document.getElementById("cookieSpan");
+    ok(cookieSpan, "cookieSpan element should be in document");
+    is(cookieSpan.textContent, "foo=bar", "The SameSite cookie was sent correctly.");
+  });
+}
+
+async function checkCookie(sameSiteEnabled, browser) {
+  if (sameSiteEnabled) {
+    info("Check that the SameSite cookie was not sent.");
+    await ContentTask.spawn(browser, null, async function() {
+      let cookieSpan = content.document.getElementById("cookieSpan");
+      ok(cookieSpan, "cookieSpan element should be in document");
+      is(cookieSpan.textContent, "", "The SameSite cookie was blocked correctly.");
+    });
+  } else {
+    info("Check that the SameSite cookie was sent.");
+    await checkCookiePresent(browser);
+  }
+}
+
+async function runTest(sameSiteEnabled) {
+  await SpecialPowers.pushPrefEnv({
+    set: [["network.cookie.same-site.enabled", sameSiteEnabled],
+          ["reader.parse-on-load.enabled", true]],
+  });
+
+  info("Set a SameSite=strict cookie.");
+  await BrowserTestUtils.withNewTab(TEST_ORIGIN1 + "setSameSiteCookie.html", () => {});
+
+  info("Check that the cookie has been correctly set.");
+  await BrowserTestUtils.withNewTab(TEST_ORIGIN1 + "getCookies.html", async function(browser) {
+    await checkCookiePresent(browser);
+  });
+
+  info("Open a cross-origin page with a link to the domain that set the cookie.");
+  {
+    let browser;
+    let pageLoaded;
+    let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
+      let t = BrowserTestUtils.addTab(gBrowser, TEST_ORIGIN2 + "linkToGetCookies.html");
+      gBrowser.selectedTab = t;
+      browser = gBrowser.selectedBrowser;
+      pageLoaded = BrowserTestUtils.waitForContentEvent(browser, "DOMContentLoaded");
+      return t;
+    }, false);
+
+    info("Waiting for the page to load in normal mode...");
+    await pageLoaded;
+
+    await clickLink(browser);
+    await checkCookie(sameSiteEnabled, browser);
+    await BrowserTestUtils.removeTab(tab);
+  }
+
+  info("Open the cross-origin page again.");
+  await BrowserTestUtils.withNewTab(TEST_ORIGIN2 + "linkToGetCookies.html", async function(browser) {
+    let pageShown = BrowserTestUtils.waitForContentEvent(browser, "AboutReaderContentReady");
+    let readerButton = document.getElementById("reader-mode-button");
+    ok(readerButton, "readerButton should be available");
+    readerButton.click();
+
+    info("Waiting for the page to be displayed in reader mode...");
+    await pageShown;
+
+    await clickLink(browser);
+    await checkCookie(sameSiteEnabled, browser);
+  });
+}
+
+add_task(async function() {
+  await runTest(true);
+});
+
+add_task(async function() {
+  await runTest(false);
+});
new file mode 100644
--- /dev/null
+++ b/toolkit/components/reader/test/getCookies.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+    </head>
+    <body>
+        <p>Cookie: <span id="cookieSpan">(none yet)</span></p>
+        <br>
+        <script>
+        let cookieSpan = document.getElementById("cookieSpan");
+        cookieSpan.textContent = document.cookie;
+        </script>
+    </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/toolkit/components/reader/test/linkToGetCookies.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+    </head>
+    <body>
+        <article>
+            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</p>
+
+            <p><a href="http://example.com/browser/toolkit/components/reader/test/getCookies.html" id="link">Cross-origin link to getCookies.html</a></p>
+        </article>
+    </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/toolkit/components/reader/test/setSameSiteCookie.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+    </head>
+    <body>
+        <p>This page just set a cookie with the <code>SameSite</code> attribute.</p>
+    </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/toolkit/components/reader/test/setSameSiteCookie.html^headers^
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; Path='/' ; SameSite=strict
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -9907,52 +9907,73 @@
     "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
     "releaseChannelCollection": "opt-out",
     "description": "How long has a custom developer tool been active (seconds)"
   },
   "DEVTOOLS_WEBIDE_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [916804, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_USB_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [916804, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE USB runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_WIFI_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [916804, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE WiFi runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_SIMULATOR_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [916804, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE simulator runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_REMOTE_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [916804, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE remote runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_LOCAL_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [916804, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE local runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_OTHER_CONNECTION_RESULT": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
+    "bug_numbers": [1069552, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "Did WebIDE other runtime connection succeed?"
   },
   "DEVTOOLS_WEBIDE_CONNECTION_TIME_SECONDS": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000000,
     "n_buckets": 100,
@@ -9970,58 +9991,79 @@
     "kind": "boolean",
     "description": "Was WebIDE's debug button used during this runtime connection?"
   },
   "DEVTOOLS_WEBIDE_CONNECTED_RUNTIME_TYPE": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
     "keyed": true,
+    "bug_numbers": [1159043, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "What runtime type did WebIDE connect to?"
   },
   "DEVTOOLS_WEBIDE_CONNECTED_RUNTIME_ID": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
     "keyed": true,
+    "bug_numbers": [1159043, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",
     "description": "What runtime ID did WebIDE connect to?"
   },
   "DEVTOOLS_WEBIDE_CONNECTED_RUNTIME_PROCESSOR": {
     "record_in_processes": ["main", "content"],
     "expires_in_version": "never",
     "kind": "boolean",
     "keyed": true,
+    "bug_numbers": [1159043, 1448074],
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jryans@mozilla.com"],
+    "releaseChannelCollection": "opt-out",