Bug 1465172 - Add section rows, onboarding messages and bug fixes to Activity Stream. r?ursula draft
authorEd Lee <edilee@mozilla.com>
Tue, 29 May 2018 12:14:49 -0700
changeset 801747 2eef2873dba83ca35cbd406c3e5f509993001f68
parent 801403 5866d6685849311f057e7e229b9ace63a2641c29
push id111724
push userbmo:edilee@mozilla.com
push dateWed, 30 May 2018 17:52:19 +0000
reviewersursula
bugs1465172
milestone62.0a1
Bug 1465172 - Add section rows, onboarding messages and bug fixes to Activity Stream. r?ursula MozReview-Commit-ID: LxtwrSfIMTJ
browser/extensions/activity-stream/css/activity-stream-linux.css
browser/extensions/activity-stream/css/activity-stream-linux.css.map
browser/extensions/activity-stream/css/activity-stream-mac.css
browser/extensions/activity-stream/css/activity-stream-mac.css.map
browser/extensions/activity-stream/css/activity-stream-windows.css
browser/extensions/activity-stream/css/activity-stream-windows.css.map
browser/extensions/activity-stream/data/content/activity-stream.bundle.js
browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
browser/extensions/activity-stream/data/content/assets/illustration-gift@2x.png
browser/extensions/activity-stream/install.rdf.in
browser/extensions/activity-stream/lib/ASRouter.jsm
browser/extensions/activity-stream/lib/AboutPreferences.jsm
browser/extensions/activity-stream/lib/ActivityStream.jsm
browser/extensions/activity-stream/lib/HighlightsFeed.jsm
browser/extensions/activity-stream/lib/OnboardingMessageProvider.jsm
browser/extensions/activity-stream/lib/SectionsManager.jsm
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
browser/extensions/activity-stream/test/unit/asrouter/MessageLoaderUtils.test.js
browser/extensions/activity-stream/test/unit/asrouter/constants.js
browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css
@@ -1315,17 +1315,18 @@ main {
       max-height: 57px;
       overflow: hidden; }
   .card-outer .card-host-name {
     color: var(--newtab-text-secondary-color);
     font-size: 10px;
     overflow: hidden;
     padding-bottom: 4px;
     text-overflow: ellipsis;
-    text-transform: uppercase; }
+    text-transform: uppercase;
+    white-space: nowrap; }
   .card-outer .card-host-name.alternate {
     display: none; }
   .card-outer .card-title {
     font-size: 14px;
     font-weight: 600;
     line-height: 19px;
     margin: 0 0 2px;
     word-wrap: break-word; }
@@ -1335,20 +1336,19 @@ main {
     margin: 0;
     overflow: hidden;
     word-wrap: break-word; }
   .card-outer .card-context {
     bottom: 0;
     color: var(--newtab-text-tertiary-color);
     display: flex;
     font-size: 11px;
-    left: 0;
+    offset-inline-start: 0;
     padding: 9px 16px 9px 14px;
-    position: absolute;
-    right: 0; }
+    position: absolute; }
   .card-outer .card-context-icon {
     fill: var(--newtab-icon-tertiary-color);
     height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
     line-height: 22px;
     overflow: hidden;
@@ -1396,22 +1396,23 @@ main {
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
   .compact-cards .card-outer .card-description {
     display: none; }
   .compact-cards .card-outer .card-context {
     background-color: var(--newtab-card-background-color);
     border-radius: 16px;
+    clip-path: inset(0 0 4px);
     height: 32px;
     width: 32px;
     padding: 8px;
     top: 92px;
-    left: auto;
-    offset-inline-end: 12px; }
+    offset-inline-end: 12px;
+    offset-inline-start: auto; }
     .compact-cards .card-outer .card-context::after {
       border: 1px solid var(--newtab-card-hairline-color);
       border-bottom: 0;
       border-radius: 16px 16px 0 0;
       content: '';
       position: absolute;
       height: 50%;
       width: 100%;
@@ -1820,24 +1821,26 @@ main {
     background-size: 120px;
     background-position: center center;
     background-repeat: no-repeat;
     display: inline-block;
     vertical-align: middle; }
     @media (max-width: 850px) {
       .onboardingMessage .onboardingMessageImage {
         height: 75px;
-        width: 160px;
+        min-width: 80px;
         background-size: 80px; } }
     .onboardingMessage .onboardingMessageImage.addons {
       background-image: url("resource://activity-stream/data/content/assets/illustration-addons@2x.png"); }
     .onboardingMessage .onboardingMessageImage.privatebrowsing {
       background-image: url("resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png"); }
     .onboardingMessage .onboardingMessageImage.screenshots {
       background-image: url("resource://activity-stream/data/content/assets/illustration-screenshots@2x.png"); }
+    .onboardingMessage .onboardingMessageImage.gift {
+      background-image: url("resource://activity-stream/data/content/assets/illustration-gift@2x.png"); }
   .onboardingMessage .onboardingContent {
     height: 175px; }
     .onboardingMessage .onboardingContent > span > h3 {
       color: #0C0C0D;
       margin-bottom: 8px;
       font-weight: 400; }
     .onboardingMessage .onboardingContent > span > p {
       color: #4A4A4F;
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css.map
@@ -38,21 +38,21 @@
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\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: var(--newtab-text-conditional-color);\n    text-decoration: underline;\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  // 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  @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  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, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\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: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\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    color: var(--newtab-topsites-label-color);\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: var(--newtab-icon-tertiary-color);\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.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;\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    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\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    @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\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: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n    }\n  }\n}\n\n@media (min-width: $break-point-widest) {\n  .sections-list {\n    // Compact cards stay the same size but normal cards get bigger.\n    .normal-cards {\n      .section-list {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n}\n",
 		".activity-stream {\n  &.welcome {\n    overflow: hidden;\n  }\n\n  &:not(.welcome) {\n    .overlay-wrapper {\n      display: none;\n    }\n  }\n}\n\n.overlay-wrapper {\n  position: fixed;\n  top: 0;\n  width: 100vw;\n  height: 100vh;\n  z-index: 21000;\n  font-weight: 200;\n  transition: opacity 0.4s;\n  opacity: 0;\n\n  &.show {\n    transition: none;\n    opacity: 1;\n\n    .firstrun-sign-in {\n      transition: opacity 1.5s, transform 1.5s;\n      transition-delay: 0.2s;\n      transform: translateY(-50%) scale(1);\n      opacity: 1;\n    }\n\n    .firstrun-firefox-logo {\n      transition: opacity 2.3s;\n      opacity: 1;\n    }\n\n    .firstrun-title,\n    .firstrun-content,\n    .firstrun-link {\n      transition: transform 0.5s, opacity 0.8s;\n      transform: translateY(0);\n      opacity: 1;\n    }\n\n    .firstrun-title {\n      transition-delay: 0.2s;\n    }\n\n    .firstrun-content {\n      transition-delay: 0.4s;\n    }\n\n    .firstrun-link {\n      transition-delay: 0.6s;\n    }\n\n    .fxaccounts-container {\n      transition: none;\n      opacity: 1;\n    }\n  }\n}\n\n.background {\n  width: 100%;\n  height: 100%;\n  display: block;\n  background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n  linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n  $blue-70;\n  background-size: cover;\n}\n\n.firstrun-sign-in {\n  transform: translateY(-50%) scale(0.8);\n  position: relative;\n  top: 50%;\n  width: 358px;\n  opacity: 0;\n  background-color: $white;\n  float: inline-end;\n  color: $grey-90;\n  text-align: center;\n  padding: 10px;\n\n  .extra-links {\n    font-size: 12px;\n    max-width: 340px;\n    margin: 14px 50px;\n    color: #676F7E;\n    cursor: default;\n\n    a {\n      color: $grey-50;\n      cursor: pointer;\n      text-decoration: underline;\n    }\n\n    a:hover,\n    a:active,\n    a:focus {\n      color: $blue-50;\n    }\n  }\n\n  .email-input {\n    box-shadow: none;\n    margin: auto;\n    width: 244px;\n    display: block;\n    height: 40px;\n    padding-inline-start: 20px;\n    border: 1px solid $grey-50;\n    border-radius: 2px;\n    font-size: 16px;\n\n    &:hover {\n      border-color: $grey-90;\n    }\n  }\n\n  .form-header {\n    font-size: 18px;\n    margin: 15px auto;\n  }\n\n  .form-header span {\n    font-size: 14px;\n    margin-top: 4px;\n    display: block;\n  }\n\n  button {\n    border-radius: 2px;\n    display: block;\n    cursor: pointer;\n    margin: 10px auto 0;\n  }\n\n  .continue-button {\n    font-size: 18px;\n    height: 43px;\n    width: 250px;\n    padding: 8px 0;\n    border: 1px solid $blue-60;\n    color: $white;\n    background-color: $blue-50;\n    transition-duration: 150ms;\n    transition-property: background-color;\n\n    &:not([disabled]):active {\n      background: $blue-70;\n      border-color: $blue-80;\n    }\n  }\n\n  .skip-button {\n    font-size: 13px;\n    margin-top: 40px;\n    margin-bottom: 20px;\n    background-color: #FCFCFC;\n    color: $blue-50;\n    border: 1px solid $blue-50;\n    min-height: 24px;\n    padding: 5px 10px;\n    transition: background-color 150ms, color 150ms, border-color 150ms;\n\n    &[disabled] {\n      background-color: #EBEBEB;\n      border-color: #B1B1B1;\n      color: #6A6A6A;\n      cursor: default;\n      opacity: 0.5;\n    }\n\n    &:not([disabled]):hover {\n      background-color: $blue-50;\n      border-color: $blue-60;\n      color: $white;\n    }\n  }\n}\n\n.firstrun-left-divider {\n  position: relative;\n  float: inline-start;\n  clear: both;\n  width: 435px;\n}\n\n.firstrun-content {\n  line-height: 1.5;\n  margin-bottom: 48px;\n  max-width: 352px;\n  background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n  padding-bottom: 210px;\n}\n\n.firstrun-link {\n  color: $white;\n  display: block;\n  text-decoration: underline;\n\n  &:hover,\n  &:active,\n  &:focus {\n    color: $white;\n  }\n}\n\n.firstrun-title {\n  background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n  background-size: 90px 90px;\n  margin: 40px 0 10px;\n  padding-top: 110px;\n  font-weight: 200;\n}\n\n[dir='rtl'] {\n  .firstrun-title {\n    background-position: top right;\n  }\n}\n\n.fxaccounts-container {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  top: 0;\n  left: 0;\n  color: $white;\n  height: 515px;\n  margin: auto;\n  width: 819px;\n  z-index: 10;\n  transition: opacity 0.3s;\n  opacity: 0;\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n  opacity: 0;\n  transform: translateY(-5px);\n}\n",
 		".topic {\n  color: var(--newtab-section-navigation-text-color);\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: var(--newtab-link-secondary-color);\n    font-weight: bold;\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\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: var(--newtab-link-secondary-color);\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-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\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  margin-bottom: $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: solid 1px var(--newtab-search-border-color);\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\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    border: $input-border-active;\n    box-shadow: var(--newtab-textbox-focus-boxshadow);\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: var(--newtab-search-icon-color);\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\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-dropdown-color);\n    border: 0;\n    box-shadow: $context-menu-shadow;\n    transform: translateY($textbox-shadow-size);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-search-dropdown-header-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSettingsButton {\n      border-color: var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSuggestionsList {\n      border: 0;\n    }\n\n    .contentSearchOneOffsTable {\n      background-color: var(--newtab-search-dropdown-header-color);\n      border-top: solid 1px var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n\n    .contentSearchSuggestionsContainer {\n      background-color: var(--newtab-search-dropdown-color);\n    }\n\n    .contentSearchSuggestionRow {\n      &.selected {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        .historyIcon {\n          fill: var(--newtab-icon-secondary-color);\n        }\n      }\n    }\n\n    .contentSearchOneOffsTable {\n      .contentSearchSuggestionsContainer {\n        background-color: var(--newtab-search-dropdown-header-color);\n      }\n    }\n\n    .contentSearchOneOffItem {\n      // Make the border slightly shorter by offsetting from the top and bottom\n      $border-offset: 18%;\n\n      background-image: none;\n      border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n      border-inline-end: 1px solid;\n      position: relative;\n\n      &.selected {\n        background: var(--newtab-element-hover-color);\n      }\n\n      &:active {\n        background: var(--newtab-element-active-color);\n      }\n    }\n\n    .contentSearchSettingsButton {\n      &:hover {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n      }\n    }\n  }\n}\n",
 		".context-menu {\n  background: var(--newtab-contextmenu-background-color);\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: $border-secondary;\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: var(--newtab-element-hover-color);\n        }\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\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: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\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: var(--newtab-card-background-color);\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    .card-preview-image-outer,\n    .card-context {\n      display: none;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\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: var(--newtab-link-primary-color);\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: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $grey-30;\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 var(--newtab-card-hairline-color);\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\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $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    &: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: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\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: var(--newtab-text-tertiary-color);\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: var(--newtab-icon-tertiary-color);\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.normal-cards {\n  .card-outer {\n    // Wide layout styles\n    @media (min-width: $break-point-widest) {\n      $line-height: 23px;\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\n.compact-cards {\n  .card-outer {\n    height: $card-height-compact;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-compact;\n    }\n\n    .card-details {\n      padding: 12px 16px;\n    }\n\n    .card-host-name {\n      line-height: 10px;\n    }\n\n    .card-text {\n      .card-title,\n      &:not(.no-description) .card-title {\n        font-size: 10px;\n        line-height: 12px;\n        max-height: 12px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .card-description {\n      display: none;\n    }\n\n    .card-context {\n      $icon-size: 16px;\n      $container-size: 32px;\n      background-color: var(--newtab-card-background-color);\n      border-radius: $container-size / 2;\n      height: $container-size;\n      width: $container-size;\n      padding: ($container-size - $icon-size) / 2;\n      top: 92px;\n      left: auto;\n      offset-inline-end: 12px;\n\n      &::after {\n        border: 1px solid var(--newtab-card-hairline-color);\n        border-bottom: 0;\n        border-radius: ($container-size / 2) ($container-size / 2) 0 0;\n        content: '';\n        position: absolute;\n        height: 50%;\n        width: 100%;\n        top: 0;\n        left: 0;\n      }\n\n      .card-context-icon {\n        margin-inline-end: 0;\n        height: $icon-size;\n        width: $icon-size;\n\n        &.icon-bookmark-added {\n          fill: $bookmark-icon-fill;\n        }\n\n        &.icon-download {\n          fill: $download-icon-fill;\n        }\n\n        &.icon-history-item {\n          fill: $history-icon-fill;\n        }\n\n        &.icon-pocket {\n          fill: $pocket-icon-fill;\n        }\n      }\n\n      .card-context-label {\n        display: none;\n      }\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n",
+		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\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    .card-preview-image-outer,\n    .card-context {\n      display: none;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\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: var(--newtab-link-primary-color);\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: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $grey-30;\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 var(--newtab-card-hairline-color);\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\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $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    &: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: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\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: var(--newtab-text-tertiary-color);\n    display: flex;\n    font-size: 11px;\n    offset-inline-start: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-tertiary-color);\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.normal-cards {\n  .card-outer {\n    // Wide layout styles\n    @media (min-width: $break-point-widest) {\n      $line-height: 23px;\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\n.compact-cards {\n  $card-detail-vertical-spacing: 12px;\n\n  .card-outer {\n    height: $card-height-compact;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-compact;\n    }\n\n    .card-details {\n      padding: $card-detail-vertical-spacing 16px;\n    }\n\n    .card-host-name {\n      line-height: 10px;\n    }\n\n    .card-text {\n      .card-title,\n      &:not(.no-description) .card-title {\n        font-size: 10px;\n        line-height: 12px;\n        max-height: 12px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .card-description {\n      display: none;\n    }\n\n    .card-context {\n      $icon-size: 16px;\n      $container-size: 32px;\n      background-color: var(--newtab-card-background-color);\n      border-radius: $container-size / 2;\n      clip-path: inset(0 0 $container-size - ($card-height-compact - $card-preview-image-height-compact - 2 * $card-detail-vertical-spacing));\n      height: $container-size;\n      width: $container-size;\n      padding: ($container-size - $icon-size) / 2;\n      top: $card-preview-image-height-compact - $icon-size;\n      offset-inline-end: 12px;\n      offset-inline-start: auto;\n\n      &::after {\n        border: 1px solid var(--newtab-card-hairline-color);\n        border-bottom: 0;\n        border-radius: ($container-size / 2) ($container-size / 2) 0 0;\n        content: '';\n        position: absolute;\n        height: 50%;\n        width: 100%;\n        top: 0;\n        left: 0;\n      }\n\n      .card-context-icon {\n        margin-inline-end: 0;\n        height: $icon-size;\n        width: $icon-size;\n\n        &.icon-bookmark-added {\n          fill: $bookmark-icon-fill;\n        }\n\n        &.icon-download {\n          fill: $download-icon-fill;\n        }\n\n        &.icon-history-item {\n          fill: $history-icon-fill;\n        }\n\n        &.icon-pocket {\n          fill: $pocket-icon-fill;\n        }\n      }\n\n      .card-context-label {\n        display: none;\n      }\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\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: var(--newtab-icon-secondary-color);\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    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\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    height: 19px;\n    margin-bottom: 13px;\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: var(--newtab-section-header-text-color);\n      height: 100%;\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: var(--newtab-element-hover-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\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: var(--newtab-link-primary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: var(--newtab-button-secondary-color);\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",
 		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 92px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
 		".ASRouterButton {\n  white-space: nowrap;\n  border-radius: 4px;\n  border: 1px solid var(--newtab-border-secondary-color);\n  background-color: var(--newtab-button-secondary-color);\n  font-family: inherit;\n  padding: 8px 15px;\n  margin-left: 12px;\n  color: inherit;\n}\n",
 		".SnippetBaseContainer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background-color: var(--newtab-snippets-background-color);\n  color: var(--newtab-text-primary-color);\n  font-size: 12px;\n  line-height: 16px;\n  border-top: 1px solid var(--newtab-snippets-hairline-color);\n  box-shadow: $shadow-secondary;\n  display: flex;\n  align-items: center;\n\n  .innerWrapper {\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    padding: 12px $section-horizontal-padding;\n\n    // This is to account for the block button on smaller screens\n    padding-inline-end: 36px;\n    @media (min-width: $break-point-large) {\n      padding-inline-end: $section-horizontal-padding;\n    }\n\n    max-width: $wrapper-max-width-large;\n    @media (min-width: $break-point-widest) {\n      max-width: $wrapper-max-width-widest;\n    }\n  }\n\n  .blockButton {\n    display: none;\n    background: none;\n    border: 0;\n    position: absolute;\n    top: 50%;\n    offset-inline-end: 12px;\n    height: 16px;\n    width: 16px;\n    background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n    -moz-context-properties: fill;\n    fill: var(--newtab-icon-primary-color);\n    opacity: 0.5;\n    margin-top: -8px;\n    padding: 0;\n    cursor: pointer;\n\n    @media (min-width: 766px) {\n      offset-inline-end: 24px;\n    }\n  }\n\n  &:hover .blockButton {\n    display: block;\n  }\n}\n",
 		".activity-stream {\n  &.modal-open {\n    overflow: hidden;\n  }\n}\n.modalOverlayOuter {\n  background: $white;\n  opacity: 0.93;\n  height: 100%;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  display: none;\n  z-index: 100000;\n\n  &.active {\n    display: block;\n  }\n}\n\n.modalOverlayInner {\n  width: 960px;\n  height: 510px;\n  position: fixed;\n  top: calc(50% - 255px); // halfway down minus half the height of the modal\n  left: calc(50% - 480px); // halfway across minus half the width of the modal\n  background: $white;\n  box-shadow: 0 1px 15px 0 $black-30;\n  border-radius: 4px;\n  display: none;\n  z-index: 100001;\n\n\n  // modal takes over entire screen\n  @media(max-width: 960px) {\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n    box-shadow: none;\n    border-radius: 0;\n  }\n\n  // if modal is short enough, add a vertical scroll bar\n  @media(max-width: 850px) and (max-height: 730px) {\n    overflow-y: scroll;\n  }\n\n  &.active {\n    display: block;\n  }\n\n  h2 {\n    color: $grey-60;\n    text-align: center;\n    font-weight: 200;\n    margin-top: 30px;\n    font-size: 28px;\n    line-height: 37px;\n    letter-spacing: -0.13px;\n\n    @media(max-width: 960px) {\n      margin-top: 100px;\n    }\n\n    @media(max-width: 850px) {\n      margin-top: 30px;\n    }\n  }\n\n  .footer {\n    border-top: 1px solid $grey-30;\n    height: 70px;\n    width: 100%;\n    position: absolute;\n    bottom: 0;\n    text-align: center;\n    background-color: $white;\n\n    // if modal is short enough, footer becomes sticky\n    @media(max-width: 850px) and (max-height: 730px) {\n      position: sticky;\n    }\n\n    .modalButton {\n      margin-top: 20px;\n      width: 150px;\n      height: 30px;\n      padding: 4px 0 6px 0;\n      font-size: 15px;\n    }\n  }\n}\n",
 		".SimpleSnippet {\n  .title {\n    display: inline;\n    font-size: inherit;\n    margin: 0;\n  }\n\n  .body {\n    display: inline;\n    margin: 0;\n  }\n\n  .icon {\n    height: 42px;\n    width: 42px;\n    margin-inline-end: 12px;\n    flex-shrink: 0;\n  }\n\n  .ASRouterAnchor {\n    color: inherit;\n    text-decoration: underline;\n  }\n}\n",
-		".onboardingMessageContainer {\n  display: grid;\n  grid-column-gap: 21px;\n  grid-template-columns: auto auto auto;\n  padding-left: 30px;\n  padding-right: 30px;\n\n  // at 850px, the cards go from vertical layout to horizontal layout\n  @media(max-width: 850px) {\n    grid-template-columns: none;\n    grid-template-rows: auto auto auto;\n    padding-left: 110px;\n    padding-right: 110px;\n  }\n}\n\n.onboardingMessage {\n  height: 340px;\n  text-align: center;\n  padding: 13px;\n  font-weight: 200;\n\n  // at 850px, img floats left, content floats right next to it\n  @media(max-width: 850px) {\n    height: 170px;\n    text-align: left;\n    padding: 10px;\n    border-bottom: 1px solid #D8D8D8;\n    display: flex;\n    margin-bottom: 11px;\n\n    &:last-child {\n      border: none;\n    }\n\n    .onboardingContent {\n      padding-left: 10px;\n      height: 100%;\n\n      > span > h3 {\n        margin-top: 0;\n        margin-bottom: 4px;\n        font-weight: 400;\n      }\n\n      > span > p {\n        margin-top: 0;\n        line-height: 22px;\n        font-size: 15px;\n      }\n    }\n  }\n\n  .onboardingMessageImage {\n    height: 100px;\n    width: 120px;\n    background-size: 120px;\n    background-position: center center;\n    background-repeat: no-repeat;\n    display: inline-block;\n    vertical-align: middle;\n\n\n    @media(max-width: 850px) {\n      height: 75px;\n      width: 160px;\n      background-size: 80px;\n    }\n\n    &.addons {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n    }\n\n    &.privatebrowsing {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n    }\n\n    &.screenshots {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n    }\n  }\n\n  .onboardingContent {\n    height: 175px;\n\n    > span > h3 {\n      color: $grey-90;\n      margin-bottom: 8px;\n      font-weight: 400;\n    }\n\n    > span > p {\n      color: $grey-60;\n      margin-top: 0;\n      height: 130px;\n      margin-bottom: 12px;\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  .onboardingButton {\n    background-color: $grey-90-10;\n    border: none;\n    width: 150px;\n    height: 30px;\n    margin-bottom: 23px;\n    padding: 4px 0 6px 0;\n    font-size: 15px;\n\n    // at 850px, the button shimmies down and to the right\n    @media(max-width: 850px) {\n      float: right;\n      margin-top: -60px;\n      margin-right: -10px;\n    }\n  }\n\n\n  &::before {\n    content: '';\n    height: 220px;\n    width: 1px;\n    position: absolute;\n    background-color: #D8D8D8;\n    margin-top: 40px;\n    margin-left: 215px;\n\n    // at 850px, the line goes from vertical to horizontal\n    @media(max-width: 850px) {\n      content: none;\n    }\n  }\n\n  &:last-child::before {\n    content: none;\n  }\n}\n"
+		".onboardingMessageContainer {\n  display: grid;\n  grid-column-gap: 21px;\n  grid-template-columns: auto auto auto;\n  padding-left: 30px;\n  padding-right: 30px;\n\n  // at 850px, the cards go from vertical layout to horizontal layout\n  @media(max-width: 850px) {\n    grid-template-columns: none;\n    grid-template-rows: auto auto auto;\n    padding-left: 110px;\n    padding-right: 110px;\n  }\n}\n\n.onboardingMessage {\n  height: 340px;\n  text-align: center;\n  padding: 13px;\n  font-weight: 200;\n\n  // at 850px, img floats left, content floats right next to it\n  @media(max-width: 850px) {\n    height: 170px;\n    text-align: left;\n    padding: 10px;\n    border-bottom: 1px solid #D8D8D8;\n    display: flex;\n    margin-bottom: 11px;\n\n    &:last-child {\n      border: none;\n    }\n\n    .onboardingContent {\n      padding-left: 10px;\n      height: 100%;\n\n      > span > h3 {\n        margin-top: 0;\n        margin-bottom: 4px;\n        font-weight: 400;\n      }\n\n      > span > p {\n        margin-top: 0;\n        line-height: 22px;\n        font-size: 15px;\n      }\n    }\n  }\n\n  .onboardingMessageImage {\n    height: 100px;\n    width: 120px;\n    background-size: 120px;\n    background-position: center center;\n    background-repeat: no-repeat;\n    display: inline-block;\n    vertical-align: middle;\n\n\n    @media(max-width: 850px) {\n      height: 75px;\n      min-width: 80px;\n      background-size: 80px;\n    }\n\n    &.addons {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n    }\n\n    &.privatebrowsing {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n    }\n\n    &.screenshots {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n    }\n\n    &.gift {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n    }\n  }\n\n  .onboardingContent {\n    height: 175px;\n\n    > span > h3 {\n      color: $grey-90;\n      margin-bottom: 8px;\n      font-weight: 400;\n    }\n\n    > span > p {\n      color: $grey-60;\n      margin-top: 0;\n      height: 130px;\n      margin-bottom: 12px;\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  .onboardingButton {\n    background-color: $grey-90-10;\n    border: none;\n    width: 150px;\n    height: 30px;\n    margin-bottom: 23px;\n    padding: 4px 0 6px 0;\n    font-size: 15px;\n\n    // at 850px, the button shimmies down and to the right\n    @media(max-width: 850px) {\n      float: right;\n      margin-top: -60px;\n      margin-right: -10px;\n    }\n  }\n\n\n  &::before {\n    content: '';\n    height: 220px;\n    width: 1px;\n    position: absolute;\n    background-color: #D8D8D8;\n    margin-top: 40px;\n    margin-left: 215px;\n\n    // at 850px, the line goes from vertical to horizontal\n    @media(max-width: 850px) {\n      content: none;\n    }\n  }\n\n  &:last-child::before {\n    content: none;\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
@@ -1318,17 +1318,18 @@ main {
       max-height: 57px;
       overflow: hidden; }
   .card-outer .card-host-name {
     color: var(--newtab-text-secondary-color);
     font-size: 10px;
     overflow: hidden;
     padding-bottom: 4px;
     text-overflow: ellipsis;
-    text-transform: uppercase; }
+    text-transform: uppercase;
+    white-space: nowrap; }
   .card-outer .card-host-name.alternate {
     display: none; }
   .card-outer .card-title {
     font-size: 14px;
     font-weight: 600;
     line-height: 19px;
     margin: 0 0 2px;
     word-wrap: break-word; }
@@ -1338,20 +1339,19 @@ main {
     margin: 0;
     overflow: hidden;
     word-wrap: break-word; }
   .card-outer .card-context {
     bottom: 0;
     color: var(--newtab-text-tertiary-color);
     display: flex;
     font-size: 11px;
-    left: 0;
+    offset-inline-start: 0;
     padding: 9px 16px 9px 14px;
-    position: absolute;
-    right: 0; }
+    position: absolute; }
   .card-outer .card-context-icon {
     fill: var(--newtab-icon-tertiary-color);
     height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
     line-height: 22px;
     overflow: hidden;
@@ -1399,22 +1399,23 @@ main {
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
   .compact-cards .card-outer .card-description {
     display: none; }
   .compact-cards .card-outer .card-context {
     background-color: var(--newtab-card-background-color);
     border-radius: 16px;
+    clip-path: inset(0 0 4px);
     height: 32px;
     width: 32px;
     padding: 8px;
     top: 92px;
-    left: auto;
-    offset-inline-end: 12px; }
+    offset-inline-end: 12px;
+    offset-inline-start: auto; }
     .compact-cards .card-outer .card-context::after {
       border: 1px solid var(--newtab-card-hairline-color);
       border-bottom: 0;
       border-radius: 16px 16px 0 0;
       content: '';
       position: absolute;
       height: 50%;
       width: 100%;
@@ -1823,24 +1824,26 @@ main {
     background-size: 120px;
     background-position: center center;
     background-repeat: no-repeat;
     display: inline-block;
     vertical-align: middle; }
     @media (max-width: 850px) {
       .onboardingMessage .onboardingMessageImage {
         height: 75px;
-        width: 160px;
+        min-width: 80px;
         background-size: 80px; } }
     .onboardingMessage .onboardingMessageImage.addons {
       background-image: url("resource://activity-stream/data/content/assets/illustration-addons@2x.png"); }
     .onboardingMessage .onboardingMessageImage.privatebrowsing {
       background-image: url("resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png"); }
     .onboardingMessage .onboardingMessageImage.screenshots {
       background-image: url("resource://activity-stream/data/content/assets/illustration-screenshots@2x.png"); }
+    .onboardingMessage .onboardingMessageImage.gift {
+      background-image: url("resource://activity-stream/data/content/assets/illustration-gift@2x.png"); }
   .onboardingMessage .onboardingContent {
     height: 175px; }
     .onboardingMessage .onboardingContent > span > h3 {
       color: #0C0C0D;
       margin-bottom: 8px;
       font-weight: 400; }
     .onboardingMessage .onboardingContent > span > p {
       color: #4A4A4F;
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css.map
@@ -38,21 +38,21 @@
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\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: var(--newtab-text-conditional-color);\n    text-decoration: underline;\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  // 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  @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  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, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\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: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\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    color: var(--newtab-topsites-label-color);\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: var(--newtab-icon-tertiary-color);\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.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;\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    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\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    @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\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: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n    }\n  }\n}\n\n@media (min-width: $break-point-widest) {\n  .sections-list {\n    // Compact cards stay the same size but normal cards get bigger.\n    .normal-cards {\n      .section-list {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n}\n",
 		".activity-stream {\n  &.welcome {\n    overflow: hidden;\n  }\n\n  &:not(.welcome) {\n    .overlay-wrapper {\n      display: none;\n    }\n  }\n}\n\n.overlay-wrapper {\n  position: fixed;\n  top: 0;\n  width: 100vw;\n  height: 100vh;\n  z-index: 21000;\n  font-weight: 200;\n  transition: opacity 0.4s;\n  opacity: 0;\n\n  &.show {\n    transition: none;\n    opacity: 1;\n\n    .firstrun-sign-in {\n      transition: opacity 1.5s, transform 1.5s;\n      transition-delay: 0.2s;\n      transform: translateY(-50%) scale(1);\n      opacity: 1;\n    }\n\n    .firstrun-firefox-logo {\n      transition: opacity 2.3s;\n      opacity: 1;\n    }\n\n    .firstrun-title,\n    .firstrun-content,\n    .firstrun-link {\n      transition: transform 0.5s, opacity 0.8s;\n      transform: translateY(0);\n      opacity: 1;\n    }\n\n    .firstrun-title {\n      transition-delay: 0.2s;\n    }\n\n    .firstrun-content {\n      transition-delay: 0.4s;\n    }\n\n    .firstrun-link {\n      transition-delay: 0.6s;\n    }\n\n    .fxaccounts-container {\n      transition: none;\n      opacity: 1;\n    }\n  }\n}\n\n.background {\n  width: 100%;\n  height: 100%;\n  display: block;\n  background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n  linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n  $blue-70;\n  background-size: cover;\n}\n\n.firstrun-sign-in {\n  transform: translateY(-50%) scale(0.8);\n  position: relative;\n  top: 50%;\n  width: 358px;\n  opacity: 0;\n  background-color: $white;\n  float: inline-end;\n  color: $grey-90;\n  text-align: center;\n  padding: 10px;\n\n  .extra-links {\n    font-size: 12px;\n    max-width: 340px;\n    margin: 14px 50px;\n    color: #676F7E;\n    cursor: default;\n\n    a {\n      color: $grey-50;\n      cursor: pointer;\n      text-decoration: underline;\n    }\n\n    a:hover,\n    a:active,\n    a:focus {\n      color: $blue-50;\n    }\n  }\n\n  .email-input {\n    box-shadow: none;\n    margin: auto;\n    width: 244px;\n    display: block;\n    height: 40px;\n    padding-inline-start: 20px;\n    border: 1px solid $grey-50;\n    border-radius: 2px;\n    font-size: 16px;\n\n    &:hover {\n      border-color: $grey-90;\n    }\n  }\n\n  .form-header {\n    font-size: 18px;\n    margin: 15px auto;\n  }\n\n  .form-header span {\n    font-size: 14px;\n    margin-top: 4px;\n    display: block;\n  }\n\n  button {\n    border-radius: 2px;\n    display: block;\n    cursor: pointer;\n    margin: 10px auto 0;\n  }\n\n  .continue-button {\n    font-size: 18px;\n    height: 43px;\n    width: 250px;\n    padding: 8px 0;\n    border: 1px solid $blue-60;\n    color: $white;\n    background-color: $blue-50;\n    transition-duration: 150ms;\n    transition-property: background-color;\n\n    &:not([disabled]):active {\n      background: $blue-70;\n      border-color: $blue-80;\n    }\n  }\n\n  .skip-button {\n    font-size: 13px;\n    margin-top: 40px;\n    margin-bottom: 20px;\n    background-color: #FCFCFC;\n    color: $blue-50;\n    border: 1px solid $blue-50;\n    min-height: 24px;\n    padding: 5px 10px;\n    transition: background-color 150ms, color 150ms, border-color 150ms;\n\n    &[disabled] {\n      background-color: #EBEBEB;\n      border-color: #B1B1B1;\n      color: #6A6A6A;\n      cursor: default;\n      opacity: 0.5;\n    }\n\n    &:not([disabled]):hover {\n      background-color: $blue-50;\n      border-color: $blue-60;\n      color: $white;\n    }\n  }\n}\n\n.firstrun-left-divider {\n  position: relative;\n  float: inline-start;\n  clear: both;\n  width: 435px;\n}\n\n.firstrun-content {\n  line-height: 1.5;\n  margin-bottom: 48px;\n  max-width: 352px;\n  background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n  padding-bottom: 210px;\n}\n\n.firstrun-link {\n  color: $white;\n  display: block;\n  text-decoration: underline;\n\n  &:hover,\n  &:active,\n  &:focus {\n    color: $white;\n  }\n}\n\n.firstrun-title {\n  background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n  background-size: 90px 90px;\n  margin: 40px 0 10px;\n  padding-top: 110px;\n  font-weight: 200;\n}\n\n[dir='rtl'] {\n  .firstrun-title {\n    background-position: top right;\n  }\n}\n\n.fxaccounts-container {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  top: 0;\n  left: 0;\n  color: $white;\n  height: 515px;\n  margin: auto;\n  width: 819px;\n  z-index: 10;\n  transition: opacity 0.3s;\n  opacity: 0;\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n  opacity: 0;\n  transform: translateY(-5px);\n}\n",
 		".topic {\n  color: var(--newtab-section-navigation-text-color);\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: var(--newtab-link-secondary-color);\n    font-weight: bold;\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\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: var(--newtab-link-secondary-color);\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-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\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  margin-bottom: $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: solid 1px var(--newtab-search-border-color);\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\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    border: $input-border-active;\n    box-shadow: var(--newtab-textbox-focus-boxshadow);\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: var(--newtab-search-icon-color);\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\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-dropdown-color);\n    border: 0;\n    box-shadow: $context-menu-shadow;\n    transform: translateY($textbox-shadow-size);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-search-dropdown-header-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSettingsButton {\n      border-color: var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSuggestionsList {\n      border: 0;\n    }\n\n    .contentSearchOneOffsTable {\n      background-color: var(--newtab-search-dropdown-header-color);\n      border-top: solid 1px var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n\n    .contentSearchSuggestionsContainer {\n      background-color: var(--newtab-search-dropdown-color);\n    }\n\n    .contentSearchSuggestionRow {\n      &.selected {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        .historyIcon {\n          fill: var(--newtab-icon-secondary-color);\n        }\n      }\n    }\n\n    .contentSearchOneOffsTable {\n      .contentSearchSuggestionsContainer {\n        background-color: var(--newtab-search-dropdown-header-color);\n      }\n    }\n\n    .contentSearchOneOffItem {\n      // Make the border slightly shorter by offsetting from the top and bottom\n      $border-offset: 18%;\n\n      background-image: none;\n      border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n      border-inline-end: 1px solid;\n      position: relative;\n\n      &.selected {\n        background: var(--newtab-element-hover-color);\n      }\n\n      &:active {\n        background: var(--newtab-element-active-color);\n      }\n    }\n\n    .contentSearchSettingsButton {\n      &:hover {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n      }\n    }\n  }\n}\n",
 		".context-menu {\n  background: var(--newtab-contextmenu-background-color);\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: $border-secondary;\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: var(--newtab-element-hover-color);\n        }\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\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: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\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: var(--newtab-card-background-color);\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    .card-preview-image-outer,\n    .card-context {\n      display: none;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\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: var(--newtab-link-primary-color);\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: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $grey-30;\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 var(--newtab-card-hairline-color);\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\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $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    &: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: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\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: var(--newtab-text-tertiary-color);\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: var(--newtab-icon-tertiary-color);\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.normal-cards {\n  .card-outer {\n    // Wide layout styles\n    @media (min-width: $break-point-widest) {\n      $line-height: 23px;\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\n.compact-cards {\n  .card-outer {\n    height: $card-height-compact;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-compact;\n    }\n\n    .card-details {\n      padding: 12px 16px;\n    }\n\n    .card-host-name {\n      line-height: 10px;\n    }\n\n    .card-text {\n      .card-title,\n      &:not(.no-description) .card-title {\n        font-size: 10px;\n        line-height: 12px;\n        max-height: 12px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .card-description {\n      display: none;\n    }\n\n    .card-context {\n      $icon-size: 16px;\n      $container-size: 32px;\n      background-color: var(--newtab-card-background-color);\n      border-radius: $container-size / 2;\n      height: $container-size;\n      width: $container-size;\n      padding: ($container-size - $icon-size) / 2;\n      top: 92px;\n      left: auto;\n      offset-inline-end: 12px;\n\n      &::after {\n        border: 1px solid var(--newtab-card-hairline-color);\n        border-bottom: 0;\n        border-radius: ($container-size / 2) ($container-size / 2) 0 0;\n        content: '';\n        position: absolute;\n        height: 50%;\n        width: 100%;\n        top: 0;\n        left: 0;\n      }\n\n      .card-context-icon {\n        margin-inline-end: 0;\n        height: $icon-size;\n        width: $icon-size;\n\n        &.icon-bookmark-added {\n          fill: $bookmark-icon-fill;\n        }\n\n        &.icon-download {\n          fill: $download-icon-fill;\n        }\n\n        &.icon-history-item {\n          fill: $history-icon-fill;\n        }\n\n        &.icon-pocket {\n          fill: $pocket-icon-fill;\n        }\n      }\n\n      .card-context-label {\n        display: none;\n      }\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n",
+		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\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    .card-preview-image-outer,\n    .card-context {\n      display: none;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\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: var(--newtab-link-primary-color);\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: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $grey-30;\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 var(--newtab-card-hairline-color);\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\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $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    &: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: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\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: var(--newtab-text-tertiary-color);\n    display: flex;\n    font-size: 11px;\n    offset-inline-start: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-tertiary-color);\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.normal-cards {\n  .card-outer {\n    // Wide layout styles\n    @media (min-width: $break-point-widest) {\n      $line-height: 23px;\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\n.compact-cards {\n  $card-detail-vertical-spacing: 12px;\n\n  .card-outer {\n    height: $card-height-compact;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-compact;\n    }\n\n    .card-details {\n      padding: $card-detail-vertical-spacing 16px;\n    }\n\n    .card-host-name {\n      line-height: 10px;\n    }\n\n    .card-text {\n      .card-title,\n      &:not(.no-description) .card-title {\n        font-size: 10px;\n        line-height: 12px;\n        max-height: 12px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .card-description {\n      display: none;\n    }\n\n    .card-context {\n      $icon-size: 16px;\n      $container-size: 32px;\n      background-color: var(--newtab-card-background-color);\n      border-radius: $container-size / 2;\n      clip-path: inset(0 0 $container-size - ($card-height-compact - $card-preview-image-height-compact - 2 * $card-detail-vertical-spacing));\n      height: $container-size;\n      width: $container-size;\n      padding: ($container-size - $icon-size) / 2;\n      top: $card-preview-image-height-compact - $icon-size;\n      offset-inline-end: 12px;\n      offset-inline-start: auto;\n\n      &::after {\n        border: 1px solid var(--newtab-card-hairline-color);\n        border-bottom: 0;\n        border-radius: ($container-size / 2) ($container-size / 2) 0 0;\n        content: '';\n        position: absolute;\n        height: 50%;\n        width: 100%;\n        top: 0;\n        left: 0;\n      }\n\n      .card-context-icon {\n        margin-inline-end: 0;\n        height: $icon-size;\n        width: $icon-size;\n\n        &.icon-bookmark-added {\n          fill: $bookmark-icon-fill;\n        }\n\n        &.icon-download {\n          fill: $download-icon-fill;\n        }\n\n        &.icon-history-item {\n          fill: $history-icon-fill;\n        }\n\n        &.icon-pocket {\n          fill: $pocket-icon-fill;\n        }\n      }\n\n      .card-context-label {\n        display: none;\n      }\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\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: var(--newtab-icon-secondary-color);\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    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\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    height: 19px;\n    margin-bottom: 13px;\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: var(--newtab-section-header-text-color);\n      height: 100%;\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: var(--newtab-element-hover-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\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: var(--newtab-link-primary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: var(--newtab-button-secondary-color);\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",
 		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 92px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
 		".ASRouterButton {\n  white-space: nowrap;\n  border-radius: 4px;\n  border: 1px solid var(--newtab-border-secondary-color);\n  background-color: var(--newtab-button-secondary-color);\n  font-family: inherit;\n  padding: 8px 15px;\n  margin-left: 12px;\n  color: inherit;\n}\n",
 		".SnippetBaseContainer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background-color: var(--newtab-snippets-background-color);\n  color: var(--newtab-text-primary-color);\n  font-size: 12px;\n  line-height: 16px;\n  border-top: 1px solid var(--newtab-snippets-hairline-color);\n  box-shadow: $shadow-secondary;\n  display: flex;\n  align-items: center;\n\n  .innerWrapper {\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    padding: 12px $section-horizontal-padding;\n\n    // This is to account for the block button on smaller screens\n    padding-inline-end: 36px;\n    @media (min-width: $break-point-large) {\n      padding-inline-end: $section-horizontal-padding;\n    }\n\n    max-width: $wrapper-max-width-large;\n    @media (min-width: $break-point-widest) {\n      max-width: $wrapper-max-width-widest;\n    }\n  }\n\n  .blockButton {\n    display: none;\n    background: none;\n    border: 0;\n    position: absolute;\n    top: 50%;\n    offset-inline-end: 12px;\n    height: 16px;\n    width: 16px;\n    background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n    -moz-context-properties: fill;\n    fill: var(--newtab-icon-primary-color);\n    opacity: 0.5;\n    margin-top: -8px;\n    padding: 0;\n    cursor: pointer;\n\n    @media (min-width: 766px) {\n      offset-inline-end: 24px;\n    }\n  }\n\n  &:hover .blockButton {\n    display: block;\n  }\n}\n",
 		".activity-stream {\n  &.modal-open {\n    overflow: hidden;\n  }\n}\n.modalOverlayOuter {\n  background: $white;\n  opacity: 0.93;\n  height: 100%;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  display: none;\n  z-index: 100000;\n\n  &.active {\n    display: block;\n  }\n}\n\n.modalOverlayInner {\n  width: 960px;\n  height: 510px;\n  position: fixed;\n  top: calc(50% - 255px); // halfway down minus half the height of the modal\n  left: calc(50% - 480px); // halfway across minus half the width of the modal\n  background: $white;\n  box-shadow: 0 1px 15px 0 $black-30;\n  border-radius: 4px;\n  display: none;\n  z-index: 100001;\n\n\n  // modal takes over entire screen\n  @media(max-width: 960px) {\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n    box-shadow: none;\n    border-radius: 0;\n  }\n\n  // if modal is short enough, add a vertical scroll bar\n  @media(max-width: 850px) and (max-height: 730px) {\n    overflow-y: scroll;\n  }\n\n  &.active {\n    display: block;\n  }\n\n  h2 {\n    color: $grey-60;\n    text-align: center;\n    font-weight: 200;\n    margin-top: 30px;\n    font-size: 28px;\n    line-height: 37px;\n    letter-spacing: -0.13px;\n\n    @media(max-width: 960px) {\n      margin-top: 100px;\n    }\n\n    @media(max-width: 850px) {\n      margin-top: 30px;\n    }\n  }\n\n  .footer {\n    border-top: 1px solid $grey-30;\n    height: 70px;\n    width: 100%;\n    position: absolute;\n    bottom: 0;\n    text-align: center;\n    background-color: $white;\n\n    // if modal is short enough, footer becomes sticky\n    @media(max-width: 850px) and (max-height: 730px) {\n      position: sticky;\n    }\n\n    .modalButton {\n      margin-top: 20px;\n      width: 150px;\n      height: 30px;\n      padding: 4px 0 6px 0;\n      font-size: 15px;\n    }\n  }\n}\n",
 		".SimpleSnippet {\n  .title {\n    display: inline;\n    font-size: inherit;\n    margin: 0;\n  }\n\n  .body {\n    display: inline;\n    margin: 0;\n  }\n\n  .icon {\n    height: 42px;\n    width: 42px;\n    margin-inline-end: 12px;\n    flex-shrink: 0;\n  }\n\n  .ASRouterAnchor {\n    color: inherit;\n    text-decoration: underline;\n  }\n}\n",
-		".onboardingMessageContainer {\n  display: grid;\n  grid-column-gap: 21px;\n  grid-template-columns: auto auto auto;\n  padding-left: 30px;\n  padding-right: 30px;\n\n  // at 850px, the cards go from vertical layout to horizontal layout\n  @media(max-width: 850px) {\n    grid-template-columns: none;\n    grid-template-rows: auto auto auto;\n    padding-left: 110px;\n    padding-right: 110px;\n  }\n}\n\n.onboardingMessage {\n  height: 340px;\n  text-align: center;\n  padding: 13px;\n  font-weight: 200;\n\n  // at 850px, img floats left, content floats right next to it\n  @media(max-width: 850px) {\n    height: 170px;\n    text-align: left;\n    padding: 10px;\n    border-bottom: 1px solid #D8D8D8;\n    display: flex;\n    margin-bottom: 11px;\n\n    &:last-child {\n      border: none;\n    }\n\n    .onboardingContent {\n      padding-left: 10px;\n      height: 100%;\n\n      > span > h3 {\n        margin-top: 0;\n        margin-bottom: 4px;\n        font-weight: 400;\n      }\n\n      > span > p {\n        margin-top: 0;\n        line-height: 22px;\n        font-size: 15px;\n      }\n    }\n  }\n\n  .onboardingMessageImage {\n    height: 100px;\n    width: 120px;\n    background-size: 120px;\n    background-position: center center;\n    background-repeat: no-repeat;\n    display: inline-block;\n    vertical-align: middle;\n\n\n    @media(max-width: 850px) {\n      height: 75px;\n      width: 160px;\n      background-size: 80px;\n    }\n\n    &.addons {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n    }\n\n    &.privatebrowsing {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n    }\n\n    &.screenshots {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n    }\n  }\n\n  .onboardingContent {\n    height: 175px;\n\n    > span > h3 {\n      color: $grey-90;\n      margin-bottom: 8px;\n      font-weight: 400;\n    }\n\n    > span > p {\n      color: $grey-60;\n      margin-top: 0;\n      height: 130px;\n      margin-bottom: 12px;\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  .onboardingButton {\n    background-color: $grey-90-10;\n    border: none;\n    width: 150px;\n    height: 30px;\n    margin-bottom: 23px;\n    padding: 4px 0 6px 0;\n    font-size: 15px;\n\n    // at 850px, the button shimmies down and to the right\n    @media(max-width: 850px) {\n      float: right;\n      margin-top: -60px;\n      margin-right: -10px;\n    }\n  }\n\n\n  &::before {\n    content: '';\n    height: 220px;\n    width: 1px;\n    position: absolute;\n    background-color: #D8D8D8;\n    margin-top: 40px;\n    margin-left: 215px;\n\n    // at 850px, the line goes from vertical to horizontal\n    @media(max-width: 850px) {\n      content: none;\n    }\n  }\n\n  &:last-child::before {\n    content: none;\n  }\n}\n"
+		".onboardingMessageContainer {\n  display: grid;\n  grid-column-gap: 21px;\n  grid-template-columns: auto auto auto;\n  padding-left: 30px;\n  padding-right: 30px;\n\n  // at 850px, the cards go from vertical layout to horizontal layout\n  @media(max-width: 850px) {\n    grid-template-columns: none;\n    grid-template-rows: auto auto auto;\n    padding-left: 110px;\n    padding-right: 110px;\n  }\n}\n\n.onboardingMessage {\n  height: 340px;\n  text-align: center;\n  padding: 13px;\n  font-weight: 200;\n\n  // at 850px, img floats left, content floats right next to it\n  @media(max-width: 850px) {\n    height: 170px;\n    text-align: left;\n    padding: 10px;\n    border-bottom: 1px solid #D8D8D8;\n    display: flex;\n    margin-bottom: 11px;\n\n    &:last-child {\n      border: none;\n    }\n\n    .onboardingContent {\n      padding-left: 10px;\n      height: 100%;\n\n      > span > h3 {\n        margin-top: 0;\n        margin-bottom: 4px;\n        font-weight: 400;\n      }\n\n      > span > p {\n        margin-top: 0;\n        line-height: 22px;\n        font-size: 15px;\n      }\n    }\n  }\n\n  .onboardingMessageImage {\n    height: 100px;\n    width: 120px;\n    background-size: 120px;\n    background-position: center center;\n    background-repeat: no-repeat;\n    display: inline-block;\n    vertical-align: middle;\n\n\n    @media(max-width: 850px) {\n      height: 75px;\n      min-width: 80px;\n      background-size: 80px;\n    }\n\n    &.addons {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n    }\n\n    &.privatebrowsing {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n    }\n\n    &.screenshots {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n    }\n\n    &.gift {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n    }\n  }\n\n  .onboardingContent {\n    height: 175px;\n\n    > span > h3 {\n      color: $grey-90;\n      margin-bottom: 8px;\n      font-weight: 400;\n    }\n\n    > span > p {\n      color: $grey-60;\n      margin-top: 0;\n      height: 130px;\n      margin-bottom: 12px;\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  .onboardingButton {\n    background-color: $grey-90-10;\n    border: none;\n    width: 150px;\n    height: 30px;\n    margin-bottom: 23px;\n    padding: 4px 0 6px 0;\n    font-size: 15px;\n\n    // at 850px, the button shimmies down and to the right\n    @media(max-width: 850px) {\n      float: right;\n      margin-top: -60px;\n      margin-right: -10px;\n    }\n  }\n\n\n  &::before {\n    content: '';\n    height: 220px;\n    width: 1px;\n    position: absolute;\n    background-color: #D8D8D8;\n    margin-top: 40px;\n    margin-left: 215px;\n\n    // at 850px, the line goes from vertical to horizontal\n    @media(max-width: 850px) {\n      content: none;\n    }\n  }\n\n  &:last-child::before {\n    content: none;\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": "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"
+	"mappings": ";AAAA,6BAA6B;AAM7B,AAAA,WAAW,CAAC;EACV,uBAAuB,EAAE,SAAS,GACnC;;AERD,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;;AEPD,AAAA,IAAI,CAAC;EAEH,yBAAyB,EDjBjB,OAAO;ECkBf,6BAA6B,EDfrB,OAAO;ECgBf,+BAA+B,EDjBvB,OAAO;ECkBf,6BAA6B,EDvBrB,OAAO;ECwBf,+BAA+B,EAAE,OAAO;EACxC,6BAA6B,EDpBrB,wBAAO;ECqBf,4BAA4B,EDtBpB,OAAO;ECuBf,2BAA2B,EDhBnB,qBAAO;ECiBf,6BAA6B,EDjBrB,qBAAO;ECkBf,4BAA4B,EDxBpB,OAAO;ECyBf,+BAA+B,EDKzB,kBAAI;ECJV,2BAA2B,ED/BnB,OAAO;ECgCf,6BAA6B,EDpBrB,OAAO;ECqBf,+BAA+B,EDzBvB,OAAO;EC0Bf,2BAA2B,EDvBnB,OAAO;ECwBf,6BAA6B,ED5BrB,OAAO;EC6Bf,4BAA4B,ED7BpB,OAAO;EC8Bf,iCAAiC,EDO3B,IAAI;ECNV,uBAAuB,ED3Bf,qBAAO;ECTf,4BAA4B,EDFpB,OAAO;ECGf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDET,OAAO,ECFW,CAAC,CAAC,CAAC,CAAC,CAAC,CDoHX,GAAG,CAlHf,qBAAO;EC0Cf,qCAAqC,EDvC7B,OAAO;ECwCf,iCAAiC,EDC3B,IAAI;ECEV,oBAAoB,EDFd,IAAI;ECGV,sBAAsB,ED3Cd,wBAAO;EC8Cf,kCAAkC,ED3C1B,OAAO;EC4Cf,sCAAsC,ED5C9B,OAAO;EC6Cf,yCAAyC,EDzCjC,OAAO;EC4Cf,4BAA4B,EAAE,WAAW;EACzC,8BAA8B,EDZxB,IAAI;ECaV,qCAAqC,EDtD7B,OAAO;ECuDf,0BAA0B,ED/ClB,qBAAO;ECkDf,kCAAkC,EDjB5B,IAAI;ECkBV,6BAA6B,EAAE,KAAK,CArDnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EAsD/D,6BAA6B,EAAE,OAAO;EAGtC,kCAAkC,ED7D1B,OAAO;EC8Df,8BAA8B,EDvBxB,IAAI;ECwBV,4BAA4B,EDjCtB,kBAAI;ECkCV,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CD1DzB,qBAAO;EC6Df,kCAAkC,ED5B5B,IAAI;EC6BV,gCAAgC,EAAE,WAAW,GAC9C;;AAGD,AAAA,WAAW,CAAC;EAEV,yBAAyB,EDrEjB,OAAO;ECsEf,6BAA6B,ED7ErB,wBAAO;EC8Ef,+BAA+B,ED9EvB,wBAAO;EC+Ef,6BAA6B,EDlFrB,OAAO;ECmFf,+BAA+B,ED1EvB,OAAO;EC2Ef,6BAA6B,EDjFrB,wBAAO;ECkFf,4BAA4B,EDlFpB,wBAAO;ECmFf,2BAA2B,EDnFnB,wBAAO;ECoFf,6BAA6B,EDpFrB,wBAAO;ECqFf,4BAA4B,EDrFpB,wBAAO;ECsFf,+BAA+B,EDtFvB,wBAAO;ECuFf,2BAA2B,ED5FnB,OAAO;EC6Ff,6BAA6B,ED7CjB,OAAO;EC8CnB,+BAA+B,EDzFvB,OAAO;EC0Ff,2BAA2B,ED1FnB,OAAO;EC2Ff,6BAA6B,ED3FrB,wBAAO;EC4Ff,4BAA4B,ED5FpB,wBAAO;EC6Ff,iCAAiC,EDvFzB,OAAO;ECwFf,uBAAuB,ED9Ff,wBAAO;ECDf,4BAA4B,EDJpB,OAAO;ECKf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDAT,OAAO,ECAW,CAAC,CAAC,CAAC,CAAC,CAAC,CDoHX,GAAG,CApHf,uBAAO;ECuGf,qCAAqC,ED7F7B,OAAO;EC8Ff,iCAAiC,ED5FzB,OAAO;EC+Ff,oBAAoB,ED/FZ,OAAO;ECgGf,sBAAsB,ED/Fd,qBAAO;ECkGf,kCAAkC,ED1G1B,wBAAO;EC2Gf,sCAAsC,ED3G9B,wBAAO;EC4Gf,yCAAyC,EDnEnC,IAAI;ECsEV,4BAA4B,ED/GpB,wBAAO;ECgHf,8BAA8B,ED1GtB,OAAO;EC2Gf,qCAAqC,ED5G7B,OAAO;EC6Gf,0BAA0B,EDlHlB,wBAAO;ECqHf,kCAAkC,ED/G1B,OAAO;ECgHf,6BAA6B,EAAE,IAAI;EACnC,6BAA6B,EDvHrB,wBAAO;EC0Hf,kCAAkC,EDrH1B,OAAO;ECsHf,8BAA8B,EDrHtB,OAAO;ECsHf,4BAA4B,ED5HpB,wBAAO;EC6Hf,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDrHzB,qBAAO;ECwHf,kCAAkC,ED1H1B,OAAO;EC2Hf,gCAAgC,EDxF1B,wBAAI,GCyFX;;ACxID,AAAA,KAAK,CAAC;EACJ,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EFgEL,IAAI;EE/Dd,uBAAuB,EAAE,IAAI;EAC7B,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,gCAAgC;EACtC,MAAM,EF4DI,IAAI;EE3Dd,cAAc,EAAE,MAAM;EACtB,KAAK,EF0DK,IAAI,GEgHf;EAnLD,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,EAAE,kCAAkC;IACxC,gBAAgB,EAAE,iDAAwC,GAC3D;EA9BH,AAgCE,KAhCG,AAgCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAlCH,AAoCE,KApCG,AAoCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,6CAA6C,GAChE;EAtCH,AAwCE,KAxCG,AAwCH,kBAAmB,CAAC;IAClB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,uDAA8C;IAChE,eAAe,EF0BA,IAAI;IEzBnB,MAAM,EFyBS,IAAI;IExBnB,KAAK,EFwBU,IAAI,GEvBpB;EA9CH,AAgDE,KAhDG,AAgDH,aAAc,CAAC;IACb,gBAAgB,EAAE,kDAAyC,GAC5D;EAlDH,AAoDE,KApDG,AAoDH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EAtDH,AAwDE,KAxDG,AAwDH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EA1DH,AA4DE,KA5DG,AA4DH,gBAAiB,CAAC;IAEhB,gBAAgB,EAAE,oDAA2C,GAC9D;IA/DH,AFuLE,KEvLG,AA4DH,gBAAiB,AF2HpB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EEzLH,AAiEE,KAjEG,AAiEH,wBAAyB,CAAC;IACxB,gBAAgB,EAAE,gDAAgD,GACnE;EAnEH,AAqEE,KArEG,AAqEH,cAAe,CAAC;IACd,gBAAgB,EAAE,yCAAyC,GAC5D;EAvEH,AAyEE,KAzEG,AAyEH,SAAU,CAAC;IAET,gBAAgB,EAAE,8CAAqC,GACxD;IA5EH,AFuLE,KEvLG,AAyEH,SAAU,AF8Gb,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EEzLH,AA8EE,KA9EG,AA8EH,WAAY,CAAC;IAEX,gBAAgB,EAAE,gDAAuC,GAC1D;IAjFH,AFuLE,KEvLG,AA8EH,WAAY,AFyGf,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EEzLH,AAmFE,KAnFG,AAmFH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EArFH,AAuFE,KAvFG,AAuFH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAzFH,AA2FE,KA3FG,AA2FH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,wCAAwC,GAC3D;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,EF3CC,IAAI;IE4CpB,MAAM,EF5CU,IAAI;IE6CpB,KAAK,EF7CW,IAAI,GE8CrB;IAlHH,AFuLE,KEvLG,AA4GH,eAAgB,AF2EnB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EEzLH,AAoHE,KApHG,AAoHH,WAAY,CAAC;IACX,gBAAgB,EAAE,sCAAsC,GACzD;EAtHH,AAwHE,KAxHG,AAwHH,cAAe,CAAC;IACd,gBAAgB,EAAE,wEAAwE,GAC3F;EA1HH,AA4HE,KA5HG,AA4HH,UAAW,CAAC;IACV,gBAAgB,EAAE,0CAA0C,GAC7D;EA9HH,AAgIE,KAhIG,AAgIH,eAAgB,CAAC;IACf,gBAAgB,EAAE,oDAA2C,GAC9D;EAlIH,AAoIE,KApIG,AAoIH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,uDAA8C,GACjE;EAtIH,AAwIE,KAxIG,AAwIH,gBAAiB,CAAC;IAChB,gBAAgB,EAAE,qDAA4C,GAC/D;EA1IH,AA4IE,KA5IG,AA4IH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yDAAgD,GACnE;EA9IH,AAgJE,KAhJG,AAgJH,0BAA2B,CAAC;IAC1B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EF9EC,IAAI;IE+EpB,MAAM,EF/EU,IAAI;IEgFpB,KAAK,EFhFW,IAAI,GEiFrB;EArJH,AAuJE,KAvJG,AAuJH,6BAA8B,CAAC;IAC7B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EFrFC,IAAI;IEsFpB,MAAM,EFtFU,IAAI;IEuFpB,SAAS,EAAE,cAAc;IACzB,KAAK,EFxFW,IAAI,GE6FrB;IAjKH,AA8JI,KA9JC,AAuJH,6BAA8B,AAO5B,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,aAAa,GACzB;EAhKL,AAmKE,KAnKG,AAmKH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,yDAAgD;IAClE,SAAS,EAAE,cAAc,GAC1B;EAtKH,AAwKE,KAxKG,AAwKH,SAAU,CAAC;IACT,gBAAgB,EAAE,8CAAqC,GACxD;EA1KH,AA4KE,KA5KG,AA4KH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EA9KH,AAgLE,KAhLG,AAgLH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;;AJ7KH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI,GACb;;AAED,AAAA,IAAI;AACJ,AAAA,KAAK,CAAC;EACJ,UAAU,EAAE,KAAK,GAClB;;AAED,AAAA,IAAI,CAAC;EACH,gBAAgB,EAAE,8BAA8B;EAChD,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,eAAe,EAAE,IAAI,GACtB;;AAGD,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,EGhCW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiC/D,aAAa,EEcC,GAAG;EFbjB,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,EGhEO,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiE/D,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,SAAS,EAAE,IAAI;EACf,eAAe,EAAE,UAAU;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,WAAW,GACrB;;AAGD,AAAA,OAAO;AACP,AAAS,QAAD,CAAC,MAAM,CAAC;EACd,gBAAgB,EAAE,oCAAoC;EACtD,MAAM,EG9ES,GAAG,CAAC,KAAK,CAAC,kCAAkC;EH+E3D,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,MAAM,GAsBpB;EA/BD,AAWE,OAXK,AAWN,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ;EAVtB,AAAS,QAAD,CAAC,MAAM,AAUd,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;IACpB,UAAU,EGhFG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IHiF9D,UAAU,EAAE,gBAAgB,GAC7B;EAdH,AAgBE,OAhBK,AAgBN,QAAU;EAfX,AAAS,QAAD,CAAC,MAAM,AAed,QAAU,CAAC;IACR,gBAAgB,EAAE,WAAW;IAC7B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,SAAS,GAC3B;EArBH,AAwBE,OAxBK,AAwBN,QAAU,EAxBX,AAyBE,OAzBK,AAyBN,KAAO;EAxBR,AAAS,QAAD,CAAC,MAAM,AAuBd,QAAU;EAvBX,AAAS,QAAD,CAAC,MAAM,AAwBd,KAAO,CAAC;IACL,gBAAgB,EAAE,kCAAkC;IACpD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,kCAAkC;IACpD,KAAK,EElED,IAAI;IFmER,mBAAmB,EAAE,IAAI,GAC1B;;AAGH,AACE,KADG,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,GADJ,AAEE,KAFG,CAEH,AAAA,IAAE,CAAK,QAAQ,AAAb,EAAe;EACf,aAAa,EE/DD,GAAG,GFgEhB;;AAIH,AAAA,mBAAmB,CAAC;EAClB,OAAO,EAAE,CAAC,GACX;;AKhID,AAAA,cAAc,CAAC;EACb,KAAK,EAAE,gCAAgC;EACvC,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,IAA8C,CHwD3C,IAAI,CAAJ,IAAI,GG/CjB;EAdD,AAOE,cAPY,AAOZ,aAAc,CAAC;IACb,OAAO,EAAE,KAAK,GACf;EATH,AAWE,cAXY,CAWZ,CAAC,CAAC;IACA,KAAK,EAAE,gCAAgC,GACxC;;AAGH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI;EAGZ,cAAc,EAAE,IAA4D;EAC5E,KAAK,EHkDiB,KAAmE,GG5B1F;EApBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,IAAI,CAAC;MAQD,KAAK,EHgDiB,KAAmE,GG7B5F;EAhBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAX1B,AAAA,IAAI,CAAC;MAYD,KAAK,EH6CkB,KAAmE,GG9B7F;EAZC,MAAM,EAAE,SAAS,EAAE,KAAK;IAf1B,AAAA,IAAI,CAAC;MAgBD,KAAK,EH0CiB,KAAmE,GG/B5F;EARC,MAAM,EAAE,SAAS,EAAE,MAAM;IAnB3B,AAAA,IAAI,CAAC;MAoBD,KAAK,EHuCkB,MAAmE,GGhC7F;EA3BD,AAuBE,IAvBE,CAuBF,OAAO,CAAC;IACN,aAAa,EHwBC,IAAoC;IGvBlD,QAAQ,EAAE,QAAQ,GACnB;;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,CHTiB,IAAI,GGUhC;;AAED,AACE,aADW,CACX,MAAM,CAAC;EACL,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,OAAO;EACf,IAAI,EAAE,gCAAgC;EACtC,iBAAiB,EAAE,IAAI;EACvB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,KAAK,GAUf;EApBH,AACE,aADW,CACX,MAAM,AAWJ,MAAO,EAZX,AACE,aADW,CACX,MAAM,AAYJ,MAAO,CAAC;IACN,gBAAgB,EAAE,iCAAiC,GACpD;EAfL,AACE,aADW,CACX,MAAM,AAgBJ,OAAQ,CAAC;IACP,gBAAgB,EAAE,kCAAkC,GACrD;;AC7FL,AAAA,kBAAkB,CAAC;EACjB,WAAW,EAAE,MAAM;EACnB,aAAa,EJwDC,GAAG;EIvDjB,UAAU,EAAE,KAAK,CHSA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EGR/D,KAAK,EAAE,oCAAoC;EAC3C,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EJuGgB,IAAI;EItG7B,eAAe,EAAE,MAAM;EACvB,aAAa,EAAE,MAAM;EACrB,WAAW,EJqGgB,GAAG,GI/F/B;EAhBD,AAYE,kBAZgB,CAYhB,CAAC,CAAC;IACA,KAAK,EAAE,oCAAoC;IAC3C,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,GA4EX;EAzEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,ALoJE,eKpJa,CAOX,UAAW,CAAA,IAAI,EL6IjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EA5GT,KAAI,GA6Gf;IKzJH,AL6JE,eK7Ja,CAWX,UAAW,CAAA,EAAE,ELkJf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKjJD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAjBjD,AL6JE,eK7Ja,CAkBX,UAAW,CAAA,IAAI,EL2IjB,aAAa;IK7Jf,AL6JE,eK7Ja,CAmBX,UAAW,CAAA,EAAE,EL0If,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKzID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAzBjD,AL6JE,eK7Ja,CA0BX,UAAW,CAAA,EAAE,ELmIf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKpID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IA9BjD,AL6JE,eK7Ja,CA+BX,UAAW,CAAA,IAAI,EL8HjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EK7HD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IArClD,AL6JE,eK7Ja,CAsCX,UAAW,CAAA,EAAE,ELuHf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKxHD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IA1ClD,AL6JE,eK7Ja,CA2CX,UAAW,CAAA,IAAI,ELkHjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKjHD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAjDnD,AL6JE,eK7Ja,CAkDX,UAAW,CAAA,EAAE,EL2Gf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EK5GD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAtDnD,AL6JE,eK7Ja,CAuDX,UAAW,CAAA,IAAI,ELsGjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKtGD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;IA5DvC,AA6DI,eA7DW,CA6DX,gBAAgB,CAAC;MACf,OAAO,EAAE,IAAI,GACd;EA/DL,AAkEE,eAlEa,CAkEb,EAAE,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,CAAC,CAjFY,GAAG,GAkF3B;EApEH,AAwEM,eAxES,AAsEb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAC9C,KAAK,CAAC;IL+BV,UAAU,EAAE,KAAK,CC5GA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IDwGhE,UAAU,EAAE,gBAAgB,GK9BvB;EA1EP,AL6IE,eK7Ia,AAsEb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,ELsElD,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,QAAQ,GACpB;;AK9DH,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,CAAC,CA3FO,IAAgB;EA4FjC,OAAO,EAAE,YAAY,GA6JtB;EA/JD,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;QLOZ,UAAU,EAAE,KAAK,CC5GA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QDwGhE,UAAU,EAAE,gBAAgB,GKNrB;EAhBT,AL+BE,eK/Ba,CL+Bb,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EC7HO,GAAG,CAAC,KAAK,CAAC,kCAAkC;ID8HzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAlCkB,CAAC,CAAC,GAAG,CAzF3B,qBAAO;IA4Hb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAtCiB,IAAI;IAuC3B,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,EA9CkB,IAAI,GAoD5B;IKvDH,AL+BE,eK/Ba,CL+Bb,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EKtDL,AAuBE,eAvBa,CAuBb,KAAK,CAAC;IACJ,aAAa,EA1HS,GAAG;IA2HzB,UAAU,EAAE,KAAK,CJhHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EIgHxB,yBAAyB;IAC9D,MAAM,EL5DE,IAAI;IK6DZ,QAAQ,EAAE,QAAQ;IAClB,KAAK,EL9DG,IAAI;IKiEZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,kCAAkC;IACzC,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,ELjGZ,IAAI;IKkGR,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EA9ID,KAAK;IA+InB,aAAa,EAlJS,GAAG;IAmJzB,UAAU,EAAE,KAAK,CJxIF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;IIyI7D,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,EAAE,uCAAuC;IACzD,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAtKS,GAAG;IAuKzB,UAAU,EAAE,kCAAkC;IAC9C,QAAQ,EAAE,QAAQ,GACnB;EAvEH,AAyEE,eAzEa,CAyEb,UAAU,CAAC;IACT,eAAe,EAAE,KAAK;IACtB,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,EA9KC,IAAI;IA+KpB,MAAM,EA9KY,IAAG;IA+KrB,MAAM,EAjLkB,IAAI;IAkL5B,iBAAiB,EAhLC,IAAG;IAiLrB,KAAK,EAnLmB,IAAI;IAsL5B,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,KAAK,EAAE,kCAAkC;IACzC,IAAI,EAAE,WAAW;IACjB,MAAM,EAvMe,IAAI;IAwMzB,WAAW,EAxMU,IAAI;IAyMzB,UAAU,EAAE,MAAM;IAClB,KAAK,EL3IG,IAAI;IK4IZ,QAAQ,EAAE,QAAQ,GAsBnB;IAhIH,AA4GI,eA5GW,CAmGb,MAAM,CASJ,KAAK,CAAC;MACJ,IAAI,EAAE,iCAAiC;MACvC,mBAAmB,EAAE,CAAC;MACtB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI,GACV;IAjHL,AAmHI,eAnHW,CAmGb,MAAM,CAgBJ,IAAI,CAAC;MACH,MAAM,EArNa,IAAI;MAsNvB,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,MAAM;MAChB,aAAa,EAAE,QAAQ;MACvB,WAAW,EAAE,MAAM,GACpB;IAzHL,AA4HM,eA5HS,CAmGb,MAAM,AAwBJ,OAAQ,CACN,IAAI,CAAC;MACH,OAAO,EAAE,MAAM,GAChB;EA9HP,AAkIE,eAlIa,CAkIb,YAAY,CAAC;IACX,gBAAgB,EAAE,+CAAsC,GACzD;EApIH,AAuII,eAvIW,AAsIb,YAAa,CACX,KAAK,CAAC;IACJ,UAAU,EAAE,KAAK,CJ/NJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GIgO5D;EAzIL,AA2II,eA3IW,AAsIb,YAAa,CAKX,WAAW,CAAC;IACV,OAAO,EAAE,IAAI,GACd;EA7IL,AAiJI,eAjJW,AAgJb,QAAS,CACP,KAAK,CAAC;IACJ,UAAU,EL9ON,OAAO;IK+OX,UAAU,EAAE,IAAI,GAMjB;IAzJL,AAqJM,eArJS,AAgJb,QAAS,CACP,KAAK,CAIH,CAAC,EArJP,AAiJI,eAjJW,AAgJb,QAAS,CACP,KAAK,AAKH,QAAS,CAAC;MACR,OAAO,EAAE,IAAI,GACd;EAxJP,AA2JI,eA3JW,AAgJb,QAAS,CAWP,MAAM,CAAC;IACL,UAAU,EAAE,MAAM,GACnB;;AAIL,AACE,sBADoB,CACpB,MAAM,CAAC;EACL,UAAU,EJpPK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EKyPb,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,MAAM;EACd,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,IAAI;EACT,KAAK,ELrMe,KAAmE,GKkNxF;EAXC,MAAM,EAAE,SAAS,EAAE,KAAK;IAV5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAUH,KAAK,ELvMe,KAAmE,GKiN1F;EAPC,MAAM,EAAE,SAAS,EAAE,KAAK;IAd5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAcH,KAAK,EL1MgB,KAAmE,GKgN3F;EAHC,MAAM,EAAE,SAAS,EAAE,KAAK;IAlB5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAkBH,KAAK,EL7Me,KAAmE,GK+M1F;;AAGH,AAIE,aAJW,CAIX,qBAAqB,CAAC;EACpB,SAAS,EAAE,KAAiD;EAC5D,MAAM,EAAE,MAAM;EACd,OAAO,EALM,IAAI,GAmBlB;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,ELnOa,IAAI,GKoO3B;;AA7BH,AA+BE,aA/BW,CA+BX,aAAa,CAAC;EACZ,KAAK,EAAE,IAAI,GAuIZ;EAvKH,AAkCI,aAlCS,CA+BX,aAAa,CAGX,MAAM,CAAC;IACL,QAAQ,EAAE,QAAQ,GAQnB;IA3CL,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,GACvB;EA1CP,AA8CM,aA9CO,CA+BX,aAAa,CAcX,IAAI,CACF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,aAAa,EAAE,IAAI,GACpB;EAhDP,AAkDM,aAlDO,CA+BX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,YAAY,EAAE,IAAI,GAMnB;IAzDP,AAkDM,aAlDO,CA+BX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,CAGX,IAAM,CAAA,AAAA,kBAAkB,EAAE;MACxB,SAAS,EAAE,GAAG;MACd,UAAU,EAAE,KAAK,GAClB;EAxDT,AA4DI,aA5DS,CA+BX,aAAa,CA6BX,0BAA0B,CAAC;IACzB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO,GAKhB;IArEL,AA4DI,aA5DS,CA+BX,aAAa,CA6BX,0BAA0B,AAMxB,MAAO,CAAC;MACN,eAAe,EAAE,SAAS,GAC3B;EApEP,AAuEI,aAvES,CA+BX,aAAa,CAwCX,6BAA6B,CAAC;IAC5B,UAAU,EAAE,GAAG,GAkChB;IA1GL,AA0EM,aA1EO,CA+BX,aAAa,CAwCX,6BAA6B,CAG3B,kBAAkB,CAAC;MACjB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,QAAQ,EAAE,MAAM;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,iBAAiB,EAAE,GAAG,GACvB;IAlFP,AAsFM,aAtFO,CA+BX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,CAAC;MASjB,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,IAAI;MACZ,uBAAuB,EAAE,IAAI;MAC7B,IAAI,EL5XF,OAAO;MK6XT,gBAAgB,EAAE,mDAAmD;MACrE,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAK3D;;AAlBC,UAAU,CAAV,sBAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,kBAAkB;;AAGtC,UAAU,CAAV,0BAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,iBAAiB;MA5F7C,AAsFM,aAtFO,CA+BX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,AAgBhB,IAAM,CAAA,AAAA,GAAG,EAAE;QACT,cAAc,EAAE,0BAA0B,GAC3C;EAxGT,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,gBAAgB,EAAE,sCAAsC;IACxD,MAAM,EJ9XC,GAAG,CAAC,KAAK,CAAC,4BAA4B;II+X7C,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI,GAYhB;IAhIP,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,CASA,MAAO,CAAC;MACN,MAAM,EJrYM,GAAG,CAAC,KAAK,CAAC,iCAAiC;MIsYvD,UAAU,EAAE,qCAAqC,GAClD;IAzHT,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAcA,AAAA,QAAE,AAAA,EAAU;MACV,MAAM,EJ3YD,GAAG,CAAC,KAAK,CAAC,4BAA4B;MI4Y3C,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,GAAG,GACb;EA/HT,AAoIM,aApIO,CA+BX,aAAa,CAoGX,QAAQ,CACN,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,MAAM,EJnZK,GAAG,CAAC,KAAK,CDCrB,OAAO;IKmZN,UAAU,EJlaV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDeV,OAAO,ECfY,CAAC,CAAC,CAAC,CAAC,CAAC,CDoHX,GAAG,CArGhB,qBAAO,GKoZP;EAxIT,AA4II,aA5IS,CA+BX,aAAa,CA6GX,cAAc,CAAC;IACb,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EL1ZP,OAAO;IK2ZV,aAAa,EAAE,GAAG;IAClB,KAAK,EL7XH,IAAI;IK8XN,mBAAmB,EAAE,GAAG;IACxB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,CAAC,GAiBX;IAtKL,AA4II,aA5IS,CA+BX,aAAa,CA6GX,cAAc,AAYZ,QAAS,CAAC;MACR,UAAU,ELraT,OAAO;MKsaR,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;;AArKP,AAyKE,aAzKW,CAyKX,QAAQ,CAAC;EACP,eAAe,EAAE,QAAQ,GAM1B;EAhLH,AA4KI,aA5KS,CAyKX,QAAQ,CAGN,MAAM,CAAC;IACL,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC,GACrB;;AAGH,MAAM,EAAE,SAAS,EAAE,KAAK;EAlL1B,AAmLI,aAnLS,CAmLT,mBAAmB,CAAC;IAClB,cAAc,EAAE,MAAM,GAKvB;IAzLL,AAsLM,aAtLO,CAmLT,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;;ACle5B,AACE,cADY,CACZ,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,QAAQ,EN0DE,IAAI;EMzDd,qBAAqB,EAAE,uBAA6B;EACpD,MAAM,EAAE,CAAC,GAuBV;EArBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP5B,AN8KE,cM9KY,CACZ,aAAa,CN6Kb,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EMxKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAXnD,AN8KE,cM9KY,CACZ,aAAa,CAWT,UAAW,CAAA,EAAE,ENkKjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EMlKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IAjBpD,AN8KE,cM9KY,CACZ,aAAa,CAiBT,UAAW,CAAA,EAAE,EN4JjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EM5JC,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAvBrD,AN8KE,cM9KY,CACZ,aAAa,CAuBT,UAAW,CAAA,EAAE,ENsJjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;;AMnLH,AA8BE,cA9BY,CA8BZ,oBAAoB,CAAC;EACnB,MAAM,ELpBS,GAAG,CAAC,KAAK,CAAC,oCAAoC;EKqB7D,aAAa,EN0BD,GAAG;EMzBf,OAAO,EAAE,IAAI;EACb,MAAM,ENsDI,KAAK;EMrDf,KAAK,EAAE,IAAI,GA6BZ;EAhEH,AAqCI,cArCU,CA8BZ,oBAAoB,CAOlB,YAAY,CAAC;IACX,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK,GAoBjB;IA3DL,AAyCM,cAzCQ,CA8BZ,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,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,MAAM;MACd,KAAK,EAAE,IAAI,GACZ;IAnDP,AAqDM,cArDQ,CA8BZ,oBAAoB,CAOlB,YAAY,CAgBV,oBAAoB,CAAC;MACnB,KAAK,EAAE,gCAAgC;MACvC,SAAS,EAAE,IAAI;MACf,aAAa,EAAE,CAAC;MAChB,UAAU,EAAE,MAAM,GACnB;EAGH,MAAM,EAAE,SAAS,EAAE,MAAM;IA7D7B,AA8BE,cA9BY,CA8BZ,oBAAoB,CAAC;MAgCjB,MAAM,ENgCQ,KAAK,GM9BtB;;AAGH,MAAM,EAAE,SAAS,EAAE,MAAM;EACvB,AAGI,cAHU,CAEZ,aAAa,CACX,aAAa,CAAC;IACZ,qBAAqB,EAAE,uBAAmC,GAC3D;;ACzEP,AACE,gBADc,AACd,QAAS,CAAC;EACR,QAAQ,EAAE,MAAM,GACjB;;AAHH,AAMI,gBANY,AAKd,IAAM,CAAA,AAAA,QAAQ,EACZ,gBAAgB,CAAC;EACf,OAAO,EAAE,IAAI,GACd;;AAIL,AAAA,gBAAgB,CAAC;EACf,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,GAAG;EAChB,UAAU,EAAE,YAAY;EACxB,OAAO,EAAE,CAAC,GA2CX;EAnDD,AAUE,gBAVc,AAUd,KAAM,CAAC;IACL,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC,GAsCX;IAlDH,AAcI,gBAdY,AAUd,KAAM,CAIJ,iBAAiB,CAAC;MAChB,UAAU,EAAE,4BAA4B;MACxC,gBAAgB,EAAE,IAAI;MACtB,SAAS,EAAE,gBAAgB,CAAC,QAAQ;MACpC,OAAO,EAAE,CAAC,GACX;IAnBL,AAqBI,gBArBY,AAUd,KAAM,CAWJ,sBAAsB,CAAC;MACrB,UAAU,EAAE,YAAY;MACxB,OAAO,EAAE,CAAC,GACX;IAxBL,AA0BI,gBA1BY,AAUd,KAAM,CAgBJ,eAAe;IA1BnB,AA2BI,gBA3BY,AAUd,KAAM,CAiBJ,iBAAiB;IA3BrB,AA4BI,gBA5BY,AAUd,KAAM,CAkBJ,cAAc,CAAC;MACb,UAAU,EAAE,4BAA4B;MACxC,SAAS,EAAE,aAAa;MACxB,OAAO,EAAE,CAAC,GACX;IAhCL,AAkCI,gBAlCY,AAUd,KAAM,CAwBJ,eAAe,CAAC;MACd,gBAAgB,EAAE,IAAI,GACvB;IApCL,AAsCI,gBAtCY,AAUd,KAAM,CA4BJ,iBAAiB,CAAC;MAChB,gBAAgB,EAAE,IAAI,GACvB;IAxCL,AA0CI,gBA1CY,AAUd,KAAM,CAgCJ,cAAc,CAAC;MACb,gBAAgB,EAAE,IAAI,GACvB;IA5CL,AA8CI,gBA9CY,AAUd,KAAM,CAoCJ,qBAAqB,CAAC;MACpB,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,WAAW,CAAC;EACV,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,0CAAiC,CAAC,GAAG,CAAE,MAAK,CAAC,MAAM,CAAC,SAAS,EACzE,4FAA8F,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EPlE3G,OAAO;EOoEf,eAAe,EAAE,KAAK,GACvB;;AAED,AAAA,iBAAiB,CAAC;EAChB,SAAS,EAAE,gBAAgB,CAAC,UAAU;EACtC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,CAAC;EACV,gBAAgB,EPlCV,IAAI;EOmCV,KAAK,EAAE,UAAU;EACjB,KAAK,EPrEG,OAAO;EOsEf,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI,GAkGd;EA5GD,AAYE,iBAZe,CAYf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO,GAahB;IA9BH,AAmBI,iBAnBa,CAYf,YAAY,CAOV,CAAC,CAAC;MACA,KAAK,EPrFD,OAAO;MOsFX,MAAM,EAAE,OAAO;MACf,eAAe,EAAE,SAAS,GAC3B;IAvBL,AAyBI,iBAzBa,CAYf,YAAY,CAaV,CAAC,AAAA,MAAM;IAzBX,AA0BI,iBA1Ba,CAYf,YAAY,CAcV,CAAC,AAAA,OAAO;IA1BZ,AA2BI,iBA3Ba,CAYf,YAAY,CAeV,CAAC,AAAA,MAAM,CAAC;MACN,KAAK,EPrGD,OAAO,GOsGZ;EA7BL,AAgCE,iBAhCe,CAgCf,YAAY,CAAC;IACX,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,GAAG,CAAC,KAAK,CPxGX,OAAO;IOyGb,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI,GAKhB;IA9CH,AAgCE,iBAhCe,CAgCf,YAAY,AAWV,MAAO,CAAC;MACN,YAAY,EPzGR,OAAO,GO0GZ;EA7CL,AAgDE,iBAhDe,CAgDf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,SAAS,GAClB;EAnDH,AAqDe,iBArDE,CAqDf,YAAY,CAAC,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,KAAK,GACf;EAzDH,AA2DE,iBA3De,CA2Df,MAAM,CAAC;IACL,aAAa,EAAE,GAAG;IAClB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,WAAW,GACpB;EAhEH,AAkEE,iBAlEe,CAkEf,gBAAgB,CAAC;IACf,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,GAAG,CAAC,KAAK,CP/IX,OAAO;IOgJb,KAAK,EPpGD,IAAI;IOqGR,gBAAgB,EPlJV,OAAO;IOmJb,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,gBAAgB,GAMtC;IAjFH,AAkEE,iBAlEe,CAkEf,gBAAgB,AAWd,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,OAAO,CAAC;MACvB,UAAU,EPrJN,OAAO;MOsJX,YAAY,EPrJR,OAAO,GOsJZ;EAhFL,AAmFE,iBAnFe,CAmFf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,gBAAgB,EAAE,OAAO;IACzB,KAAK,EPjKC,OAAO;IOkKb,MAAM,EAAE,GAAG,CAAC,KAAK,CPlKX,OAAO;IOmKb,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,uDAAuD,GAepE;IA3GH,AAmFE,iBAnFe,CAmFf,YAAY,CAWV,AAAA,QAAE,AAAA,EAAU;MACV,gBAAgB,EAAE,OAAO;MACzB,YAAY,EAAE,OAAO;MACrB,KAAK,EAAE,OAAO;MACd,MAAM,EAAE,OAAO;MACf,OAAO,EAAE,GAAG,GACb;IApGL,AAmFE,iBAnFe,CAmFf,YAAY,AAmBV,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,MAAM,CAAC;MACtB,gBAAgB,EPhLZ,OAAO;MOiLX,YAAY,EPhLR,OAAO;MOiLX,KAAK,EPrIH,IAAI,GOsIP;;AAIL,AAAA,sBAAsB,CAAC;EACrB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,YAAY;EACnB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK,GACb;;AAED,AAAA,iBAAiB,CAAC;EAChB,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,8CAAqC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;EACzE,cAAc,EAAE,KAAK,GACtB;;AAED,AAAA,cAAc,CAAC;EACb,KAAK,EP1JC,IAAI;EO2JV,OAAO,EAAE,KAAK;EACd,eAAe,EAAE,SAAS,GAO3B;EAVD,AAKE,cALY,AAKZ,MAAO,EALT,AAME,cANY,AAMZ,OAAQ,EANV,AAOE,cAPY,AAOZ,MAAO,CAAC;IACN,KAAK,EPjKD,IAAI,GOkKT;;AAGH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,+CAA+C,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;EAC9E,eAAe,EAAE,SAAS;EAC1B,MAAM,EAAE,WAAW;EACnB,WAAW,EAAE,KAAK;EAClB,WAAW,EAAE,GAAG,GACjB;;CAED,AAAA,AACE,GADD,CAAI,KAAK,AAAT,EACC,eAAe,CAAC;EACd,mBAAmB,EAAE,SAAS,GAC/B;;AAGH,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EPzLC,IAAI;EO0LV,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,EAAE;EACX,UAAU,EAAE,YAAY;EACxB,OAAO,EAAE,CAAC,GACX;;AAED,AAAA,eAAe;AACf,AAAA,iBAAiB;AACjB,AAAA,cAAc,CAAC;EACb,OAAO,EAAE,CAAC;EACV,SAAS,EAAE,gBAAgB,GAC5B;;ACtPD,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,2CAA2C;EAClD,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,UAAU,ERgGO,IAAI,GQxBtB;EAtEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,AAAA,MAAM,CAAC;MAOH,WAAW,EAAE,IAAI,GAqEpB;EA5ED,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,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GAClB;EApCH,AAsCE,MAtCI,CAsCJ,gBAAgB,CAAC;IACf,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GA2BlB;IAzBC,MAAM,EAAE,SAAS,EAAE,KAAK;MA1C5B,AAsCE,MAtCI,CAsCJ,gBAAgB,CAAC;QAOb,KAAK,EAAE,KAAK,GAsBf;QAnEH,AAsCE,MAtCI,CAsCJ,gBAAgB,AASZ,IAAM,CAAA,AAAA,GAAG,EAAE;UACT,KAAK,EAAE,IAAI,GACZ;IAjDP,AAsCE,MAtCI,CAsCJ,gBAAgB,AAcd,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,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,GAAG;MACxB,cAAc,EAAE,GAAG;MACnB,KAAK,EAAE,IAAI,GACZ;IA9DL,AAsCE,MAtCI,CAsCJ,gBAAgB,AA0Bd,IAAM,CAAA,AAAA,GAAG,CAAC,OAAO,CAAE;MACjB,SAAS,EAAE,UAAU,GACtB;EAlEL,AAuEE,MAvEI,AAuEJ,OAAQ,CAAC;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK,GACf;;AC3EH,AAAA,eAAe,CAAC;EASd,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,IAAI;EACb,MAAM,EAVU,IAAI;EAWpB,aAAa,EToDG,IAAoC;ESnDpD,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAuDZ;EArED,AAgBE,eAhBa,CAgBb,KAAK,CAAC;IACJ,UAAU,EAAE,sCAAsC,CAAC,yBAAyB,CAdxD,GAAG,CAc2E,WAA0B,CAAC,SAAS;IACtI,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,iCAAiC;IACnD,UAAU,ERDK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,ESKkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CTmBpC,mBAAI;ISlBR,SAAS,EAAE,IAAI;IACf,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,CAAC;IACV,kBAAkB,EAlBE,IAAI;IAmBxB,oBAAoB,EArBF,IAA4C;IAsB9D,KAAK,EAAE,IAAI,GAKZ;IA/BH,AAgBE,eAhBa,CAgBb,KAAK,AAYH,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,qBAAqB,EAAE,KAAK,CA1BV,GAAG,GA2BtB;EA9BL,AAiCU,eAjCK,AAiCb,MAAO,CAAC,KAAK,CAAC;IACZ,UAAU,ERhBK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,ESoBkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CTIpC,mBAAI,GSHT;EAnCH,AAqCW,eArCI,AAqCb,OAAQ,CAAC,KAAK;EArChB,AAsCE,eAtCa,CAsCb,KAAK,AAAA,MAAM,CAAC;IACV,MAAM,ERzBY,GAAG,CAAC,KAAK,CAAC,iCAAiC;IQ0B7D,UAAU,EAAE,qCAAqC,GAClD;EAzCH,AA2CE,eA3Ca,CA2Cb,cAAc,CAAC;IACb,UAAU,EArCI,wCAAwC,CAqC3B,SAAS,CAAC,MAAM,CAAC,MAAM;IAClD,eAAe,EAAE,SAAS;IAC1B,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC,CTWJ,GAAG,CAAH,GAAG,CSXgC,CAAC;IAChD,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EA/Ce,IAAI,GA8DzB;IApEH,AA2CE,eA3Ca,CA2Cb,cAAc,AAYZ,MAAO,EAvDX,AA2CE,eA3Ca,CA2Cb,cAAc,AAaZ,MAAO,CAAC;MACN,gBAAgB,ET3CZ,qBAAO;MS4CX,MAAM,EAAE,OAAO,GAChB;IA3DL,AA2CE,eA3Ca,CA2Cb,cAAc,AAkBZ,OAAQ,CAAC;MACP,gBAAgB,EThDZ,qBAAO,GSiDZ;IA/DL,AA2CE,eA3Ca,CA2Cb,cAAc,AAsBZ,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;;AAMH,AAAA,6BAA6B,CAAC;EAC5B,gBAAgB,EAAE,mCAAmC;EACrD,MAAM,EAAE,CAAC;EACT,UAAU,ET4BQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAlExB,kBAAI,EAkEgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAlE7C,kBAAI;ESuCR,SAAS,EAAE,eAAgC,GA0E5C;EA9ED,AAME,6BAN2B,CAM3B,oBAAoB,CAAC;IACnB,gBAAgB,EAAE,0CAA0C;IAC5D,KAAK,EAAE,kCAAkC,GAC1C;EATH,AAWE,6BAX2B,CAW3B,oBAAoB,EAXtB,AAYE,6BAZ2B,CAY3B,4BAA4B,CAAC;IAC3B,YAAY,EAAE,oCAAoC,GACnD;EAdH,AAgBE,6BAhB2B,CAgB3B,6BAA6B,CAAC;IAC5B,MAAM,EAAE,CAAC,GACV;EAlBH,AAoBE,6BApB2B,CAoB3B,0BAA0B,CAAC;IACzB,gBAAgB,EAAE,0CAA0C;IAC5D,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,oCAAoC,GAC3D;EAvBH,AAyBE,6BAzB2B,CAyB3B,wCAAwC,CAAC;IACvC,KAAK,EAAE,gCAAgC,GACxC;EA3BH,AA6BE,6BA7B2B,CA6B3B,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,mCAAmC,GACtD;EA/BH,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,CAAC;IACT,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GASxC;IA7CL,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,AAIR,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;IAxCP,AA0CM,6BA1CuB,CAiC3B,2BAA2B,AACzB,SAAU,CAQR,YAAY,CAAC;MACX,IAAI,EAAE,kCAAkC,GACzC;EA5CP,AAiDI,6BAjDyB,CAgD3B,0BAA0B,CACxB,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,0CAA0C,GAC7D;EAnDL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,CAAC;IAIvB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,qIAA+L,CAAC,CAAC;IAC/M,iBAAiB,EAAE,SAAS;IAC5B,QAAQ,EAAE,QAAQ,GASnB;IAtEH,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAStB,SAAU,CAAC;MACT,UAAU,EAAE,iCAAiC,GAC9C;IAjEL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAatB,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;EArEL,AAwEE,6BAxE2B,CAwE3B,4BAA4B,AAC1B,MAAO,CAAC;IACN,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GACxC;;ACrJP,AAAA,aAAa,CAAC;EACZ,UAAU,EAAE,0CAA0C;EACtD,aAAa,EVwGc,GAAG;EUvG9B,UAAU,EVqGU,CAAC,CAAC,GAAG,CAAC,IAAI,CAlExB,kBAAI,EAkEgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAlE7C,kBAAI;EUlCV,OAAO,EAAE,KAAK;EACd,SAAS,EVoGc,IAAI;EUnG3B,mBAAmB,EAAE,GAAG;EACxB,mBAAmB,EAAE,IAAI;EACzB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,MAA+B;EACpC,OAAO,EAAE,KAAK,GAyCf;EAnDD,AAYI,aAZS,GAYT,EAAE,CAAC;IACH,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,EV4FkB,GAAG,CU5FS,CAAC,GAmCvC;IAlDH,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,CAAC;MACH,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,IAAI,GA8BZ;MAjDL,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,AAIF,UAAW,CAAC;QACV,aAAa,ETXF,GAAG,CAAC,KAAK,CAAC,oCAAoC;QSYzD,MAAM,EVoFe,GAAG,CUpFY,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,EV2Ea,GAAG,CAAC,IAAI;QU1E5B,WAAW,EAAE,MAAM,GAcpB;QAhDP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;UACzB,UAAU,EAAE,iCAAiC,GAC9C;QAtCT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAcD,OAAQ,CAAC;UACP,UAAU,EAAE,kCAAkC,GAC/C;QA1CT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAkBD,SAAU,CAAC;UACT,OAAO,EAAE,GAAG;UACZ,cAAc,EAAE,IAAI,GACrB;;AC/CT,AACE,oBADkB,CAClB,MAAM,CAAC;EACL,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CXoCnB,kBAAI;EWnCR,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,EAAE,2BAA2B;EACvC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK,GACf;;AAED,AAAA,MAAM,CAAC;EACL,UAAU,EAAE,yBAAyB;EACrC,MAAM,EVnDW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EUoD/D,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,KAAK,GACf;;AClED,AAAA,WAAW,CAAC;EAEV,UAAU,EAAE,mCAAmC;EAC/C,aAAa,EZuDC,GAAG;EYtDjB,OAAO,EAAE,YAAY;EACrB,MAAM,EZmFM,KAAK;EYlFjB,iBAAiB,EZuDL,IAAI;EYtDhB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAkKZ;EA1KD,AZkIE,WYlIS,CZkIT,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EC7HO,GAAG,CAAC,KAAK,CAAC,kCAAkC;ID8HzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAlCkB,CAAC,CAAC,GAAG,CAzF3B,qBAAO;IA4Hb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAtCiB,IAAI;IAuC3B,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,EA9CkB,IAAI,GAoD5B;IY1JH,AZkIE,WYlIS,CZkIT,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EYzJL,AAUE,WAVS,AAUT,YAAa,CAAC;IACZ,UAAU,EAAE,WAAW,GAUxB;IArBH,AAaI,WAbO,AAUT,YAAa,CAGX,KAAK,CAAC;MACJ,UAAU,EAAE,KAAK,CXFJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GWG5D;IAfL,AAiBI,WAjBO,AAUT,YAAa,CAOX,yBAAyB;IAjB7B,AAkBI,WAlBO,AAUT,YAAa,CAQX,aAAa,CAAC;MACZ,OAAO,EAAE,IAAI,GACd;EApBL,AAuBE,WAvBS,CAuBT,KAAK,CAAC;IACJ,aAAa,EZkCD,GAAG;IYjCf,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,IAAI,GACb;EA3BH,AA6BI,WA7BO,GA6BP,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;IA9CH,AAsCM,WAtCK,GA6BP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;MZuFV,UAAU,EC5GK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;MD6GhE,UAAU,EAAE,gBAAgB,GYtFvB;IAxCP,AA0CM,WA1CK,GA6BP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAKxB,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;EA5CP,AAgDE,WAhDS,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAAE;IZ6EtD,UAAU,EC5GK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;ID6GhE,UAAU,EAAE,gBAAgB;IY3E1B,OAAO,EAAE,IAAI,GAad;IAhEH,AZ8JE,WY9JS,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EZ8GpD,oBAAoB,CAAC;MACnB,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;IYjKH,AAqDI,WArDO,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAKlD,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;IAvDL,AAyDiB,WAzDN,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EASlD,UAAU,GAAG,eAAe,CAAC;MAC3B,OAAO,EAAE,IAAI,GACd;IA3DL,AA6DI,WA7DO,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAalD,eAAe,AAAA,UAAU,CAAC;MACxB,OAAO,EAAE,KAAK,GACf;EA/DL,AAkEE,WAlES,CAkET,yBAAyB,CAAC;IACxB,gBAAgB,EZ3DV,OAAO;IY4Db,aAAa,EZVD,GAAG,CAAH,GAAG,CYU8B,CAAC,CAAC,CAAC;IAChD,MAAM,EZoBkB,KAAK;IYnB7B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,QAAQ,GAuBnB;IA9FH,AAkEE,WAlES,CAkET,yBAAyB,AAOvB,OAAQ,CAAC;MACP,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MAC1D,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI,GACZ;IA/EL,AAiFI,WAjFO,CAkET,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,CZ/BZ,8BAA8B;MYgCxC,KAAK,EAAE,IAAI,GAKZ;MA7FL,AAiFI,WAjFO,CAkET,yBAAyB,CAevB,mBAAmB,AASjB,OAAQ,CAAC;QACP,OAAO,EAAE,CAAC,GACX;EA5FP,AAgGE,WAhGS,CAgGT,aAAa,CAAC;IACZ,OAAO,EAAE,cAAc,GACxB;EAlGH,AAoGE,WApGS,CAoGT,UAAU,CAAC;IACT,UAAU,EAAE,IAA+C;IAC3D,QAAQ,EAAE,MAAM,GAejB;IArHH,AAoGE,WApGS,CAoGT,UAAU,AAIR,aAAc,EAxGlB,AAoGE,WApGS,CAoGT,UAAU,AAKR,WAAY,CAAC;MACX,UAAU,EAAE,IAA+C,GAC5D;IA3GL,AAoGE,WApGS,CAoGT,UAAU,AASR,aAAc,AAAA,WAAW,CAAC;MACxB,UAAU,EAAE,KAA+C,GAC5D;IA/GL,AAiH2B,WAjHhB,CAoGT,UAAU,AAaR,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;MACjC,UAAU,EAAE,IAA0B;MACtC,QAAQ,EAAE,MAAM,GACjB;EApHL,AAuHE,WAvHS,CAuHT,eAAe,CAAC;IACd,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,MAAM,GACpB;EA/HH,AAiIE,WAjIS,CAiIT,eAAe,AAAA,UAAU,CAAC;IAAE,OAAO,EAAE,IAAI,GAAK;EAjIhD,AAmIE,WAnIS,CAmIT,WAAW,CAAC;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EZ3CS,IAAI;IY4CxB,MAAM,EAAE,CAAC,CAAC,CAAC,CZ7CK,GAAG;IY8CnB,SAAS,EAAE,UAAU,GACtB;EAzIH,AA2IE,WA3IS,CA2IT,iBAAiB,CAAC;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EZlDS,IAAI;IYmDxB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,UAAU,GACtB;EAjJH,AAmJE,WAnJS,CAmJT,aAAa,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,iCAAiC;IACxC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,CAAC;IACtB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,QAAQ,GACnB;EA3JH,AA6JE,WA7JS,CA6JT,kBAAkB,CAAC;IACjB,IAAI,EAAE,iCAAiC;IACvC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAjKH,AAmKE,WAnKS,CAmKT,mBAAmB,CAAC;IAClB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;;AAMC,MAAM,EAAE,SAAS,EAAE,MAAM;EAH7B,AACE,aADW,CACX,WAAW,CAAC;IAIR,MAAM,EZnFQ,KAAK,GY4HtB;IA9CH,AAOM,aAPO,CACX,WAAW,CAMP,yBAAyB,CAAC;MACxB,MAAM,EZrFoB,KAAK,GYsFhC;IATP,AAWM,aAXO,CACX,WAAW,CAUP,aAAa,CAAC;MACZ,OAAO,EAAE,cAAc,GACxB;IAbP,AAeM,aAfO,CACX,WAAW,CAcP,UAAU,CAAC;MACT,UAAU,EAAE,KAAqC,GAClD;IAjBP,AAmBM,aAnBO,CACX,WAAW,CAkBP,eAAe,CAAC;MACd,SAAS,EAAE,IAAI;MACf,cAAc,EAAE,GAAG,GACpB;IAtBP,AAwBM,aAxBO,CACX,WAAW,CAuBP,WAAW,CAAC;MACV,SAAS,EAAE,IAAI;MACf,WAAW,EAtBC,IAAI;MAuBhB,aAAa,EAAE,CAAC,GACjB;IA5BP,AA+BQ,aA/BK,CACX,WAAW,CA6BP,UAAU,AAAA,IAAK,CAAA,AAAA,eAAe,EAC5B,WAAW,CAAC;MACV,UAAU,EAAE,IAAgB,GAC7B;IAjCT,AAoCM,aApCO,CACX,WAAW,CAmCP,iBAAiB,CAAC;MAChB,SAAS,EAAE,IAAI;MACf,WAAW,EAlCC,IAAI,GAmCjB;IAvCP,AAyCM,aAzCO,CACX,WAAW,CAwCP,aAAa,CAAC;MACZ,MAAM,EAAE,GAAG;MACX,SAAS,EAAE,IAAI,GAChB;;AAKP,AAGE,cAHY,CAGZ,WAAW,CAAC;EACV,MAAM,EZhIY,KAAK,GYiNxB;EArFH,AAMI,cANU,CAGZ,WAAW,CAGT,yBAAyB,CAAC;IACxB,MAAM,EZlIwB,KAAK,GYmIpC;EARL,AAUI,cAVU,CAGZ,WAAW,CAOT,aAAa,CAAC;IACZ,OAAO,EAVoB,IAAI,CAUQ,IAAI,GAC5C;EAZL,AAcI,cAdU,CAGZ,WAAW,CAWT,eAAe,CAAC;IACd,WAAW,EAAE,IAAI,GAClB;EAhBL,AAmBM,cAnBQ,CAGZ,WAAW,CAeT,UAAU,CACR,WAAW;EAnBjB,AAoB6B,cApBf,CAGZ,WAAW,CAeT,UAAU,AAER,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;IACjC,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;EA3BP,AA8BI,cA9BU,CAGZ,WAAW,CA2BT,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI,GACd;EAhCL,AAkCI,cAlCU,CAGZ,WAAW,CA+BT,aAAa,CAAC;IAGZ,gBAAgB,EAAE,mCAAmC;IACrD,aAAa,EAAE,IAAmB;IAClC,SAAS,EAAE,cAA4H;IACvI,MAAM,EAJW,IAAI;IAKrB,KAAK,EALY,IAAI;IAMrB,OAAO,EAAE,GAAkC;IAC3C,GAAG,EAAE,IAA+C;IACpD,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI,GAuC1B;IApFL,AAkCI,cAlCU,CAGZ,WAAW,CA+BT,aAAa,AAaX,OAAQ,CAAC;MACP,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MACnD,aAAa,EAAE,CAAC;MAChB,aAAa,EAAE,IAAqB,CAAC,IAAqB,CAAC,CAAC,CAAC,CAAC;MAC9D,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,MAAM,EAAE,GAAG;MACX,KAAK,EAAE,IAAI;MACX,GAAG,EAAE,CAAC;MACN,IAAI,EAAE,CAAC,GACR;IAzDP,AA2DM,cA3DQ,CAGZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,CAAC;MACjB,iBAAiB,EAAE,CAAC;MACpB,MAAM,EA1BI,IAAI;MA2Bd,KAAK,EA3BK,IAAI,GA4Cf;MA/EP,AA2DM,cA3DQ,CAGZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAKhB,oBAAqB,CAAC;QACpB,IAAI,EZ5OO,OAAO,GY6OnB;MAlET,AA2DM,cA3DQ,CAGZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAShB,cAAe,CAAC;QACd,IAAI,EZ/OO,OAAO,GYgPnB;MAtET,AA2DM,cA3DQ,CAGZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAahB,kBAAmB,CAAC;QAClB,IAAI,EZlPM,OAAO,GYmPlB;MA1ET,AA2DM,cA3DQ,CAGZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAiBhB,YAAa,CAAC;QACZ,IAAI,EZrPK,OAAO,GYsPjB;IA9ET,AAiFM,cAjFQ,CAGZ,WAAW,CA+BT,aAAa,CA+CX,mBAAmB,CAAC;MAClB,OAAO,EAAE,IAAI,GACd;;AAIL,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;EAvFvC,AAwFI,cAxFU,CAwFV,gBAAgB,CAAC;IACf,OAAO,EAAE,IAAI,GACd;;ACvTL,AAAA,2BAA2B,CAAC;EAC1B,KAAK,EAAE,oCAAoC;EAC3C,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,aAAa,Eb4DG,IAAoC;Ea3DpD,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,EAAE,kCAAkC;QACxC,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,Ed8DkB,IAAI,CADF,IAAI;Ec5D/B,gBAAgB,EAAE,KAAK;EACvB,mBAAmB,EAAE,KAAK;EAC1B,mBAAmB,EAAE,gBAAgB,GAiKtC;EArKD,AAME,oBANkB,CAMlB,cAAc,CAAC;IACb,SAAS,Ed8Ea,IAAI;Ic7E1B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,SAAS,GAmB1B;IA7BH,AAYI,oBAZgB,CAMlB,cAAc,CAMZ,IAAI,CAAC;MACH,KAAK,EAAE,uCAAuC;MAC9C,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,uCAAuC;MAC7C,cAAc,EAAE,MAAM,GACvB;IAjBL,AAmBI,oBAnBgB,CAMlB,cAAc,CAaZ,aAAa,CAAC;MACZ,MAAM,EAAE,OAAO;MACf,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,MAAM,GACpB;IAvBL,AAyBI,oBAzBgB,CAMlB,cAAc,CAmBZ,kBAAkB,CAAC;MACjB,mBAAmB,EAAE,GAAG;MACxB,UAAU,EAAE,IAAI,GACjB;EA5BL,AA+BE,oBA/BkB,CA+BlB,gBAAgB,CAAC;IACf,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GA6BnB;IA/DH,AAoCI,oBApCgB,CA+BlB,gBAAgB,CAKd,oBAAoB,CAAC;MACnB,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;MAC/E,MAAM,EAAE,CAAC;MACT,MAAM,EAAE,OAAO;MACf,IAAI,EAAE,uCAAuC;MAC7C,MAAM,EAAE,IAAI;MACZ,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,EdsDgB,IAAI,GchD1B;MAtDL,AAoCI,oBApCgB,CA+BlB,gBAAgB,CAKd,oBAAoB,AAclB,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;QAClC,IAAI,EdrCF,OAAO;QcsCT,OAAO,EAAE,CAAC,GACX;IArDP,AAwDI,oBAxDgB,CA+BlB,gBAAgB,CAyBd,aAAa,CAAC;MACZ,GAAG,EAAE,IAAI,GACV;IAED,MAAM,EAAE,SAAS,EAAE,MAAM;MA5D7B,Ad8KE,oBc9KkB,CA+BlB,gBAAgB,Cd+IhB,aAAa,CAAC;QACZ,iBAAiB,EAAE,GAAG;QACtB,mBAAmB,EAAE,IAAI;QACzB,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,IAAI,GAC1B;EcnLH,AAoEM,oBApEc,AAiElB,MAAO,CAEL,gBAAgB,CACd,oBAAoB,EApE1B,AAoEM,oBApEc,AAkElB,OAAQ,CACN,gBAAgB,CACd,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC,GACX;EAtEP,AA0EE,oBA1EkB,AA0ElB,OAAQ,CAAC;IACP,UAAU,EAAE,iCAAiC;IAC7C,aAAa,EAAE,GAAG,GAOnB;IAnFH,AA+EM,oBA/Ec,AA0ElB,OAAQ,CAIN,gBAAgB,CACd,oBAAoB,CAAC;MACnB,IAAI,EAAE,8CAA8C,GACrD;EAjFP,AAqFE,oBArFkB,CAqFlB,mBAAmB,CAAC;IAIlB,KAAK,EAAE,oCAAoC;IAC3C,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GAqCnB;IAjIH,AA8FI,oBA9FgB,CAqFlB,mBAAmB,CASjB,wBAAwB,CAAC;MACvB,OAAO,EAAE,YAAY;MACrB,UAAU,EATQ,IAAI;MAUtB,KAAK,EAAE,kBAAiC,GAKzC;MAHC,MAAM,EAAE,SAAS,EAAE,KAAK;QAnG9B,AA8FI,oBA9FgB,CAqFlB,mBAAmB,CASjB,wBAAwB,CAAC;UAMrB,KAAK,EdbA,KAA6B,GcerC;IAtGL,AAwGI,oBAxGgB,CAqFlB,mBAAmB,CAmBjB,CAAC,CAAC;MACA,KAAK,EAAE,gCAAgC;MACvC,WAAW,EAAE,IAAI;MACjB,YAAY,EAAE,GAAG,GAClB;IA5GL,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,CAAC;MACL,UAAU,EAAE,oCAAoC;MAChD,MAAM,EAAE,GAAG,CAAC,KAAK,CdvGb,OAAO;McwGX,aAAa,EAAE,GAAG;MAClB,MAAM,EAAE,OAAO;MACf,UAAU,EAAE,GAAG;MACf,SAAS,EA9BQ,KAAK;MA+BtB,UAAU,EA9BQ,IAAI;MA+BtB,iBAAiB,EAAE,CAAC,GAUrB;MAhIL,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,AAUJ,MAAO,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;QACpB,UAAU,EbxGD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QayG1D,UAAU,EAAE,gBAAgB,GAC7B;MAED,MAAM,EAAE,SAAS,EAAE,KAAK;QA7H9B,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,CAAC;UAgBH,QAAQ,EAAE,QAAQ,GAErB;EAhIL,AAmIE,oBAnIkB,CAmIlB,sBAAsB,CAAC;IACrB,MAAM,Ed5CI,KAAK,Gc6ChB;EArIH,AAuIE,oBAvIkB,CAuIlB,aAAa,CAAC;IAGZ,MAAM,EAAE,CAAC,CADY,IAAG;IAExB,OAAO,EAAE,CAAC,CAFW,GAAG,GAQzB;IAjJH,AAuIE,oBAvIkB,CAuIlB,aAAa,AAMX,UAAW,CAAC;MACV,QAAQ,EAAE,MAAM;MAChB,cAAc,EAAE,IAAI,GACrB;EAhJL,AAqJM,oBArJc,AAmJlB,kBAAmB,CACjB,cAAc,CACZ,kBAAkB,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC,IAAI,Cd9FlB,8BAA8B,Gc+FvC;EAvJP,AA0JI,oBA1JgB,AAmJlB,kBAAmB,CAOjB,aAAa,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC,IAAI,CdnGjB,8BAA8B,GcoGzC;EA5JL,AAgKI,oBAhKgB,AA+JlB,UAAW,CACT,aAAa,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,GACjB;;AClKL,AAAA,eAAe,CAAC;EAGd,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM;EACd,SAAS,EAAE,IAAI;EAEf,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,QAAQ,GAoElB;EA5ED,AAUE,eAVa,CAUb,EAAE,CAAC;IACD,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI,GAChB;EAbH,AAeE,eAfa,CAeb,KAAK,CAAC;IACJ,eAAe,EAAE,QAAQ;IACzB,KAAK,EAAE,IAAI,GACZ;EAlBH,AAqBkB,eArBH,CAoBb,aAAa,AACX,YAAa,CAAC,EAAE,CAAC;IACf,UAAU,EAAE,GAAG,CAAC,KAAK,CArBV,oCAAoC,GAsBhD;EAvBL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,CAAC;IACD,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG,CAAC,KAAK,CA1Bb,oCAAoC;IA2B/C,OAAO,EAAE,GAAG,GASb;IArCL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AAKA,YAAa,CAAC;MACZ,WAAW,EAAE,GAAG,CAAC,KAAK,CA9Bb,oCAAoC,GA+B9C;IAhCP,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AASA,WAAY,CAAC;MACX,YAAY,EAAE,GAAG,CAAC,KAAK,CAlCd,oCAAoC,GAmC9C;EApCP,AAwCkB,eAxCH,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EfzBN,OAAO;Ie0BX,OAAO,EAAE,OAAO,GAKjB;IAHC,AAJU,WAIC,CA5CnB,eAAe,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAIA;MACZ,KAAK,EfRP,IAAI,GeSH;EA9CT,AAmDM,eAnDS,CAoBb,aAAa,AA8BX,QAAS,CACP,WAAW;EAnDjB,AAoDM,eApDS,CAoBb,aAAa,AA8BX,QAAS,CAEP,gBAAgB,CAAC;IACf,OAAO,EAAE,GAAG,GACb;EAtDP,AAwDM,eAxDS,CAoBb,aAAa,AA8BX,QAAS,CAMP,WAAW,CAAC;IACV,OAAO,EAAE,GAAG,GACb;EA1DP,AA6DI,eA7DW,CAoBb,aAAa,CAyCX,WAAW,CAAC;IACV,WAAW,EA5DH,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS;IA6DxG,SAAS,EAAE,IAAI,GAChB;EAhEL,AAmEE,eAnEa,CAmEb,GAAG,CAAC;IACF,UAAU,EAAE,sCAAsC;IAClD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,WAAW,EAxED,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,GAyE3G;;AC5EH,AAAA,eAAe,CAAC;EACd,WAAW,EAAE,MAAM;EACnB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,oCAAoC;EACtD,gBAAgB,EAAE,oCAAoC;EACtD,WAAW,EAAE,OAAO;EACpB,OAAO,EAAE,QAAQ;EACjB,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,OAAO,GACf;;ACTD,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,gBAAgB,EAAE,uCAAuC;EACzD,KAAK,EAAE,gCAAgC;EACvC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,qCAAqC;EAC3D,UAAU,EhBQO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EiBHf,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM,GA6CpB;EAzDD,AAcE,qBAdmB,CAcnB,aAAa,CAAC;IACZ,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI,CjB4CY,IAAI;IiBzC7B,kBAAkB,EAAE,IAAI;IAKxB,SAAS,EjBgDa,KAAmE,GiB5C1F;IARC,MAAM,EAAE,SAAS,EAAE,KAAK;MAtB5B,AAcE,qBAdmB,CAcnB,aAAa,CAAC;QASV,kBAAkB,EjBuCK,IAAI,GiBhC9B;IAHC,MAAM,EAAE,SAAS,EAAE,MAAM;MA3B7B,AAcE,qBAdmB,CAcnB,aAAa,CAAC;QAcV,SAAS,EjB+CY,MAAmE,GiB7C3F;EA9BH,AAgCE,qBAhCmB,CAgCnB,YAAY,CAAC;IACX,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,0EAA0E;IAC5F,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,gCAAgC;IACtC,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,OAAO,GAKhB;IAHC,MAAM,EAAE,SAAS,EAAE,KAAK;MAjD5B,AAgCE,qBAhCmB,CAgCnB,YAAY,CAAC;QAkBT,iBAAiB,EAAE,IAAI,GAE1B;EApDH,AAsDU,qBAtDW,AAsDnB,MAAO,CAAC,YAAY,CAAC;IACnB,OAAO,EAAE,KAAK,GACf;;ACxDH,AACE,gBADc,AACd,WAAY,CAAC;EACX,QAAQ,EAAE,MAAM,GACjB;;AAEH,AAAA,kBAAkB,CAAC;EACjB,UAAU,ElByCJ,IAAI;EkBxCV,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,MAAM,GAKhB;EAbD,AAUE,kBAVgB,AAUhB,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK,GACf;;AAGH,AAAA,kBAAkB,CAAC;EACjB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,iBAAiB;EACtB,IAAI,EAAE,iBAAiB;EACvB,UAAU,ElBqBJ,IAAI;EkBpBV,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,ClBWlB,kBAAI;EkBVV,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,MAAM,GA8DhB;EA1DC,MAAM,EAAC,SAAS,EAAE,KAAK;IAdzB,AAAA,kBAAkB,CAAC;MAef,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,GAAG,EAAE,CAAC;MACN,IAAI,EAAE,CAAC;MACP,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,CAAC,GAoDnB;EAhDC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;IAxBjD,AAAA,kBAAkB,CAAC;MAyBf,UAAU,EAAE,MAAM,GA+CrB;EAxED,AA4BE,kBA5BgB,AA4BhB,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK,GACf;EA9BH,AAgCE,kBAhCgB,CAgChB,EAAE,CAAC;IACD,KAAK,ElB1CC,OAAO;IkB2Cb,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,OAAO,GASxB;IAPC,MAAM,EAAC,SAAS,EAAE,KAAK;MAzC3B,AAgCE,kBAhCgB,CAgChB,EAAE,CAAC;QAUC,UAAU,EAAE,KAAK,GAMpB;IAHC,MAAM,EAAC,SAAS,EAAE,KAAK;MA7C3B,AAgCE,kBAhCgB,CAgChB,EAAE,CAAC;QAcC,UAAU,EAAE,IAAI,GAEnB;EAhDH,AAkDE,kBAlDgB,CAkDhB,OAAO,CAAC;IACN,UAAU,EAAE,GAAG,CAAC,KAAK,ClB/Df,OAAO;IkBgEb,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,MAAM;IAClB,gBAAgB,ElB9BZ,IAAI,GkB4CT;IAXC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;MA5DnD,AAkDE,kBAlDgB,CAkDhB,OAAO,CAAC;QAWJ,QAAQ,EAAE,MAAM,GAUnB;IAvEH,AAgEI,kBAhEc,CAkDhB,OAAO,CAcL,YAAY,CAAC;MACX,UAAU,EAAE,IAAI;MAChB,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,WAAW;MACpB,SAAS,EAAE,IAAI,GAChB;;AC1FL,AACE,cADY,CACZ,MAAM,CAAC;EACL,OAAO,EAAE,MAAM;EACf,SAAS,EAAE,OAAO;EAClB,MAAM,EAAE,CAAC,GACV;;AALH,AAOE,cAPY,CAOZ,KAAK,CAAC;EACJ,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,CAAC,GACV;;AAVH,AAYE,cAZY,CAYZ,KAAK,CAAC;EACJ,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,iBAAiB,EAAE,IAAI;EACvB,WAAW,EAAE,CAAC,GACf;;AAjBH,AAmBE,cAnBY,CAmBZ,eAAe,CAAC;EACd,KAAK,EAAE,OAAO;EACd,eAAe,EAAE,SAAS,GAC3B;;ACtBH,AAAA,2BAA2B,CAAC;EAC1B,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,IAAI;EACrB,qBAAqB,EAAE,cAAc;EACrC,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI,GASpB;EANC,MAAM,EAAC,SAAS,EAAE,KAAK;IARzB,AAAA,2BAA2B,CAAC;MASxB,qBAAqB,EAAE,IAAI;MAC3B,kBAAkB,EAAE,cAAc;MAClC,YAAY,EAAE,KAAK;MACnB,aAAa,EAAE,KAAK,GAEvB;;AAED,AAAA,kBAAkB,CAAC;EACjB,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,GAAG,GAyHjB;EAtHC,MAAM,EAAC,SAAS,EAAE,KAAK;IAPzB,AAAA,kBAAkB,CAAC;MAQf,MAAM,EAAE,KAAK;MACb,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,aAAa,EAAE,iBAAiB;MAChC,OAAO,EAAE,IAAI;MACb,aAAa,EAAE,IAAI,GAgHtB;MA7HD,AAeI,kBAfc,AAed,WAAY,CAAC;QACX,MAAM,EAAE,IAAI,GACb;MAjBL,AAmBI,kBAnBc,CAmBd,kBAAkB,CAAC;QACjB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI,GAab;QAlCL,AAuBe,kBAvBG,CAmBd,kBAAkB,GAId,IAAI,GAAG,EAAE,CAAC;UACV,UAAU,EAAE,CAAC;UACb,aAAa,EAAE,GAAG;UAClB,WAAW,EAAE,GAAG,GACjB;QA3BP,AA6Be,kBA7BG,CAmBd,kBAAkB,GAUd,IAAI,GAAG,CAAC,CAAC;UACT,UAAU,EAAE,CAAC;UACb,WAAW,EAAE,IAAI;UACjB,SAAS,EAAE,IAAI,GAChB;EAjCP,AAqCE,kBArCgB,CAqChB,uBAAuB,CAAC;IACtB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,KAAK;IACtB,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,MAAM,GAwBvB;IArBC,MAAM,EAAC,SAAS,EAAE,KAAK;MA/C3B,AAqCE,kBArCgB,CAqChB,uBAAuB,CAAC;QAWpB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI,GAkBxB;IApEH,AAqCE,kBArCgB,CAqChB,uBAAuB,AAgBrB,OAAQ,CAAC;MACP,gBAAgB,EAAE,gFAAgF,GACnG;IAvDL,AAqCE,kBArCgB,CAqChB,uBAAuB,AAoBrB,gBAAiB,CAAC;MAChB,gBAAgB,EAAE,yFAAyF,GAC5G;IA3DL,AAqCE,kBArCgB,CAqChB,uBAAuB,AAwBrB,YAAa,CAAC;MACZ,gBAAgB,EAAE,qFAAqF,GACxG;IA/DL,AAqCE,kBArCgB,CAqChB,uBAAuB,AA4BrB,KAAM,CAAC;MACL,gBAAgB,EAAE,8EAA8E,GACjG;EAnEL,AAsEE,kBAtEgB,CAsEhB,kBAAkB,CAAC;IACjB,MAAM,EAAE,KAAK,GAgBd;IAvFH,AAyEa,kBAzEK,CAsEhB,kBAAkB,GAGd,IAAI,GAAG,EAAE,CAAC;MACV,KAAK,EpB5ED,OAAO;MoB6EX,aAAa,EAAE,GAAG;MAClB,WAAW,EAAE,GAAG,GACjB;IA7EL,AA+Ea,kBA/EK,CAsEhB,kBAAkB,GASd,IAAI,GAAG,CAAC,CAAC;MACT,KAAK,EpBrFD,OAAO;MoBsFX,UAAU,EAAE,CAAC;MACb,MAAM,EAAE,KAAK;MACb,aAAa,EAAE,IAAI;MACnB,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,IAAI,GAClB;EAtFL,AAyFE,kBAzFgB,CAyFhB,iBAAiB,CAAC;IAChB,gBAAgB,EpB5FV,qBAAO;IoB6Fb,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,IAAI,GAQhB;IALC,MAAM,EAAC,SAAS,EAAE,KAAK;MAnG3B,AAyFE,kBAzFgB,CAyFhB,iBAAiB,CAAC;QAWd,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK,GAEtB;EAxGH,AA2GE,kBA3GgB,AA2GhB,QAAS,CAAC;IACR,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,KAAK,GAMnB;IAHC,MAAM,EAAC,SAAS,EAAE,KAAK;MArH3B,AA2GE,kBA3GgB,AA2GhB,QAAS,CAAC;QAWN,OAAO,EAAE,IAAI,GAEhB;EAxHH,AA0HE,kBA1HgB,AA0HhB,WAAY,AAAA,QAAQ,CAAC;IACnB,OAAO,EAAE,IAAI,GACd"
 }
\ 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
@@ -1315,17 +1315,18 @@ main {
       max-height: 57px;
       overflow: hidden; }
   .card-outer .card-host-name {
     color: var(--newtab-text-secondary-color);
     font-size: 10px;
     overflow: hidden;
     padding-bottom: 4px;
     text-overflow: ellipsis;
-    text-transform: uppercase; }
+    text-transform: uppercase;
+    white-space: nowrap; }
   .card-outer .card-host-name.alternate {
     display: none; }
   .card-outer .card-title {
     font-size: 14px;
     font-weight: 600;
     line-height: 19px;
     margin: 0 0 2px;
     word-wrap: break-word; }
@@ -1335,20 +1336,19 @@ main {
     margin: 0;
     overflow: hidden;
     word-wrap: break-word; }
   .card-outer .card-context {
     bottom: 0;
     color: var(--newtab-text-tertiary-color);
     display: flex;
     font-size: 11px;
-    left: 0;
+    offset-inline-start: 0;
     padding: 9px 16px 9px 14px;
-    position: absolute;
-    right: 0; }
+    position: absolute; }
   .card-outer .card-context-icon {
     fill: var(--newtab-icon-tertiary-color);
     height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
     line-height: 22px;
     overflow: hidden;
@@ -1396,22 +1396,23 @@ main {
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
   .compact-cards .card-outer .card-description {
     display: none; }
   .compact-cards .card-outer .card-context {
     background-color: var(--newtab-card-background-color);
     border-radius: 16px;
+    clip-path: inset(0 0 4px);
     height: 32px;
     width: 32px;
     padding: 8px;
     top: 92px;
-    left: auto;
-    offset-inline-end: 12px; }
+    offset-inline-end: 12px;
+    offset-inline-start: auto; }
     .compact-cards .card-outer .card-context::after {
       border: 1px solid var(--newtab-card-hairline-color);
       border-bottom: 0;
       border-radius: 16px 16px 0 0;
       content: '';
       position: absolute;
       height: 50%;
       width: 100%;
@@ -1820,24 +1821,26 @@ main {
     background-size: 120px;
     background-position: center center;
     background-repeat: no-repeat;
     display: inline-block;
     vertical-align: middle; }
     @media (max-width: 850px) {
       .onboardingMessage .onboardingMessageImage {
         height: 75px;
-        width: 160px;
+        min-width: 80px;
         background-size: 80px; } }
     .onboardingMessage .onboardingMessageImage.addons {
       background-image: url("resource://activity-stream/data/content/assets/illustration-addons@2x.png"); }
     .onboardingMessage .onboardingMessageImage.privatebrowsing {
       background-image: url("resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png"); }
     .onboardingMessage .onboardingMessageImage.screenshots {
       background-image: url("resource://activity-stream/data/content/assets/illustration-screenshots@2x.png"); }
+    .onboardingMessage .onboardingMessageImage.gift {
+      background-image: url("resource://activity-stream/data/content/assets/illustration-gift@2x.png"); }
   .onboardingMessage .onboardingContent {
     height: 175px; }
     .onboardingMessage .onboardingContent > span > h3 {
       color: #0C0C0D;
       margin-bottom: 8px;
       font-weight: 400; }
     .onboardingMessage .onboardingContent > span > p {
       color: #4A4A4F;
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css.map
@@ -38,21 +38,21 @@
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\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: var(--newtab-text-conditional-color);\n    text-decoration: underline;\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  // 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  @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  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, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\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: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\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    color: var(--newtab-topsites-label-color);\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: var(--newtab-icon-tertiary-color);\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.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;\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    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\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    @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\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: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n    }\n  }\n}\n\n@media (min-width: $break-point-widest) {\n  .sections-list {\n    // Compact cards stay the same size but normal cards get bigger.\n    .normal-cards {\n      .section-list {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n}\n",
 		".activity-stream {\n  &.welcome {\n    overflow: hidden;\n  }\n\n  &:not(.welcome) {\n    .overlay-wrapper {\n      display: none;\n    }\n  }\n}\n\n.overlay-wrapper {\n  position: fixed;\n  top: 0;\n  width: 100vw;\n  height: 100vh;\n  z-index: 21000;\n  font-weight: 200;\n  transition: opacity 0.4s;\n  opacity: 0;\n\n  &.show {\n    transition: none;\n    opacity: 1;\n\n    .firstrun-sign-in {\n      transition: opacity 1.5s, transform 1.5s;\n      transition-delay: 0.2s;\n      transform: translateY(-50%) scale(1);\n      opacity: 1;\n    }\n\n    .firstrun-firefox-logo {\n      transition: opacity 2.3s;\n      opacity: 1;\n    }\n\n    .firstrun-title,\n    .firstrun-content,\n    .firstrun-link {\n      transition: transform 0.5s, opacity 0.8s;\n      transform: translateY(0);\n      opacity: 1;\n    }\n\n    .firstrun-title {\n      transition-delay: 0.2s;\n    }\n\n    .firstrun-content {\n      transition-delay: 0.4s;\n    }\n\n    .firstrun-link {\n      transition-delay: 0.6s;\n    }\n\n    .fxaccounts-container {\n      transition: none;\n      opacity: 1;\n    }\n  }\n}\n\n.background {\n  width: 100%;\n  height: 100%;\n  display: block;\n  background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n  linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n  $blue-70;\n  background-size: cover;\n}\n\n.firstrun-sign-in {\n  transform: translateY(-50%) scale(0.8);\n  position: relative;\n  top: 50%;\n  width: 358px;\n  opacity: 0;\n  background-color: $white;\n  float: inline-end;\n  color: $grey-90;\n  text-align: center;\n  padding: 10px;\n\n  .extra-links {\n    font-size: 12px;\n    max-width: 340px;\n    margin: 14px 50px;\n    color: #676F7E;\n    cursor: default;\n\n    a {\n      color: $grey-50;\n      cursor: pointer;\n      text-decoration: underline;\n    }\n\n    a:hover,\n    a:active,\n    a:focus {\n      color: $blue-50;\n    }\n  }\n\n  .email-input {\n    box-shadow: none;\n    margin: auto;\n    width: 244px;\n    display: block;\n    height: 40px;\n    padding-inline-start: 20px;\n    border: 1px solid $grey-50;\n    border-radius: 2px;\n    font-size: 16px;\n\n    &:hover {\n      border-color: $grey-90;\n    }\n  }\n\n  .form-header {\n    font-size: 18px;\n    margin: 15px auto;\n  }\n\n  .form-header span {\n    font-size: 14px;\n    margin-top: 4px;\n    display: block;\n  }\n\n  button {\n    border-radius: 2px;\n    display: block;\n    cursor: pointer;\n    margin: 10px auto 0;\n  }\n\n  .continue-button {\n    font-size: 18px;\n    height: 43px;\n    width: 250px;\n    padding: 8px 0;\n    border: 1px solid $blue-60;\n    color: $white;\n    background-color: $blue-50;\n    transition-duration: 150ms;\n    transition-property: background-color;\n\n    &:not([disabled]):active {\n      background: $blue-70;\n      border-color: $blue-80;\n    }\n  }\n\n  .skip-button {\n    font-size: 13px;\n    margin-top: 40px;\n    margin-bottom: 20px;\n    background-color: #FCFCFC;\n    color: $blue-50;\n    border: 1px solid $blue-50;\n    min-height: 24px;\n    padding: 5px 10px;\n    transition: background-color 150ms, color 150ms, border-color 150ms;\n\n    &[disabled] {\n      background-color: #EBEBEB;\n      border-color: #B1B1B1;\n      color: #6A6A6A;\n      cursor: default;\n      opacity: 0.5;\n    }\n\n    &:not([disabled]):hover {\n      background-color: $blue-50;\n      border-color: $blue-60;\n      color: $white;\n    }\n  }\n}\n\n.firstrun-left-divider {\n  position: relative;\n  float: inline-start;\n  clear: both;\n  width: 435px;\n}\n\n.firstrun-content {\n  line-height: 1.5;\n  margin-bottom: 48px;\n  max-width: 352px;\n  background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n  padding-bottom: 210px;\n}\n\n.firstrun-link {\n  color: $white;\n  display: block;\n  text-decoration: underline;\n\n  &:hover,\n  &:active,\n  &:focus {\n    color: $white;\n  }\n}\n\n.firstrun-title {\n  background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n  background-size: 90px 90px;\n  margin: 40px 0 10px;\n  padding-top: 110px;\n  font-weight: 200;\n}\n\n[dir='rtl'] {\n  .firstrun-title {\n    background-position: top right;\n  }\n}\n\n.fxaccounts-container {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  top: 0;\n  left: 0;\n  color: $white;\n  height: 515px;\n  margin: auto;\n  width: 819px;\n  z-index: 10;\n  transition: opacity 0.3s;\n  opacity: 0;\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n  opacity: 0;\n  transform: translateY(-5px);\n}\n",
 		".topic {\n  color: var(--newtab-section-navigation-text-color);\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: var(--newtab-link-secondary-color);\n    font-weight: bold;\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\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: var(--newtab-link-secondary-color);\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-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\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  margin-bottom: $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: solid 1px var(--newtab-search-border-color);\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\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    border: $input-border-active;\n    box-shadow: var(--newtab-textbox-focus-boxshadow);\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: var(--newtab-search-icon-color);\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\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-dropdown-color);\n    border: 0;\n    box-shadow: $context-menu-shadow;\n    transform: translateY($textbox-shadow-size);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-search-dropdown-header-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSettingsButton {\n      border-color: var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSuggestionsList {\n      border: 0;\n    }\n\n    .contentSearchOneOffsTable {\n      background-color: var(--newtab-search-dropdown-header-color);\n      border-top: solid 1px var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n\n    .contentSearchSuggestionsContainer {\n      background-color: var(--newtab-search-dropdown-color);\n    }\n\n    .contentSearchSuggestionRow {\n      &.selected {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        .historyIcon {\n          fill: var(--newtab-icon-secondary-color);\n        }\n      }\n    }\n\n    .contentSearchOneOffsTable {\n      .contentSearchSuggestionsContainer {\n        background-color: var(--newtab-search-dropdown-header-color);\n      }\n    }\n\n    .contentSearchOneOffItem {\n      // Make the border slightly shorter by offsetting from the top and bottom\n      $border-offset: 18%;\n\n      background-image: none;\n      border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n      border-inline-end: 1px solid;\n      position: relative;\n\n      &.selected {\n        background: var(--newtab-element-hover-color);\n      }\n\n      &:active {\n        background: var(--newtab-element-active-color);\n      }\n    }\n\n    .contentSearchSettingsButton {\n      &:hover {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n      }\n    }\n  }\n}\n",
 		".context-menu {\n  background: var(--newtab-contextmenu-background-color);\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: $border-secondary;\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: var(--newtab-element-hover-color);\n        }\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\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: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\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: var(--newtab-card-background-color);\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    .card-preview-image-outer,\n    .card-context {\n      display: none;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\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: var(--newtab-link-primary-color);\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: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $grey-30;\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 var(--newtab-card-hairline-color);\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\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $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    &: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: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\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: var(--newtab-text-tertiary-color);\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: var(--newtab-icon-tertiary-color);\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.normal-cards {\n  .card-outer {\n    // Wide layout styles\n    @media (min-width: $break-point-widest) {\n      $line-height: 23px;\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\n.compact-cards {\n  .card-outer {\n    height: $card-height-compact;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-compact;\n    }\n\n    .card-details {\n      padding: 12px 16px;\n    }\n\n    .card-host-name {\n      line-height: 10px;\n    }\n\n    .card-text {\n      .card-title,\n      &:not(.no-description) .card-title {\n        font-size: 10px;\n        line-height: 12px;\n        max-height: 12px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .card-description {\n      display: none;\n    }\n\n    .card-context {\n      $icon-size: 16px;\n      $container-size: 32px;\n      background-color: var(--newtab-card-background-color);\n      border-radius: $container-size / 2;\n      height: $container-size;\n      width: $container-size;\n      padding: ($container-size - $icon-size) / 2;\n      top: 92px;\n      left: auto;\n      offset-inline-end: 12px;\n\n      &::after {\n        border: 1px solid var(--newtab-card-hairline-color);\n        border-bottom: 0;\n        border-radius: ($container-size / 2) ($container-size / 2) 0 0;\n        content: '';\n        position: absolute;\n        height: 50%;\n        width: 100%;\n        top: 0;\n        left: 0;\n      }\n\n      .card-context-icon {\n        margin-inline-end: 0;\n        height: $icon-size;\n        width: $icon-size;\n\n        &.icon-bookmark-added {\n          fill: $bookmark-icon-fill;\n        }\n\n        &.icon-download {\n          fill: $download-icon-fill;\n        }\n\n        &.icon-history-item {\n          fill: $history-icon-fill;\n        }\n\n        &.icon-pocket {\n          fill: $pocket-icon-fill;\n        }\n      }\n\n      .card-context-label {\n        display: none;\n      }\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n",
+		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\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    .card-preview-image-outer,\n    .card-context {\n      display: none;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\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: var(--newtab-link-primary-color);\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: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $grey-30;\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 var(--newtab-card-hairline-color);\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\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $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    &: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: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\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: var(--newtab-text-tertiary-color);\n    display: flex;\n    font-size: 11px;\n    offset-inline-start: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-tertiary-color);\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.normal-cards {\n  .card-outer {\n    // Wide layout styles\n    @media (min-width: $break-point-widest) {\n      $line-height: 23px;\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\n.compact-cards {\n  $card-detail-vertical-spacing: 12px;\n\n  .card-outer {\n    height: $card-height-compact;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-compact;\n    }\n\n    .card-details {\n      padding: $card-detail-vertical-spacing 16px;\n    }\n\n    .card-host-name {\n      line-height: 10px;\n    }\n\n    .card-text {\n      .card-title,\n      &:not(.no-description) .card-title {\n        font-size: 10px;\n        line-height: 12px;\n        max-height: 12px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n    }\n\n    .card-description {\n      display: none;\n    }\n\n    .card-context {\n      $icon-size: 16px;\n      $container-size: 32px;\n      background-color: var(--newtab-card-background-color);\n      border-radius: $container-size / 2;\n      clip-path: inset(0 0 $container-size - ($card-height-compact - $card-preview-image-height-compact - 2 * $card-detail-vertical-spacing));\n      height: $container-size;\n      width: $container-size;\n      padding: ($container-size - $icon-size) / 2;\n      top: $card-preview-image-height-compact - $icon-size;\n      offset-inline-end: 12px;\n      offset-inline-start: auto;\n\n      &::after {\n        border: 1px solid var(--newtab-card-hairline-color);\n        border-bottom: 0;\n        border-radius: ($container-size / 2) ($container-size / 2) 0 0;\n        content: '';\n        position: absolute;\n        height: 50%;\n        width: 100%;\n        top: 0;\n        left: 0;\n      }\n\n      .card-context-icon {\n        margin-inline-end: 0;\n        height: $icon-size;\n        width: $icon-size;\n\n        &.icon-bookmark-added {\n          fill: $bookmark-icon-fill;\n        }\n\n        &.icon-download {\n          fill: $download-icon-fill;\n        }\n\n        &.icon-history-item {\n          fill: $history-icon-fill;\n        }\n\n        &.icon-pocket {\n          fill: $pocket-icon-fill;\n        }\n      }\n\n      .card-context-label {\n        display: none;\n      }\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\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: var(--newtab-icon-secondary-color);\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    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\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    height: 19px;\n    margin-bottom: 13px;\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: var(--newtab-section-header-text-color);\n      height: 100%;\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: var(--newtab-element-hover-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\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: var(--newtab-link-primary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: var(--newtab-button-secondary-color);\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",
 		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 92px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
 		".ASRouterButton {\n  white-space: nowrap;\n  border-radius: 4px;\n  border: 1px solid var(--newtab-border-secondary-color);\n  background-color: var(--newtab-button-secondary-color);\n  font-family: inherit;\n  padding: 8px 15px;\n  margin-left: 12px;\n  color: inherit;\n}\n",
 		".SnippetBaseContainer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background-color: var(--newtab-snippets-background-color);\n  color: var(--newtab-text-primary-color);\n  font-size: 12px;\n  line-height: 16px;\n  border-top: 1px solid var(--newtab-snippets-hairline-color);\n  box-shadow: $shadow-secondary;\n  display: flex;\n  align-items: center;\n\n  .innerWrapper {\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    padding: 12px $section-horizontal-padding;\n\n    // This is to account for the block button on smaller screens\n    padding-inline-end: 36px;\n    @media (min-width: $break-point-large) {\n      padding-inline-end: $section-horizontal-padding;\n    }\n\n    max-width: $wrapper-max-width-large;\n    @media (min-width: $break-point-widest) {\n      max-width: $wrapper-max-width-widest;\n    }\n  }\n\n  .blockButton {\n    display: none;\n    background: none;\n    border: 0;\n    position: absolute;\n    top: 50%;\n    offset-inline-end: 12px;\n    height: 16px;\n    width: 16px;\n    background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n    -moz-context-properties: fill;\n    fill: var(--newtab-icon-primary-color);\n    opacity: 0.5;\n    margin-top: -8px;\n    padding: 0;\n    cursor: pointer;\n\n    @media (min-width: 766px) {\n      offset-inline-end: 24px;\n    }\n  }\n\n  &:hover .blockButton {\n    display: block;\n  }\n}\n",
 		".activity-stream {\n  &.modal-open {\n    overflow: hidden;\n  }\n}\n.modalOverlayOuter {\n  background: $white;\n  opacity: 0.93;\n  height: 100%;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  display: none;\n  z-index: 100000;\n\n  &.active {\n    display: block;\n  }\n}\n\n.modalOverlayInner {\n  width: 960px;\n  height: 510px;\n  position: fixed;\n  top: calc(50% - 255px); // halfway down minus half the height of the modal\n  left: calc(50% - 480px); // halfway across minus half the width of the modal\n  background: $white;\n  box-shadow: 0 1px 15px 0 $black-30;\n  border-radius: 4px;\n  display: none;\n  z-index: 100001;\n\n\n  // modal takes over entire screen\n  @media(max-width: 960px) {\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n    box-shadow: none;\n    border-radius: 0;\n  }\n\n  // if modal is short enough, add a vertical scroll bar\n  @media(max-width: 850px) and (max-height: 730px) {\n    overflow-y: scroll;\n  }\n\n  &.active {\n    display: block;\n  }\n\n  h2 {\n    color: $grey-60;\n    text-align: center;\n    font-weight: 200;\n    margin-top: 30px;\n    font-size: 28px;\n    line-height: 37px;\n    letter-spacing: -0.13px;\n\n    @media(max-width: 960px) {\n      margin-top: 100px;\n    }\n\n    @media(max-width: 850px) {\n      margin-top: 30px;\n    }\n  }\n\n  .footer {\n    border-top: 1px solid $grey-30;\n    height: 70px;\n    width: 100%;\n    position: absolute;\n    bottom: 0;\n    text-align: center;\n    background-color: $white;\n\n    // if modal is short enough, footer becomes sticky\n    @media(max-width: 850px) and (max-height: 730px) {\n      position: sticky;\n    }\n\n    .modalButton {\n      margin-top: 20px;\n      width: 150px;\n      height: 30px;\n      padding: 4px 0 6px 0;\n      font-size: 15px;\n    }\n  }\n}\n",
 		".SimpleSnippet {\n  .title {\n    display: inline;\n    font-size: inherit;\n    margin: 0;\n  }\n\n  .body {\n    display: inline;\n    margin: 0;\n  }\n\n  .icon {\n    height: 42px;\n    width: 42px;\n    margin-inline-end: 12px;\n    flex-shrink: 0;\n  }\n\n  .ASRouterAnchor {\n    color: inherit;\n    text-decoration: underline;\n  }\n}\n",
-		".onboardingMessageContainer {\n  display: grid;\n  grid-column-gap: 21px;\n  grid-template-columns: auto auto auto;\n  padding-left: 30px;\n  padding-right: 30px;\n\n  // at 850px, the cards go from vertical layout to horizontal layout\n  @media(max-width: 850px) {\n    grid-template-columns: none;\n    grid-template-rows: auto auto auto;\n    padding-left: 110px;\n    padding-right: 110px;\n  }\n}\n\n.onboardingMessage {\n  height: 340px;\n  text-align: center;\n  padding: 13px;\n  font-weight: 200;\n\n  // at 850px, img floats left, content floats right next to it\n  @media(max-width: 850px) {\n    height: 170px;\n    text-align: left;\n    padding: 10px;\n    border-bottom: 1px solid #D8D8D8;\n    display: flex;\n    margin-bottom: 11px;\n\n    &:last-child {\n      border: none;\n    }\n\n    .onboardingContent {\n      padding-left: 10px;\n      height: 100%;\n\n      > span > h3 {\n        margin-top: 0;\n        margin-bottom: 4px;\n        font-weight: 400;\n      }\n\n      > span > p {\n        margin-top: 0;\n        line-height: 22px;\n        font-size: 15px;\n      }\n    }\n  }\n\n  .onboardingMessageImage {\n    height: 100px;\n    width: 120px;\n    background-size: 120px;\n    background-position: center center;\n    background-repeat: no-repeat;\n    display: inline-block;\n    vertical-align: middle;\n\n\n    @media(max-width: 850px) {\n      height: 75px;\n      width: 160px;\n      background-size: 80px;\n    }\n\n    &.addons {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n    }\n\n    &.privatebrowsing {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n    }\n\n    &.screenshots {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n    }\n  }\n\n  .onboardingContent {\n    height: 175px;\n\n    > span > h3 {\n      color: $grey-90;\n      margin-bottom: 8px;\n      font-weight: 400;\n    }\n\n    > span > p {\n      color: $grey-60;\n      margin-top: 0;\n      height: 130px;\n      margin-bottom: 12px;\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  .onboardingButton {\n    background-color: $grey-90-10;\n    border: none;\n    width: 150px;\n    height: 30px;\n    margin-bottom: 23px;\n    padding: 4px 0 6px 0;\n    font-size: 15px;\n\n    // at 850px, the button shimmies down and to the right\n    @media(max-width: 850px) {\n      float: right;\n      margin-top: -60px;\n      margin-right: -10px;\n    }\n  }\n\n\n  &::before {\n    content: '';\n    height: 220px;\n    width: 1px;\n    position: absolute;\n    background-color: #D8D8D8;\n    margin-top: 40px;\n    margin-left: 215px;\n\n    // at 850px, the line goes from vertical to horizontal\n    @media(max-width: 850px) {\n      content: none;\n    }\n  }\n\n  &:last-child::before {\n    content: none;\n  }\n}\n"
+		".onboardingMessageContainer {\n  display: grid;\n  grid-column-gap: 21px;\n  grid-template-columns: auto auto auto;\n  padding-left: 30px;\n  padding-right: 30px;\n\n  // at 850px, the cards go from vertical layout to horizontal layout\n  @media(max-width: 850px) {\n    grid-template-columns: none;\n    grid-template-rows: auto auto auto;\n    padding-left: 110px;\n    padding-right: 110px;\n  }\n}\n\n.onboardingMessage {\n  height: 340px;\n  text-align: center;\n  padding: 13px;\n  font-weight: 200;\n\n  // at 850px, img floats left, content floats right next to it\n  @media(max-width: 850px) {\n    height: 170px;\n    text-align: left;\n    padding: 10px;\n    border-bottom: 1px solid #D8D8D8;\n    display: flex;\n    margin-bottom: 11px;\n\n    &:last-child {\n      border: none;\n    }\n\n    .onboardingContent {\n      padding-left: 10px;\n      height: 100%;\n\n      > span > h3 {\n        margin-top: 0;\n        margin-bottom: 4px;\n        font-weight: 400;\n      }\n\n      > span > p {\n        margin-top: 0;\n        line-height: 22px;\n        font-size: 15px;\n      }\n    }\n  }\n\n  .onboardingMessageImage {\n    height: 100px;\n    width: 120px;\n    background-size: 120px;\n    background-position: center center;\n    background-repeat: no-repeat;\n    display: inline-block;\n    vertical-align: middle;\n\n\n    @media(max-width: 850px) {\n      height: 75px;\n      min-width: 80px;\n      background-size: 80px;\n    }\n\n    &.addons {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n    }\n\n    &.privatebrowsing {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n    }\n\n    &.screenshots {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n    }\n\n    &.gift {\n      background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n    }\n  }\n\n  .onboardingContent {\n    height: 175px;\n\n    > span > h3 {\n      color: $grey-90;\n      margin-bottom: 8px;\n      font-weight: 400;\n    }\n\n    > span > p {\n      color: $grey-60;\n      margin-top: 0;\n      height: 130px;\n      margin-bottom: 12px;\n      font-size: 15px;\n      line-height: 22px;\n    }\n  }\n\n  .onboardingButton {\n    background-color: $grey-90-10;\n    border: none;\n    width: 150px;\n    height: 30px;\n    margin-bottom: 23px;\n    padding: 4px 0 6px 0;\n    font-size: 15px;\n\n    // at 850px, the button shimmies down and to the right\n    @media(max-width: 850px) {\n      float: right;\n      margin-top: -60px;\n      margin-right: -10px;\n    }\n  }\n\n\n  &::before {\n    content: '';\n    height: 220px;\n    width: 1px;\n    position: absolute;\n    background-color: #D8D8D8;\n    margin-top: 40px;\n    margin-left: 215px;\n\n    // at 850px, the line goes from vertical to horizontal\n    @media(max-width: 850px) {\n      content: none;\n    }\n  }\n\n  &:last-child::before {\n    content: none;\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/data/content/activity-stream.bundle.js
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
@@ -880,18 +880,17 @@ function Theme(prevState = INITIAL_STATE
 
 var reducers = { TopSites, App, Snippets, Prefs, Dialog, Sections, Theme };
 
 /***/ }),
 /* 7 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__["b"] = initASRouter;
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
+/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_content_src_lib_init_store__ = __webpack_require__(8);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_ImpressionsWrapper_ImpressionsWrapper__ = __webpack_require__(22);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__templates_OnboardingMessage_OnboardingMessage__ = __webpack_require__(23);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_dom__ = __webpack_require__(9);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_dom__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__templates_SimpleSnippet_SimpleSnippet__ = __webpack_require__(24);
@@ -941,17 +940,17 @@ const ASRouterUtils = {
   overrideMessage(id) {
     ASRouterUtils.sendMessage({ type: "OVERRIDE_MESSAGE", data: { id } });
   },
   sendTelemetry(ping) {
     const payload = __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["b" /* actionCreators */].ASRouterUserEvent(ping);
     global.sendAsyncMessage(__WEBPACK_IMPORTED_MODULE_1_content_src_lib_init_store__["a" /* OUTGOING_MESSAGE_NAME */], payload);
   }
 };
-/* harmony export (immutable) */ __webpack_exports__["a"] = ASRouterUtils;
+/* harmony export (immutable) */ __webpack_exports__["b"] = ASRouterUtils;
 
 
 // Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />
 function shouldSendImpressionOnUpdate(nextProps, prevProps) {
   return nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id);
 }
 
 class ASRouterUISurface extends __WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent {
@@ -1058,19 +1057,45 @@ class ASRouterUISurface extends __WEBPAC
     return this.renderSnippets();
   }
 }
 /* unused harmony export ASRouterUISurface */
 
 
 ASRouterUISurface.defaultProps = { document: global.document };
 
-function initASRouter() {
-  __WEBPACK_IMPORTED_MODULE_5_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(ASRouterUISurface, null), document.getElementById("snippets-container"));
+class ASRouterContent {
+  constructor() {
+    this.initialized = false;
+    this.containerElement = null;
+  }
+
+  _mount() {
+    this.containerElement = global.document.getElementById("snippets-container");
+    __WEBPACK_IMPORTED_MODULE_5_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(ASRouterUISurface, null), this.containerElement);
+  }
+
+  _unmount() {
+    __WEBPACK_IMPORTED_MODULE_5_react_dom___default.a.unmountComponentAtNode(this.containerElement);
+  }
+
+  init() {
+    this._mount();
+    this.initialized = true;
+  }
+
+  uninit() {
+    if (this.initialized) {
+      this._unmount();
+      this.initialized = false;
+    }
+  }
 }
+/* harmony export (immutable) */ __webpack_exports__["a"] = ASRouterContent;
+
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
 /* 8 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__["b"] = initStore;
@@ -3263,20 +3288,21 @@ class SnippetsProvider {
 
 
 /**
  * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes
  *                         when the store has received the appropriate
  *                         Snippet data.
  *
  * @param  {obj} store   The redux store
- * @return {obj}         Returns the snippets instance and unsubscribe function
+ * @return {obj}         Returns the snippets instance, asrouterContent instance and unsubscribe function
  */
 function addSnippetsSubscriber(store) {
   const snippets = new SnippetsProvider(store.dispatch);
+  const asrouterContent = new __WEBPACK_IMPORTED_MODULE_1_content_src_asrouter_asrouter_content__["a" /* ASRouterContent */]();
 
   let initializing = false;
 
   store.subscribe(async () => {
     const state = store.getState();
     // state.Prefs.values["feeds.snippets"]:  Should snippets be shown?
     // state.Snippets.initialized             Is the snippets data initialized?
     // snippets.initialized:                  Is SnippetsProvider currently initialised?
@@ -3287,23 +3313,27 @@ function addSnippetsSubscriber(store) {
     !initializing && location.href !== "about:welcome") {
       initializing = true;
       await snippets.init({ appData: state.Snippets });
       initializing = false;
     } else if ((state.Prefs.values["feeds.snippets"] === false || state.Prefs.values.disableSnippets === true) && snippets.initialized) {
       snippets.uninit();
     }
 
-    if (state.Prefs.values.asrouterExperimentEnabled) {
-      Object(__WEBPACK_IMPORTED_MODULE_1_content_src_asrouter_asrouter_content__["b" /* initASRouter */])();
+    // Turn on AS Router snippets if the experiment is enabled and the snippets pref is on;
+    // otherwise, turn it off.
+    if (state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values["feeds.snippets"] && !asrouterContent.initialized) {
+      asrouterContent.init();
+    } else if ((!state.Prefs.values.asrouterExperimentEnabled || !state.Prefs.values["feeds.snippets"]) && asrouterContent.initialized) {
+      asrouterContent.uninit();
     }
   });
 
   // These values are returned for testing purposes
-  return snippets;
+  return { snippets, asrouterContent };
 }
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
 /* 21 */
 /***/ (function(module, exports) {
 
 module.exports = Redux;
@@ -3449,17 +3479,17 @@ var _extends = Object.assign || function
 class OnboardingMessage_OnboardingCard extends external__React__default.a.PureComponent {
   constructor(props) {
     super(props);
     this.onClick = this.onClick.bind(this);
   }
 
   onClick() {
     const { props } = this;
-    props.sendUserActionTelemetry({ event: "TRY_NOW", message_id: props.id });
+    props.sendUserActionTelemetry({ event: "CLICK_BUTTON", message_id: props.id });
     props.onAction(props.content);
   }
 
   render() {
     const { content } = this.props;
     return external__React__default.a.createElement(
       "div",
       { className: "onboardingMessage" },
@@ -3858,48 +3888,48 @@ class ASRouterAdmin extends __WEBPACK_IM
 
   onMessage({ data: action }) {
     if (action.type === "ADMIN_SET_STATE") {
       this.setState(action.data);
     }
   }
 
   componentWillMount() {
-    __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].sendMessage({ type: "ADMIN_CONNECT_STATE" });
-    __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].addListener(this.onMessage);
+    __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].sendMessage({ type: "ADMIN_CONNECT_STATE" });
+    __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].addListener(this.onMessage);
   }
 
   componentWillUnmount() {
-    __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].removeListener(this.onMessage);
+    __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].removeListener(this.onMessage);
   }
 
   findOtherBundledMessagesOfSameTemplate(template) {
     return this.state.messages.filter(msg => msg.template === template && msg.bundled);
   }
 
   handleBlock(msg) {
     if (msg.bundled) {
       // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template
       let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);
-      return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].blockBundle(bundle);
+      return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].blockBundle(bundle);
     }
-    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].blockById(msg.id);
+    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].blockById(msg.id);
   }
 
   handleUnblock(msg) {
     if (msg.bundled) {
       // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template
       let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);
-      return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].unblockBundle(bundle);
+      return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].unblockBundle(bundle);
     }
-    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].unblockById(msg.id);
+    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].unblockById(msg.id);
   }
 
   handleOverride(id) {
-    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].overrideMessage(id);
+    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].overrideMessage(id);
   }
 
   renderMessageItem(msg) {
     const isCurrent = msg.id === this.state.lastMessageId;
     const isBlocked = this.state.blockList.includes(msg.id);
 
     let itemClassName = "message-item";
     if (isCurrent) {
@@ -3997,17 +4027,17 @@ class ASRouterAdmin extends __WEBPACK_IM
       { className: "asrouter-admin outer-wrapper" },
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "h1",
         null,
         "AS Router Admin"
       ),
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "button",
-        { className: "button primary", onClick: __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].getNextMessage },
+        { className: "button primary", onClick: __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["b" /* ASRouterUtils */].getNextMessage },
         "Refresh Current Message"
       ),
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "h2",
         null,
         "Message Providers"
       ),
       this.state.providers ? this.renderProviders() : null,
@@ -4481,26 +4511,31 @@ function getFormattedMessage(message) {
   return typeof message === "string" ? __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(
     "span",
     null,
     message
   ) : __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_intl__["FormattedMessage"], message);
 }
 
 class Section extends __WEBPACK_IMPORTED_MODULE_6_react___default.a.PureComponent {
+  get numRows() {
+    const { rowsPref, maxRows, Prefs } = this.props;
+    return rowsPref ? Prefs.values[rowsPref] : maxRows;
+  }
+
   _dispatchImpressionStats() {
     const { props } = this;
     let cardsPerRow = CARDS_PER_ROW_DEFAULT;
     if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {
       // If the section has compact cards and the viewport is wide enough, we show
       // 4 columns instead of 3.
       // $break-point-widest = 1072px (from _variables.scss)
       cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;
     }
-    const maxCards = cardsPerRow * props.maxRows;
+    const maxCards = cardsPerRow * this.numRows;
     const cards = props.rows.slice(0, maxCards);
 
     if (this.needsImpressionStats(cards)) {
       props.dispatch(__WEBPACK_IMPORTED_MODULE_2_common_Actions_jsm__["b" /* actionCreators */].ImpressionStats({
         source: props.eventSource,
         tiles: cards.map(link => ({ id: link.guid }))
       }));
       this.impressionCardGuids = cards.map(link => link.guid);
@@ -4579,24 +4614,25 @@ class Section extends __WEBPACK_IMPORTED
     }
 
     return false;
   }
 
   render() {
     const {
       id, eventSource, title, icon, rows,
-      emptyState, dispatch, compactCards, maxRows,
+      emptyState, dispatch, compactCards,
       contextMenuOptions, initialized, disclaimer,
       pref, privacyNoticeURL, isFirst, isLast
     } = this.props;
 
     const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;
-    const maxCards = maxCardsPerRow * maxRows;
-    const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * maxRows;
+    const { numRows } = this;
+    const maxCards = maxCardsPerRow * numRows;
+    const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * numRows;
 
     // Show topics only for top stories and if it's not initialized yet (so
     // content doesn't shift when it is loaded) or has loaded with topics
     const shouldShowTopics = id === "topstories" && (!this.props.topics || this.props.topics.length > 0);
 
     const realRows = rows.slice(0, maxCards);
 
     // The empty state should only be shown after we have initialized and there is no content.
@@ -4950,17 +4986,17 @@ class Card__Card extends external__React
             link.type === "download" && external__React__default.a.createElement(
               "div",
               { className: "card-host-name alternate" },
               external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: Object(link_menu_options["a" /* GetPlatformString */])(this.props.platform) })
             ),
             link.hostname && external__React__default.a.createElement(
               "div",
               { className: "card-host-name" },
-              link.hostname,
+              link.hostname.slice(0, 100),
               link.type === "download" && `  \u2014 ${link.description}`
             ),
             external__React__default.a.createElement(
               "div",
               { className: ["card-text", icon ? "" : "no-context", link.description ? "" : "no-description", link.hostname ? "" : "no-host-name"].join(" ") },
               external__React__default.a.createElement(
                 "h4",
                 { className: "card-title", dir: "auto" },
--- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
@@ -1,1 +1,1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap d188f06f99cd56608cae","webpack:///external \"React\"","webpack:///./system-addon/common/Actions.jsm","webpack:///external \"ReactIntl\"","webpack:///(webpack)/buildin/global.js","webpack:///external \"ReactRedux\"","webpack:///./system-addon/content-src/components/TopSites/TopSitesConstants.js","webpack:///./system-addon/common/Dedupe.jsm","webpack:///./system-addon/common/Reducers.jsm","webpack:///./system-addon/content-src/asrouter/asrouter-content.jsx","webpack:///./system-addon/content-src/lib/init-store.js","webpack:///external \"ReactDOM\"","webpack:///./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./system-addon/content-src/lib/link-menu-options.js","webpack:///./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./system-addon/content-src/lib/section-menu-options.js","webpack:///./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./system-addon/common/PerfService.jsm","webpack:///./system-addon/content-src/components/TopSites/TopSite.jsx","webpack:///./system-addon/content-src/activity-stream.jsx","webpack:///./system-addon/content-src/lib/snippets.js","webpack:///external \"Redux\"","webpack:///./system-addon/content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./system-addon/content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./system-addon/content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./system-addon/content-src/asrouter/template-utils.js","webpack:///./system-addon/content-src/asrouter/components/Button/Button.jsx","webpack:///./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./system-addon/content-src/components/Base/Base.jsx","webpack:///./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./system-addon/common/PrerenderData.jsm","webpack:///./system-addon/content-src/components/Search/Search.jsx","webpack:///./system-addon/content-src/lib/constants.js","webpack:///./system-addon/content-src/components/Sections/Sections.jsx","webpack:///./system-addon/content-src/components/Card/types.js","webpack:///./system-addon/content-src/components/Card/Card.jsx","webpack:///./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./system-addon/content-src/components/Topics/Topics.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSites.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteForm.jsx","webpack:///./system-addon/content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./system-addon/content-src/lib/detect-user-session-start.js"],"names":["globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","type","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","AlsoToMain","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","Dedupe","constructor","createKey","defaultCreateKey","item","group","groups","globalKeys","Set","result","values","valueMap","Map","key","has","set","push","add","map","m","Array","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","site","url","INITIAL_STATE","App","initialized","version","Snippets","TopSites","rows","editForm","Prefs","Theme","className","Dialog","visible","Sections","prevState","at","INIT","Object","assign","insertPinned","links","pinned","pinnedUrls","link","newLinks","filter","includes","isPinned","pinIndex","val","index","length","splice","hasMatch","newRows","TOP_SITES_UPDATED","pref","TOP_SITES_PREFS_UPDATED","TOP_SITES_EDIT","previewResponse","TOP_SITES_CANCEL_EDIT","PREVIEW_RESPONSE","previewUrl","preview","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","row","screenshot","PLACES_BOOKMARK_ADDED","bookmarkGuid","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","DIALOG_OPEN","DIALOG_CANCEL","DELETE_HISTORY_URL","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","section","id","SECTION_REGISTER","title","enabled","SECTION_UPDATE","find","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","reduce","dedupeSectionId","dedupeSection","s","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","open_url","pocket_id","PLACES_LINK_BLOCKED","DELETE_FROM_POCKET","ARCHIVE_FROM_POCKET","SNIPPETS_DATA","SNIPPET_BLOCKED","blockList","concat","SNIPPETS_BLOCKLIST_CLEARED","SNIPPETS_RESET","THEME_UPDATE","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASRouterUtils","addListener","listener","global","addMessageListener","removeListener","removeMessageListener","sendMessage","sendAsyncMessage","blockById","blockBundle","bundle","executeAction","button_action","button_action_params","unblockById","unblockBundle","getNextMessage","overrideMessage","sendTelemetry","ping","payload","ac","shouldSendImpressionOnUpdate","nextProps","prevProps","message","ASRouterUISurface","React","PureComponent","props","onMessageFromParent","bind","sendImpression","sendUserActionTelemetry","state","extraProps","message_id","eventType","provider","event","onBlockById","clearBundle","setState","componentWillMount","componentWillUnmount","renderSnippets","document","renderOnboarding","render","template","defaultProps","initASRouter","ReactDOM","getElementById","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","messageMiddleware","store","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","NEW_TAB_STATE_REQUEST","_didRequestInitialState","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","initStore","reducers","initialState","createStore","combineReducers","applyMiddleware","msg","dispatch","ex","console","error","dump","JSON","stringify","stack","ErrorBoundaryFallback","windowObj","window","onClick","location","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","children","FallbackComponent","_OpenInPrivateWindow","icon","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","eventSource","BLOCK_URL","impression","block","tiles","guid","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","onConfirm","forceBlock","body_string_id","confirm_button_string_id","cancel_button_string_id","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","ArchiveFromPocket","EditTopSite","CheckBookmark","CheckPinTopSite","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","label","intl","formatMessage","userEventData","shouldSendImpressionStats","first","last","onUpdate","getState","LinkMenu","connect","injectIntl","ContextMenu","hideContext","componentDidMount","setTimeout","addEventListener","removeEventListener","stopPropagation","i","ContextMenuItem","onKeyDown","shiftKey","VISIBLE","VISIBILITY_CHANGE_EVENT","getFormattedMessage","Disclaimer","onAcknowledge","disclaimerPref","disclaimer","text","href","button","DisclaimerIntl","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","componentWillUpdate","collapsed","sectionBody","scrollHeight","visibilityState","node","undefined","maxHeight","SectionMenuOptions","CheckCollapsed","currentTarget","renderIcon","startsWith","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","privacyNoticeURL","isFirst","isLast","isWebExtension","needsDisclaimer","active","CollapsibleSection","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","SETTINGS_OPEN","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","componentDidUpdate","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","now","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","TopSiteLink","onDragEvent","_allowDrop","e","dataTransfer","types","dragged","effectAllowed","setData","blur","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","tippyTopIcon","faviconSize","letterFallback","imageClassName","imageStyle","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","customScreenshotURL","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","altKey","ctrlKey","metaKey","onActivate","isContextMenuOpen","activeIndex","hostname","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","componentWillReceiveProps","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","topSites","slice","TopSitesRows","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","shift","topSitesUI","commonProps","maxNarrowVisibleIndex","l","topSiteIconType","slotProps","TopSiteList","gActivityStreamPrerenderedState","sendEventOrAddListener","hydrate","documentElement","lang","gActivityStreamStrings","addSnippetsSubscriber","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","_db","_dispatch","_dbTransaction","db","put","delete","clear","get","blockSnippetById","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","DISABLE_ONBOARDING","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","onMessage","TOTAL_BOOKMARKS_RESPONSE","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","onerror","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","objectStoreNames","contains","createObjectStore","err","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","snippetsMap","_refreshSnippets","cachedVersion","appData","lastUpdate","needsUpdate","Date","snippetsURL","response","fetch","status","_noSnippetFallback","_forceOnboardingVisibility","shouldBeVisible","onboardingEl","style","display","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","init","keys","dispatchEvent","Event","uninit","snippets","initializing","subscribe","asrouterExperimentEnabled","disableSnippets","ImpressionsWrapper","sendImpressionOrAddListener","_onVisibilityChange","sendOnMount","body","classList","remove","button_label","onDoneButton","onAction","content","safeURI","protocol","URL","isAllowed","warn","Button","onBlockClicked","onBlock","containerClassName","DEFAULT_ICON_PATH","onButtonClick","renderTitle","renderButton","button_url","hasLink","button_type","hasButton","PrefsButton","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","_Base","updateTheme","sendNewTabRehydrated","isPrerendered","bodyClassName","isFirstrun","v","join","renderNotified","NEW_TAB_REHYDRATED","strings","hash","BaseContent","openPreferences","prefs","shouldBeFixedToTop","PrerenderData","arePrefsValid","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","renderMessageItem","isCurrent","lastMessageId","isBlocked","itemClassName","renderMessages","renderProviders","providers","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","_renderModalMessage","message_body","ConfirmDialog","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","order","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","Section","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","maxRows","cards","needsImpressionStats","impressionCardGuids","sendImpressionStatsOrAddListener","isCollapsed","wasCollapsed","emptyState","contextMenuOptions","maxCardsPerRow","maxCardsOnNarrow","shouldShowTopics","topics","realRows","shouldShowEmptyState","sectionClassName","feed","padding","read_more_endpoint","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","maybeLoadImage","image","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","hasImage","placeholder","description","context","_Card","Card","PlaceholderCard","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","SectionMenu","Topic","Topics","t","faviconRef","countTopSitesIconsTypes","countTopSitesTypes","acc","_TopSites","onFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","topsites_icon_stats","topsites_pinned","sitesPerRow","topSitesRows","validationError","onChange","onMount","shouldFocus","focus","ev","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onCancelButtonClick","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","onClose","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","emailInput","show","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d188f06f99cd56608cae","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n *                       Use this in action creators if you need different logic\n *                       for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n//   INIT: \"INIT\",\n//   UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n  \"ADDONS_INFO_REQUEST\",\n  \"ADDONS_INFO_RESPONSE\",\n  \"ARCHIVE_FROM_POCKET\",\n  \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n  \"BLOCK_URL\",\n  \"BOOKMARK_URL\",\n  \"COPY_DOWNLOAD_LINK\",\n  \"DELETE_BOOKMARK_BY_ID\",\n  \"DELETE_FROM_POCKET\",\n  \"DELETE_HISTORY_URL\",\n  \"DIALOG_CANCEL\",\n  \"DIALOG_OPEN\",\n  \"DISABLE_ONBOARDING\",\n  \"DOWNLOAD_CHANGED\",\n  \"INIT\",\n  \"MIGRATION_CANCEL\",\n  \"MIGRATION_COMPLETED\",\n  \"MIGRATION_START\",\n  \"NEW_TAB_INIT\",\n  \"NEW_TAB_INITIAL_STATE\",\n  \"NEW_TAB_LOAD\",\n  \"NEW_TAB_REHYDRATED\",\n  \"NEW_TAB_STATE_REQUEST\",\n  \"NEW_TAB_UNLOAD\",\n  \"OPEN_DOWNLOAD_FILE\",\n  \"OPEN_LINK\",\n  \"OPEN_NEW_WINDOW\",\n  \"OPEN_PRIVATE_WINDOW\",\n  \"OPEN_WEBEXT_SETTINGS\",\n  \"PAGE_PRERENDERED\",\n  \"PLACES_BOOKMARK_ADDED\",\n  \"PLACES_BOOKMARK_REMOVED\",\n  \"PLACES_HISTORY_CLEARED\",\n  \"PLACES_LINKS_CHANGED\",\n  \"PLACES_LINK_BLOCKED\",\n  \"PLACES_LINK_DELETED\",\n  \"PLACES_SAVED_TO_POCKET\",\n  \"PREFS_INITIAL_VALUES\",\n  \"PREF_CHANGED\",\n  \"PREVIEW_REQUEST\",\n  \"PREVIEW_REQUEST_CANCEL\",\n  \"PREVIEW_RESPONSE\",\n  \"REMOVE_DOWNLOAD_FILE\",\n  \"RICH_ICON_MISSING\",\n  \"SAVE_SESSION_PERF_DATA\",\n  \"SAVE_TO_POCKET\",\n  \"SCREENSHOT_UPDATED\",\n  \"SECTION_DEREGISTER\",\n  \"SECTION_DISABLE\",\n  \"SECTION_ENABLE\",\n  \"SECTION_MOVE\",\n  \"SECTION_OPTIONS_CHANGED\",\n  \"SECTION_REGISTER\",\n  \"SECTION_UPDATE\",\n  \"SECTION_UPDATE_CARD\",\n  \"SETTINGS_CLOSE\",\n  \"SETTINGS_OPEN\",\n  \"SET_PREF\",\n  \"SHOW_DOWNLOAD_FILE\",\n  \"SHOW_FIREFOX_ACCOUNTS\",\n  \"SKIPPED_SIGNIN\",\n  \"SNIPPETS_BLOCKLIST_CLEARED\",\n  \"SNIPPETS_BLOCKLIST_UPDATED\",\n  \"SNIPPETS_DATA\",\n  \"SNIPPETS_RESET\",\n  \"SNIPPET_BLOCKED\",\n  \"SUBMIT_EMAIL\",\n  \"SYSTEM_TICK\",\n  \"TELEMETRY_IMPRESSION_STATS\",\n  \"TELEMETRY_PERFORMANCE_EVENT\",\n  \"TELEMETRY_UNDESIRED_EVENT\",\n  \"TELEMETRY_USER_EVENT\",\n  \"THEME_UPDATE\",\n  \"TOP_SITES_CANCEL_EDIT\",\n  \"TOP_SITES_EDIT\",\n  \"TOP_SITES_INSERT\",\n  \"TOP_SITES_PIN\",\n  \"TOP_SITES_PREFS_UPDATED\",\n  \"TOP_SITES_UNPIN\",\n  \"TOP_SITES_UPDATED\",\n  \"TOTAL_BOOKMARKS_REQUEST\",\n  \"TOTAL_BOOKMARKS_RESPONSE\",\n  \"UNINIT\",\n  \"UPDATE_SECTION_PREFS\",\n  \"WEBEXT_CLICK\",\n  \"WEBEXT_DISMISS\"\n]) {\n  actionTypes[type] = type;\n}\n\n// These are acceptable actions for AS Router messages to have. They can show up\n// as call-to-action buttons in snippets, onboarding tour, etc.\nconst ASRouterActions = {};\nfor (const type of [\n  \"OPEN_PRIVATE_BROWSER_WINDOW\",\n  \"OPEN_URL\",\n  \"OPEN_ABOUT_PAGE\"\n]) {\n  ASRouterActions[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n  const meta = action.meta ? {...action.meta} : {};\n  if (!options || !options.from || !options.to) {\n    throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n  }\n  // For each of these fields, if they are passed as an option,\n  // add them to the action. If they are not defined, remove them.\n  [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n    if (typeof options[o] !== \"undefined\") {\n      meta[o] = options[o];\n    } else if (meta[o]) {\n      delete meta[o];\n    }\n  });\n  return {...action, meta};\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {bool}   skipLocal Used by OnlyToMain to skip the main reducer\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n  return _RouteMessage(action, {\n    from: CONTENT_MESSAGE_TYPE,\n    to: MAIN_MESSAGE_TYPE,\n    fromTarget,\n    skipLocal\n  });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n  return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE\n  });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n *                    and also sent to a particular Content process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @param  {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n  if (!target) {\n    throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n  }\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE,\n    toTarget: target,\n    skipMain\n  });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n *                    and skip the main reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n  return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: PRELOAD_MESSAGE_TYPE\n  });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n *                   be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n *                     be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param  {object} data Fields to include in the ping\n * @param  {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n  const action = {type: actionTypes.SET_PREF, data: {name, value}};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n  if (!data || !data.source) {\n    throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n  }\n  const action = {type, data};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\nthis.ASRouterActions = ASRouterActions;\n\nthis.actionCreators = {\n  BroadcastToContent,\n  UserEvent,\n  ASRouterUserEvent,\n  UndesiredEvent,\n  PerfEvent,\n  ImpressionStats,\n  AlsoToOneContent,\n  OnlyToOneContent,\n  AlsoToMain,\n  OnlyToMain,\n  AlsoToPreloaded,\n  SetPref,\n  WebExtEvent\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n  isSendToMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n  },\n  isBroadcastToContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToOneContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToPreloaded(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n      action.meta.from === MAIN_MESSAGE_TYPE;\n  },\n  isFromMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.from === MAIN_MESSAGE_TYPE &&\n      action.meta.to === CONTENT_MESSAGE_TYPE;\n  },\n  getPortIdOfSender(action) {\n    return (action.meta && action.meta.fromTarget) || null;\n  },\n  _RouteMessage\n};\n\nconst EXPORTED_SYMBOLS = [\n  \"actionTypes\",\n  \"actionCreators\",\n  \"actionUtils\",\n  \"ASRouterActions\",\n  \"globalImportContext\",\n  \"UI_CODE\",\n  \"BACKGROUND_PROCESS\",\n  \"MAIN_MESSAGE_TYPE\",\n  \"CONTENT_MESSAGE_TYPE\",\n  \"PRELOAD_MESSAGE_TYPE\"\n];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Actions.jsm","module.exports = ReactIntl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactIntl\"\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","module.exports = ReactRedux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactRedux\"\n// module id = 4\n// module chunks = 0","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n  \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSitesConstants.js","this.Dedupe = class Dedupe {\n  constructor(createKey) {\n    this.createKey = createKey || this.defaultCreateKey;\n  }\n\n  defaultCreateKey(item) {\n    return item;\n  }\n\n  /**\n   * Dedupe any number of grouped elements favoring those from earlier groups.\n   *\n   * @param {Array} groups Contains an arbitrary number of arrays of elements.\n   * @returns {Array} A matching array of each provided group deduped.\n   */\n  group(...groups) {\n    const globalKeys = new Set();\n    const result = [];\n    for (const values of groups) {\n      const valueMap = new Map();\n      for (const value of values) {\n        const key = this.createKey(value);\n        if (!globalKeys.has(key) && !valueMap.has(key)) {\n          valueMap.set(key, value);\n        }\n      }\n      result.push(valueMap);\n      valueMap.forEach((value, key) => globalKeys.add(key));\n    }\n    return result.map(m => Array.from(m.values()));\n  }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Dedupe.jsm","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n  App: {\n    // Have we received real data from the app yet?\n    initialized: false,\n    // The version of the system-addon\n    version: null\n  },\n  Snippets: {initialized: false},\n  TopSites: {\n    // Have we received real data from history yet?\n    initialized: false,\n    // The history (and possibly default) links\n    rows: [],\n    // Used in content only to dispatch action to TopSiteForm.\n    editForm: null\n  },\n  Prefs: {\n    initialized: false,\n    values: {}\n  },\n  Theme: {className: \"\"},\n  Dialog: {\n    visible: false,\n    data: {}\n  },\n  Sections: []\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n  switch (action.type) {\n    case at.INIT:\n      return Object.assign({}, prevState, action.data || {}, {initialized: true});\n    default:\n      return prevState;\n  }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n  // Remove any pinned links\n  const pinnedUrls = pinned.map(link => link && link.url);\n  let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n  newLinks = newLinks.map(link => {\n    if (link && link.isPinned) {\n      delete link.isPinned;\n      delete link.pinIndex;\n    }\n    return link;\n  });\n\n  // Then insert them in their specified location\n  pinned.forEach((val, index) => {\n    if (!val) { return; }\n    let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n    if (index > newLinks.length) {\n      newLinks[index] = link;\n    } else {\n      newLinks.splice(index, 0, link);\n    }\n  });\n\n  return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n  let hasMatch;\n  let newRows;\n  switch (action.type) {\n    case at.TOP_SITES_UPDATED:\n      if (!action.data || !action.data.links) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n    case at.TOP_SITES_PREFS_UPDATED:\n      return Object.assign({}, prevState, {pref: action.data.pref});\n    case at.TOP_SITES_EDIT:\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: action.data.index,\n          previewResponse: null\n        }\n      });\n    case at.TOP_SITES_CANCEL_EDIT:\n      return Object.assign({}, prevState, {editForm: null});\n    case at.PREVIEW_RESPONSE:\n      if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: action.data.preview,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST_CANCEL:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null\n        }\n      });\n    case at.SCREENSHOT_UPDATED:\n      newRows = prevState.rows.map(row => {\n        if (row && row.url === action.data.url) {\n          hasMatch = true;\n          return Object.assign({}, row, {screenshot: action.data.screenshot});\n        }\n        return row;\n      });\n      return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n          return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const newSite = Object.assign({}, site);\n          delete newSite.bookmarkGuid;\n          delete newSite.bookmarkTitle;\n          delete newSite.bookmarkDateCreated;\n          return newSite;\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_LINK_DELETED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.filter(site => action.data.url !== site.url);\n      return Object.assign({}, prevState, {rows: newRows});\n    default:\n      return prevState;\n  }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n  switch (action.type) {\n    case at.DIALOG_OPEN:\n      return Object.assign({}, prevState, {visible: true, data: action.data});\n    case at.DIALOG_CANCEL:\n      return Object.assign({}, prevState, {visible: false});\n    case at.DELETE_HISTORY_URL:\n      return Object.assign({}, INITIAL_STATE.Dialog);\n    default:\n      return prevState;\n  }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n  let newValues;\n  switch (action.type) {\n    case at.PREFS_INITIAL_VALUES:\n      return Object.assign({}, prevState, {initialized: true, values: action.data});\n    case at.PREF_CHANGED:\n      newValues = Object.assign({}, prevState.values);\n      newValues[action.data.name] = action.data.value;\n      return Object.assign({}, prevState, {values: newValues});\n    default:\n      return prevState;\n  }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n  let hasMatch;\n  let newState;\n  switch (action.type) {\n    case at.SECTION_DEREGISTER:\n      return prevState.filter(section => section.id !== action.data);\n    case at.SECTION_REGISTER:\n      // If section exists in prevState, update it\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          hasMatch = true;\n          return Object.assign({}, section, action.data);\n        }\n        return section;\n      });\n      // Otherwise, append it\n      if (!hasMatch) {\n        const initialized = !!(action.data.rows && action.data.rows.length > 0);\n        const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n        newState.push(section);\n      }\n      return newState;\n    case at.SECTION_UPDATE:\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          // If the action is updating rows, we should consider initialized to be true.\n          // This can be overridden if initialized is defined in the action.data\n          const initialized = action.data.rows ? {initialized: true} : {};\n\n          // Make sure pinned cards stay at their current position when rows are updated.\n          // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n          if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n            const rows = Array.from(action.data.rows);\n            section.rows.forEach((card, index) => {\n              if (card.pinned) {\n                rows.splice(index, 0, card);\n              }\n            });\n            return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n          }\n\n          return Object.assign({}, section, initialized, action.data);\n        }\n        return section;\n      });\n\n      if (!action.data.dedupeConfigurations) {\n        return newState;\n      }\n\n      action.data.dedupeConfigurations.forEach(dedupeConf => {\n        newState = newState.map(section => {\n          if (section.id === dedupeConf.id) {\n            const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n              const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n              const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n              return newRows;\n            }, section.rows);\n\n            return Object.assign({}, section, {rows: dedupedRows});\n          }\n\n          return section;\n        });\n      });\n\n      return newState;\n    case at.SECTION_UPDATE_CARD:\n      return prevState.map(section => {\n        if (section && section.id === action.data.id && section.rows) {\n          const newRows = section.rows.map(card => {\n            if (card.url === action.data.url) {\n              return Object.assign({}, card, action.data.options);\n            }\n            return card;\n          });\n          return Object.assign({}, section, {rows: newRows});\n        }\n        return section;\n      });\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the item within the rows that is attempted to be bookmarked\n          if (item.url === action.data.url) {\n            const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n            return Object.assign({}, item, {\n              bookmarkGuid,\n              bookmarkTitle,\n              bookmarkDateCreated: dateAdded,\n              type: \"bookmark\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_SAVED_TO_POCKET:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          if (item.url === action.data.url) {\n            return Object.assign({}, item, {\n              open_url: action.data.open_url,\n              pocket_id: action.data.pocket_id,\n              title: action.data.title,\n              type: \"pocket\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the bookmark within the rows that is attempted to be removed\n          if (item.url === action.data.url) {\n            const newSite = Object.assign({}, item);\n            delete newSite.bookmarkGuid;\n            delete newSite.bookmarkTitle;\n            delete newSite.bookmarkDateCreated;\n            if (!newSite.type || newSite.type === \"bookmark\") {\n              newSite.type = \"history\";\n            }\n            return newSite;\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_LINK_DELETED:\n    case at.PLACES_LINK_BLOCKED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n    case at.DELETE_FROM_POCKET:\n    case at.ARCHIVE_FROM_POCKET:\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n    default:\n      return prevState;\n  }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n  switch (action.type) {\n    case at.SNIPPETS_DATA:\n      return Object.assign({}, prevState, {initialized: true}, action.data);\n    case at.SNIPPET_BLOCKED:\n      return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n    case at.SNIPPETS_BLOCKLIST_CLEARED:\n      return Object.assign({}, prevState, {blockList: []});\n    case at.SNIPPETS_RESET:\n      return INITIAL_STATE.Snippets;\n    default:\n      return prevState;\n  }\n}\n\nfunction Theme(prevState = INITIAL_STATE.Theme, action) {\n  switch (action.type) {\n    case at.THEME_UPDATE:\n      return Object.assign({}, prevState, action.data);\n    default:\n      return prevState;\n  }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Reducers.jsm","import {actionCreators as ac, ASRouterActions as ra} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {OnboardingMessage} from \"./templates/OnboardingMessage/OnboardingMessage\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\n\nexport const ASRouterUtils = {\n  addListener(listener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  removeListener(listener) {\n    global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  sendMessage(action) {\n    global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  },\n  blockById(id) {\n    ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  blockBundle(bundle) {\n    ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n  },\n  executeAction({button_action, button_action_params}) {\n    if (button_action in ra) {\n      ASRouterUtils.sendMessage({type: button_action, data: {button_action_params}});\n    }\n  },\n  unblockById(id) {\n    ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  unblockBundle(bundle) {\n    ASRouterUtils.sendMessage({type: \"UNBLOCK_BUNDLE\", data: {bundle}});\n  },\n  getNextMessage() {\n    ASRouterUtils.sendMessage({type: \"GET_NEXT_MESSAGE\"});\n  },\n  overrideMessage(id) {\n    ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n  },\n  sendTelemetry(ping) {\n    const payload = ac.ASRouterUserEvent(ping);\n    global.sendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n  }\n};\n\n// Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />\nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n  return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessageFromParent = this.onMessageFromParent.bind(this);\n    this.sendImpression = this.sendImpression.bind(this);\n    this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n    this.state = {message: {}, bundle: {}};\n  }\n\n  sendUserActionTelemetry(extraProps = {}) {\n    const {message, bundle} = this.state;\n    if (!message && !extraProps.message_id) {\n      throw new Error(`You must provide a message_id for bundled messages`);\n    }\n    const eventType = `${message.provider || bundle.provider}_user_event`;\n\n    ASRouterUtils.sendTelemetry({\n      message_id: message.id || extraProps.message_id,\n      source: this.props.id,\n      action: eventType,\n      ...extraProps\n    });\n  }\n\n  sendImpression() {\n    this.sendUserActionTelemetry({event: \"IMPRESSION\"});\n  }\n\n  onBlockById(id) {\n    return () => ASRouterUtils.blockById(id);\n  }\n\n  clearBundle(bundle) {\n    return () => ASRouterUtils.blockBundle(bundle);\n  }\n\n  onMessageFromParent({data: action}) {\n    switch (action.type) {\n      case \"SET_MESSAGE\":\n        this.setState({message: action.data});\n        break;\n      case \"SET_BUNDLED_MESSAGES\":\n        this.setState({bundle: action.data});\n        break;\n      case \"CLEAR_MESSAGE\":\n        if (action.data.id === this.state.message.id) {\n          this.setState({message: {}});\n        }\n        break;\n      case \"CLEAR_BUNDLE\":\n        if (this.state.bundle.bundle) {\n          this.setState({bundle: {}});\n        }\n        break;\n      case \"CLEAR_ALL\":\n        this.setState({message: {}, bundle: {}});\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.addListener(this.onMessageFromParent);\n    ASRouterUtils.sendMessage({type: \"CONNECT_UI_REQUEST\"});\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessageFromParent);\n  }\n\n  renderSnippets() {\n    return (\n      <ImpressionsWrapper\n        message={this.state.message}\n        sendImpression={this.sendImpression}\n        shouldSendImpressionOnUpdate={shouldSendImpressionOnUpdate}\n        // This helps with testing\n        document={this.props.document}>\n          <SimpleSnippet\n            {...this.state.message}\n            UISurface=\"NEWTAB_FOOTER_BAR\"\n            getNextMessage={ASRouterUtils.getNextMessage}\n            onBlock={this.onBlockById(this.state.message.id)}\n            sendUserActionTelemetry={this.sendUserActionTelemetry} />\n      </ImpressionsWrapper>);\n  }\n\n  renderOnboarding() {\n    return (\n      <OnboardingMessage\n        {...this.state.bundle}\n        UISurface=\"NEWTAB_OVERLAY\"\n        onAction={ASRouterUtils.executeAction}\n        onDoneButton={this.clearBundle(this.state.bundle.bundle)}\n        getNextMessage={ASRouterUtils.getNextMessage}\n        sendUserActionTelemetry={this.sendUserActionTelemetry} />);\n  }\n\n  render() {\n    const {message, bundle} = this.state;\n    if (!message.id && !bundle.template) { return null; }\n    if (bundle.template === \"onboarding\") { return this.renderOnboarding(); }\n    return this.renderSnippets();\n  }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport function initASRouter() {\n  ReactDOM.render(<ASRouterUISurface />, document.getElementById(\"snippets-container\"));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/asrouter-content.jsx","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param  {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function}             a reducer that, on MERGE_STORE_ACTION action,\n *                                will return the action.data object merged\n *                                into the previous state, and the result\n *                                of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n  return (prevState, action) => {\n    if (action.type === MERGE_STORE_ACTION) {\n      return {...prevState, ...action.data};\n    }\n\n    return mainReducer(prevState, action);\n  };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n  const skipLocal = action.meta && action.meta.skipLocal;\n  if (au.isSendToMain(action)) {\n    sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  }\n  if (!skipLocal) {\n    next(action);\n  }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n  if (store._didRehydrate) {\n    return next(action);\n  }\n\n  const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n  const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n  if (isRehydrationRequest) {\n    store._didRequestInitialState = true;\n    return next(action);\n  }\n\n  if (isMergeStoreAction) {\n    store._didRehydrate = true;\n    return next(action);\n  }\n\n  // If init happened after our request was made, we need to re-request\n  if (store._didRequestInitialState && action.type === at.INIT) {\n    return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n  }\n\n  if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n    // Note that actions received before didRehydrate will not be dispatched\n    // because this could negatively affect preloading and the the state\n    // will be replaced by rehydration anyway.\n    return null;\n  }\n\n  return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n  if (store._receivedFromMain) {\n    next(action);\n  } else if (au.isFromMain(action)) {\n    next(action);\n    store._receivedFromMain = true;\n    // Sending out all the early actions as main is ready now\n    if (store._earlyActionQueue) {\n      store._earlyActionQueue.forEach(next);\n      store._earlyActionQueue = [];\n    }\n  } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n    store._earlyActionQueue = store._earlyActionQueue || [];\n    store._earlyActionQueue.push(action);\n  } else {\n    // Let any other type of action go through\n    next(action);\n  }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param  {object} reducers An object containing Redux reducers\n * @param  {object} intialState (optional) The initial state of the store, if desired\n * @return {object}          A redux store\n */\nexport function initStore(reducers, initialState) {\n  const store = createStore(\n    mergeStateReducer(combineReducers(reducers)),\n    initialState,\n    global.addMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n  );\n\n  store._didRehydrate = false;\n  store._didRequestInitialState = false;\n\n  if (global.addMessageListener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, msg => {\n      try {\n        store.dispatch(msg.data);\n      } catch (ex) {\n        console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n        dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n      }\n    });\n  }\n\n  return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/init-store.js","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 9\n// module chunks = 0","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.windowObj = this.props.windowObj || window;\n    this.onClick = this.onClick.bind(this);\n  }\n\n  /**\n   * Since we only get here if part of the page has crashed, do a\n   * forced reload to give us the best chance at recovering.\n   */\n  onClick() {\n    this.windowObj.location.reload(true);\n  }\n\n  render() {\n    const defaultClass = \"as-error-fallback\";\n    let className;\n    if (\"className\" in this.props) {\n      className = `${this.props.className} ${defaultClass}`;\n    } else {\n      className = defaultClass;\n    }\n\n    // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n    return (\n      <div className={className}>\n        <div>\n          <FormattedMessage\n            defaultMessage=\"Oops, something went wrong loading this content.\"\n            id=\"error_fallback_default_info\" />\n        </div>\n        <span>\n          <a href=\"#\" className=\"reload-button\" onClick={this.onClick}>\n            <FormattedMessage\n              defaultMessage=\"Refresh page to try again.\"\n              id=\"error_fallback_default_refresh_suggestion\" />\n          </a>\n        </span>\n      </div>\n    );\n  }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {hasError: false};\n  }\n\n  componentDidCatch(error, info) {\n    this.setState({hasError: true});\n  }\n\n  render() {\n    if (!this.state.hasError) {\n      return (this.props.children);\n    }\n\n    return <this.props.FallbackComponent className={this.props.className} />;\n  }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n  id: \"menu_action_open_private_window\",\n  icon: \"new-window-private\",\n  action: ac.OnlyToMain({\n    type: at.OPEN_PRIVATE_WINDOW,\n    data: {url: site.url, referrer: site.referrer}\n  }),\n  userEvent: \"OPEN_PRIVATE_WINDOW\"\n});\n\nexport const GetPlatformString = platform => {\n  switch (platform) {\n    case \"win\":\n      return \"menu_action_show_file_windows\";\n    case \"macosx\":\n      return \"menu_action_show_file_mac_os\";\n    case \"linux\":\n      return \"menu_action_show_file_linux\";\n    default:\n      return \"menu_action_show_file_default\";\n  }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  EmptyItem: () => ({type: \"empty\"}),\n  RemoveBookmark: site => ({\n    id: \"menu_action_remove_bookmark\",\n    icon: \"bookmark-added\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_BOOKMARK_BY_ID,\n      data: site.bookmarkGuid\n    }),\n    userEvent: \"BOOKMARK_DELETE\"\n  }),\n  AddBookmark: site => ({\n    id: \"menu_action_bookmark\",\n    icon: \"bookmark-hollow\",\n    action: ac.AlsoToMain({\n      type: at.BOOKMARK_URL,\n      data: {url: site.url, title: site.title, type: site.type}\n    }),\n    userEvent: \"BOOKMARK_ADD\"\n  }),\n  OpenInNewWindow: site => ({\n    id: \"menu_action_open_new_window\",\n    icon: \"new-window\",\n    action: ac.AlsoToMain({\n      type: at.OPEN_NEW_WINDOW,\n      data: {\n        referrer: site.referrer,\n        typedBonus: site.typedBonus,\n        url: site.url\n      }\n    }),\n    userEvent: \"OPEN_NEW_WINDOW\"\n  }),\n  BlockUrl: (site, index, eventSource) => ({\n    id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.AlsoToMain({\n      type: at.BLOCK_URL,\n      data: {url: site.url, pocket_id: site.pocket_id}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      block: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"BLOCK\"\n  }),\n\n  // This is an option for web extentions which will result in remove items from\n  // memory and notify the web extenion, rather than using the built-in block list.\n  WebExtDismiss: (site, index, eventSource) => ({\n    id: \"menu_action_webext_dismiss\",\n    string_id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n      source: eventSource,\n      url: site.url,\n      action_position: index\n    })\n  }),\n  DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n    id: \"menu_action_delete\",\n    icon: \"delete\",\n    action: {\n      type: at.DIALOG_OPEN,\n      data: {\n        onConfirm: [\n          ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n          ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo))\n        ],\n        eventSource,\n        body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n        confirm_button_string_id: \"menu_action_delete\",\n        cancel_button_string_id: \"topsites_form_cancel_button\",\n        icon: \"modal-delete\"\n      }\n    },\n    userEvent: \"DIALOG_OPEN\"\n  }),\n  ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n    id: GetPlatformString(platform),\n    icon: \"search\",\n    action: ac.OnlyToMain({\n      type: at.SHOW_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  OpenFile: site => ({\n    id: \"menu_action_open_file\",\n    icon: \"open-file\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  CopyDownloadLink: site => ({\n    id: \"menu_action_copy_download_link\",\n    icon: \"copy\",\n    action: ac.OnlyToMain({\n      type: at.COPY_DOWNLOAD_LINK,\n      data: {url: site.url}\n    })\n  }),\n  GoToDownloadPage: site => ({\n    id: \"menu_action_go_to_download_page\",\n    icon: \"download\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: site.referrer}\n    }),\n    disabled: !site.referrer\n  }),\n  RemoveDownload: site => ({\n    id: \"menu_action_remove_download\",\n    icon: \"delete\",\n    action: ac.OnlyToMain({\n      type: at.REMOVE_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  PinTopSite: (site, index) => ({\n    id: \"menu_action_pin\",\n    icon: \"pin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_PIN,\n      data: {site: {url: site.url}, index}\n    }),\n    userEvent: \"PIN\"\n  }),\n  UnpinTopSite: site => ({\n    id: \"menu_action_unpin\",\n    icon: \"unpin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_UNPIN,\n      data: {site: {url: site.url}}\n    }),\n    userEvent: \"UNPIN\"\n  }),\n  SaveToPocket: (site, index, eventSource) => ({\n    id: \"menu_action_save_to_pocket\",\n    icon: \"pocket\",\n    action: ac.AlsoToMain({\n      type: at.SAVE_TO_POCKET,\n      data: {site: {url: site.url, title: site.title}}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      pocket: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"SAVE_TO_POCKET\"\n  }),\n  DeleteFromPocket: site => ({\n    id: \"menu_action_delete_pocket\",\n    icon: \"delete\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"DELETE_FROM_POCKET\"\n  }),\n  ArchiveFromPocket: site => ({\n    id: \"menu_action_archive_pocket\",\n    icon: \"check\",\n    action: ac.AlsoToMain({\n      type: at.ARCHIVE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"ARCHIVE_FROM_POCKET\"\n  }),\n  EditTopSite: (site, index) => ({\n    id: \"edit_topsites_button_text\",\n    icon: \"edit\",\n    action: {\n      type: at.TOP_SITES_EDIT,\n      data: {index}\n    }\n  }),\n  CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n  CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n  CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n  CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n  OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem())\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/link-menu-options.js","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n    const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n    // Handle special case of default site\n    const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n    const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n      const {action, impression, id, string_id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id: string_id || id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            const userEventData = Object.assign({\n              event: userEvent,\n              source,\n              action_position: index\n            }, siteInfo);\n            props.dispatch(ac.UserEvent(userEventData));\n          }\n          if (impression && props.shouldSendImpressionStats) {\n            props.dispatch(impression);\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.hideContext = this.hideContext.bind(this);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  hideContext() {\n    this.props.onUpdate(false);\n  }\n\n  componentDidMount() {\n    setTimeout(() => {\n      global.addEventListener(\"click\", this.hideContext);\n    }, 0);\n  }\n\n  componentWillUnmount() {\n    global.removeEventListener(\"click\", this.hideContext);\n  }\n\n  onClick(event) {\n    // Eat all clicks on the context menu so they don't bubble up to window.\n    // This prevents the context menu from closing when clicking disabled items\n    // or the separators.\n    event.stopPropagation();\n  }\n\n  render() {\n    return (<span className=\"context-menu\" onClick={this.onClick}>\n      <ul role=\"menu\" className=\"context-menu-list\">\n        {this.props.options.map((option, i) => (option.type === \"separator\" ?\n          (<li key={i} className=\"separator\" />) :\n          (option.type !== \"empty\" && <ContextMenuItem key={i} option={option} hideContext={this.hideContext} />)\n        ))}\n      </ul>\n    </span>);\n  }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onKeyDown = this.onKeyDown.bind(this);\n  }\n\n  onClick() {\n    this.props.hideContext();\n    this.props.option.onClick();\n  }\n\n  onKeyDown(event) {\n    const {option} = this.props;\n    switch (event.key) {\n      case \"Tab\":\n        // tab goes down in context menu, shift + tab goes up in context menu\n        // if we're on the last item, one more tab will close the context menu\n        // similarly, if we're on the first item, one more shift + tab will close it\n        if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n          this.props.hideContext();\n        }\n        break;\n      case \"Enter\":\n        this.props.hideContext();\n        option.onClick();\n        break;\n    }\n  }\n\n  render() {\n    const {option} = this.props;\n    return (\n      <li role=\"menuitem\" className=\"context-menu-item\">\n        <a onClick={this.onClick} onKeyDown={this.onKeyDown} tabIndex=\"0\" className={option.disabled ? \"disabled\" : \"\"}>\n          {option.icon && <span className={`icon icon-spacer icon-${option.icon}`} />}\n          {option.label}\n        </a>\n      </li>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Disclaimer extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onAcknowledge = this.onAcknowledge.bind(this);\n  }\n\n  onAcknowledge() {\n    this.props.dispatch(ac.SetPref(this.props.disclaimerPref, false));\n    this.props.dispatch(ac.UserEvent({event: \"DISCLAIMER_ACKED\", source: this.props.eventSource}));\n  }\n\n  render() {\n    const {disclaimer} = this.props;\n    return (\n      <div className=\"section-disclaimer\">\n          <div className=\"section-disclaimer-text\">\n            {getFormattedMessage(disclaimer.text)}\n            {disclaimer.link &&\n              <a href={disclaimer.link.href} target=\"_blank\" rel=\"noopener noreferrer\">\n                {getFormattedMessage(disclaimer.link.title || disclaimer.link)}\n              </a>\n            }\n          </div>\n\n          <button onClick={this.onAcknowledge}>\n            {getFormattedMessage(disclaimer.button)}\n          </button>\n      </div>\n    );\n  }\n}\n\nexport const DisclaimerIntl = injectIntl(Disclaimer);\n\nexport class _CollapsibleSection extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBodyMount = this.onBodyMount.bind(this);\n    this.onHeaderClick = this.onHeaderClick.bind(this);\n    this.onTransitionEnd = this.onTransitionEnd.bind(this);\n    this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n    this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n  }\n\n  componentWillMount() {\n    this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  componentWillUpdate(nextProps) {\n    // Check if we're about to go from expanded to collapsed\n    if (!this.props.collapsed && nextProps.collapsed) {\n      // This next line forces a layout flush of the section body, which has a\n      // max-height style set, so that the upcoming collapse animation can\n      // animate from that height to the collapsed height. Without this, the\n      // update is coalesced and there's no animation from no-max-height to 0.\n      this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n    }\n  }\n\n  componentWillUnmount() {\n    this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  enableOrDisableAnimation() {\n    // Only animate the collapse/expand for visible tabs.\n    const visible = this.props.document.visibilityState === VISIBLE;\n    if (this.state.enableAnimation !== visible) {\n      this.setState({enableAnimation: visible});\n    }\n  }\n\n  onBodyMount(node) {\n    this.sectionBody = node;\n  }\n\n  onHeaderClick() {\n    // If this.sectionBody is unset, it means that we're in some sort of error\n    // state, probably displaying the error fallback, so we won't be able to\n    // compute the height, and we don't want to persist the preference.\n    // If props.collapsed is undefined handler shouldn't do anything.\n    if (!this.sectionBody || this.props.collapsed === undefined) {\n      return;\n    }\n\n    // Get the current height of the body so max-height transitions can work\n    this.setState({\n      isAnimating: true,\n      maxHeight: `${this.sectionBody.scrollHeight}px`\n    });\n    const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n    this.props.dispatch(action);\n    this.props.dispatch(ac.UserEvent({\n      event: userEvent,\n      source: this.props.source\n    }));\n  }\n\n  onTransitionEnd(event) {\n    // Only update the animating state for our own transition (not a child's)\n    if (event.target === event.currentTarget) {\n      this.setState({isAnimating: false});\n    }\n  }\n\n  renderIcon() {\n    const {icon} = this.props;\n    if (icon && icon.startsWith(\"moz-extension://\")) {\n      return <span className=\"icon icon-small-spacer\" style={{backgroundImage: `url('${icon}')`}} />;\n    }\n    return <span className={`icon icon-small-spacer icon-${icon || \"webextension\"}`} />;\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuButtonMouseEnter() {\n    this.setState({menuButtonHover: true});\n  }\n\n  onMenuButtonMouseLeave() {\n    this.setState({menuButtonHover: false});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const isCollapsible = this.props.collapsed !== undefined;\n    const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n    const {id, eventSource, collapsed, disclaimer, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n    const disclaimerPref = `section.${id}.showDisclaimer`;\n    const needsDisclaimer = disclaimer && this.props.Prefs.values[disclaimerPref];\n    const active = menuButtonHover || showContextMenu;\n    return (\n      <section\n        className={`collapsible-section ${this.props.className}${enableAnimation ? \" animation-enabled\" : \"\"}${collapsed ? \" collapsed\" : \"\"}${active ? \" active\" : \"\"}`}\n        // Note: data-section-id is used for web extension api tests in mozilla central\n        data-section-id={id}>\n        <div className=\"section-top-bar\">\n          <h3 className=\"section-title\">\n            <span className=\"click-target\" onClick={this.onHeaderClick}>\n              {this.renderIcon()}\n              {getFormattedMessage(title)}\n              {isCollapsible && <span className={`collapsible-arrow icon ${collapsed ? \"icon-arrowhead-forward-small\" : \"icon-arrowhead-down-small\"}`} />}\n            </span>\n          </h3>\n          <div>\n            <button\n              className=\"context-menu-button icon\"\n              onClick={this.onMenuButtonClick}\n              onMouseEnter={this.onMenuButtonMouseEnter}\n              onMouseLeave={this.onMenuButtonMouseLeave}>\n              <span className=\"sr-only\">\n                <FormattedMessage id=\"section_context_menu_button_sr\" />\n              </span>\n            </button>\n            {showContextMenu &&\n              <SectionMenu\n                id={id}\n                extraOptions={extraMenuOptions}\n                eventSource={eventSource}\n                showPrefName={showPrefName}\n                privacyNoticeURL={privacyNoticeURL}\n                collapsed={collapsed}\n                onUpdate={this.onMenuUpdate}\n                isFirst={isFirst}\n                isLast={isLast}\n                dispatch={dispatch}\n                isWebExtension={isWebExtension} />\n            }\n          </div>\n        </div>\n        <ErrorBoundary className=\"section-body-fallback\">\n          <div\n            className={`section-body${isAnimating ? \" animating\" : \"\"}`}\n            onTransitionEnd={this.onTransitionEnd}\n            ref={this.onBodyMount}\n            style={isAnimating && !collapsed ? {maxHeight} : null}>\n            {needsDisclaimer && <DisclaimerIntl disclaimerPref={disclaimerPref} disclaimer={disclaimer} eventSource={eventSource} dispatch={this.props.dispatch} />}\n            {this.props.children}\n          </div>\n        </ErrorBoundary>\n      </section>\n    );\n  }\n}\n\n_CollapsibleSection.defaultProps = {\n  document: global.document || {\n    addEventListener: () => {},\n    removeEventListener: () => {},\n    visibilityState: \"hidden\"\n  },\n  Prefs: {values: {}}\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  MoveUp: section => ({\n    id: \"section_menu_action_move_up\",\n    icon: \"arrowhead-up\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: -1}\n    }),\n    userEvent: \"MENU_MOVE_UP\",\n    disabled: !!section.isFirst\n  }),\n  MoveDown: section => ({\n    id: \"section_menu_action_move_down\",\n    icon: \"arrowhead-down\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: +1}\n    }),\n    userEvent: \"MENU_MOVE_DOWN\",\n    disabled: !!section.isLast\n  }),\n  RemoveSection: section => ({\n    id: \"section_menu_action_remove_section\",\n    icon: \"dismiss\",\n    action: ac.SetPref(section.showPrefName, false),\n    userEvent: \"MENU_REMOVE\"\n  }),\n  CollapseSection: section => ({\n    id: \"section_menu_action_collapse_section\",\n    icon: \"minimize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n    userEvent: \"MENU_COLLAPSE\"\n  }),\n  ExpandSection: section => ({\n    id: \"section_menu_action_expand_section\",\n    icon: \"maximize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n    userEvent: \"MENU_EXPAND\"\n  }),\n  ManageSection: section => ({\n    id: \"section_menu_action_manage_section\",\n    icon: \"settings\",\n    action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n    userEvent: \"MENU_MANAGE\"\n  }),\n  ManageWebExtension: section => ({\n    id: \"section_menu_action_manage_webext\",\n    icon: \"settings\",\n    action: ac.OnlyToMain({type: at.OPEN_WEBEXT_SETTINGS, data: section.id})\n  }),\n  AddTopSite: section => ({\n    id: \"section_menu_action_add_topsite\",\n    icon: \"add\",\n    action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n    userEvent: \"MENU_ADD_TOPSITE\"\n  }),\n  PrivacyNotice: section => ({\n    id: \"section_menu_action_privacy_notice\",\n    icon: \"info\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: section.privacyNoticeURL}\n    }),\n    userEvent: \"MENU_PRIVACY_NOTICE\"\n  }),\n  CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section))\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/section-menu-options.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n  constructor(props) {\n    super(props);\n    // Just for test dependency injection:\n    this.perfSvc = this.props.perfSvc || perfSvc;\n\n    this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n    this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n    this._reportMissingData = false;\n    this._timestampHandled = false;\n    this._recordedFirstRender = false;\n  }\n\n  componentDidMount() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  componentDidUpdate() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  /**\n   * Call the given callback after the upcoming frame paints.\n   *\n   * @note Both setTimeout and requestAnimationFrame are throttled when the page\n   * is hidden, so this callback may get called up to a second or so after the\n   * requestAnimationFrame \"paint\" for hidden tabs.\n   *\n   * Newtabs hidden while loading will presumably be fairly rare (other than\n   * preloaded tabs, which we will be filtering out on the server side), so such\n   * cases should get lost in the noise.\n   *\n   * If we decide that it's important to find out when something that's hidden\n   * has \"painted\", however, another option is to post a message to this window.\n   * That should happen even faster than setTimeout, and, at least as of this\n   * writing, it's not throttled in hidden windows in Firefox.\n   *\n   * @param {Function} callback\n   *\n   * @returns void\n   */\n  _afterFramePaint(callback) {\n    requestAnimationFrame(() => setTimeout(callback, 0));\n  }\n\n  _maybeSendBadStateEvent() {\n    // Follow up bugs:\n    // https://github.com/mozilla/activity-stream/issues/3691\n    if (!this.props.initialized) {\n      // Remember to report back when data is available.\n      this._reportMissingData = true;\n    } else if (this._reportMissingData) {\n      this._reportMissingData = false;\n      // Report how long it took for component to become initialized.\n      this._sendBadStateEvent();\n    }\n  }\n\n  _maybeSendPaintedEvent() {\n    // If we've already handled a timestamp, don't do it again.\n    if (this._timestampHandled || !this.props.initialized) {\n      return;\n    }\n\n    // And if we haven't, we're doing so now, so remember that. Even if\n    // something goes wrong in the callback, we can't try again, as we'd be\n    // sending back the wrong data, and we have to do it here, so that other\n    // calls to this method while waiting for the next frame won't also try to\n    // handle it.\n    this._timestampHandled = true;\n    this._afterFramePaint(this._sendPaintedEvent);\n  }\n\n  /**\n   * Triggered by call to render. Only first call goes through due to\n   * `_recordedFirstRender`.\n   */\n  _ensureFirstRenderTsRecorded() {\n    // Used as t0 for recording how long component took to initialize.\n    if (!this._recordedFirstRender) {\n      this._recordedFirstRender = true;\n      // topsites_first_render_ts, highlights_first_render_ts.\n      const key = `${this.props.id}_first_render_ts`;\n      this.perfSvc.mark(key);\n    }\n  }\n\n  /**\n   * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n   * of how much longer the data took to be ready for display than it would\n   * have been the ideal case.\n   * https://github.com/mozilla/ping-centre/issues/98\n   */\n  _sendBadStateEvent() {\n    // highlights_data_ready_ts, topsites_data_ready_ts.\n    const dataReadyKey = `${this.props.id}_data_ready_ts`;\n    this.perfSvc.mark(dataReadyKey);\n\n    try {\n      const firstRenderKey = `${this.props.id}_first_render_ts`;\n      // value has to be Int32.\n      const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n                             this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        // highlights_data_late_by_ms, topsites_data_late_by_ms.\n        data: {[`${this.props.id}_data_late_by_ms`]: value}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.\n    }\n  }\n\n  _sendPaintedEvent() {\n    // Record first_painted event but only send if topsites.\n    if (this.props.id !== \"topsites\") {\n      return;\n    }\n\n    // topsites_first_painted_ts.\n    const key = `${this.props.id}_first_painted_ts`;\n    this.perfSvc.mark(key);\n\n    try {\n      const data = {};\n      data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up, and should continue\n      // to set this._timestampHandled to avoid going through this again.\n    }\n  }\n\n  render() {\n    if (RECORDED_SECTIONS.includes(this.props.id)) {\n      this._ensureFirstRenderTsRecorded();\n      this._maybeSendBadStateEvent();\n    }\n    return this.props.children;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n  ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n  // Borrow the high-resolution timer from the hidden window....\n  usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n  // we must be running in content space\n  // eslint-disable-next-line no-undef\n  usablePerfObj = performance;\n} else {\n  // This is a dummy object so this file doesn't crash in the node prerendering\n  // task.\n  usablePerfObj = {\n    now() {},\n    mark() {}\n  };\n}\n\nfunction _PerfService(options) {\n  // For testing, so that we can use a fake Window.performance object with\n  // known state.\n  if (options && options.performanceObj) {\n    this._perf = options.performanceObj;\n  } else {\n    this._perf = usablePerfObj;\n  }\n}\n\n_PerfService.prototype = {\n  /**\n   * Calls the underlying mark() method on the appropriate Window.performance\n   * object to add a mark with the given name to the appropriate performance\n   * timeline.\n   *\n   * @param  {String} name  the name to give the current mark\n   * @return {void}\n   */\n  mark: function mark(str) {\n    this._perf.mark(str);\n  },\n\n  /**\n   * Calls the underlying getEntriesByName on the appropriate Window.performance\n   * object.\n   *\n   * @param  {String} name\n   * @param  {String} type eg \"mark\"\n   * @return {Array}       Performance* objects\n   */\n  getEntriesByName: function getEntriesByName(name, type) {\n    return this._perf.getEntriesByName(name, type);\n  },\n\n  /**\n   * The timeOrigin property from the appropriate performance object.\n   * Used to ensure that timestamps from the add-on code and the content code\n   * are comparable.\n   *\n   * @note If this is called from a context without a window\n   * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n   * window, which appears to be the first created window (and thus\n   * timeOrigin) in the browser.  Note also, however, there is also a private\n   * hidden window, presumably for private browsing, which appears to be\n   * created dynamically later.  Exactly how/when that shows up needs to be\n   * investigated.\n   *\n   * @return {Number} A double of milliseconds with a precision of 0.5us.\n   */\n  get timeOrigin() {\n    return this._perf.timeOrigin;\n  },\n\n  /**\n   * Returns the \"absolute\" version of performance.now(), i.e. one that\n   * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n   * be comparable across both chrome and content.\n   *\n   * @return {Number}\n   */\n  absNow: function absNow() {\n    return this.timeOrigin + this._perf.now();\n  },\n\n  /**\n   * This returns the absolute startTime from the most recent performance.mark()\n   * with the given name.\n   *\n   * @param  {String} name  the name to lookup the start time for\n   *\n   * @return {Number}       the returned start time, as a DOMHighResTimeStamp\n   *\n   * @throws {Error}        \"No Marks with the name ...\" if none are available\n   *\n   * @note Always surround calls to this by try/catch.  Otherwise your code\n   * may fail when the `privacy.resistFingerprinting` pref is true.  When\n   * this pref is set, all attempts to get marks will likely fail, which will\n   * cause this method to throw.\n   *\n   * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n   * for more info.\n   */\n  getMostRecentAbsMarkStartByName(name) {\n    let entries = this.getEntriesByName(name, \"mark\");\n\n    if (!entries.length) {\n      throw new Error(`No marks with the name ${name}`);\n    }\n\n    let mostRecentEntry = entries[entries.length - 1];\n    return this._perf.timeOrigin + mostRecentEntry.startTime;\n  }\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PerfService.jsm","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n  MIN_CORNER_FAVICON_SIZE,\n  MIN_RICH_FAVICON_SIZE,\n  TOP_SITES_CONTEXT_MENU_OPTIONS,\n  TOP_SITES_SOURCE\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onDragEvent = this.onDragEvent.bind(this);\n  }\n\n  /*\n   * Helper to determine whether the drop zone should allow a drop. We only allow\n   * dropping top sites for now.\n   */\n  _allowDrop(e) {\n    return e.dataTransfer.types.includes(\"text/topsite-index\");\n  }\n\n  onDragEvent(event) {\n    switch (event.type) {\n      case \"click\":\n        // Stop any link clicks if we started any dragging\n        if (this.dragged) {\n          event.preventDefault();\n        }\n        break;\n      case \"dragstart\":\n        this.dragged = true;\n        event.dataTransfer.effectAllowed = \"move\";\n        event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n        event.target.blur();\n        this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n        break;\n      case \"dragend\":\n        this.props.onDragEvent(event);\n        break;\n      case \"dragenter\":\n      case \"dragover\":\n      case \"drop\":\n        if (this._allowDrop(event)) {\n          event.preventDefault();\n          this.props.onDragEvent(event, this.props.index);\n        }\n        break;\n      case \"mousedown\":\n        // Reset at the first mouse event of a potential drag\n        this.dragged = false;\n        break;\n    }\n  }\n\n  render() {\n    const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n    const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}`;\n    const {tippyTopIcon, faviconSize} = link;\n    const [letterFallback] = title;\n    let imageClassName;\n    let imageStyle;\n    let showSmallFavicon = false;\n    let smallFaviconStyle;\n    let smallFaviconFallback;\n    if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n      smallFaviconFallback = false;\n    } else if (link.customScreenshotURL) {\n      // assume high quality custom screenshot and use rich icon styles and class names\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${link.screenshot})`\n      };\n    } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n      // styles and class names for top sites with rich icons\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${tippyTopIcon || link.favicon})`\n      };\n    } else {\n      // styles and class names for top sites with screenshot + small icon in top left corner\n      imageClassName = `screenshot${link.screenshot ? \" active\" : \"\"}`;\n      imageStyle = {backgroundImage: link.screenshot ? `url(${link.screenshot})` : \"none\"};\n\n      // only show a favicon in top left if it's greater than 16x16\n      if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n        showSmallFavicon = true;\n        smallFaviconStyle = {backgroundImage:  `url(${link.favicon})`};\n      } else if (link.screenshot) {\n        // Don't show a small favicon if there is no screenshot, because that\n        // would result in two fallback icons\n        showSmallFavicon = true;\n        smallFaviconFallback = true;\n      }\n    }\n    let draggableProps = {};\n    if (isDraggable) {\n      draggableProps = {\n        onClick: this.onDragEvent,\n        onDragEnd: this.onDragEvent,\n        onDragStart: this.onDragEvent,\n        onMouseDown: this.onDragEvent\n      };\n    }\n    return (<li className={topSiteOuterClassName} onDrop={this.onDragEvent} onDragOver={this.onDragEvent} onDragEnter={this.onDragEvent} onDragLeave={this.onDragEvent} {...draggableProps}>\n      <div className=\"top-site-inner\">\n         <a href={link.url} onClick={onClick}>\n            <div className=\"tile\" aria-hidden={true} data-fallback={letterFallback}>\n              <div className={imageClassName} style={imageStyle} />\n              {showSmallFavicon && <div\n                className=\"top-site-icon default-icon\"\n                data-fallback={smallFaviconFallback && letterFallback}\n                style={smallFaviconStyle} />}\n           </div>\n           <div className={`title ${link.isPinned ? \"pinned\" : \"\"}`}>\n             {link.isPinned && <div className=\"icon icon-pin-small\" />}\n              <span dir=\"auto\">{title}</span>\n           </div>\n         </a>\n         {children}\n      </div>\n    </li>);\n  }\n}\nTopSiteLink.defaultProps = {\n  title: \"\",\n  link: {},\n  isDraggable: true\n};\n\nexport class TopSite extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {showContextMenu: false};\n    this.onLinkClick = this.onLinkClick.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    const value = {icon_type: this.props.link.iconType};\n    // Filter out \"not_pinned\" type for being the default\n    if (this.props.link.isPinned) {\n      value.card_type = \"pinned\";\n    }\n    return {value};\n  }\n\n  userEvent(event) {\n    this.props.dispatch(ac.UserEvent(Object.assign({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: this.props.index\n    }, this._getTelemetryInfo())));\n  }\n\n  onLinkClick(event) {\n    this.userEvent(\"CLICK\");\n\n    // Specially handle a top site link click for \"typed\" frecency bonus as\n    // specified as a property on the link.\n    event.preventDefault();\n    const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n    this.props.dispatch(ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n    }));\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.props.onActivate(this.props.index);\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const {props} = this;\n    const {link} = props;\n    const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n    const title = link.label || link.hostname;\n    return (<TopSiteLink {...props} onClick={this.onLinkClick} onDragEvent={this.props.onDragEvent} className={`${props.className || \"\"}${isContextMenuOpen ? \" active\" : \"\"}`} title={title}>\n        <div>\n          <button className=\"context-menu-button icon\" onClick={this.onMenuButtonClick}>\n            <span className=\"sr-only\">\n              <FormattedMessage id=\"context_menu_button_sr\" values={{title}} />\n            </span>\n          </button>\n          {isContextMenuOpen &&\n            <LinkMenu\n              dispatch={props.dispatch}\n              index={props.index}\n              onUpdate={this.onMenuUpdate}\n              options={TOP_SITES_CONTEXT_MENU_OPTIONS}\n              site={link}\n              siteInfo={this._getTelemetryInfo()}\n              source={TOP_SITES_SOURCE} />\n          }\n        </div>\n    </TopSiteLink>);\n  }\n}\nTopSite.defaultProps = {\n  link: {},\n  onActivate() {}\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onEditButtonClick = this.onEditButtonClick.bind(this);\n  }\n\n  onEditButtonClick() {\n    this.props.dispatch(\n      {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n  }\n\n  render() {\n    return (<TopSiteLink {...this.props} className={`placeholder ${this.props.className || \"\"}`} isDraggable={false}>\n      <button className=\"context-menu-button edit-button icon\"\n       title={this.props.intl.formatMessage({id: \"edit_topsites_edit_button\"})}\n       onClick={this.onEditButtonClick} />\n    </TopSiteLink>);\n  }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n  static get DEFAULT_STATE() {\n    return {\n      activeIndex: null,\n      draggedIndex: null,\n      draggedSite: null,\n      draggedTitle: null,\n      topSitesPreview: null\n    };\n  }\n\n  constructor(props) {\n    super(props);\n    this.state = _TopSiteList.DEFAULT_STATE;\n    this.onDragEvent = this.onDragEvent.bind(this);\n    this.onActivate = this.onActivate.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (this.state.draggedSite) {\n      const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n      const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n      if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n        prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n        (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n        // We got the new order from the redux store via props. We can clear state now.\n        this.setState(_TopSiteList.DEFAULT_STATE);\n      }\n    }\n  }\n\n  userEvent(event, index) {\n    this.props.dispatch(ac.UserEvent({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: index\n    }));\n  }\n\n  onDragEvent(event, index, link, title) {\n    switch (event.type) {\n      case \"dragstart\":\n        this.dropped = false;\n        this.setState({\n          draggedIndex: index,\n          draggedSite: link,\n          draggedTitle: title,\n          activeIndex: null\n        });\n        this.userEvent(\"DRAG\", index);\n        break;\n      case \"dragend\":\n        if (!this.dropped) {\n          // If there was no drop event, reset the state to the default.\n          this.setState(_TopSiteList.DEFAULT_STATE);\n        }\n        break;\n      case \"dragenter\":\n        if (index === this.state.draggedIndex) {\n          this.setState({topSitesPreview: null});\n        } else {\n          this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n        }\n        break;\n      case \"drop\":\n        if (index !== this.state.draggedIndex) {\n          this.dropped = true;\n          this.props.dispatch(ac.AlsoToMain({\n            type: at.TOP_SITES_INSERT,\n            data: {\n              site: {\n                url: this.state.draggedSite.url,\n                label: this.state.draggedTitle,\n                customScreenshotURL: this.state.draggedSite.customScreenshotURL\n              },\n              index,\n              draggedFromIndex: this.state.draggedIndex\n            }\n          }));\n          this.userEvent(\"DROP\", index);\n        }\n        break;\n    }\n  }\n\n  _getTopSites() {\n    // Make a copy of the sites to truncate or extend to desired length\n    let topSites = this.props.TopSites.rows.slice();\n    topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n    return topSites;\n  }\n\n  /**\n   * Make a preview of the topsites that will be the result of dropping the currently\n   * dragged site at the specified index.\n   */\n  _makeTopSitesPreview(index) {\n    const topSites = this._getTopSites();\n    topSites[this.state.draggedIndex] = null;\n    const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n    const unpinned = topSites.filter(site => site && !site.isPinned);\n    const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n    if (!pinnedOnly[index]) {\n      pinnedOnly[index] = siteToInsert;\n    } else {\n      // Find the hole to shift the pinned site(s) towards. We shift towards the\n      // hole left by the site being dragged.\n      let holeIndex = index;\n      const indexStep = index > this.state.draggedIndex ? -1 : 1;\n      while (pinnedOnly[holeIndex]) {\n        holeIndex += indexStep;\n      }\n\n      // Shift towards the hole.\n      const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n      while (holeIndex !== index) {\n        const nextIndex = holeIndex + shiftingStep;\n        pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n        holeIndex = nextIndex;\n      }\n      pinnedOnly[index] = siteToInsert;\n    }\n\n    // Fill in the remaining holes with unpinned sites.\n    const preview = pinnedOnly;\n    for (let i = 0; i < preview.length; i++) {\n      if (!preview[i]) {\n        preview[i] = unpinned.shift() || null;\n      }\n    }\n\n    return preview;\n  }\n\n  onActivate(index) {\n    this.setState({activeIndex: index});\n  }\n\n  render() {\n    const {props} = this;\n    const topSites = this.state.topSitesPreview || this._getTopSites();\n    const topSitesUI = [];\n    const commonProps = {\n      onDragEvent: this.onDragEvent,\n      dispatch: props.dispatch,\n      intl: props.intl\n    };\n    // We assign a key to each placeholder slot. We need it to be independent\n    // of the slot index (i below) so that the keys used stay the same during\n    // drag and drop reordering and the underlying DOM nodes are reused.\n    // This mostly (only?) affects linux so be sure to test on linux before changing.\n    let holeIndex = 0;\n\n    // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n    // .hide-for-narrow to hide in CSS via @media query.\n    const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n    for (let i = 0, l = topSites.length; i < l; i++) {\n      const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n      const slotProps = {\n        key: link ? link.url : holeIndex++,\n        index: i\n      };\n      if (i >= maxNarrowVisibleIndex) {\n        slotProps.className = \"hide-for-narrow\";\n      }\n      topSitesUI.push(!link ? (\n        <TopSitePlaceholder\n          {...slotProps}\n          {...commonProps} />\n      ) : (\n        <TopSite\n          link={link}\n          activeIndex={this.state.activeIndex}\n          onActivate={this.onActivate}\n          {...slotProps}\n          {...commonProps} />\n      ));\n    }\n    return (<ul className={`top-sites-list${this.state.draggedSite ? \" dnd-active\" : \"\"}`}>\n      {topSitesUI}\n    </ul>);\n  }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSite.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n  store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(<Provider store={store}>\n  <Base\n    isFirstrun={global.document.location.href === \"about:welcome\"}\n    isPrerendered={!!global.gActivityStreamPrerenderedState}\n    locale={global.document.documentElement.lang}\n    strings={global.gActivityStreamStrings} />\n</Provider>, document.getElementById(\"root\"));\n\naddSnippetsSubscriber(store);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/activity-stream.jsx","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {initASRouter} from \"content-src/asrouter/asrouter-content\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n *               the same interface as a Map, but is optionally backed by\n *               indexedDB for persistent storage.\n *               Call .connect() to open a database connection and restore any\n *               previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n  constructor(dispatch) {\n    super();\n    this._db = null;\n    this._dispatch = dispatch;\n  }\n\n  set(key, value) {\n    super.set(key, value);\n    return this._dbTransaction(db => db.put(value, key));\n  }\n\n  delete(key) {\n    super.delete(key);\n    return this._dbTransaction(db => db.delete(key));\n  }\n\n  clear() {\n    super.clear();\n    this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n    return this._dbTransaction(db => db.clear());\n  }\n\n  get blockList() {\n    return this.get(\"blockList\") || [];\n  }\n\n  /**\n   * blockSnippetById - Blocks a snippet given an id\n   *\n   * @param  {str|int} id   The id of the snippet\n   * @return {Promise}      Resolves when the id has been written to indexedDB,\n   *                        or immediately if the snippetMap is not connected\n   */\n  async blockSnippetById(id) {\n    if (!id) {\n      return;\n    }\n    const {blockList} = this;\n    if (!blockList.includes(id)) {\n      blockList.push(id);\n      this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n      await this.set(\"blockList\", blockList);\n    }\n  }\n\n  disableOnboarding() {\n    this._dispatch(ac.AlsoToMain({type: at.DISABLE_ONBOARDING}));\n  }\n\n  showFirefoxAccounts() {\n    this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n  }\n\n  getTotalBookmarksCount() {\n    return new Promise(resolve => {\n      this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n      global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n        if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n          resolve(action.data);\n          global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n        }\n      });\n    });\n  }\n\n  getAddonsInfo() {\n    return new Promise(resolve => {\n      this._dispatch(ac.OnlyToMain({type: at.ADDONS_INFO_REQUEST}));\n      global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n        if (action.type === at.ADDONS_INFO_RESPONSE) {\n          resolve(action.data);\n          global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n        }\n      });\n    });\n  }\n\n  /**\n   * connect - Attaches an indexedDB back-end to the Map so that any set values\n   *           are also cached in a store. It also restores any existing values\n   *           that are already stored in the indexedDB store.\n   *\n   * @return {type}  description\n   */\n  async connect() {\n    // Open the connection\n    const db = await this._openDB();\n\n    // Restore any existing values\n    await this._restoreFromDb(db);\n\n    // Attach a reference to the db\n    this._db = db;\n  }\n\n  /**\n   * _dbTransaction - Returns a db transaction wrapped with the given modifier\n   *                  function as a Promise. If the db has not been connected,\n   *                  it resolves immediately.\n   *\n   * @param  {func} modifier A function to call with the transaction\n   * @return {obj}           A Promise that resolves when the transaction has\n   *                         completed or errored\n   */\n  _dbTransaction(modifier) {\n    if (!this._db) {\n      return Promise.resolve();\n    }\n    return new Promise((resolve, reject) => {\n      const transaction = modifier(\n        this._db\n          .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n      );\n      transaction.onsuccess = event => resolve();\n\n      /* istanbul ignore next */\n      transaction.onerror = event => reject(transaction.error);\n    });\n  }\n\n  _openDB() {\n    return new Promise((resolve, reject) => {\n      const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n      /* istanbul ignore next */\n      openRequest.onerror = event => {\n        // Try to delete the old database so that we can start this process over\n        // next time.\n        indexedDB.deleteDatabase(DATABASE_NAME);\n        reject(event);\n      };\n\n      openRequest.onupgradeneeded = event => {\n        const db = event.target.result;\n        if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n          db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n        }\n      };\n\n      openRequest.onsuccess = event => {\n        let db = event.target.result;\n\n        /* istanbul ignore next */\n        db.onerror = err => console.error(err); // eslint-disable-line no-console\n        /* istanbul ignore next */\n        db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n        resolve(db);\n      };\n    });\n  }\n\n  _restoreFromDb(db) {\n    return new Promise((resolve, reject) => {\n      let cursorRequest;\n      try {\n        cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n      } catch (err) {\n        // istanbul ignore next\n        reject(err);\n        // istanbul ignore next\n        return;\n      }\n\n      /* istanbul ignore next */\n      cursorRequest.onerror = event => reject(event);\n\n      cursorRequest.onsuccess = event => {\n        let cursor = event.target.result;\n        // Populate the cache from the persistent storage.\n        if (cursor) {\n          if (cursor.value !== \"blockList\") {\n            this.set(cursor.key, cursor.value);\n          }\n          cursor.continue();\n        } else {\n          // We are done.\n          resolve();\n        }\n      };\n    });\n  }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n *                    remote location, or else default snippets if the remote\n *                    snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n  constructor(dispatch) {\n    // Initialize the Snippets Map and attaches it to a global so that\n    // the snippet payload can interact with it.\n    global.gSnippetsMap = new SnippetsMap(dispatch);\n    this._onAction = this._onAction.bind(this);\n  }\n\n  get snippetsMap() {\n    return global.gSnippetsMap;\n  }\n\n  async _refreshSnippets() {\n    // Check if the cached version of of the snippets in snippetsMap. If it's too\n    // old, blow away the entire snippetsMap.\n    const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n    if (cachedVersion !== this.appData.version) {\n      this.snippetsMap.clear();\n    }\n\n    // Has enough time passed for us to require an update?\n    const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n    const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n    if (needsUpdate && this.appData.snippetsURL) {\n      this.snippetsMap.set(\"snippets-last-update\", Date.now());\n      try {\n        const response = await fetch(this.appData.snippetsURL);\n        if (response.status === 200) {\n          const payload = await response.text();\n\n          this.snippetsMap.set(\"snippets\", payload);\n          this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n        }\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n  }\n\n  _noSnippetFallback() {\n    // TODO\n  }\n\n  _forceOnboardingVisibility(shouldBeVisible) {\n    const onboardingEl = document.getElementById(\"onboarding-notification-bar\");\n\n    if (onboardingEl) {\n      onboardingEl.style.display = shouldBeVisible ? \"\" : \"none\";\n    }\n  }\n\n  _showRemoteSnippets() {\n    const snippetsEl = document.getElementById(this.elementId);\n    const payload = this.snippetsMap.get(\"snippets\");\n\n    if (!snippetsEl) {\n      throw new Error(`No element was found with id '${this.elementId}'.`);\n    }\n\n    // This could happen if fetching failed\n    if (!payload) {\n      throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n    }\n\n    if (typeof payload !== \"string\") {\n      throw new Error(\"Snippet payload was incorrectly formatted\");\n    }\n\n    // Note that injecting snippets can throw if they're invalid XML.\n    // eslint-disable-next-line no-unsanitized/property\n    snippetsEl.innerHTML = payload;\n\n    // Scripts injected by innerHTML are inactive, so we have to relocate them\n    // through DOM manipulation to activate their contents.\n    for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n      const relocatedScript = document.createElement(\"script\");\n      relocatedScript.text = scriptEl.text;\n      scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n    }\n  }\n\n  _onAction(msg) {\n    if (msg.data.type === at.SNIPPET_BLOCKED) {\n      if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n        this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n        document.getElementById(\"snippets-container\").style.display = \"none\";\n      }\n    }\n  }\n\n  /**\n   * init - Fetch the snippet payload and show snippets\n   *\n   * @param  {obj} options\n   * @param  {str} options.appData.snippetsURL  The URL from which we fetch snippets\n   * @param  {int} options.appData.version  The current snippets version\n   * @param  {str} options.elementId  The id of the element in which to inject snippets\n   * @param  {bool} options.connect  Should gSnippetsMap connect to indexedDB?\n   */\n  async init(options) {\n    Object.assign(this, {\n      appData: {},\n      elementId: \"snippets\",\n      connect: true\n    }, options);\n\n    // Add listener so we know when snippets are blocked on other pages\n    if (global.addMessageListener) {\n      global.addMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n\n    // TODO: Requires enabling indexedDB on newtab\n    // Restore the snippets map from indexedDB\n    if (this.connect) {\n      try {\n        await this.snippetsMap.connect();\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n\n    // Cache app data values so they can be accessible from gSnippetsMap\n    for (const key of Object.keys(this.appData)) {\n      if (key === \"blockList\") {\n        this.snippetsMap.set(\"blockList\", this.appData[key]);\n      } else {\n        this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n      }\n    }\n\n    // Refresh snippets, if enough time has passed.\n    await this._refreshSnippets();\n\n    // Try showing remote snippets, falling back to defaults if necessary.\n    try {\n      this._showRemoteSnippets();\n    } catch (e) {\n      this._noSnippetFallback(e);\n    }\n\n    window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n    this._forceOnboardingVisibility(true);\n    this.initialized = true;\n  }\n\n  uninit() {\n    window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n    this._forceOnboardingVisibility(false);\n    if (global.removeMessageListener) {\n      global.removeMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n    this.initialized = false;\n  }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n *                         when the store has received the appropriate\n *                         Snippet data.\n *\n * @param  {obj} store   The redux store\n * @return {obj}         Returns the snippets instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n  const snippets = new SnippetsProvider(store.dispatch);\n\n  let initializing = false;\n\n  store.subscribe(async () => {\n    const state = store.getState();\n    // state.Prefs.values[\"feeds.snippets\"]:  Should snippets be shown?\n    // state.Snippets.initialized             Is the snippets data initialized?\n    // snippets.initialized:                  Is SnippetsProvider currently initialised?\n    if (state.Prefs.values[\"feeds.snippets\"] &&\n      // If the message center experiment is enabled, don't show snippets\n      !state.Prefs.values.asrouterExperimentEnabled &&\n      !state.Prefs.values.disableSnippets &&\n      state.Snippets.initialized &&\n      !snippets.initialized &&\n      // Don't call init multiple times\n      !initializing &&\n      location.href !== \"about:welcome\"\n    ) {\n      initializing = true;\n      await snippets.init({appData: state.Snippets});\n      initializing = false;\n    } else if (\n      (state.Prefs.values[\"feeds.snippets\"] === false ||\n        state.Prefs.values.disableSnippets === true) &&\n      snippets.initialized\n    ) {\n      snippets.uninit();\n    }\n\n    if (state.Prefs.values.asrouterExperimentEnabled) {\n      initASRouter();\n    }\n  });\n\n  // These values are returned for testing purposes\n  return snippets;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/snippets.js","module.exports = Redux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Redux\"\n// module id = 21\n// module chunks = 0","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionOrAddListener() {\n    if (this.props.document.visibilityState === VISIBLE) {\n      this.props.sendImpression();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (this.props.document.visibilityState === VISIBLE) {\n          this.props.sendImpression();\n          this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.sendOnMount) {\n      this.sendImpressionOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n      this.sendImpressionOrAddListener();\n    }\n  }\n\n  render() {\n    return this.props.children;\n  }\n}\n\nImpressionsWrapper.defaultProps = {\n  document: global.document,\n  sendOnMount: true\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","import React from \"react\";\n\nexport class ModalOverlay extends React.PureComponent {\n  componentWillMount() {\n    this.setState({active: true});\n    document.body.classList.add(\"modal-open\");\n  }\n\n  componentWillUnmount() {\n    document.body.classList.remove(\"modal-open\");\n    this.setState({active: false});\n  }\n\n  render() {\n    const {active} = this.state;\n    const {title, button_label} = this.props;\n    return (\n      <div>\n        <div className={`modalOverlayOuter ${active ? \"active\" : \"\"}`} />\n        <div className={`modalOverlayInner ${active ? \"active\" : \"\"}`}>\n          <h2> {title} </h2>\n          {this.props.children}\n          <div className=\"footer\">\n            <button onClick={this.props.onDoneButton} className=\"button primary modalButton\"> {button_label} </button>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","import {ModalOverlay} from \"../../components/ModalOverlay/ModalOverlay\";\nimport React from \"react\";\n\nclass OnboardingCard extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  onClick() {\n    const {props} = this;\n    props.sendUserActionTelemetry({event: \"TRY_NOW\", message_id: props.id});\n    props.onAction(props.content);\n  }\n\n  render() {\n    const {content} = this.props;\n    return (\n      <div className=\"onboardingMessage\">\n        <div className={`onboardingMessageImage ${content.icon}`} />\n        <div className=\"onboardingContent\">\n          <span>\n            <h3> {content.title} </h3>\n            <p> {content.text} </p>\n          </span>\n          <span>\n            <button className=\"button onboardingButton\" onClick={this.onClick}> {content.button_label} </button>\n          </span>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n  render() {\n    const {props} = this;\n    return (\n      <ModalOverlay {...props} button_label={\"Start Browsing\"} title={\"Welcome to Firefox\"}>\n        <div className=\"onboardingMessageContainer\">\n          {props.bundle.map(message => (\n            <OnboardingCard key={message.id} sendUserActionTelemetry={props.sendUserActionTelemetry} onAction={props.onAction} {...message} />\n          ))}\n        </div>\n      </ModalOverlay>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","export function safeURI(url) {\n  if (!url) {\n    return \"\";\n  }\n  const {protocol} = new URL(url);\n  const isAllowed = [\n    \"http:\",\n    \"https:\",\n    \"data:\",\n    \"resource:\",\n    \"chrome:\"\n  ].includes(protocol);\n  if (!isAllowed) {\n    console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n  }\n  return isAllowed ? url : \"\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/template-utils.js","import React from \"react\";\nimport {safeURI} from \"../../template-utils\";\n\nexport const Button = props => (<a href={safeURI(props.url)}\n  onClick={props.onClick}\n  className={props.className || \"ASRouterButton\"}>\n  {props.children}\n</a>);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/Button/Button.jsx","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBlockClicked = this.onBlockClicked.bind(this);\n  }\n\n  onBlockClicked() {\n    this.props.sendUserActionTelemetry({event: \"BLOCK\"});\n    this.props.onBlock();\n  }\n\n  render() {\n    const {props} = this;\n\n    const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n    return (<div className={containerClassName}>\n      <div className=\"innerWrapper\">\n        {props.children}\n      </div>\n      <button className=\"blockButton\" onClick={this.onBlockClicked} />\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onButtonClick = this.onButtonClick.bind(this);\n  }\n\n  onButtonClick() {\n    this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\"});\n  }\n\n  renderTitle() {\n    const {title} = this.props.content;\n    return title ? <h3 className=\"title\">{title}</h3> : null;\n  }\n\n  renderButton(className) {\n    const {props} = this;\n    return (<Button\n      className={className}\n      onClick={this.onButtonClick}\n      url={props.content.button_url}>\n      {props.content.button_label}\n    </Button>);\n  }\n\n  render() {\n    const {props} = this;\n    const hasLink = props.content.button_url && props.content.button_type === \"anchor\";\n    const hasButton = props.content.button_url && !props.content.button_type;\n    return (<SnippetBase {...props} className=\"SimpleSnippet\">\n      <img src={safeURI(props.content.icon) || DEFAULT_ICON_PATH} className=\"icon\" />\n      <div>\n        {this.renderTitle()} <p className=\"body\">{props.content.text}</p> {hasLink ? this.renderButton(\"ASRouterAnchor\") : null}\n      </div>\n      {hasButton ? <div>{this.renderButton()}</div> : null}\n    </SnippetBase>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\nimport {StartupOverlay} from \"content-src/components/StartupOverlay/StartupOverlay\";\n\nconst PrefsButton = injectIntl(props => (\n  <div className=\"prefs-button\">\n    <button className=\"icon icon-settings\" onClick={props.onClick} title={props.intl.formatMessage({id: \"settings_pane_button_label\"})} />\n  </div>\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n  addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\nexport class _Base extends React.PureComponent {\n  componentWillMount() {\n    const {App, locale, Theme} = this.props;\n    if (Theme.className) {\n      this.updateTheme(Theme);\n    }\n    this.sendNewTabRehydrated(App);\n    addLocaleDataForReactIntl(locale);\n  }\n\n  componentDidMount() {\n    // Request state AFTER the first render to ensure we don't cause the\n    // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n    // dispatched right after the store is ready.\n    if (this.props.isPrerendered) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n      this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n    }\n  }\n\n  componentWillUnmount() {\n    this.updateTheme({className: \"\"});\n  }\n\n  componentWillUpdate({App, Theme}) {\n    this.updateTheme(Theme);\n    this.sendNewTabRehydrated(App);\n  }\n\n  updateTheme(Theme) {\n    const bodyClassName = [\n      \"activity-stream\",\n      Theme.className,\n      this.props.isFirstrun ? \"welcome\" : \"\"\n    ].filter(v => v).join(\" \");\n    global.document.body.className = bodyClassName;\n  }\n\n  // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n  // data has been consumed e.g. for counting the number of tabs that\n  // have rendered that data.\n  sendNewTabRehydrated(App) {\n    if (App && App.initialized && !this.renderNotified) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n      this.renderNotified = true;\n    }\n  }\n\n  render() {\n    const {props} = this;\n    const {App, locale, strings} = props;\n    const {initialized} = App;\n\n    if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === \"#asrouter\") {\n      return (<ASRouterAdmin />);\n    }\n\n    if (!props.isPrerendered && !initialized) {\n      return null;\n    }\n\n    return (<IntlProvider locale={locale} messages={strings}>\n        <ErrorBoundary className=\"base-content-fallback\">\n          <BaseContent {...this.props} />\n        </ErrorBoundary>\n      </IntlProvider>);\n  }\n}\n\nexport class BaseContent extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.openPreferences = this.openPreferences.bind(this);\n  }\n\n  openPreferences() {\n    this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n    this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n  }\n\n  render() {\n    const {props} = this;\n    const {App} = props;\n    const {initialized} = App;\n    const prefs = props.Prefs.values;\n\n    const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n\n    const outerClassName = [\n      \"outer-wrapper\",\n      shouldBeFixedToTop && \"fixed-to-top\"\n    ].filter(v => v).join(\" \");\n\n    return (\n      <div>\n        <div className={outerClassName}>\n          <main>\n            {prefs.showSearch &&\n              <div className=\"non-collapsible-section\">\n                <ErrorBoundary>\n                  <Search />\n                </ErrorBoundary>\n              </div>\n            }\n            <div className={`body-wrapper${(initialized ? \" on\" : \"\")}`}>\n              {!prefs.migrationExpired &&\n                <div className=\"non-collapsible-section\">\n                  <ManualMigration />\n                </div>\n                }\n              <Sections />\n              <PrefsButton onClick={this.openPreferences} />\n            </div>\n            <ConfirmDialog />\n          </main>\n        </div>\n        {this.props.isFirstrun && <StartupOverlay />}\n      </div>);\n  }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Theme: state.Theme}))(_Base);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Base/Base.jsx","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessage = this.onMessage.bind(this);\n    this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);\n    this.state = {};\n  }\n\n  onMessage({data: action}) {\n    if (action.type === \"ADMIN_SET_STATE\") {\n      this.setState(action.data);\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\"});\n    ASRouterUtils.addListener(this.onMessage);\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessage);\n  }\n\n  findOtherBundledMessagesOfSameTemplate(template) {\n    return this.state.messages.filter(msg => msg.template === template && msg.bundled);\n  }\n\n  handleBlock(msg) {\n    if (msg.bundled) {\n      // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template\n      let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n      return () => ASRouterUtils.blockBundle(bundle);\n    }\n    return () => ASRouterUtils.blockById(msg.id);\n  }\n\n  handleUnblock(msg) {\n    if (msg.bundled) {\n      // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template\n      let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n      return () => ASRouterUtils.unblockBundle(bundle);\n    }\n    return () => ASRouterUtils.unblockById(msg.id);\n  }\n\n  handleOverride(id) {\n    return () => ASRouterUtils.overrideMessage(id);\n  }\n\n  renderMessageItem(msg) {\n    const isCurrent = msg.id === this.state.lastMessageId;\n    const isBlocked = this.state.blockList.includes(msg.id);\n\n    let itemClassName = \"message-item\";\n    if (isCurrent) { itemClassName += \" current\"; }\n    if (isBlocked) { itemClassName += \" blocked\"; }\n\n    return (<tr className={itemClassName} key={msg.id}>\n      <td className=\"message-id\"><span>{msg.id}</span></td>\n      <td>\n        <button className={`button ${(isBlocked ? \"\" : \" primary\")}`} onClick={isBlocked ? this.handleUnblock(msg) : this.handleBlock(msg)}>{isBlocked ? \"Unblock\" : \"Block\"}</button>\n       {isBlocked ? null : <button className=\"button\" onClick={this.handleOverride(msg.id)}>Show</button>}\n      </td>\n      <td className=\"message-summary\">\n        <pre>{JSON.stringify(msg, null, 2)}</pre>\n      </td>\n    </tr>);\n  }\n\n  renderMessages() {\n    if (!this.state.messages) {\n      return null;\n    }\n    return (<table><tbody>\n      {this.state.messages.map(msg => this.renderMessageItem(msg))}\n    </tbody></table>);\n  }\n\n  renderProviders() {\n    return (<table><tbody>\n      {this.state.providers.map((provider, i) => (<tr className=\"message-item\" key={i}>\n        <td>{provider.id}</td>\n        <td>{provider.type === \"remote\" ? <a target=\"_blank\" href={provider.url}>{provider.url}</a> : \"(local)\"}</td>\n      </tr>))}\n    </tbody></table>);\n  }\n\n  render() {\n    return (<div className=\"asrouter-admin outer-wrapper\">\n      <h1>AS Router Admin</h1>\n      <button className=\"button primary\" onClick={ASRouterUtils.getNextMessage}>Refresh Current Message</button>\n      <h2>Message Providers</h2>\n      {this.state.providers ? this.renderProviders() : null}\n      <h2>Messages</h2>\n      {this.renderMessages()}\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n *   // Any sort of data needed to be passed around by actions.\n *   payload: site.url,\n *   // Primary button AlsoToMain action.\n *   action: \"DELETE_HISTORY_URL\",\n *   // Primary button USerEvent action.\n *   userEvent: \"DELETE\",\n *   // Array of locale ids to display.\n *   message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n *   // Text for primary button.\n *   confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this._handleCancelBtn = this._handleCancelBtn.bind(this);\n    this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n  }\n\n  _handleCancelBtn() {\n    this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n    this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n  }\n\n  _handleConfirmBtn() {\n    this.props.data.onConfirm.forEach(this.props.dispatch);\n  }\n\n  _renderModalMessage() {\n    const message_body = this.props.data.body_string_id;\n\n    if (!message_body) {\n      return null;\n    }\n\n    return (<span>\n      {message_body.map(msg => <p key={msg}><FormattedMessage id={msg} /></p>)}\n    </span>);\n  }\n\n  render() {\n    if (!this.props.visible) {\n      return null;\n    }\n\n    return (<div className=\"confirmation-dialog\">\n      <div className=\"modal-overlay\" onClick={this._handleCancelBtn} />\n      <div className=\"modal\">\n        <section className=\"modal-message\">\n          {this.props.data.icon && <span className={`icon icon-spacer icon-${this.props.data.icon}`} />}\n          {this._renderModalMessage()}\n        </section>\n        <section className=\"actions\">\n          <button onClick={this._handleCancelBtn}>\n            <FormattedMessage id={this.props.data.cancel_button_string_id} />\n          </button>\n          <button className=\"done\" onClick={this._handleConfirmBtn}>\n            <FormattedMessage id={this.props.data.confirm_button_string_id} />\n          </button>\n        </section>\n      </div>\n    </div>);\n  }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1.  User clicks \"No Thanks\"\n * 2.  User completed the data import\n * 3.  After 3 active days\n * 4.  User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onLaunchTour = this.onLaunchTour.bind(this);\n    this.onCancelTour = this.onCancelTour.bind(this);\n  }\n\n  onLaunchTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n  }\n\n  onCancelTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n  }\n\n  render() {\n    return (<div className=\"manual-migration-container\">\n        <p>\n          <span className=\"icon icon-import\" />\n          <FormattedMessage id=\"manual_migration_explanation2\" />\n        </p>\n        <div className=\"manual-migration-actions actions\">\n          <button className=\"dismiss\" onClick={this.onCancelTour}>\n            <FormattedMessage id=\"manual_migration_cancel_button\" />\n          </button>\n          <button onClick={this.onLaunchTour}>\n            <FormattedMessage id=\"manual_migration_import_button\" />\n          </button>\n        </div>\n    </div>);\n  }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","class _PrerenderData {\n  constructor(options) {\n    this.initialPrefs = options.initialPrefs;\n    this.initialSections = options.initialSections;\n    this._setValidation(options.validation);\n  }\n\n  get validation() {\n    return this._validation;\n  }\n\n  set validation(value) {\n    this._setValidation(value);\n  }\n\n  get invalidatingPrefs() {\n    return this._invalidatingPrefs;\n  }\n\n    // This is needed so we can use it in the constructor\n  _setValidation(value = []) {\n    this._validation = value;\n    this._invalidatingPrefs = value.reduce((result, next) => {\n      if (typeof next === \"string\") {\n        result.push(next);\n        return result;\n      } else if (next && next.oneOf) {\n        return result.concat(next.oneOf);\n      } else if (next && next.indexedDB) {\n        return result.concat(next.indexedDB);\n      }\n      throw new Error(\"Your validation configuration is not properly configured\");\n    }, []);\n  }\n\n  arePrefsValid(getPref, indexedDBPrefs) {\n    for (const prefs of this.validation) {\n      // {oneOf: [\"foo\", \"bar\"]}\n      if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n        return false;\n\n        // {indexedDB: [\"foo\", \"bar\"]}\n      } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n        const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n        if (anyModifiedPrefs) {\n          return false;\n        }\n        // \"foo\"\n      } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nthis.PrerenderData = new _PrerenderData({\n  initialPrefs: {\n    \"migrationExpired\": true,\n    \"feeds.topsites\": true,\n    \"showSearch\": true,\n    \"topSitesRows\": 1,\n    \"feeds.section.topstories\": true,\n    \"feeds.section.highlights\": true,\n    \"sectionOrder\": \"topsites,topstories,highlights\",\n    \"collapsed\": false\n  },\n  // Prefs listed as invalidating will prevent the prerendered version\n  // of AS from being used if their value is something other than what is listed\n  // here. This is required because some preferences cause the page layout to be\n  // too different for the prerendered version to be used. Unfortunately, this\n  // will result in users who have modified some of their preferences not being\n  // able to get the benefits of prerendering.\n  validation: [\n    \"feeds.topsites\",\n    \"showSearch\",\n    \"topSitesRows\",\n    \"sectionOrder\",\n    // This means if either of these are set to their default values,\n    // prerendering can be used.\n    {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n    // If any component has the following preference set to `true` it will\n    // invalidate the prerendered version.\n    {indexedDB: [\"collapsed\"]}\n  ],\n  initialSections: [\n    {\n      enabled: true,\n      icon: \"pocket\",\n      id: \"topstories\",\n      order: 1,\n      title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}}\n    },\n    {\n      enabled: true,\n      id: \"highlights\",\n      icon: \"highlights\",\n      order: 2,\n      title: {id: \"header_highlights\"}\n    }\n  ]\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PrerenderData.jsm","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onInputMount = this.onInputMount.bind(this);\n  }\n\n  handleEvent(event) {\n    // Also track search events with our own telemetry\n    if (event.detail.type === \"Search\") {\n      this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n    }\n  }\n\n  onClick(event) {\n    window.gContentSearchController.search(event);\n  }\n\n  componentWillUnmount() {\n    delete window.gContentSearchController;\n  }\n\n  onInputMount(input) {\n    if (input) {\n      // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n      // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n      // can add the appropriate telemetry probes for search. Without the correct\n      // name, certain tests like browser_UsageTelemetry_content.js will fail\n      // (See github ticket #2348 for more details)\n      const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n      // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n      // the search data and acts as context for the search request (See\n      // nsISearchEngine.getSubmission). It is necessary so that search engine\n      // plugins can correctly atribute referrals. (See github ticket #3321 for\n      // more details)\n      const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n      // gContentSearchController needs to exist as a global so that tests for\n      // the existing about:home can find it; and so it allows these tests to pass.\n      // In the future, when activity stream is default about:home, this can be renamed\n      window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n        healthReportKey, searchSource);\n      addEventListener(\"ContentSearchClient\", this);\n    } else {\n      window.gContentSearchController = null;\n      removeEventListener(\"ContentSearchClient\", this);\n    }\n  }\n\n  /*\n   * Do not change the ID on the input field, as legacy newtab code\n   * specifically looks for the id 'newtab-search-text' on input fields\n   * in order to execute searches in various tests\n   */\n  render() {\n    return (<div className=\"search-wrapper\">\n      <label htmlFor=\"newtab-search-text\" className=\"search-label\">\n        <span className=\"sr-only\"><FormattedMessage id=\"search_web_placeholder\" /></span>\n      </label>\n      <input\n        id=\"newtab-search-text\"\n        maxLength=\"256\"\n        placeholder={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        ref={this.onInputMount}\n        title={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        type=\"search\" />\n      <button\n        id=\"searchSubmit\"\n        className=\"search-button\"\n        onClick={this.onClick}\n        title={this.props.intl.formatMessage({id: \"search_button\"})}>\n        <span className=\"sr-only\"><FormattedMessage id=\"search_button\" /></span>\n      </button>\n    </div>);\n  }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Search/Search.jsx","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/constants.js","import {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW_DEFAULT = 3;\nconst CARDS_PER_ROW_COMPACT_WIDE = 4;\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Section extends React.PureComponent {\n  _dispatchImpressionStats() {\n    const {props} = this;\n    let cardsPerRow = CARDS_PER_ROW_DEFAULT;\n    if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {\n      // If the section has compact cards and the viewport is wide enough, we show\n      // 4 columns instead of 3.\n      // $break-point-widest = 1072px (from _variables.scss)\n      cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;\n    }\n    const maxCards = cardsPerRow * props.maxRows;\n    const cards = props.rows.slice(0, maxCards);\n\n    if (this.needsImpressionStats(cards)) {\n      props.dispatch(ac.ImpressionStats({\n        source: props.eventSource,\n        tiles: cards.map(link => ({id: link.guid}))\n      }));\n      this.impressionCardGuids = cards.map(link => link.guid);\n    }\n  }\n\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionStatsOrAddListener() {\n    const {props} = this;\n\n    if (!props.shouldSendImpressionStats || !props.dispatch) {\n      return;\n    }\n\n    if (props.document.visibilityState === VISIBLE) {\n      this._dispatchImpressionStats();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (props.document.visibilityState === VISIBLE) {\n          if (!this.props.pref.collapsed) {\n            this._dispatchImpressionStats();\n          }\n          props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.rows.length && !this.props.pref.collapsed) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    const {props} = this;\n    const isCollapsed = props.pref.collapsed;\n    const wasCollapsed = prevProps.pref.collapsed;\n    if (\n      // Don't send impression stats for the empty state\n      props.rows.length &&\n      (\n        // We only want to send impression stats if the content of the cards has changed\n        // and the section is not collapsed...\n        (props.rows !== prevProps.rows && !isCollapsed) ||\n        // or if we are expanding a section that was collapsed.\n        (wasCollapsed && !isCollapsed)\n      )\n    ) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  needsImpressionStats(cards) {\n    if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n      return true;\n    }\n\n    for (let i = 0; i < cards.length; i++) {\n      if (cards[i].guid !== this.impressionCardGuids[i]) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  render() {\n    const {\n      id, eventSource, title, icon, rows,\n      emptyState, dispatch, compactCards, maxRows,\n      contextMenuOptions, initialized, disclaimer,\n      pref, privacyNoticeURL, isFirst, isLast\n    } = this.props;\n\n    const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;\n    const maxCards = maxCardsPerRow * maxRows;\n    const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * maxRows;\n\n    // Show topics only for top stories and if it's not initialized yet (so\n    // content doesn't shift when it is loaded) or has loaded with topics\n    const shouldShowTopics = (id === \"topstories\" &&\n      (!this.props.topics || this.props.topics.length > 0));\n\n    const realRows = rows.slice(0, maxCards);\n\n    // The empty state should only be shown after we have initialized and there is no content.\n    // Otherwise, we should show placeholders.\n    const shouldShowEmptyState = initialized && !rows.length;\n\n    const cards = [];\n    if (!shouldShowEmptyState) {\n      for (let i = 0; i < maxCards; i++) {\n        const link = realRows[i];\n        // On narrow viewports, we only show 3 cards per row. We'll mark the rest as\n        // .hide-for-narrow to hide in CSS via @media query.\n        const className = (i >= maxCardsOnNarrow) ? \"hide-for-narrow\" : \"\";\n        cards.push(link ? (\n          <Card key={i}\n            index={i}\n            className={className}\n            dispatch={dispatch}\n            link={link}\n            contextMenuOptions={contextMenuOptions}\n            eventSource={eventSource}\n            shouldSendImpressionStats={this.props.shouldSendImpressionStats}\n            isWebExtension={this.props.isWebExtension} />\n        ) : (\n          <PlaceholderCard key={i} className={className} />\n        ));\n      }\n    }\n\n    const sectionClassName = [\n      \"section\",\n      compactCards ? \"compact-cards\" : \"normal-cards\"\n    ].join(\" \");\n\n    // <Section> <-- React component\n    // <section> <-- HTML5 element\n    return (<ComponentPerfTimer {...this.props}>\n      <CollapsibleSection className={sectionClassName} icon={icon}\n        title={title}\n        id={id}\n        eventSource={eventSource}\n        disclaimer={disclaimer}\n        collapsed={this.props.pref.collapsed}\n        showPrefName={(pref && pref.feed) || id}\n        privacyNoticeURL={privacyNoticeURL}\n        Prefs={this.props.Prefs}\n        isFirst={isFirst}\n        isLast={isLast}\n        dispatch={this.props.dispatch}\n        isWebExtension={this.props.isWebExtension}>\n\n        {!shouldShowEmptyState && (<ul className=\"section-list\" style={{padding: 0}}>\n          {cards}\n        </ul>)}\n        {shouldShowEmptyState &&\n          <div className=\"section-empty-state\">\n            <div className=\"empty-state\">\n              {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n                <img className=\"empty-state-icon icon\" style={{\"background-image\": `url('${emptyState.icon}')`}} /> :\n                <img className={`empty-state-icon icon icon-${emptyState.icon}`} />}\n              <p className=\"empty-state-message\">\n                {getFormattedMessage(emptyState.message)}\n              </p>\n            </div>\n          </div>}\n        {shouldShowTopics && <Topics topics={this.props.topics} read_more_endpoint={this.props.read_more_endpoint} />}\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nSection.defaultProps = {\n  document: global.document,\n  rows: [],\n  emptyState: {},\n  pref: {},\n  title: \"\"\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n  renderSections() {\n    const sections = [];\n    const enabledSections = this.props.Sections.filter(section => section.enabled);\n    const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n    // Enabled sections doesn't include Top Sites, so we add it if enabled.\n    const expectedCount = enabledSections.length + ~~showTopSites;\n\n    for (const sectionId of sectionOrder.split(\",\")) {\n      const commonProps = {\n        key: sectionId,\n        isFirst: sections.length === 0,\n        isLast: sections.length === expectedCount - 1\n      };\n      if (sectionId === \"topsites\" && showTopSites) {\n        sections.push(<TopSites {...commonProps} />);\n      } else {\n        const section = enabledSections.find(s => s.id === sectionId);\n        if (section) {\n          sections.push(<SectionIntl {...section} {...commonProps} />);\n        }\n      }\n    }\n    return sections;\n  }\n\n  render() {\n    return (\n      <div className=\"sections-list\">\n        {this.renderSections()}\n      </div>\n    );\n  }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Sections/Sections.jsx","export const cardContextTypes = {\n  history: {\n    intlID: \"type_label_visited\",\n    icon: \"history-item\"\n  },\n  bookmark: {\n    intlID: \"type_label_bookmarked\",\n    icon: \"bookmark-added\"\n  },\n  trending: {\n    intlID: \"type_label_recommended\",\n    icon: \"trending\"\n  },\n  now: {\n    intlID: \"type_label_now\",\n    icon: \"now\"\n  },\n  pocket: {\n    intlID: \"type_label_pocket\",\n    icon: \"pocket\"\n  },\n  download: {\n    intlID: \"type_label_downloaded\",\n    icon: \"download\"\n  }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/types.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {\n      activeCard: null,\n      imageLoaded: false,\n      showContextMenu: false\n    };\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.onLinkClick = this.onLinkClick.bind(this);\n  }\n\n  /**\n   * Helper to conditionally load an image and update state when it loads.\n   */\n  async maybeLoadImage() {\n    // No need to load if it's already loaded or no image\n    const {image} = this.props.link;\n    if (!this.state.imageLoaded && image) {\n      // Initialize a promise to share a load across multiple card updates\n      if (!gImageLoading.has(image)) {\n        const loaderPromise = new Promise((resolve, reject) => {\n          const loader = new Image();\n          loader.addEventListener(\"load\", resolve);\n          loader.addEventListener(\"error\", reject);\n          loader.src = image;\n        });\n\n        // Save and remove the promise only while it's pending\n        gImageLoading.set(image, loaderPromise);\n        loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(image)).catch();\n      }\n\n      // Wait for the image whether just started loading or reused promise\n      await gImageLoading.get(image);\n\n      // Only update state if we're still waiting to load the original image\n      if (this.props.link.image === image && !this.state.imageLoaded) {\n        this.setState({imageLoaded: true});\n      }\n    }\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({\n      activeCard: this.props.index,\n      showContextMenu: true\n    });\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    // Filter out \"history\" type for being the default\n    if (this.props.link.type !== \"history\") {\n      return {value: {card_type: this.props.link.type}};\n    }\n\n    return null;\n  }\n\n  onLinkClick(event) {\n    event.preventDefault();\n    if (this.props.link.type === \"download\") {\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SHOW_DOWNLOAD_FILE,\n        data: this.props.link\n      }));\n    } else {\n      const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.OPEN_LINK,\n        data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n      }));\n    }\n    if (this.props.isWebExtension) {\n      this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n        source: this.props.eventSource,\n        url: this.props.link.url,\n        action_position: this.props.index\n      }));\n    } else {\n      this.props.dispatch(ac.UserEvent(Object.assign({\n        event: \"CLICK\",\n        source: this.props.eventSource,\n        action_position: this.props.index\n      }, this._getTelemetryInfo())));\n\n      if (this.props.shouldSendImpressionStats) {\n        this.props.dispatch(ac.ImpressionStats({\n          source: this.props.eventSource,\n          click: 0,\n          tiles: [{id: this.props.link.guid, pos: this.props.index}]\n        }));\n      }\n    }\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  componentDidMount() {\n    this.maybeLoadImage();\n  }\n\n  componentDidUpdate() {\n    this.maybeLoadImage();\n  }\n\n  componentWillReceiveProps(nextProps) {\n    // Clear the image state if changing images\n    if (nextProps.link.image !== this.props.link.image) {\n      this.setState({imageLoaded: false});\n    }\n  }\n\n  render() {\n    const {index, className, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n    const {props} = this;\n    const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n    // Display \"now\" as \"trending\" until we have new strings #3402\n    const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n    const hasImage = link.image || link.hasImage;\n    const imageStyle = {backgroundImage: link.image ? `url(${link.image})` : \"none\"};\n    const outerClassName = [\n      \"card-outer\",\n      className,\n      isContextMenuOpen && \"active\",\n      props.placeholder && \"placeholder\"\n    ].filter(v => v).join(\" \");\n\n    return (<li className={outerClassName}>\n      <a href={link.type === \"pocket\" ? link.open_url : link.url} onClick={!props.placeholder ? this.onLinkClick : undefined}>\n        <div className=\"card\">\n          <div className=\"card-preview-image-outer\">\n            {hasImage &&\n              <div className={`card-preview-image${this.state.imageLoaded ? \" loaded\" : \"\"}`} style={imageStyle} />\n            }\n          </div>\n          <div className=\"card-details\">\n            {link.type === \"download\" && <div className=\"card-host-name alternate\"><FormattedMessage id={GetPlatformString(this.props.platform)} /></div>}\n            {link.hostname &&\n              <div className=\"card-host-name\">\n                {link.hostname}{link.type === \"download\" && `  \\u2014 ${link.description}`}\n              </div>\n            }\n            <div className={[\n              \"card-text\",\n              icon ? \"\" : \"no-context\",\n              link.description ? \"\" : \"no-description\",\n              link.hostname ? \"\" : \"no-host-name\"\n            ].join(\" \")}>\n              <h4 className=\"card-title\" dir=\"auto\">{link.title}</h4>\n              <p className=\"card-description\" dir=\"auto\">{link.description}</p>\n            </div>\n            <div className=\"card-context\">\n              {icon && !link.context && <span className={`card-context-icon icon icon-${icon}`} />}\n              {link.icon && link.context && <span className=\"card-context-icon icon\" style={{backgroundImage: `url('${link.icon}')`}} />}\n              {intlID && !link.context && <div className=\"card-context-label\"><FormattedMessage id={intlID} defaultMessage=\"Visited\" /></div>}\n              {link.context && <div className=\"card-context-label\">{link.context}</div>}\n            </div>\n          </div>\n        </div>\n      </a>\n      {!props.placeholder && <button className=\"context-menu-button icon\"\n        onClick={this.onMenuButtonClick}>\n        <span className=\"sr-only\">{`Open context menu for ${link.title}`}</span>\n      </button>}\n      {isContextMenuOpen &&\n        <LinkMenu\n          dispatch={dispatch}\n          index={index}\n          source={eventSource}\n          onUpdate={this.onMenuUpdate}\n          options={link.contextMenuOptions || contextMenuOptions}\n          site={link}\n          siteInfo={this._getTelemetryInfo()}\n          shouldSendImpressionStats={shouldSendImpressionStats} />\n      }\n   </li>);\n  }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => <Card placeholder={true} className={props.className} />;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/Card.jsx","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\nconst WEBEXT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"CheckCollapsed\", \"Separator\", \"ManageWebExtension\"];\n\nexport class _SectionMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n\n    const propOptions = props.isWebExtension ? [...WEBEXT_SECTION_MENU_OPTIONS] : [...DEFAULT_SECTION_MENU_OPTIONS];\n    // Prepend custom options and a separator\n    if (props.extraOptions) {\n      propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n    }\n    // Insert privacy notice before the last option (\"ManageSection\")\n    if (props.privacyNoticeURL) {\n      propOptions.splice(-1, 0, \"PrivacyNotice\");\n    }\n\n    const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n      const {action, id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            props.dispatch(ac.UserEvent({\n              event: userEvent,\n              source: props.source\n            }));\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n  render() {\n    const {url, name} = this.props;\n    return (<li><a key={name} className=\"topic-link\" href={url}>{name}</a></li>);\n  }\n}\n\nexport class Topics extends React.PureComponent {\n  render() {\n    const {topics, read_more_endpoint} = this.props;\n    return (\n      <div className=\"topic\">\n        <span><FormattedMessage id=\"pocket_read_more\" /></span>\n        <ul>{topics && topics.map(t => <Topic key={t.name} url={t.url} name={t.name} />)}</ul>\n\n        {read_more_endpoint && <a className=\"topic-read-more\" href={read_more_endpoint}>\n          <FormattedMessage id=\"pocket_read_even_more\" />\n        </a>}\n      </div>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Topics/Topics.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n  if (link.customScreenshotURL) {\n    return \"custom_screenshot\";\n  }\n  if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n    return \"tippytop\";\n  }\n  if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n    return \"rich_icon\";\n  }\n  if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n    return \"screenshot_with_icon\";\n  }\n  if (link.screenshot) {\n    return \"screenshot\";\n  }\n  return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n  const countTopSitesTypes = (acc, link) => {\n    acc[topSiteIconType(link)]++;\n    return acc;\n  };\n\n  return topSites.reduce(countTopSitesTypes, {\n    \"custom_screenshot\": 0,\n    \"screenshot_with_icon\": 0,\n    \"screenshot\": 0,\n    \"tippytop\": 0,\n    \"rich_icon\": 0,\n    \"no_image\": 0\n  });\n}\n\nexport class _TopSites extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onFormClose = this.onFormClose.bind(this);\n  }\n\n  /**\n   * Dispatch session statistics about the quality of TopSites icons and pinned count.\n   */\n  _dispatchTopSitesStats() {\n    const topSites = this._getVisibleTopSites();\n    const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n    const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n    // Dispatch telemetry event with the count of TopSites images types.\n    this.props.dispatch(ac.AlsoToMain({\n      type: at.SAVE_SESSION_PERF_DATA,\n      data: {topsites_icon_stats: topSitesIconsStats, topsites_pinned: topSitesPinned}\n    }));\n  }\n\n  /**\n   * Return the TopSites that are visible based on prefs and window width.\n   */\n  _getVisibleTopSites() {\n    // We hide 2 sites per row when not in the wide layout.\n    let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n    // $break-point-widest = 1072px (from _variables.scss)\n    if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n      sitesPerRow -= 2;\n    }\n    return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n  }\n\n  componentDidUpdate() {\n    this._dispatchTopSitesStats();\n  }\n\n  componentDidMount() {\n    this._dispatchTopSitesStats();\n  }\n\n  onFormClose() {\n    this.props.dispatch(ac.UserEvent({\n      source: TOP_SITES_SOURCE,\n      event: \"TOP_SITES_EDIT_CLOSE\"\n    }));\n    this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n  }\n\n  render() {\n    const {props} = this;\n    const {editForm} = props.TopSites;\n\n    return (<ComponentPerfTimer id=\"topsites\" initialized={props.TopSites.initialized} dispatch={props.dispatch}>\n      <CollapsibleSection\n        className=\"top-sites\"\n        icon=\"topsites\"\n        id=\"topsites\"\n        title={{id: \"header_top_sites\"}}\n        extraMenuOptions={[\"AddTopSite\"]}\n        showPrefName=\"feeds.topsites\"\n        eventSource={TOP_SITES_SOURCE}\n        collapsed={props.TopSites.pref ? props.TopSites.pref.collapsed : undefined}\n        isFirst={props.isFirst}\n        isLast={props.isLast}\n        dispatch={props.dispatch}>\n        <TopSiteList TopSites={props.TopSites} TopSitesRows={props.TopSitesRows} dispatch={props.dispatch} intl={props.intl} topSiteIconType={topSiteIconType} />\n        <div className=\"edit-topsites-wrapper\">\n          {editForm &&\n            <div className=\"edit-topsites\">\n              <div className=\"modal-overlay\" onClick={this.onFormClose} />\n              <div className=\"modal\">\n                <TopSiteForm\n                  site={props.TopSites.rows[editForm.index]}\n                  onClose={this.onFormClose}\n                  dispatch={this.props.dispatch}\n                  intl={this.props.intl}\n                  {...editForm} />\n              </div>\n            </div>\n          }\n        </div>\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nexport const TopSites = connect(state => ({\n  TopSites: state.TopSites,\n  Prefs: state.Prefs,\n  TopSitesRows: state.Prefs.values.topSitesRows\n}))(injectIntl(_TopSites));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSites.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {validationError: this.props.validationError};\n    this.onChange = this.onChange.bind(this);\n    this.onMount = this.onMount.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (nextProps.shouldFocus && !this.props.shouldFocus) {\n      this.input.focus();\n    }\n    if (nextProps.validationError && !this.props.validationError) {\n      this.setState({validationError: true});\n    }\n    // If the component is in an error state but the value was cleared by the parent\n    if (this.state.validationError && !nextProps.value) {\n      this.setState({validationError: false});\n    }\n  }\n\n  onChange(ev) {\n    if (this.state.validationError) {\n      this.setState({validationError: false});\n    }\n    this.props.onChange(ev);\n  }\n\n  onMount(input) {\n    this.input = input;\n  }\n\n  render() {\n    const showClearButton = this.props.value && this.props.onClear;\n    const {typeUrl} = this.props;\n    const {validationError} = this.state;\n\n    return (<label><FormattedMessage id={this.props.titleId} />\n      <div className={`field ${typeUrl ? \"url\" : \"\"}${validationError ? \" invalid\" : \"\"}`}>\n        {this.props.loading ?\n          <div className=\"loading-container\"><div className=\"loading-animation\" /></div> :\n          showClearButton && <div className=\"icon icon-clear-input\" onClick={this.props.onClear} />}\n        <input type=\"text\"\n          value={this.props.value}\n          ref={this.onMount}\n          onChange={this.onChange}\n          placeholder={this.props.intl.formatMessage({id: this.props.placeholderId})}\n          autoFocus={this.props.shouldFocus}\n          disabled={this.props.loading} />\n        {validationError &&\n          <aside className=\"error-tooltip\">\n            <FormattedMessage id={this.props.errorMessageId} />\n          </aside>}\n      </div>\n    </label>);\n  }\n}\n\nTopSiteFormInput.defaultProps = {\n  showClearButton: false,\n  value: \"\",\n  validationError: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    const {site} = props;\n    this.state = {\n      label: site ? (site.label || site.hostname) : \"\",\n      url: site ? site.url : \"\",\n      validationError: false,\n      customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n      showCustomScreenshotForm: site ? site.customScreenshotURL : false\n    };\n    this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n    this.onLabelChange = this.onLabelChange.bind(this);\n    this.onUrlChange = this.onUrlChange.bind(this);\n    this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n    this.onClearUrlClick = this.onClearUrlClick.bind(this);\n    this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n    this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n    this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n    this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n    this.validateUrl = this.validateUrl.bind(this);\n  }\n\n  onLabelChange(event) {\n    this.setState({\"label\": event.target.value});\n  }\n\n  onUrlChange(event) {\n    this.setState({\n      url: event.target.value,\n      validationError: false\n    });\n  }\n\n  onClearUrlClick() {\n    this.setState({\n      url: \"\",\n      validationError: false\n    });\n  }\n\n  onEnableScreenshotUrlForm() {\n    this.setState({showCustomScreenshotForm: true});\n  }\n\n  _updateCustomScreenshotInput(customScreenshotUrl) {\n    this.setState({\n      customScreenshotUrl,\n      validationError: false\n    });\n    this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n  }\n\n  onCustomScreenshotUrlChange(event) {\n    this._updateCustomScreenshotInput(event.target.value);\n  }\n\n  onClearScreenshotInput() {\n    this._updateCustomScreenshotInput(\"\");\n  }\n\n  onCancelButtonClick(ev) {\n    ev.preventDefault();\n    this.props.onClose();\n  }\n\n  onDoneButtonClick(ev) {\n    ev.preventDefault();\n\n    if (this.validateForm()) {\n      const site = {url: this.cleanUrl(this.state.url)};\n      const {index} = this.props;\n      if (this.state.label !== \"\") {\n        site.label = this.state.label;\n      }\n\n      if (this.state.customScreenshotUrl) {\n        site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n      } else if (this.props.site && this.props.site.customScreenshotURL) {\n        // Used to flag that previously cached screenshot should be removed\n        site.customScreenshotURL = null;\n      }\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.TOP_SITES_PIN,\n        data: {site, index}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"TOP_SITES_EDIT\",\n        action_position: index\n      }));\n\n      this.props.onClose();\n    }\n  }\n\n  onPreviewButtonClick(event) {\n    event.preventDefault();\n    if (this.validateForm()) {\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.PREVIEW_REQUEST,\n        data: {url: this.cleanUrl(this.state.customScreenshotUrl)}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"PREVIEW_REQUEST\"\n      }));\n    }\n  }\n\n  cleanUrl(url) {\n    // If we are missing a protocol, prepend http://\n    if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n      return `http://${url}`;\n    }\n    return url;\n  }\n\n  _tryParseUrl(url) {\n    try {\n      return new URL(url);\n    } catch (e) {\n      return null;\n    }\n  }\n\n  validateUrl(url) {\n    const validProtocols = [\"http:\", \"https:\"];\n    const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n    return urlObj && validProtocols.includes(urlObj.protocol);\n  }\n\n  validateCustomScreenshotUrl() {\n    const {customScreenshotUrl} = this.state;\n    return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n  }\n\n  validateForm() {\n    const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n    if (!validate) {\n      this.setState({validationError: true});\n    }\n\n    return validate;\n  }\n\n  _renderCustomScreenshotInput() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n    // Set focus on error if the url field is valid or when the input is first rendered and is empty\n    const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n    const isLoading = this.props.previewResponse === null &&\n      customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n    if (!this.state.showCustomScreenshotForm) {\n      return (<a className=\"enable-custom-image-input\" onClick={this.onEnableScreenshotUrlForm}>\n        <FormattedMessage id=\"topsites_form_use_image_link\" />\n      </a>);\n    }\n    return (<div className=\"custom-image-input-container\">\n      <TopSiteFormInput\n        errorMessageId={requestFailed ? \"topsites_form_image_validation\" : \"topsites_form_url_validation\"}\n        loading={isLoading}\n        onChange={this.onCustomScreenshotUrlChange}\n        onClear={this.onClearScreenshotInput}\n        shouldFocus={shouldFocus}\n        typeUrl={true}\n        value={customScreenshotUrl}\n        validationError={validationError}\n        titleId=\"topsites_form_image_url_label\"\n        placeholderId=\"topsites_form_url_placeholder\"\n        intl={this.props.intl} />\n    </div>);\n  }\n\n  render() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    // For UI purposes, editing without an existing link is \"add\"\n    const showAsAdd = !this.props.site;\n    const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n    const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n    // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n    // or the request failed\n    const previewMode = changed && !this.props.previewResponse;\n    const previewLink = Object.assign({}, this.props.site);\n    if (this.props.previewResponse) {\n      previewLink.screenshot = this.props.previewResponse;\n      previewLink.customScreenshotURL = this.props.previewUrl;\n    }\n    return (\n      <form className=\"topsite-form\">\n        <div className=\"form-input-container\">\n          <h3 className=\"section-title\">\n            <FormattedMessage id={showAsAdd ? \"topsites_form_add_header\" : \"topsites_form_edit_header\"} />\n          </h3>\n          <div className=\"fields-and-preview\">\n            <div className=\"form-wrapper\">\n              <TopSiteFormInput onChange={this.onLabelChange}\n                value={this.state.label}\n                titleId=\"topsites_form_title_label\"\n                placeholderId=\"topsites_form_title_placeholder\"\n                intl={this.props.intl} />\n              <TopSiteFormInput onChange={this.onUrlChange}\n                shouldFocus={this.state.validationError && !this.validateUrl(this.state.url)}\n                value={this.state.url}\n                onClear={this.onClearUrlClick}\n                validationError={this.state.validationError && !this.validateUrl(this.state.url)}\n                titleId=\"topsites_form_url_label\"\n                typeUrl={true}\n                placeholderId=\"topsites_form_url_placeholder\"\n                errorMessageId=\"topsites_form_url_validation\"\n                intl={this.props.intl} />\n              {this._renderCustomScreenshotInput()}\n            </div>\n            <TopSiteLink link={previewLink}\n              defaultStyle={requestFailed}\n              title={this.state.label} />\n          </div>\n        </div>\n        <section className=\"actions\">\n          <button className=\"cancel\" type=\"button\" onClick={this.onCancelButtonClick}>\n            <FormattedMessage id=\"topsites_form_cancel_button\" />\n          </button>\n          {previewMode ?\n            <button className=\"done preview\" type=\"submit\" onClick={this.onPreviewButtonClick}>\n              <FormattedMessage id=\"topsites_form_preview_button\" />\n            </button> :\n            <button className=\"done\" type=\"submit\" onClick={this.onDoneButtonClick}>\n              <FormattedMessage id={showAsAdd ? \"topsites_form_add_button\" : \"topsites_form_save_button\"} />\n            </button>}\n        </section>\n      </form>\n    );\n  }\n}\n\nTopSiteForm.defaultProps = {\n  site: null,\n  index: -1\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteForm.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\n\nexport class _StartupOverlay extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onInputChange = this.onInputChange.bind(this);\n    this.onSubmit = this.onSubmit.bind(this);\n    this.clickSkip = this.clickSkip.bind(this);\n    this.initScene = this.initScene.bind(this);\n    this.removeOverlay = this.removeOverlay.bind(this);\n\n    this.state = {emailInput: \"\"};\n    this.initScene();\n  }\n\n  initScene() {\n    // Timeout to allow the scene to render once before attaching the attribute\n    // to trigger the animation.\n    setTimeout(() => {\n      this.setState({show: true});\n    }, 10);\n  }\n\n  removeOverlay() {\n    window.removeEventListener(\"visibilitychange\", this.removeOverlay);\n    this.setState({show: false});\n    setTimeout(() => {\n      // Allow scrolling and fully remove overlay after animation finishes.\n      document.body.classList.remove(\"welcome\");\n    }, 400);\n  }\n\n  onInputChange(e) {\n    this.setState({emailInput: e.target.value});\n  }\n\n  onSubmit() {\n    this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\"}));\n    window.addEventListener(\"visibilitychange\", this.removeOverlay);\n  }\n\n  clickSkip() {\n    this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\"}));\n    this.removeOverlay();\n  }\n\n  render() {\n    let termsLink = (<a href=\"https://accounts.firefox.com/legal/terms\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_terms_of_service\" /></a>);\n    let privacyLink = (<a href=\"https://accounts.firefox.com/legal/privacy\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_privacy_notice\" /></a>);\n    return (\n      <div className={`overlay-wrapper ${this.state.show ? \"show \" : \"\"}`}>\n        <div className=\"background\" />\n        <div className=\"firstrun-scene\">\n          <div className=\"fxaccounts-container\">\n            <div className=\"firstrun-left-divider\">\n              <h1 className=\"firstrun-title\"><FormattedMessage id=\"firstrun_title\" /></h1>\n              <p className=\"firstrun-content\"><FormattedMessage id=\"firstrun_content\" /></p>\n              <a className=\"firstrun-link\" href=\"https://www.mozilla.org/firefox/features/sync/\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_learn_more_link\" /></a>\n            </div>\n            <div className=\"firstrun-sign-in\">\n              <p className=\"form-header\"><FormattedMessage id=\"firstrun_form_header\" /><span><FormattedMessage id=\"firstrun_form_sub_header\" /></span></p>\n              <form method=\"get\" action=\"https://accounts.firefox.com?entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun\" target=\"_blank\" rel=\"noopener noreferrer\" onSubmit={this.onSubmit}>\n                <input name=\"service\" type=\"hidden\" value=\"sync\" />\n                <input name=\"action\" type=\"hidden\" value=\"email\" />\n                <input name=\"context\" type=\"hidden\" value=\"fx_desktop_v3\" />\n                <input className=\"email-input\" name=\"email\" type=\"email\" required=\"true\" placeholder={this.props.intl.formatMessage({id: \"firstrun_email_input_placeholder\"})} onChange={this.onInputChange} />\n                <div className=\"extra-links\">\n                  <FormattedMessage\n                    id=\"firstrun_extra_legal_links\"\n                    values={{\n                      terms: termsLink,\n                      privacy: privacyLink\n                    }} />\n                </div>\n                <button className=\"continue-button\" type=\"submit\"><FormattedMessage id=\"firstrun_continue_to_login\" /></button>\n              </form>\n              <button className=\"skip-button\" disabled={!!this.state.emailInput} onClick={this.clickSkip}><FormattedMessage id=\"firstrun_skip_login\" /></button>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport const StartupOverlay = connect()(injectIntl(_StartupOverlay));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/StartupOverlay/StartupOverlay.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n  constructor(store, options = {}) {\n    this._store = store;\n    // Overrides for testing\n    this.document = options.document || global.document;\n    this._perfService = options.perfService || perfSvc;\n    this._onVisibilityChange = this._onVisibilityChange.bind(this);\n  }\n\n  /**\n   * sendEventOrAddListener - Notify immediately if the page is already visible,\n   *                    or else set up a listener for when visibility changes.\n   *                    This is needed for accurate session tracking for telemetry,\n   *                    because tabs are pre-loaded.\n   */\n  sendEventOrAddListener() {\n    if (this.document.visibilityState === VISIBLE) {\n      // If the document is already visible, to the user, send a notification\n      // immediately that a session has started.\n      this._sendEvent();\n    } else {\n      // If the document is not visible, listen for when it does become visible.\n      this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  /**\n   * _sendEvent - Sends a message to the main process to indicate the current\n   *              tab is now visible to the user, includes the\n   *              visibility_event_rcvd_ts time in ms from the UNIX epoch.\n   */\n  _sendEvent() {\n    this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n    try {\n      let visibility_event_rcvd_ts = this._perfService\n        .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n      this._store.dispatch(ac.AlsoToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data: {visibility_event_rcvd_ts}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up.\n    }\n  }\n\n  /**\n   * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n   *                      and removes the event listener. This should only be called once per tab.\n   */\n  _onVisibilityChange() {\n    if (this.document.visibilityState === VISIBLE) {\n      this._sendEvent();\n      this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/detect-user-session-start.js"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap 95e95c787e32bc57db8e","webpack:///external \"React\"","webpack:///./system-addon/common/Actions.jsm","webpack:///external \"ReactIntl\"","webpack:///(webpack)/buildin/global.js","webpack:///external \"ReactRedux\"","webpack:///./system-addon/content-src/components/TopSites/TopSitesConstants.js","webpack:///./system-addon/common/Dedupe.jsm","webpack:///./system-addon/common/Reducers.jsm","webpack:///./system-addon/content-src/asrouter/asrouter-content.jsx","webpack:///./system-addon/content-src/lib/init-store.js","webpack:///external \"ReactDOM\"","webpack:///./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./system-addon/content-src/lib/link-menu-options.js","webpack:///./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./system-addon/content-src/lib/section-menu-options.js","webpack:///./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./system-addon/common/PerfService.jsm","webpack:///./system-addon/content-src/components/TopSites/TopSite.jsx","webpack:///./system-addon/content-src/activity-stream.jsx","webpack:///./system-addon/content-src/lib/snippets.js","webpack:///external \"Redux\"","webpack:///./system-addon/content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./system-addon/content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./system-addon/content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./system-addon/content-src/asrouter/template-utils.js","webpack:///./system-addon/content-src/asrouter/components/Button/Button.jsx","webpack:///./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./system-addon/content-src/components/Base/Base.jsx","webpack:///./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./system-addon/common/PrerenderData.jsm","webpack:///./system-addon/content-src/components/Search/Search.jsx","webpack:///./system-addon/content-src/lib/constants.js","webpack:///./system-addon/content-src/components/Sections/Sections.jsx","webpack:///./system-addon/content-src/components/Card/types.js","webpack:///./system-addon/content-src/components/Card/Card.jsx","webpack:///./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./system-addon/content-src/components/Topics/Topics.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSites.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteForm.jsx","webpack:///./system-addon/content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./system-addon/content-src/lib/detect-user-session-start.js"],"names":["globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","type","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","AlsoToMain","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","Dedupe","constructor","createKey","defaultCreateKey","item","group","groups","globalKeys","Set","result","values","valueMap","Map","key","has","set","push","add","map","m","Array","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","site","url","INITIAL_STATE","App","initialized","version","Snippets","TopSites","rows","editForm","Prefs","Theme","className","Dialog","visible","Sections","prevState","at","INIT","Object","assign","insertPinned","links","pinned","pinnedUrls","link","newLinks","filter","includes","isPinned","pinIndex","val","index","length","splice","hasMatch","newRows","TOP_SITES_UPDATED","pref","TOP_SITES_PREFS_UPDATED","TOP_SITES_EDIT","previewResponse","TOP_SITES_CANCEL_EDIT","PREVIEW_RESPONSE","previewUrl","preview","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","row","screenshot","PLACES_BOOKMARK_ADDED","bookmarkGuid","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","DIALOG_OPEN","DIALOG_CANCEL","DELETE_HISTORY_URL","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","section","id","SECTION_REGISTER","title","enabled","SECTION_UPDATE","find","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","reduce","dedupeSectionId","dedupeSection","s","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","open_url","pocket_id","PLACES_LINK_BLOCKED","DELETE_FROM_POCKET","ARCHIVE_FROM_POCKET","SNIPPETS_DATA","SNIPPET_BLOCKED","blockList","concat","SNIPPETS_BLOCKLIST_CLEARED","SNIPPETS_RESET","THEME_UPDATE","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASRouterUtils","addListener","listener","global","addMessageListener","removeListener","removeMessageListener","sendMessage","sendAsyncMessage","blockById","blockBundle","bundle","executeAction","button_action","button_action_params","unblockById","unblockBundle","getNextMessage","overrideMessage","sendTelemetry","ping","payload","ac","shouldSendImpressionOnUpdate","nextProps","prevProps","message","ASRouterUISurface","React","PureComponent","props","onMessageFromParent","bind","sendImpression","sendUserActionTelemetry","state","extraProps","message_id","eventType","provider","event","onBlockById","clearBundle","setState","componentWillMount","componentWillUnmount","renderSnippets","document","renderOnboarding","render","template","defaultProps","ASRouterContent","containerElement","_mount","getElementById","ReactDOM","_unmount","unmountComponentAtNode","init","uninit","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","messageMiddleware","store","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","NEW_TAB_STATE_REQUEST","_didRequestInitialState","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","initStore","reducers","initialState","createStore","combineReducers","applyMiddleware","msg","dispatch","ex","console","error","dump","JSON","stringify","stack","ErrorBoundaryFallback","windowObj","window","onClick","location","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","children","FallbackComponent","_OpenInPrivateWindow","icon","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","eventSource","BLOCK_URL","impression","block","tiles","guid","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","onConfirm","forceBlock","body_string_id","confirm_button_string_id","cancel_button_string_id","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","ArchiveFromPocket","EditTopSite","CheckBookmark","CheckPinTopSite","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","label","intl","formatMessage","userEventData","shouldSendImpressionStats","first","last","onUpdate","getState","LinkMenu","connect","injectIntl","ContextMenu","hideContext","componentDidMount","setTimeout","addEventListener","removeEventListener","stopPropagation","i","ContextMenuItem","onKeyDown","shiftKey","VISIBLE","VISIBILITY_CHANGE_EVENT","getFormattedMessage","Disclaimer","onAcknowledge","disclaimerPref","disclaimer","text","href","button","DisclaimerIntl","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","componentWillUpdate","collapsed","sectionBody","scrollHeight","visibilityState","node","undefined","maxHeight","SectionMenuOptions","CheckCollapsed","currentTarget","renderIcon","startsWith","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","privacyNoticeURL","isFirst","isLast","isWebExtension","needsDisclaimer","active","CollapsibleSection","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","SETTINGS_OPEN","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","componentDidUpdate","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","now","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","TopSiteLink","onDragEvent","_allowDrop","e","dataTransfer","types","dragged","effectAllowed","setData","blur","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","tippyTopIcon","faviconSize","letterFallback","imageClassName","imageStyle","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","customScreenshotURL","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","altKey","ctrlKey","metaKey","onActivate","isContextMenuOpen","activeIndex","hostname","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","componentWillReceiveProps","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","topSites","slice","TopSitesRows","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","shift","topSitesUI","commonProps","maxNarrowVisibleIndex","l","topSiteIconType","slotProps","TopSiteList","gActivityStreamPrerenderedState","sendEventOrAddListener","hydrate","documentElement","lang","gActivityStreamStrings","addSnippetsSubscriber","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","_db","_dispatch","_dbTransaction","db","put","delete","clear","get","blockSnippetById","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","DISABLE_ONBOARDING","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","onMessage","TOTAL_BOOKMARKS_RESPONSE","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","onerror","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","objectStoreNames","contains","createObjectStore","err","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","snippetsMap","_refreshSnippets","cachedVersion","appData","lastUpdate","needsUpdate","Date","snippetsURL","response","fetch","status","_noSnippetFallback","_forceOnboardingVisibility","shouldBeVisible","onboardingEl","style","display","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","keys","dispatchEvent","Event","snippets","asrouterContent","initializing","subscribe","asrouterExperimentEnabled","disableSnippets","ImpressionsWrapper","sendImpressionOrAddListener","_onVisibilityChange","sendOnMount","body","classList","remove","button_label","onDoneButton","onAction","content","safeURI","protocol","URL","isAllowed","warn","Button","onBlockClicked","onBlock","containerClassName","DEFAULT_ICON_PATH","onButtonClick","renderTitle","renderButton","button_url","hasLink","button_type","hasButton","PrefsButton","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","_Base","updateTheme","sendNewTabRehydrated","isPrerendered","bodyClassName","isFirstrun","v","join","renderNotified","NEW_TAB_REHYDRATED","strings","hash","BaseContent","openPreferences","prefs","shouldBeFixedToTop","PrerenderData","arePrefsValid","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","renderMessageItem","isCurrent","lastMessageId","isBlocked","itemClassName","renderMessages","renderProviders","providers","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","_renderModalMessage","message_body","ConfirmDialog","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","order","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","needsImpressionStats","impressionCardGuids","sendImpressionStatsOrAddListener","isCollapsed","wasCollapsed","emptyState","contextMenuOptions","maxCardsPerRow","maxCardsOnNarrow","shouldShowTopics","topics","realRows","shouldShowEmptyState","sectionClassName","feed","padding","read_more_endpoint","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","maybeLoadImage","image","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","hasImage","placeholder","description","context","_Card","Card","PlaceholderCard","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","SectionMenu","Topic","Topics","t","faviconRef","countTopSitesIconsTypes","countTopSitesTypes","acc","_TopSites","onFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","topsites_icon_stats","topsites_pinned","sitesPerRow","topSitesRows","validationError","onChange","onMount","shouldFocus","focus","ev","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onCancelButtonClick","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","onClose","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","emailInput","show","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 95e95c787e32bc57db8e","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n *                       Use this in action creators if you need different logic\n *                       for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n//   INIT: \"INIT\",\n//   UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n  \"ADDONS_INFO_REQUEST\",\n  \"ADDONS_INFO_RESPONSE\",\n  \"ARCHIVE_FROM_POCKET\",\n  \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n  \"BLOCK_URL\",\n  \"BOOKMARK_URL\",\n  \"COPY_DOWNLOAD_LINK\",\n  \"DELETE_BOOKMARK_BY_ID\",\n  \"DELETE_FROM_POCKET\",\n  \"DELETE_HISTORY_URL\",\n  \"DIALOG_CANCEL\",\n  \"DIALOG_OPEN\",\n  \"DISABLE_ONBOARDING\",\n  \"DOWNLOAD_CHANGED\",\n  \"INIT\",\n  \"MIGRATION_CANCEL\",\n  \"MIGRATION_COMPLETED\",\n  \"MIGRATION_START\",\n  \"NEW_TAB_INIT\",\n  \"NEW_TAB_INITIAL_STATE\",\n  \"NEW_TAB_LOAD\",\n  \"NEW_TAB_REHYDRATED\",\n  \"NEW_TAB_STATE_REQUEST\",\n  \"NEW_TAB_UNLOAD\",\n  \"OPEN_DOWNLOAD_FILE\",\n  \"OPEN_LINK\",\n  \"OPEN_NEW_WINDOW\",\n  \"OPEN_PRIVATE_WINDOW\",\n  \"OPEN_WEBEXT_SETTINGS\",\n  \"PAGE_PRERENDERED\",\n  \"PLACES_BOOKMARK_ADDED\",\n  \"PLACES_BOOKMARK_REMOVED\",\n  \"PLACES_HISTORY_CLEARED\",\n  \"PLACES_LINKS_CHANGED\",\n  \"PLACES_LINK_BLOCKED\",\n  \"PLACES_LINK_DELETED\",\n  \"PLACES_SAVED_TO_POCKET\",\n  \"PREFS_INITIAL_VALUES\",\n  \"PREF_CHANGED\",\n  \"PREVIEW_REQUEST\",\n  \"PREVIEW_REQUEST_CANCEL\",\n  \"PREVIEW_RESPONSE\",\n  \"REMOVE_DOWNLOAD_FILE\",\n  \"RICH_ICON_MISSING\",\n  \"SAVE_SESSION_PERF_DATA\",\n  \"SAVE_TO_POCKET\",\n  \"SCREENSHOT_UPDATED\",\n  \"SECTION_DEREGISTER\",\n  \"SECTION_DISABLE\",\n  \"SECTION_ENABLE\",\n  \"SECTION_MOVE\",\n  \"SECTION_OPTIONS_CHANGED\",\n  \"SECTION_REGISTER\",\n  \"SECTION_UPDATE\",\n  \"SECTION_UPDATE_CARD\",\n  \"SETTINGS_CLOSE\",\n  \"SETTINGS_OPEN\",\n  \"SET_PREF\",\n  \"SHOW_DOWNLOAD_FILE\",\n  \"SHOW_FIREFOX_ACCOUNTS\",\n  \"SKIPPED_SIGNIN\",\n  \"SNIPPETS_BLOCKLIST_CLEARED\",\n  \"SNIPPETS_BLOCKLIST_UPDATED\",\n  \"SNIPPETS_DATA\",\n  \"SNIPPETS_RESET\",\n  \"SNIPPET_BLOCKED\",\n  \"SUBMIT_EMAIL\",\n  \"SYSTEM_TICK\",\n  \"TELEMETRY_IMPRESSION_STATS\",\n  \"TELEMETRY_PERFORMANCE_EVENT\",\n  \"TELEMETRY_UNDESIRED_EVENT\",\n  \"TELEMETRY_USER_EVENT\",\n  \"THEME_UPDATE\",\n  \"TOP_SITES_CANCEL_EDIT\",\n  \"TOP_SITES_EDIT\",\n  \"TOP_SITES_INSERT\",\n  \"TOP_SITES_PIN\",\n  \"TOP_SITES_PREFS_UPDATED\",\n  \"TOP_SITES_UNPIN\",\n  \"TOP_SITES_UPDATED\",\n  \"TOTAL_BOOKMARKS_REQUEST\",\n  \"TOTAL_BOOKMARKS_RESPONSE\",\n  \"UNINIT\",\n  \"UPDATE_SECTION_PREFS\",\n  \"WEBEXT_CLICK\",\n  \"WEBEXT_DISMISS\"\n]) {\n  actionTypes[type] = type;\n}\n\n// These are acceptable actions for AS Router messages to have. They can show up\n// as call-to-action buttons in snippets, onboarding tour, etc.\nconst ASRouterActions = {};\nfor (const type of [\n  \"OPEN_PRIVATE_BROWSER_WINDOW\",\n  \"OPEN_URL\",\n  \"OPEN_ABOUT_PAGE\"\n]) {\n  ASRouterActions[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n  const meta = action.meta ? {...action.meta} : {};\n  if (!options || !options.from || !options.to) {\n    throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n  }\n  // For each of these fields, if they are passed as an option,\n  // add them to the action. If they are not defined, remove them.\n  [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n    if (typeof options[o] !== \"undefined\") {\n      meta[o] = options[o];\n    } else if (meta[o]) {\n      delete meta[o];\n    }\n  });\n  return {...action, meta};\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {bool}   skipLocal Used by OnlyToMain to skip the main reducer\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n  return _RouteMessage(action, {\n    from: CONTENT_MESSAGE_TYPE,\n    to: MAIN_MESSAGE_TYPE,\n    fromTarget,\n    skipLocal\n  });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n  return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE\n  });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n *                    and also sent to a particular Content process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @param  {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n  if (!target) {\n    throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n  }\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE,\n    toTarget: target,\n    skipMain\n  });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n *                    and skip the main reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n  return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: PRELOAD_MESSAGE_TYPE\n  });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n *                   be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n *                     be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param  {object} data Fields to include in the ping\n * @param  {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n  const action = {type: actionTypes.SET_PREF, data: {name, value}};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n  if (!data || !data.source) {\n    throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n  }\n  const action = {type, data};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\nthis.ASRouterActions = ASRouterActions;\n\nthis.actionCreators = {\n  BroadcastToContent,\n  UserEvent,\n  ASRouterUserEvent,\n  UndesiredEvent,\n  PerfEvent,\n  ImpressionStats,\n  AlsoToOneContent,\n  OnlyToOneContent,\n  AlsoToMain,\n  OnlyToMain,\n  AlsoToPreloaded,\n  SetPref,\n  WebExtEvent\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n  isSendToMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n  },\n  isBroadcastToContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToOneContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToPreloaded(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n      action.meta.from === MAIN_MESSAGE_TYPE;\n  },\n  isFromMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.from === MAIN_MESSAGE_TYPE &&\n      action.meta.to === CONTENT_MESSAGE_TYPE;\n  },\n  getPortIdOfSender(action) {\n    return (action.meta && action.meta.fromTarget) || null;\n  },\n  _RouteMessage\n};\n\nconst EXPORTED_SYMBOLS = [\n  \"actionTypes\",\n  \"actionCreators\",\n  \"actionUtils\",\n  \"ASRouterActions\",\n  \"globalImportContext\",\n  \"UI_CODE\",\n  \"BACKGROUND_PROCESS\",\n  \"MAIN_MESSAGE_TYPE\",\n  \"CONTENT_MESSAGE_TYPE\",\n  \"PRELOAD_MESSAGE_TYPE\"\n];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Actions.jsm","module.exports = ReactIntl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactIntl\"\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","module.exports = ReactRedux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactRedux\"\n// module id = 4\n// module chunks = 0","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n  \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSitesConstants.js","this.Dedupe = class Dedupe {\n  constructor(createKey) {\n    this.createKey = createKey || this.defaultCreateKey;\n  }\n\n  defaultCreateKey(item) {\n    return item;\n  }\n\n  /**\n   * Dedupe any number of grouped elements favoring those from earlier groups.\n   *\n   * @param {Array} groups Contains an arbitrary number of arrays of elements.\n   * @returns {Array} A matching array of each provided group deduped.\n   */\n  group(...groups) {\n    const globalKeys = new Set();\n    const result = [];\n    for (const values of groups) {\n      const valueMap = new Map();\n      for (const value of values) {\n        const key = this.createKey(value);\n        if (!globalKeys.has(key) && !valueMap.has(key)) {\n          valueMap.set(key, value);\n        }\n      }\n      result.push(valueMap);\n      valueMap.forEach((value, key) => globalKeys.add(key));\n    }\n    return result.map(m => Array.from(m.values()));\n  }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Dedupe.jsm","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n  App: {\n    // Have we received real data from the app yet?\n    initialized: false,\n    // The version of the system-addon\n    version: null\n  },\n  Snippets: {initialized: false},\n  TopSites: {\n    // Have we received real data from history yet?\n    initialized: false,\n    // The history (and possibly default) links\n    rows: [],\n    // Used in content only to dispatch action to TopSiteForm.\n    editForm: null\n  },\n  Prefs: {\n    initialized: false,\n    values: {}\n  },\n  Theme: {className: \"\"},\n  Dialog: {\n    visible: false,\n    data: {}\n  },\n  Sections: []\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n  switch (action.type) {\n    case at.INIT:\n      return Object.assign({}, prevState, action.data || {}, {initialized: true});\n    default:\n      return prevState;\n  }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n  // Remove any pinned links\n  const pinnedUrls = pinned.map(link => link && link.url);\n  let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n  newLinks = newLinks.map(link => {\n    if (link && link.isPinned) {\n      delete link.isPinned;\n      delete link.pinIndex;\n    }\n    return link;\n  });\n\n  // Then insert them in their specified location\n  pinned.forEach((val, index) => {\n    if (!val) { return; }\n    let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n    if (index > newLinks.length) {\n      newLinks[index] = link;\n    } else {\n      newLinks.splice(index, 0, link);\n    }\n  });\n\n  return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n  let hasMatch;\n  let newRows;\n  switch (action.type) {\n    case at.TOP_SITES_UPDATED:\n      if (!action.data || !action.data.links) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n    case at.TOP_SITES_PREFS_UPDATED:\n      return Object.assign({}, prevState, {pref: action.data.pref});\n    case at.TOP_SITES_EDIT:\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: action.data.index,\n          previewResponse: null\n        }\n      });\n    case at.TOP_SITES_CANCEL_EDIT:\n      return Object.assign({}, prevState, {editForm: null});\n    case at.PREVIEW_RESPONSE:\n      if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: action.data.preview,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST_CANCEL:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null\n        }\n      });\n    case at.SCREENSHOT_UPDATED:\n      newRows = prevState.rows.map(row => {\n        if (row && row.url === action.data.url) {\n          hasMatch = true;\n          return Object.assign({}, row, {screenshot: action.data.screenshot});\n        }\n        return row;\n      });\n      return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n          return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const newSite = Object.assign({}, site);\n          delete newSite.bookmarkGuid;\n          delete newSite.bookmarkTitle;\n          delete newSite.bookmarkDateCreated;\n          return newSite;\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_LINK_DELETED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.filter(site => action.data.url !== site.url);\n      return Object.assign({}, prevState, {rows: newRows});\n    default:\n      return prevState;\n  }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n  switch (action.type) {\n    case at.DIALOG_OPEN:\n      return Object.assign({}, prevState, {visible: true, data: action.data});\n    case at.DIALOG_CANCEL:\n      return Object.assign({}, prevState, {visible: false});\n    case at.DELETE_HISTORY_URL:\n      return Object.assign({}, INITIAL_STATE.Dialog);\n    default:\n      return prevState;\n  }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n  let newValues;\n  switch (action.type) {\n    case at.PREFS_INITIAL_VALUES:\n      return Object.assign({}, prevState, {initialized: true, values: action.data});\n    case at.PREF_CHANGED:\n      newValues = Object.assign({}, prevState.values);\n      newValues[action.data.name] = action.data.value;\n      return Object.assign({}, prevState, {values: newValues});\n    default:\n      return prevState;\n  }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n  let hasMatch;\n  let newState;\n  switch (action.type) {\n    case at.SECTION_DEREGISTER:\n      return prevState.filter(section => section.id !== action.data);\n    case at.SECTION_REGISTER:\n      // If section exists in prevState, update it\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          hasMatch = true;\n          return Object.assign({}, section, action.data);\n        }\n        return section;\n      });\n      // Otherwise, append it\n      if (!hasMatch) {\n        const initialized = !!(action.data.rows && action.data.rows.length > 0);\n        const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n        newState.push(section);\n      }\n      return newState;\n    case at.SECTION_UPDATE:\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          // If the action is updating rows, we should consider initialized to be true.\n          // This can be overridden if initialized is defined in the action.data\n          const initialized = action.data.rows ? {initialized: true} : {};\n\n          // Make sure pinned cards stay at their current position when rows are updated.\n          // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n          if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n            const rows = Array.from(action.data.rows);\n            section.rows.forEach((card, index) => {\n              if (card.pinned) {\n                rows.splice(index, 0, card);\n              }\n            });\n            return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n          }\n\n          return Object.assign({}, section, initialized, action.data);\n        }\n        return section;\n      });\n\n      if (!action.data.dedupeConfigurations) {\n        return newState;\n      }\n\n      action.data.dedupeConfigurations.forEach(dedupeConf => {\n        newState = newState.map(section => {\n          if (section.id === dedupeConf.id) {\n            const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n              const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n              const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n              return newRows;\n            }, section.rows);\n\n            return Object.assign({}, section, {rows: dedupedRows});\n          }\n\n          return section;\n        });\n      });\n\n      return newState;\n    case at.SECTION_UPDATE_CARD:\n      return prevState.map(section => {\n        if (section && section.id === action.data.id && section.rows) {\n          const newRows = section.rows.map(card => {\n            if (card.url === action.data.url) {\n              return Object.assign({}, card, action.data.options);\n            }\n            return card;\n          });\n          return Object.assign({}, section, {rows: newRows});\n        }\n        return section;\n      });\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the item within the rows that is attempted to be bookmarked\n          if (item.url === action.data.url) {\n            const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n            return Object.assign({}, item, {\n              bookmarkGuid,\n              bookmarkTitle,\n              bookmarkDateCreated: dateAdded,\n              type: \"bookmark\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_SAVED_TO_POCKET:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          if (item.url === action.data.url) {\n            return Object.assign({}, item, {\n              open_url: action.data.open_url,\n              pocket_id: action.data.pocket_id,\n              title: action.data.title,\n              type: \"pocket\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the bookmark within the rows that is attempted to be removed\n          if (item.url === action.data.url) {\n            const newSite = Object.assign({}, item);\n            delete newSite.bookmarkGuid;\n            delete newSite.bookmarkTitle;\n            delete newSite.bookmarkDateCreated;\n            if (!newSite.type || newSite.type === \"bookmark\") {\n              newSite.type = \"history\";\n            }\n            return newSite;\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_LINK_DELETED:\n    case at.PLACES_LINK_BLOCKED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n    case at.DELETE_FROM_POCKET:\n    case at.ARCHIVE_FROM_POCKET:\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n    default:\n      return prevState;\n  }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n  switch (action.type) {\n    case at.SNIPPETS_DATA:\n      return Object.assign({}, prevState, {initialized: true}, action.data);\n    case at.SNIPPET_BLOCKED:\n      return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n    case at.SNIPPETS_BLOCKLIST_CLEARED:\n      return Object.assign({}, prevState, {blockList: []});\n    case at.SNIPPETS_RESET:\n      return INITIAL_STATE.Snippets;\n    default:\n      return prevState;\n  }\n}\n\nfunction Theme(prevState = INITIAL_STATE.Theme, action) {\n  switch (action.type) {\n    case at.THEME_UPDATE:\n      return Object.assign({}, prevState, action.data);\n    default:\n      return prevState;\n  }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Reducers.jsm","import {actionCreators as ac, ASRouterActions as ra} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {OnboardingMessage} from \"./templates/OnboardingMessage/OnboardingMessage\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\n\nexport const ASRouterUtils = {\n  addListener(listener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  removeListener(listener) {\n    global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  sendMessage(action) {\n    global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  },\n  blockById(id) {\n    ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  blockBundle(bundle) {\n    ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n  },\n  executeAction({button_action, button_action_params}) {\n    if (button_action in ra) {\n      ASRouterUtils.sendMessage({type: button_action, data: {button_action_params}});\n    }\n  },\n  unblockById(id) {\n    ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  unblockBundle(bundle) {\n    ASRouterUtils.sendMessage({type: \"UNBLOCK_BUNDLE\", data: {bundle}});\n  },\n  getNextMessage() {\n    ASRouterUtils.sendMessage({type: \"GET_NEXT_MESSAGE\"});\n  },\n  overrideMessage(id) {\n    ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n  },\n  sendTelemetry(ping) {\n    const payload = ac.ASRouterUserEvent(ping);\n    global.sendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n  }\n};\n\n// Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />\nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n  return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessageFromParent = this.onMessageFromParent.bind(this);\n    this.sendImpression = this.sendImpression.bind(this);\n    this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n    this.state = {message: {}, bundle: {}};\n  }\n\n  sendUserActionTelemetry(extraProps = {}) {\n    const {message, bundle} = this.state;\n    if (!message && !extraProps.message_id) {\n      throw new Error(`You must provide a message_id for bundled messages`);\n    }\n    const eventType = `${message.provider || bundle.provider}_user_event`;\n\n    ASRouterUtils.sendTelemetry({\n      message_id: message.id || extraProps.message_id,\n      source: this.props.id,\n      action: eventType,\n      ...extraProps\n    });\n  }\n\n  sendImpression() {\n    this.sendUserActionTelemetry({event: \"IMPRESSION\"});\n  }\n\n  onBlockById(id) {\n    return () => ASRouterUtils.blockById(id);\n  }\n\n  clearBundle(bundle) {\n    return () => ASRouterUtils.blockBundle(bundle);\n  }\n\n  onMessageFromParent({data: action}) {\n    switch (action.type) {\n      case \"SET_MESSAGE\":\n        this.setState({message: action.data});\n        break;\n      case \"SET_BUNDLED_MESSAGES\":\n        this.setState({bundle: action.data});\n        break;\n      case \"CLEAR_MESSAGE\":\n        if (action.data.id === this.state.message.id) {\n          this.setState({message: {}});\n        }\n        break;\n      case \"CLEAR_BUNDLE\":\n        if (this.state.bundle.bundle) {\n          this.setState({bundle: {}});\n        }\n        break;\n      case \"CLEAR_ALL\":\n        this.setState({message: {}, bundle: {}});\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.addListener(this.onMessageFromParent);\n    ASRouterUtils.sendMessage({type: \"CONNECT_UI_REQUEST\"});\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessageFromParent);\n  }\n\n  renderSnippets() {\n    return (\n      <ImpressionsWrapper\n        message={this.state.message}\n        sendImpression={this.sendImpression}\n        shouldSendImpressionOnUpdate={shouldSendImpressionOnUpdate}\n        // This helps with testing\n        document={this.props.document}>\n          <SimpleSnippet\n            {...this.state.message}\n            UISurface=\"NEWTAB_FOOTER_BAR\"\n            getNextMessage={ASRouterUtils.getNextMessage}\n            onBlock={this.onBlockById(this.state.message.id)}\n            sendUserActionTelemetry={this.sendUserActionTelemetry} />\n      </ImpressionsWrapper>);\n  }\n\n  renderOnboarding() {\n    return (\n      <OnboardingMessage\n        {...this.state.bundle}\n        UISurface=\"NEWTAB_OVERLAY\"\n        onAction={ASRouterUtils.executeAction}\n        onDoneButton={this.clearBundle(this.state.bundle.bundle)}\n        getNextMessage={ASRouterUtils.getNextMessage}\n        sendUserActionTelemetry={this.sendUserActionTelemetry} />);\n  }\n\n  render() {\n    const {message, bundle} = this.state;\n    if (!message.id && !bundle.template) { return null; }\n    if (bundle.template === \"onboarding\") { return this.renderOnboarding(); }\n    return this.renderSnippets();\n  }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport class ASRouterContent {\n  constructor() {\n    this.initialized = false;\n    this.containerElement = null;\n  }\n\n  _mount() {\n    this.containerElement = global.document.getElementById(\"snippets-container\");\n    ReactDOM.render(<ASRouterUISurface />, this.containerElement);\n  }\n\n  _unmount() {\n    ReactDOM.unmountComponentAtNode(this.containerElement);\n  }\n\n  init() {\n    this._mount();\n    this.initialized = true;\n  }\n\n  uninit() {\n    if (this.initialized) {\n      this._unmount();\n      this.initialized = false;\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/asrouter-content.jsx","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param  {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function}             a reducer that, on MERGE_STORE_ACTION action,\n *                                will return the action.data object merged\n *                                into the previous state, and the result\n *                                of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n  return (prevState, action) => {\n    if (action.type === MERGE_STORE_ACTION) {\n      return {...prevState, ...action.data};\n    }\n\n    return mainReducer(prevState, action);\n  };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n  const skipLocal = action.meta && action.meta.skipLocal;\n  if (au.isSendToMain(action)) {\n    sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  }\n  if (!skipLocal) {\n    next(action);\n  }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n  if (store._didRehydrate) {\n    return next(action);\n  }\n\n  const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n  const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n  if (isRehydrationRequest) {\n    store._didRequestInitialState = true;\n    return next(action);\n  }\n\n  if (isMergeStoreAction) {\n    store._didRehydrate = true;\n    return next(action);\n  }\n\n  // If init happened after our request was made, we need to re-request\n  if (store._didRequestInitialState && action.type === at.INIT) {\n    return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n  }\n\n  if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n    // Note that actions received before didRehydrate will not be dispatched\n    // because this could negatively affect preloading and the the state\n    // will be replaced by rehydration anyway.\n    return null;\n  }\n\n  return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n  if (store._receivedFromMain) {\n    next(action);\n  } else if (au.isFromMain(action)) {\n    next(action);\n    store._receivedFromMain = true;\n    // Sending out all the early actions as main is ready now\n    if (store._earlyActionQueue) {\n      store._earlyActionQueue.forEach(next);\n      store._earlyActionQueue = [];\n    }\n  } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n    store._earlyActionQueue = store._earlyActionQueue || [];\n    store._earlyActionQueue.push(action);\n  } else {\n    // Let any other type of action go through\n    next(action);\n  }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param  {object} reducers An object containing Redux reducers\n * @param  {object} intialState (optional) The initial state of the store, if desired\n * @return {object}          A redux store\n */\nexport function initStore(reducers, initialState) {\n  const store = createStore(\n    mergeStateReducer(combineReducers(reducers)),\n    initialState,\n    global.addMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n  );\n\n  store._didRehydrate = false;\n  store._didRequestInitialState = false;\n\n  if (global.addMessageListener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, msg => {\n      try {\n        store.dispatch(msg.data);\n      } catch (ex) {\n        console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n        dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n      }\n    });\n  }\n\n  return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/init-store.js","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 9\n// module chunks = 0","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.windowObj = this.props.windowObj || window;\n    this.onClick = this.onClick.bind(this);\n  }\n\n  /**\n   * Since we only get here if part of the page has crashed, do a\n   * forced reload to give us the best chance at recovering.\n   */\n  onClick() {\n    this.windowObj.location.reload(true);\n  }\n\n  render() {\n    const defaultClass = \"as-error-fallback\";\n    let className;\n    if (\"className\" in this.props) {\n      className = `${this.props.className} ${defaultClass}`;\n    } else {\n      className = defaultClass;\n    }\n\n    // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n    return (\n      <div className={className}>\n        <div>\n          <FormattedMessage\n            defaultMessage=\"Oops, something went wrong loading this content.\"\n            id=\"error_fallback_default_info\" />\n        </div>\n        <span>\n          <a href=\"#\" className=\"reload-button\" onClick={this.onClick}>\n            <FormattedMessage\n              defaultMessage=\"Refresh page to try again.\"\n              id=\"error_fallback_default_refresh_suggestion\" />\n          </a>\n        </span>\n      </div>\n    );\n  }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {hasError: false};\n  }\n\n  componentDidCatch(error, info) {\n    this.setState({hasError: true});\n  }\n\n  render() {\n    if (!this.state.hasError) {\n      return (this.props.children);\n    }\n\n    return <this.props.FallbackComponent className={this.props.className} />;\n  }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n  id: \"menu_action_open_private_window\",\n  icon: \"new-window-private\",\n  action: ac.OnlyToMain({\n    type: at.OPEN_PRIVATE_WINDOW,\n    data: {url: site.url, referrer: site.referrer}\n  }),\n  userEvent: \"OPEN_PRIVATE_WINDOW\"\n});\n\nexport const GetPlatformString = platform => {\n  switch (platform) {\n    case \"win\":\n      return \"menu_action_show_file_windows\";\n    case \"macosx\":\n      return \"menu_action_show_file_mac_os\";\n    case \"linux\":\n      return \"menu_action_show_file_linux\";\n    default:\n      return \"menu_action_show_file_default\";\n  }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  EmptyItem: () => ({type: \"empty\"}),\n  RemoveBookmark: site => ({\n    id: \"menu_action_remove_bookmark\",\n    icon: \"bookmark-added\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_BOOKMARK_BY_ID,\n      data: site.bookmarkGuid\n    }),\n    userEvent: \"BOOKMARK_DELETE\"\n  }),\n  AddBookmark: site => ({\n    id: \"menu_action_bookmark\",\n    icon: \"bookmark-hollow\",\n    action: ac.AlsoToMain({\n      type: at.BOOKMARK_URL,\n      data: {url: site.url, title: site.title, type: site.type}\n    }),\n    userEvent: \"BOOKMARK_ADD\"\n  }),\n  OpenInNewWindow: site => ({\n    id: \"menu_action_open_new_window\",\n    icon: \"new-window\",\n    action: ac.AlsoToMain({\n      type: at.OPEN_NEW_WINDOW,\n      data: {\n        referrer: site.referrer,\n        typedBonus: site.typedBonus,\n        url: site.url\n      }\n    }),\n    userEvent: \"OPEN_NEW_WINDOW\"\n  }),\n  BlockUrl: (site, index, eventSource) => ({\n    id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.AlsoToMain({\n      type: at.BLOCK_URL,\n      data: {url: site.url, pocket_id: site.pocket_id}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      block: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"BLOCK\"\n  }),\n\n  // This is an option for web extentions which will result in remove items from\n  // memory and notify the web extenion, rather than using the built-in block list.\n  WebExtDismiss: (site, index, eventSource) => ({\n    id: \"menu_action_webext_dismiss\",\n    string_id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n      source: eventSource,\n      url: site.url,\n      action_position: index\n    })\n  }),\n  DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n    id: \"menu_action_delete\",\n    icon: \"delete\",\n    action: {\n      type: at.DIALOG_OPEN,\n      data: {\n        onConfirm: [\n          ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n          ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo))\n        ],\n        eventSource,\n        body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n        confirm_button_string_id: \"menu_action_delete\",\n        cancel_button_string_id: \"topsites_form_cancel_button\",\n        icon: \"modal-delete\"\n      }\n    },\n    userEvent: \"DIALOG_OPEN\"\n  }),\n  ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n    id: GetPlatformString(platform),\n    icon: \"search\",\n    action: ac.OnlyToMain({\n      type: at.SHOW_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  OpenFile: site => ({\n    id: \"menu_action_open_file\",\n    icon: \"open-file\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  CopyDownloadLink: site => ({\n    id: \"menu_action_copy_download_link\",\n    icon: \"copy\",\n    action: ac.OnlyToMain({\n      type: at.COPY_DOWNLOAD_LINK,\n      data: {url: site.url}\n    })\n  }),\n  GoToDownloadPage: site => ({\n    id: \"menu_action_go_to_download_page\",\n    icon: \"download\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: site.referrer}\n    }),\n    disabled: !site.referrer\n  }),\n  RemoveDownload: site => ({\n    id: \"menu_action_remove_download\",\n    icon: \"delete\",\n    action: ac.OnlyToMain({\n      type: at.REMOVE_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  PinTopSite: (site, index) => ({\n    id: \"menu_action_pin\",\n    icon: \"pin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_PIN,\n      data: {site: {url: site.url}, index}\n    }),\n    userEvent: \"PIN\"\n  }),\n  UnpinTopSite: site => ({\n    id: \"menu_action_unpin\",\n    icon: \"unpin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_UNPIN,\n      data: {site: {url: site.url}}\n    }),\n    userEvent: \"UNPIN\"\n  }),\n  SaveToPocket: (site, index, eventSource) => ({\n    id: \"menu_action_save_to_pocket\",\n    icon: \"pocket\",\n    action: ac.AlsoToMain({\n      type: at.SAVE_TO_POCKET,\n      data: {site: {url: site.url, title: site.title}}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      pocket: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"SAVE_TO_POCKET\"\n  }),\n  DeleteFromPocket: site => ({\n    id: \"menu_action_delete_pocket\",\n    icon: \"delete\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"DELETE_FROM_POCKET\"\n  }),\n  ArchiveFromPocket: site => ({\n    id: \"menu_action_archive_pocket\",\n    icon: \"check\",\n    action: ac.AlsoToMain({\n      type: at.ARCHIVE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"ARCHIVE_FROM_POCKET\"\n  }),\n  EditTopSite: (site, index) => ({\n    id: \"edit_topsites_button_text\",\n    icon: \"edit\",\n    action: {\n      type: at.TOP_SITES_EDIT,\n      data: {index}\n    }\n  }),\n  CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n  CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n  CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n  CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n  OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem())\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/link-menu-options.js","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n    const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n    // Handle special case of default site\n    const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n    const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n      const {action, impression, id, string_id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id: string_id || id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            const userEventData = Object.assign({\n              event: userEvent,\n              source,\n              action_position: index\n            }, siteInfo);\n            props.dispatch(ac.UserEvent(userEventData));\n          }\n          if (impression && props.shouldSendImpressionStats) {\n            props.dispatch(impression);\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.hideContext = this.hideContext.bind(this);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  hideContext() {\n    this.props.onUpdate(false);\n  }\n\n  componentDidMount() {\n    setTimeout(() => {\n      global.addEventListener(\"click\", this.hideContext);\n    }, 0);\n  }\n\n  componentWillUnmount() {\n    global.removeEventListener(\"click\", this.hideContext);\n  }\n\n  onClick(event) {\n    // Eat all clicks on the context menu so they don't bubble up to window.\n    // This prevents the context menu from closing when clicking disabled items\n    // or the separators.\n    event.stopPropagation();\n  }\n\n  render() {\n    return (<span className=\"context-menu\" onClick={this.onClick}>\n      <ul role=\"menu\" className=\"context-menu-list\">\n        {this.props.options.map((option, i) => (option.type === \"separator\" ?\n          (<li key={i} className=\"separator\" />) :\n          (option.type !== \"empty\" && <ContextMenuItem key={i} option={option} hideContext={this.hideContext} />)\n        ))}\n      </ul>\n    </span>);\n  }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onKeyDown = this.onKeyDown.bind(this);\n  }\n\n  onClick() {\n    this.props.hideContext();\n    this.props.option.onClick();\n  }\n\n  onKeyDown(event) {\n    const {option} = this.props;\n    switch (event.key) {\n      case \"Tab\":\n        // tab goes down in context menu, shift + tab goes up in context menu\n        // if we're on the last item, one more tab will close the context menu\n        // similarly, if we're on the first item, one more shift + tab will close it\n        if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n          this.props.hideContext();\n        }\n        break;\n      case \"Enter\":\n        this.props.hideContext();\n        option.onClick();\n        break;\n    }\n  }\n\n  render() {\n    const {option} = this.props;\n    return (\n      <li role=\"menuitem\" className=\"context-menu-item\">\n        <a onClick={this.onClick} onKeyDown={this.onKeyDown} tabIndex=\"0\" className={option.disabled ? \"disabled\" : \"\"}>\n          {option.icon && <span className={`icon icon-spacer icon-${option.icon}`} />}\n          {option.label}\n        </a>\n      </li>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Disclaimer extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onAcknowledge = this.onAcknowledge.bind(this);\n  }\n\n  onAcknowledge() {\n    this.props.dispatch(ac.SetPref(this.props.disclaimerPref, false));\n    this.props.dispatch(ac.UserEvent({event: \"DISCLAIMER_ACKED\", source: this.props.eventSource}));\n  }\n\n  render() {\n    const {disclaimer} = this.props;\n    return (\n      <div className=\"section-disclaimer\">\n          <div className=\"section-disclaimer-text\">\n            {getFormattedMessage(disclaimer.text)}\n            {disclaimer.link &&\n              <a href={disclaimer.link.href} target=\"_blank\" rel=\"noopener noreferrer\">\n                {getFormattedMessage(disclaimer.link.title || disclaimer.link)}\n              </a>\n            }\n          </div>\n\n          <button onClick={this.onAcknowledge}>\n            {getFormattedMessage(disclaimer.button)}\n          </button>\n      </div>\n    );\n  }\n}\n\nexport const DisclaimerIntl = injectIntl(Disclaimer);\n\nexport class _CollapsibleSection extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBodyMount = this.onBodyMount.bind(this);\n    this.onHeaderClick = this.onHeaderClick.bind(this);\n    this.onTransitionEnd = this.onTransitionEnd.bind(this);\n    this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n    this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n  }\n\n  componentWillMount() {\n    this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  componentWillUpdate(nextProps) {\n    // Check if we're about to go from expanded to collapsed\n    if (!this.props.collapsed && nextProps.collapsed) {\n      // This next line forces a layout flush of the section body, which has a\n      // max-height style set, so that the upcoming collapse animation can\n      // animate from that height to the collapsed height. Without this, the\n      // update is coalesced and there's no animation from no-max-height to 0.\n      this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n    }\n  }\n\n  componentWillUnmount() {\n    this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  enableOrDisableAnimation() {\n    // Only animate the collapse/expand for visible tabs.\n    const visible = this.props.document.visibilityState === VISIBLE;\n    if (this.state.enableAnimation !== visible) {\n      this.setState({enableAnimation: visible});\n    }\n  }\n\n  onBodyMount(node) {\n    this.sectionBody = node;\n  }\n\n  onHeaderClick() {\n    // If this.sectionBody is unset, it means that we're in some sort of error\n    // state, probably displaying the error fallback, so we won't be able to\n    // compute the height, and we don't want to persist the preference.\n    // If props.collapsed is undefined handler shouldn't do anything.\n    if (!this.sectionBody || this.props.collapsed === undefined) {\n      return;\n    }\n\n    // Get the current height of the body so max-height transitions can work\n    this.setState({\n      isAnimating: true,\n      maxHeight: `${this.sectionBody.scrollHeight}px`\n    });\n    const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n    this.props.dispatch(action);\n    this.props.dispatch(ac.UserEvent({\n      event: userEvent,\n      source: this.props.source\n    }));\n  }\n\n  onTransitionEnd(event) {\n    // Only update the animating state for our own transition (not a child's)\n    if (event.target === event.currentTarget) {\n      this.setState({isAnimating: false});\n    }\n  }\n\n  renderIcon() {\n    const {icon} = this.props;\n    if (icon && icon.startsWith(\"moz-extension://\")) {\n      return <span className=\"icon icon-small-spacer\" style={{backgroundImage: `url('${icon}')`}} />;\n    }\n    return <span className={`icon icon-small-spacer icon-${icon || \"webextension\"}`} />;\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuButtonMouseEnter() {\n    this.setState({menuButtonHover: true});\n  }\n\n  onMenuButtonMouseLeave() {\n    this.setState({menuButtonHover: false});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const isCollapsible = this.props.collapsed !== undefined;\n    const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n    const {id, eventSource, collapsed, disclaimer, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n    const disclaimerPref = `section.${id}.showDisclaimer`;\n    const needsDisclaimer = disclaimer && this.props.Prefs.values[disclaimerPref];\n    const active = menuButtonHover || showContextMenu;\n    return (\n      <section\n        className={`collapsible-section ${this.props.className}${enableAnimation ? \" animation-enabled\" : \"\"}${collapsed ? \" collapsed\" : \"\"}${active ? \" active\" : \"\"}`}\n        // Note: data-section-id is used for web extension api tests in mozilla central\n        data-section-id={id}>\n        <div className=\"section-top-bar\">\n          <h3 className=\"section-title\">\n            <span className=\"click-target\" onClick={this.onHeaderClick}>\n              {this.renderIcon()}\n              {getFormattedMessage(title)}\n              {isCollapsible && <span className={`collapsible-arrow icon ${collapsed ? \"icon-arrowhead-forward-small\" : \"icon-arrowhead-down-small\"}`} />}\n            </span>\n          </h3>\n          <div>\n            <button\n              className=\"context-menu-button icon\"\n              onClick={this.onMenuButtonClick}\n              onMouseEnter={this.onMenuButtonMouseEnter}\n              onMouseLeave={this.onMenuButtonMouseLeave}>\n              <span className=\"sr-only\">\n                <FormattedMessage id=\"section_context_menu_button_sr\" />\n              </span>\n            </button>\n            {showContextMenu &&\n              <SectionMenu\n                id={id}\n                extraOptions={extraMenuOptions}\n                eventSource={eventSource}\n                showPrefName={showPrefName}\n                privacyNoticeURL={privacyNoticeURL}\n                collapsed={collapsed}\n                onUpdate={this.onMenuUpdate}\n                isFirst={isFirst}\n                isLast={isLast}\n                dispatch={dispatch}\n                isWebExtension={isWebExtension} />\n            }\n          </div>\n        </div>\n        <ErrorBoundary className=\"section-body-fallback\">\n          <div\n            className={`section-body${isAnimating ? \" animating\" : \"\"}`}\n            onTransitionEnd={this.onTransitionEnd}\n            ref={this.onBodyMount}\n            style={isAnimating && !collapsed ? {maxHeight} : null}>\n            {needsDisclaimer && <DisclaimerIntl disclaimerPref={disclaimerPref} disclaimer={disclaimer} eventSource={eventSource} dispatch={this.props.dispatch} />}\n            {this.props.children}\n          </div>\n        </ErrorBoundary>\n      </section>\n    );\n  }\n}\n\n_CollapsibleSection.defaultProps = {\n  document: global.document || {\n    addEventListener: () => {},\n    removeEventListener: () => {},\n    visibilityState: \"hidden\"\n  },\n  Prefs: {values: {}}\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  MoveUp: section => ({\n    id: \"section_menu_action_move_up\",\n    icon: \"arrowhead-up\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: -1}\n    }),\n    userEvent: \"MENU_MOVE_UP\",\n    disabled: !!section.isFirst\n  }),\n  MoveDown: section => ({\n    id: \"section_menu_action_move_down\",\n    icon: \"arrowhead-down\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: +1}\n    }),\n    userEvent: \"MENU_MOVE_DOWN\",\n    disabled: !!section.isLast\n  }),\n  RemoveSection: section => ({\n    id: \"section_menu_action_remove_section\",\n    icon: \"dismiss\",\n    action: ac.SetPref(section.showPrefName, false),\n    userEvent: \"MENU_REMOVE\"\n  }),\n  CollapseSection: section => ({\n    id: \"section_menu_action_collapse_section\",\n    icon: \"minimize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n    userEvent: \"MENU_COLLAPSE\"\n  }),\n  ExpandSection: section => ({\n    id: \"section_menu_action_expand_section\",\n    icon: \"maximize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n    userEvent: \"MENU_EXPAND\"\n  }),\n  ManageSection: section => ({\n    id: \"section_menu_action_manage_section\",\n    icon: \"settings\",\n    action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n    userEvent: \"MENU_MANAGE\"\n  }),\n  ManageWebExtension: section => ({\n    id: \"section_menu_action_manage_webext\",\n    icon: \"settings\",\n    action: ac.OnlyToMain({type: at.OPEN_WEBEXT_SETTINGS, data: section.id})\n  }),\n  AddTopSite: section => ({\n    id: \"section_menu_action_add_topsite\",\n    icon: \"add\",\n    action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n    userEvent: \"MENU_ADD_TOPSITE\"\n  }),\n  PrivacyNotice: section => ({\n    id: \"section_menu_action_privacy_notice\",\n    icon: \"info\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: section.privacyNoticeURL}\n    }),\n    userEvent: \"MENU_PRIVACY_NOTICE\"\n  }),\n  CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section))\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/section-menu-options.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n  constructor(props) {\n    super(props);\n    // Just for test dependency injection:\n    this.perfSvc = this.props.perfSvc || perfSvc;\n\n    this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n    this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n    this._reportMissingData = false;\n    this._timestampHandled = false;\n    this._recordedFirstRender = false;\n  }\n\n  componentDidMount() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  componentDidUpdate() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  /**\n   * Call the given callback after the upcoming frame paints.\n   *\n   * @note Both setTimeout and requestAnimationFrame are throttled when the page\n   * is hidden, so this callback may get called up to a second or so after the\n   * requestAnimationFrame \"paint\" for hidden tabs.\n   *\n   * Newtabs hidden while loading will presumably be fairly rare (other than\n   * preloaded tabs, which we will be filtering out on the server side), so such\n   * cases should get lost in the noise.\n   *\n   * If we decide that it's important to find out when something that's hidden\n   * has \"painted\", however, another option is to post a message to this window.\n   * That should happen even faster than setTimeout, and, at least as of this\n   * writing, it's not throttled in hidden windows in Firefox.\n   *\n   * @param {Function} callback\n   *\n   * @returns void\n   */\n  _afterFramePaint(callback) {\n    requestAnimationFrame(() => setTimeout(callback, 0));\n  }\n\n  _maybeSendBadStateEvent() {\n    // Follow up bugs:\n    // https://github.com/mozilla/activity-stream/issues/3691\n    if (!this.props.initialized) {\n      // Remember to report back when data is available.\n      this._reportMissingData = true;\n    } else if (this._reportMissingData) {\n      this._reportMissingData = false;\n      // Report how long it took for component to become initialized.\n      this._sendBadStateEvent();\n    }\n  }\n\n  _maybeSendPaintedEvent() {\n    // If we've already handled a timestamp, don't do it again.\n    if (this._timestampHandled || !this.props.initialized) {\n      return;\n    }\n\n    // And if we haven't, we're doing so now, so remember that. Even if\n    // something goes wrong in the callback, we can't try again, as we'd be\n    // sending back the wrong data, and we have to do it here, so that other\n    // calls to this method while waiting for the next frame won't also try to\n    // handle it.\n    this._timestampHandled = true;\n    this._afterFramePaint(this._sendPaintedEvent);\n  }\n\n  /**\n   * Triggered by call to render. Only first call goes through due to\n   * `_recordedFirstRender`.\n   */\n  _ensureFirstRenderTsRecorded() {\n    // Used as t0 for recording how long component took to initialize.\n    if (!this._recordedFirstRender) {\n      this._recordedFirstRender = true;\n      // topsites_first_render_ts, highlights_first_render_ts.\n      const key = `${this.props.id}_first_render_ts`;\n      this.perfSvc.mark(key);\n    }\n  }\n\n  /**\n   * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n   * of how much longer the data took to be ready for display than it would\n   * have been the ideal case.\n   * https://github.com/mozilla/ping-centre/issues/98\n   */\n  _sendBadStateEvent() {\n    // highlights_data_ready_ts, topsites_data_ready_ts.\n    const dataReadyKey = `${this.props.id}_data_ready_ts`;\n    this.perfSvc.mark(dataReadyKey);\n\n    try {\n      const firstRenderKey = `${this.props.id}_first_render_ts`;\n      // value has to be Int32.\n      const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n                             this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        // highlights_data_late_by_ms, topsites_data_late_by_ms.\n        data: {[`${this.props.id}_data_late_by_ms`]: value}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.\n    }\n  }\n\n  _sendPaintedEvent() {\n    // Record first_painted event but only send if topsites.\n    if (this.props.id !== \"topsites\") {\n      return;\n    }\n\n    // topsites_first_painted_ts.\n    const key = `${this.props.id}_first_painted_ts`;\n    this.perfSvc.mark(key);\n\n    try {\n      const data = {};\n      data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up, and should continue\n      // to set this._timestampHandled to avoid going through this again.\n    }\n  }\n\n  render() {\n    if (RECORDED_SECTIONS.includes(this.props.id)) {\n      this._ensureFirstRenderTsRecorded();\n      this._maybeSendBadStateEvent();\n    }\n    return this.props.children;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n  ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n  // Borrow the high-resolution timer from the hidden window....\n  usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n  // we must be running in content space\n  // eslint-disable-next-line no-undef\n  usablePerfObj = performance;\n} else {\n  // This is a dummy object so this file doesn't crash in the node prerendering\n  // task.\n  usablePerfObj = {\n    now() {},\n    mark() {}\n  };\n}\n\nfunction _PerfService(options) {\n  // For testing, so that we can use a fake Window.performance object with\n  // known state.\n  if (options && options.performanceObj) {\n    this._perf = options.performanceObj;\n  } else {\n    this._perf = usablePerfObj;\n  }\n}\n\n_PerfService.prototype = {\n  /**\n   * Calls the underlying mark() method on the appropriate Window.performance\n   * object to add a mark with the given name to the appropriate performance\n   * timeline.\n   *\n   * @param  {String} name  the name to give the current mark\n   * @return {void}\n   */\n  mark: function mark(str) {\n    this._perf.mark(str);\n  },\n\n  /**\n   * Calls the underlying getEntriesByName on the appropriate Window.performance\n   * object.\n   *\n   * @param  {String} name\n   * @param  {String} type eg \"mark\"\n   * @return {Array}       Performance* objects\n   */\n  getEntriesByName: function getEntriesByName(name, type) {\n    return this._perf.getEntriesByName(name, type);\n  },\n\n  /**\n   * The timeOrigin property from the appropriate performance object.\n   * Used to ensure that timestamps from the add-on code and the content code\n   * are comparable.\n   *\n   * @note If this is called from a context without a window\n   * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n   * window, which appears to be the first created window (and thus\n   * timeOrigin) in the browser.  Note also, however, there is also a private\n   * hidden window, presumably for private browsing, which appears to be\n   * created dynamically later.  Exactly how/when that shows up needs to be\n   * investigated.\n   *\n   * @return {Number} A double of milliseconds with a precision of 0.5us.\n   */\n  get timeOrigin() {\n    return this._perf.timeOrigin;\n  },\n\n  /**\n   * Returns the \"absolute\" version of performance.now(), i.e. one that\n   * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n   * be comparable across both chrome and content.\n   *\n   * @return {Number}\n   */\n  absNow: function absNow() {\n    return this.timeOrigin + this._perf.now();\n  },\n\n  /**\n   * This returns the absolute startTime from the most recent performance.mark()\n   * with the given name.\n   *\n   * @param  {String} name  the name to lookup the start time for\n   *\n   * @return {Number}       the returned start time, as a DOMHighResTimeStamp\n   *\n   * @throws {Error}        \"No Marks with the name ...\" if none are available\n   *\n   * @note Always surround calls to this by try/catch.  Otherwise your code\n   * may fail when the `privacy.resistFingerprinting` pref is true.  When\n   * this pref is set, all attempts to get marks will likely fail, which will\n   * cause this method to throw.\n   *\n   * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n   * for more info.\n   */\n  getMostRecentAbsMarkStartByName(name) {\n    let entries = this.getEntriesByName(name, \"mark\");\n\n    if (!entries.length) {\n      throw new Error(`No marks with the name ${name}`);\n    }\n\n    let mostRecentEntry = entries[entries.length - 1];\n    return this._perf.timeOrigin + mostRecentEntry.startTime;\n  }\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PerfService.jsm","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n  MIN_CORNER_FAVICON_SIZE,\n  MIN_RICH_FAVICON_SIZE,\n  TOP_SITES_CONTEXT_MENU_OPTIONS,\n  TOP_SITES_SOURCE\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onDragEvent = this.onDragEvent.bind(this);\n  }\n\n  /*\n   * Helper to determine whether the drop zone should allow a drop. We only allow\n   * dropping top sites for now.\n   */\n  _allowDrop(e) {\n    return e.dataTransfer.types.includes(\"text/topsite-index\");\n  }\n\n  onDragEvent(event) {\n    switch (event.type) {\n      case \"click\":\n        // Stop any link clicks if we started any dragging\n        if (this.dragged) {\n          event.preventDefault();\n        }\n        break;\n      case \"dragstart\":\n        this.dragged = true;\n        event.dataTransfer.effectAllowed = \"move\";\n        event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n        event.target.blur();\n        this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n        break;\n      case \"dragend\":\n        this.props.onDragEvent(event);\n        break;\n      case \"dragenter\":\n      case \"dragover\":\n      case \"drop\":\n        if (this._allowDrop(event)) {\n          event.preventDefault();\n          this.props.onDragEvent(event, this.props.index);\n        }\n        break;\n      case \"mousedown\":\n        // Reset at the first mouse event of a potential drag\n        this.dragged = false;\n        break;\n    }\n  }\n\n  render() {\n    const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n    const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}`;\n    const {tippyTopIcon, faviconSize} = link;\n    const [letterFallback] = title;\n    let imageClassName;\n    let imageStyle;\n    let showSmallFavicon = false;\n    let smallFaviconStyle;\n    let smallFaviconFallback;\n    if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n      smallFaviconFallback = false;\n    } else if (link.customScreenshotURL) {\n      // assume high quality custom screenshot and use rich icon styles and class names\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${link.screenshot})`\n      };\n    } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n      // styles and class names for top sites with rich icons\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${tippyTopIcon || link.favicon})`\n      };\n    } else {\n      // styles and class names for top sites with screenshot + small icon in top left corner\n      imageClassName = `screenshot${link.screenshot ? \" active\" : \"\"}`;\n      imageStyle = {backgroundImage: link.screenshot ? `url(${link.screenshot})` : \"none\"};\n\n      // only show a favicon in top left if it's greater than 16x16\n      if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n        showSmallFavicon = true;\n        smallFaviconStyle = {backgroundImage:  `url(${link.favicon})`};\n      } else if (link.screenshot) {\n        // Don't show a small favicon if there is no screenshot, because that\n        // would result in two fallback icons\n        showSmallFavicon = true;\n        smallFaviconFallback = true;\n      }\n    }\n    let draggableProps = {};\n    if (isDraggable) {\n      draggableProps = {\n        onClick: this.onDragEvent,\n        onDragEnd: this.onDragEvent,\n        onDragStart: this.onDragEvent,\n        onMouseDown: this.onDragEvent\n      };\n    }\n    return (<li className={topSiteOuterClassName} onDrop={this.onDragEvent} onDragOver={this.onDragEvent} onDragEnter={this.onDragEvent} onDragLeave={this.onDragEvent} {...draggableProps}>\n      <div className=\"top-site-inner\">\n         <a href={link.url} onClick={onClick}>\n            <div className=\"tile\" aria-hidden={true} data-fallback={letterFallback}>\n              <div className={imageClassName} style={imageStyle} />\n              {showSmallFavicon && <div\n                className=\"top-site-icon default-icon\"\n                data-fallback={smallFaviconFallback && letterFallback}\n                style={smallFaviconStyle} />}\n           </div>\n           <div className={`title ${link.isPinned ? \"pinned\" : \"\"}`}>\n             {link.isPinned && <div className=\"icon icon-pin-small\" />}\n              <span dir=\"auto\">{title}</span>\n           </div>\n         </a>\n         {children}\n      </div>\n    </li>);\n  }\n}\nTopSiteLink.defaultProps = {\n  title: \"\",\n  link: {},\n  isDraggable: true\n};\n\nexport class TopSite extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {showContextMenu: false};\n    this.onLinkClick = this.onLinkClick.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    const value = {icon_type: this.props.link.iconType};\n    // Filter out \"not_pinned\" type for being the default\n    if (this.props.link.isPinned) {\n      value.card_type = \"pinned\";\n    }\n    return {value};\n  }\n\n  userEvent(event) {\n    this.props.dispatch(ac.UserEvent(Object.assign({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: this.props.index\n    }, this._getTelemetryInfo())));\n  }\n\n  onLinkClick(event) {\n    this.userEvent(\"CLICK\");\n\n    // Specially handle a top site link click for \"typed\" frecency bonus as\n    // specified as a property on the link.\n    event.preventDefault();\n    const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n    this.props.dispatch(ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n    }));\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.props.onActivate(this.props.index);\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const {props} = this;\n    const {link} = props;\n    const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n    const title = link.label || link.hostname;\n    return (<TopSiteLink {...props} onClick={this.onLinkClick} onDragEvent={this.props.onDragEvent} className={`${props.className || \"\"}${isContextMenuOpen ? \" active\" : \"\"}`} title={title}>\n        <div>\n          <button className=\"context-menu-button icon\" onClick={this.onMenuButtonClick}>\n            <span className=\"sr-only\">\n              <FormattedMessage id=\"context_menu_button_sr\" values={{title}} />\n            </span>\n          </button>\n          {isContextMenuOpen &&\n            <LinkMenu\n              dispatch={props.dispatch}\n              index={props.index}\n              onUpdate={this.onMenuUpdate}\n              options={TOP_SITES_CONTEXT_MENU_OPTIONS}\n              site={link}\n              siteInfo={this._getTelemetryInfo()}\n              source={TOP_SITES_SOURCE} />\n          }\n        </div>\n    </TopSiteLink>);\n  }\n}\nTopSite.defaultProps = {\n  link: {},\n  onActivate() {}\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onEditButtonClick = this.onEditButtonClick.bind(this);\n  }\n\n  onEditButtonClick() {\n    this.props.dispatch(\n      {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n  }\n\n  render() {\n    return (<TopSiteLink {...this.props} className={`placeholder ${this.props.className || \"\"}`} isDraggable={false}>\n      <button className=\"context-menu-button edit-button icon\"\n       title={this.props.intl.formatMessage({id: \"edit_topsites_edit_button\"})}\n       onClick={this.onEditButtonClick} />\n    </TopSiteLink>);\n  }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n  static get DEFAULT_STATE() {\n    return {\n      activeIndex: null,\n      draggedIndex: null,\n      draggedSite: null,\n      draggedTitle: null,\n      topSitesPreview: null\n    };\n  }\n\n  constructor(props) {\n    super(props);\n    this.state = _TopSiteList.DEFAULT_STATE;\n    this.onDragEvent = this.onDragEvent.bind(this);\n    this.onActivate = this.onActivate.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (this.state.draggedSite) {\n      const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n      const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n      if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n        prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n        (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n        // We got the new order from the redux store via props. We can clear state now.\n        this.setState(_TopSiteList.DEFAULT_STATE);\n      }\n    }\n  }\n\n  userEvent(event, index) {\n    this.props.dispatch(ac.UserEvent({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: index\n    }));\n  }\n\n  onDragEvent(event, index, link, title) {\n    switch (event.type) {\n      case \"dragstart\":\n        this.dropped = false;\n        this.setState({\n          draggedIndex: index,\n          draggedSite: link,\n          draggedTitle: title,\n          activeIndex: null\n        });\n        this.userEvent(\"DRAG\", index);\n        break;\n      case \"dragend\":\n        if (!this.dropped) {\n          // If there was no drop event, reset the state to the default.\n          this.setState(_TopSiteList.DEFAULT_STATE);\n        }\n        break;\n      case \"dragenter\":\n        if (index === this.state.draggedIndex) {\n          this.setState({topSitesPreview: null});\n        } else {\n          this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n        }\n        break;\n      case \"drop\":\n        if (index !== this.state.draggedIndex) {\n          this.dropped = true;\n          this.props.dispatch(ac.AlsoToMain({\n            type: at.TOP_SITES_INSERT,\n            data: {\n              site: {\n                url: this.state.draggedSite.url,\n                label: this.state.draggedTitle,\n                customScreenshotURL: this.state.draggedSite.customScreenshotURL\n              },\n              index,\n              draggedFromIndex: this.state.draggedIndex\n            }\n          }));\n          this.userEvent(\"DROP\", index);\n        }\n        break;\n    }\n  }\n\n  _getTopSites() {\n    // Make a copy of the sites to truncate or extend to desired length\n    let topSites = this.props.TopSites.rows.slice();\n    topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n    return topSites;\n  }\n\n  /**\n   * Make a preview of the topsites that will be the result of dropping the currently\n   * dragged site at the specified index.\n   */\n  _makeTopSitesPreview(index) {\n    const topSites = this._getTopSites();\n    topSites[this.state.draggedIndex] = null;\n    const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n    const unpinned = topSites.filter(site => site && !site.isPinned);\n    const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n    if (!pinnedOnly[index]) {\n      pinnedOnly[index] = siteToInsert;\n    } else {\n      // Find the hole to shift the pinned site(s) towards. We shift towards the\n      // hole left by the site being dragged.\n      let holeIndex = index;\n      const indexStep = index > this.state.draggedIndex ? -1 : 1;\n      while (pinnedOnly[holeIndex]) {\n        holeIndex += indexStep;\n      }\n\n      // Shift towards the hole.\n      const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n      while (holeIndex !== index) {\n        const nextIndex = holeIndex + shiftingStep;\n        pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n        holeIndex = nextIndex;\n      }\n      pinnedOnly[index] = siteToInsert;\n    }\n\n    // Fill in the remaining holes with unpinned sites.\n    const preview = pinnedOnly;\n    for (let i = 0; i < preview.length; i++) {\n      if (!preview[i]) {\n        preview[i] = unpinned.shift() || null;\n      }\n    }\n\n    return preview;\n  }\n\n  onActivate(index) {\n    this.setState({activeIndex: index});\n  }\n\n  render() {\n    const {props} = this;\n    const topSites = this.state.topSitesPreview || this._getTopSites();\n    const topSitesUI = [];\n    const commonProps = {\n      onDragEvent: this.onDragEvent,\n      dispatch: props.dispatch,\n      intl: props.intl\n    };\n    // We assign a key to each placeholder slot. We need it to be independent\n    // of the slot index (i below) so that the keys used stay the same during\n    // drag and drop reordering and the underlying DOM nodes are reused.\n    // This mostly (only?) affects linux so be sure to test on linux before changing.\n    let holeIndex = 0;\n\n    // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n    // .hide-for-narrow to hide in CSS via @media query.\n    const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n    for (let i = 0, l = topSites.length; i < l; i++) {\n      const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n      const slotProps = {\n        key: link ? link.url : holeIndex++,\n        index: i\n      };\n      if (i >= maxNarrowVisibleIndex) {\n        slotProps.className = \"hide-for-narrow\";\n      }\n      topSitesUI.push(!link ? (\n        <TopSitePlaceholder\n          {...slotProps}\n          {...commonProps} />\n      ) : (\n        <TopSite\n          link={link}\n          activeIndex={this.state.activeIndex}\n          onActivate={this.onActivate}\n          {...slotProps}\n          {...commonProps} />\n      ));\n    }\n    return (<ul className={`top-sites-list${this.state.draggedSite ? \" dnd-active\" : \"\"}`}>\n      {topSitesUI}\n    </ul>);\n  }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSite.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n  store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(<Provider store={store}>\n  <Base\n    isFirstrun={global.document.location.href === \"about:welcome\"}\n    isPrerendered={!!global.gActivityStreamPrerenderedState}\n    locale={global.document.documentElement.lang}\n    strings={global.gActivityStreamStrings} />\n</Provider>, document.getElementById(\"root\"));\n\naddSnippetsSubscriber(store);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/activity-stream.jsx","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n *               the same interface as a Map, but is optionally backed by\n *               indexedDB for persistent storage.\n *               Call .connect() to open a database connection and restore any\n *               previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n  constructor(dispatch) {\n    super();\n    this._db = null;\n    this._dispatch = dispatch;\n  }\n\n  set(key, value) {\n    super.set(key, value);\n    return this._dbTransaction(db => db.put(value, key));\n  }\n\n  delete(key) {\n    super.delete(key);\n    return this._dbTransaction(db => db.delete(key));\n  }\n\n  clear() {\n    super.clear();\n    this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n    return this._dbTransaction(db => db.clear());\n  }\n\n  get blockList() {\n    return this.get(\"blockList\") || [];\n  }\n\n  /**\n   * blockSnippetById - Blocks a snippet given an id\n   *\n   * @param  {str|int} id   The id of the snippet\n   * @return {Promise}      Resolves when the id has been written to indexedDB,\n   *                        or immediately if the snippetMap is not connected\n   */\n  async blockSnippetById(id) {\n    if (!id) {\n      return;\n    }\n    const {blockList} = this;\n    if (!blockList.includes(id)) {\n      blockList.push(id);\n      this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n      await this.set(\"blockList\", blockList);\n    }\n  }\n\n  disableOnboarding() {\n    this._dispatch(ac.AlsoToMain({type: at.DISABLE_ONBOARDING}));\n  }\n\n  showFirefoxAccounts() {\n    this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n  }\n\n  getTotalBookmarksCount() {\n    return new Promise(resolve => {\n      this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n      global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n        if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n          resolve(action.data);\n          global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n        }\n      });\n    });\n  }\n\n  getAddonsInfo() {\n    return new Promise(resolve => {\n      this._dispatch(ac.OnlyToMain({type: at.ADDONS_INFO_REQUEST}));\n      global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n        if (action.type === at.ADDONS_INFO_RESPONSE) {\n          resolve(action.data);\n          global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n        }\n      });\n    });\n  }\n\n  /**\n   * connect - Attaches an indexedDB back-end to the Map so that any set values\n   *           are also cached in a store. It also restores any existing values\n   *           that are already stored in the indexedDB store.\n   *\n   * @return {type}  description\n   */\n  async connect() {\n    // Open the connection\n    const db = await this._openDB();\n\n    // Restore any existing values\n    await this._restoreFromDb(db);\n\n    // Attach a reference to the db\n    this._db = db;\n  }\n\n  /**\n   * _dbTransaction - Returns a db transaction wrapped with the given modifier\n   *                  function as a Promise. If the db has not been connected,\n   *                  it resolves immediately.\n   *\n   * @param  {func} modifier A function to call with the transaction\n   * @return {obj}           A Promise that resolves when the transaction has\n   *                         completed or errored\n   */\n  _dbTransaction(modifier) {\n    if (!this._db) {\n      return Promise.resolve();\n    }\n    return new Promise((resolve, reject) => {\n      const transaction = modifier(\n        this._db\n          .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n      );\n      transaction.onsuccess = event => resolve();\n\n      /* istanbul ignore next */\n      transaction.onerror = event => reject(transaction.error);\n    });\n  }\n\n  _openDB() {\n    return new Promise((resolve, reject) => {\n      const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n      /* istanbul ignore next */\n      openRequest.onerror = event => {\n        // Try to delete the old database so that we can start this process over\n        // next time.\n        indexedDB.deleteDatabase(DATABASE_NAME);\n        reject(event);\n      };\n\n      openRequest.onupgradeneeded = event => {\n        const db = event.target.result;\n        if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n          db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n        }\n      };\n\n      openRequest.onsuccess = event => {\n        let db = event.target.result;\n\n        /* istanbul ignore next */\n        db.onerror = err => console.error(err); // eslint-disable-line no-console\n        /* istanbul ignore next */\n        db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n        resolve(db);\n      };\n    });\n  }\n\n  _restoreFromDb(db) {\n    return new Promise((resolve, reject) => {\n      let cursorRequest;\n      try {\n        cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n      } catch (err) {\n        // istanbul ignore next\n        reject(err);\n        // istanbul ignore next\n        return;\n      }\n\n      /* istanbul ignore next */\n      cursorRequest.onerror = event => reject(event);\n\n      cursorRequest.onsuccess = event => {\n        let cursor = event.target.result;\n        // Populate the cache from the persistent storage.\n        if (cursor) {\n          if (cursor.value !== \"blockList\") {\n            this.set(cursor.key, cursor.value);\n          }\n          cursor.continue();\n        } else {\n          // We are done.\n          resolve();\n        }\n      };\n    });\n  }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n *                    remote location, or else default snippets if the remote\n *                    snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n  constructor(dispatch) {\n    // Initialize the Snippets Map and attaches it to a global so that\n    // the snippet payload can interact with it.\n    global.gSnippetsMap = new SnippetsMap(dispatch);\n    this._onAction = this._onAction.bind(this);\n  }\n\n  get snippetsMap() {\n    return global.gSnippetsMap;\n  }\n\n  async _refreshSnippets() {\n    // Check if the cached version of of the snippets in snippetsMap. If it's too\n    // old, blow away the entire snippetsMap.\n    const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n    if (cachedVersion !== this.appData.version) {\n      this.snippetsMap.clear();\n    }\n\n    // Has enough time passed for us to require an update?\n    const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n    const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n    if (needsUpdate && this.appData.snippetsURL) {\n      this.snippetsMap.set(\"snippets-last-update\", Date.now());\n      try {\n        const response = await fetch(this.appData.snippetsURL);\n        if (response.status === 200) {\n          const payload = await response.text();\n\n          this.snippetsMap.set(\"snippets\", payload);\n          this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n        }\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n  }\n\n  _noSnippetFallback() {\n    // TODO\n  }\n\n  _forceOnboardingVisibility(shouldBeVisible) {\n    const onboardingEl = document.getElementById(\"onboarding-notification-bar\");\n\n    if (onboardingEl) {\n      onboardingEl.style.display = shouldBeVisible ? \"\" : \"none\";\n    }\n  }\n\n  _showRemoteSnippets() {\n    const snippetsEl = document.getElementById(this.elementId);\n    const payload = this.snippetsMap.get(\"snippets\");\n\n    if (!snippetsEl) {\n      throw new Error(`No element was found with id '${this.elementId}'.`);\n    }\n\n    // This could happen if fetching failed\n    if (!payload) {\n      throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n    }\n\n    if (typeof payload !== \"string\") {\n      throw new Error(\"Snippet payload was incorrectly formatted\");\n    }\n\n    // Note that injecting snippets can throw if they're invalid XML.\n    // eslint-disable-next-line no-unsanitized/property\n    snippetsEl.innerHTML = payload;\n\n    // Scripts injected by innerHTML are inactive, so we have to relocate them\n    // through DOM manipulation to activate their contents.\n    for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n      const relocatedScript = document.createElement(\"script\");\n      relocatedScript.text = scriptEl.text;\n      scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n    }\n  }\n\n  _onAction(msg) {\n    if (msg.data.type === at.SNIPPET_BLOCKED) {\n      if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n        this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n        document.getElementById(\"snippets-container\").style.display = \"none\";\n      }\n    }\n  }\n\n  /**\n   * init - Fetch the snippet payload and show snippets\n   *\n   * @param  {obj} options\n   * @param  {str} options.appData.snippetsURL  The URL from which we fetch snippets\n   * @param  {int} options.appData.version  The current snippets version\n   * @param  {str} options.elementId  The id of the element in which to inject snippets\n   * @param  {bool} options.connect  Should gSnippetsMap connect to indexedDB?\n   */\n  async init(options) {\n    Object.assign(this, {\n      appData: {},\n      elementId: \"snippets\",\n      connect: true\n    }, options);\n\n    // Add listener so we know when snippets are blocked on other pages\n    if (global.addMessageListener) {\n      global.addMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n\n    // TODO: Requires enabling indexedDB on newtab\n    // Restore the snippets map from indexedDB\n    if (this.connect) {\n      try {\n        await this.snippetsMap.connect();\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n\n    // Cache app data values so they can be accessible from gSnippetsMap\n    for (const key of Object.keys(this.appData)) {\n      if (key === \"blockList\") {\n        this.snippetsMap.set(\"blockList\", this.appData[key]);\n      } else {\n        this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n      }\n    }\n\n    // Refresh snippets, if enough time has passed.\n    await this._refreshSnippets();\n\n    // Try showing remote snippets, falling back to defaults if necessary.\n    try {\n      this._showRemoteSnippets();\n    } catch (e) {\n      this._noSnippetFallback(e);\n    }\n\n    window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n    this._forceOnboardingVisibility(true);\n    this.initialized = true;\n  }\n\n  uninit() {\n    window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n    this._forceOnboardingVisibility(false);\n    if (global.removeMessageListener) {\n      global.removeMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n    this.initialized = false;\n  }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n *                         when the store has received the appropriate\n *                         Snippet data.\n *\n * @param  {obj} store   The redux store\n * @return {obj}         Returns the snippets instance, asrouterContent instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n  const snippets = new SnippetsProvider(store.dispatch);\n  const asrouterContent = new ASRouterContent();\n\n  let initializing = false;\n\n  store.subscribe(async () => {\n    const state = store.getState();\n    // state.Prefs.values[\"feeds.snippets\"]:  Should snippets be shown?\n    // state.Snippets.initialized             Is the snippets data initialized?\n    // snippets.initialized:                  Is SnippetsProvider currently initialised?\n    if (state.Prefs.values[\"feeds.snippets\"] &&\n      // If the message center experiment is enabled, don't show snippets\n      !state.Prefs.values.asrouterExperimentEnabled &&\n      !state.Prefs.values.disableSnippets &&\n      state.Snippets.initialized &&\n      !snippets.initialized &&\n      // Don't call init multiple times\n      !initializing &&\n      location.href !== \"about:welcome\"\n    ) {\n      initializing = true;\n      await snippets.init({appData: state.Snippets});\n      initializing = false;\n    } else if (\n      (state.Prefs.values[\"feeds.snippets\"] === false ||\n        state.Prefs.values.disableSnippets === true) &&\n      snippets.initialized\n    ) {\n      snippets.uninit();\n    }\n\n    // Turn on AS Router snippets if the experiment is enabled and the snippets pref is on;\n    // otherwise, turn it off.\n    if (\n      state.Prefs.values.asrouterExperimentEnabled &&\n      state.Prefs.values[\"feeds.snippets\"] &&\n      !asrouterContent.initialized) {\n      asrouterContent.init();\n    } else if (\n      (!state.Prefs.values.asrouterExperimentEnabled || !state.Prefs.values[\"feeds.snippets\"]) &&\n      asrouterContent.initialized\n    ) {\n      asrouterContent.uninit();\n    }\n  });\n\n  // These values are returned for testing purposes\n  return {snippets, asrouterContent};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/snippets.js","module.exports = Redux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Redux\"\n// module id = 21\n// module chunks = 0","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionOrAddListener() {\n    if (this.props.document.visibilityState === VISIBLE) {\n      this.props.sendImpression();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (this.props.document.visibilityState === VISIBLE) {\n          this.props.sendImpression();\n          this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.sendOnMount) {\n      this.sendImpressionOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n      this.sendImpressionOrAddListener();\n    }\n  }\n\n  render() {\n    return this.props.children;\n  }\n}\n\nImpressionsWrapper.defaultProps = {\n  document: global.document,\n  sendOnMount: true\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","import React from \"react\";\n\nexport class ModalOverlay extends React.PureComponent {\n  componentWillMount() {\n    this.setState({active: true});\n    document.body.classList.add(\"modal-open\");\n  }\n\n  componentWillUnmount() {\n    document.body.classList.remove(\"modal-open\");\n    this.setState({active: false});\n  }\n\n  render() {\n    const {active} = this.state;\n    const {title, button_label} = this.props;\n    return (\n      <div>\n        <div className={`modalOverlayOuter ${active ? \"active\" : \"\"}`} />\n        <div className={`modalOverlayInner ${active ? \"active\" : \"\"}`}>\n          <h2> {title} </h2>\n          {this.props.children}\n          <div className=\"footer\">\n            <button onClick={this.props.onDoneButton} className=\"button primary modalButton\"> {button_label} </button>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","import {ModalOverlay} from \"../../components/ModalOverlay/ModalOverlay\";\nimport React from \"react\";\n\nclass OnboardingCard extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  onClick() {\n    const {props} = this;\n    props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", message_id: props.id});\n    props.onAction(props.content);\n  }\n\n  render() {\n    const {content} = this.props;\n    return (\n      <div className=\"onboardingMessage\">\n        <div className={`onboardingMessageImage ${content.icon}`} />\n        <div className=\"onboardingContent\">\n          <span>\n            <h3> {content.title} </h3>\n            <p> {content.text} </p>\n          </span>\n          <span>\n            <button className=\"button onboardingButton\" onClick={this.onClick}> {content.button_label} </button>\n          </span>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n  render() {\n    const {props} = this;\n    return (\n      <ModalOverlay {...props} button_label={\"Start Browsing\"} title={\"Welcome to Firefox\"}>\n        <div className=\"onboardingMessageContainer\">\n          {props.bundle.map(message => (\n            <OnboardingCard key={message.id} sendUserActionTelemetry={props.sendUserActionTelemetry} onAction={props.onAction} {...message} />\n          ))}\n        </div>\n      </ModalOverlay>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","export function safeURI(url) {\n  if (!url) {\n    return \"\";\n  }\n  const {protocol} = new URL(url);\n  const isAllowed = [\n    \"http:\",\n    \"https:\",\n    \"data:\",\n    \"resource:\",\n    \"chrome:\"\n  ].includes(protocol);\n  if (!isAllowed) {\n    console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n  }\n  return isAllowed ? url : \"\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/template-utils.js","import React from \"react\";\nimport {safeURI} from \"../../template-utils\";\n\nexport const Button = props => (<a href={safeURI(props.url)}\n  onClick={props.onClick}\n  className={props.className || \"ASRouterButton\"}>\n  {props.children}\n</a>);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/Button/Button.jsx","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBlockClicked = this.onBlockClicked.bind(this);\n  }\n\n  onBlockClicked() {\n    this.props.sendUserActionTelemetry({event: \"BLOCK\"});\n    this.props.onBlock();\n  }\n\n  render() {\n    const {props} = this;\n\n    const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n    return (<div className={containerClassName}>\n      <div className=\"innerWrapper\">\n        {props.children}\n      </div>\n      <button className=\"blockButton\" onClick={this.onBlockClicked} />\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onButtonClick = this.onButtonClick.bind(this);\n  }\n\n  onButtonClick() {\n    this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\"});\n  }\n\n  renderTitle() {\n    const {title} = this.props.content;\n    return title ? <h3 className=\"title\">{title}</h3> : null;\n  }\n\n  renderButton(className) {\n    const {props} = this;\n    return (<Button\n      className={className}\n      onClick={this.onButtonClick}\n      url={props.content.button_url}>\n      {props.content.button_label}\n    </Button>);\n  }\n\n  render() {\n    const {props} = this;\n    const hasLink = props.content.button_url && props.content.button_type === \"anchor\";\n    const hasButton = props.content.button_url && !props.content.button_type;\n    return (<SnippetBase {...props} className=\"SimpleSnippet\">\n      <img src={safeURI(props.content.icon) || DEFAULT_ICON_PATH} className=\"icon\" />\n      <div>\n        {this.renderTitle()} <p className=\"body\">{props.content.text}</p> {hasLink ? this.renderButton(\"ASRouterAnchor\") : null}\n      </div>\n      {hasButton ? <div>{this.renderButton()}</div> : null}\n    </SnippetBase>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\nimport {StartupOverlay} from \"content-src/components/StartupOverlay/StartupOverlay\";\n\nconst PrefsButton = injectIntl(props => (\n  <div className=\"prefs-button\">\n    <button className=\"icon icon-settings\" onClick={props.onClick} title={props.intl.formatMessage({id: \"settings_pane_button_label\"})} />\n  </div>\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n  addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\nexport class _Base extends React.PureComponent {\n  componentWillMount() {\n    const {App, locale, Theme} = this.props;\n    if (Theme.className) {\n      this.updateTheme(Theme);\n    }\n    this.sendNewTabRehydrated(App);\n    addLocaleDataForReactIntl(locale);\n  }\n\n  componentDidMount() {\n    // Request state AFTER the first render to ensure we don't cause the\n    // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n    // dispatched right after the store is ready.\n    if (this.props.isPrerendered) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n      this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n    }\n  }\n\n  componentWillUnmount() {\n    this.updateTheme({className: \"\"});\n  }\n\n  componentWillUpdate({App, Theme}) {\n    this.updateTheme(Theme);\n    this.sendNewTabRehydrated(App);\n  }\n\n  updateTheme(Theme) {\n    const bodyClassName = [\n      \"activity-stream\",\n      Theme.className,\n      this.props.isFirstrun ? \"welcome\" : \"\"\n    ].filter(v => v).join(\" \");\n    global.document.body.className = bodyClassName;\n  }\n\n  // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n  // data has been consumed e.g. for counting the number of tabs that\n  // have rendered that data.\n  sendNewTabRehydrated(App) {\n    if (App && App.initialized && !this.renderNotified) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n      this.renderNotified = true;\n    }\n  }\n\n  render() {\n    const {props} = this;\n    const {App, locale, strings} = props;\n    const {initialized} = App;\n\n    if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === \"#asrouter\") {\n      return (<ASRouterAdmin />);\n    }\n\n    if (!props.isPrerendered && !initialized) {\n      return null;\n    }\n\n    return (<IntlProvider locale={locale} messages={strings}>\n        <ErrorBoundary className=\"base-content-fallback\">\n          <BaseContent {...this.props} />\n        </ErrorBoundary>\n      </IntlProvider>);\n  }\n}\n\nexport class BaseContent extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.openPreferences = this.openPreferences.bind(this);\n  }\n\n  openPreferences() {\n    this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n    this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n  }\n\n  render() {\n    const {props} = this;\n    const {App} = props;\n    const {initialized} = App;\n    const prefs = props.Prefs.values;\n\n    const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n\n    const outerClassName = [\n      \"outer-wrapper\",\n      shouldBeFixedToTop && \"fixed-to-top\"\n    ].filter(v => v).join(\" \");\n\n    return (\n      <div>\n        <div className={outerClassName}>\n          <main>\n            {prefs.showSearch &&\n              <div className=\"non-collapsible-section\">\n                <ErrorBoundary>\n                  <Search />\n                </ErrorBoundary>\n              </div>\n            }\n            <div className={`body-wrapper${(initialized ? \" on\" : \"\")}`}>\n              {!prefs.migrationExpired &&\n                <div className=\"non-collapsible-section\">\n                  <ManualMigration />\n                </div>\n                }\n              <Sections />\n              <PrefsButton onClick={this.openPreferences} />\n            </div>\n            <ConfirmDialog />\n          </main>\n        </div>\n        {this.props.isFirstrun && <StartupOverlay />}\n      </div>);\n  }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Theme: state.Theme}))(_Base);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Base/Base.jsx","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessage = this.onMessage.bind(this);\n    this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);\n    this.state = {};\n  }\n\n  onMessage({data: action}) {\n    if (action.type === \"ADMIN_SET_STATE\") {\n      this.setState(action.data);\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\"});\n    ASRouterUtils.addListener(this.onMessage);\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessage);\n  }\n\n  findOtherBundledMessagesOfSameTemplate(template) {\n    return this.state.messages.filter(msg => msg.template === template && msg.bundled);\n  }\n\n  handleBlock(msg) {\n    if (msg.bundled) {\n      // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template\n      let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n      return () => ASRouterUtils.blockBundle(bundle);\n    }\n    return () => ASRouterUtils.blockById(msg.id);\n  }\n\n  handleUnblock(msg) {\n    if (msg.bundled) {\n      // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template\n      let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n      return () => ASRouterUtils.unblockBundle(bundle);\n    }\n    return () => ASRouterUtils.unblockById(msg.id);\n  }\n\n  handleOverride(id) {\n    return () => ASRouterUtils.overrideMessage(id);\n  }\n\n  renderMessageItem(msg) {\n    const isCurrent = msg.id === this.state.lastMessageId;\n    const isBlocked = this.state.blockList.includes(msg.id);\n\n    let itemClassName = \"message-item\";\n    if (isCurrent) { itemClassName += \" current\"; }\n    if (isBlocked) { itemClassName += \" blocked\"; }\n\n    return (<tr className={itemClassName} key={msg.id}>\n      <td className=\"message-id\"><span>{msg.id}</span></td>\n      <td>\n        <button className={`button ${(isBlocked ? \"\" : \" primary\")}`} onClick={isBlocked ? this.handleUnblock(msg) : this.handleBlock(msg)}>{isBlocked ? \"Unblock\" : \"Block\"}</button>\n       {isBlocked ? null : <button className=\"button\" onClick={this.handleOverride(msg.id)}>Show</button>}\n      </td>\n      <td className=\"message-summary\">\n        <pre>{JSON.stringify(msg, null, 2)}</pre>\n      </td>\n    </tr>);\n  }\n\n  renderMessages() {\n    if (!this.state.messages) {\n      return null;\n    }\n    return (<table><tbody>\n      {this.state.messages.map(msg => this.renderMessageItem(msg))}\n    </tbody></table>);\n  }\n\n  renderProviders() {\n    return (<table><tbody>\n      {this.state.providers.map((provider, i) => (<tr className=\"message-item\" key={i}>\n        <td>{provider.id}</td>\n        <td>{provider.type === \"remote\" ? <a target=\"_blank\" href={provider.url}>{provider.url}</a> : \"(local)\"}</td>\n      </tr>))}\n    </tbody></table>);\n  }\n\n  render() {\n    return (<div className=\"asrouter-admin outer-wrapper\">\n      <h1>AS Router Admin</h1>\n      <button className=\"button primary\" onClick={ASRouterUtils.getNextMessage}>Refresh Current Message</button>\n      <h2>Message Providers</h2>\n      {this.state.providers ? this.renderProviders() : null}\n      <h2>Messages</h2>\n      {this.renderMessages()}\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n *   // Any sort of data needed to be passed around by actions.\n *   payload: site.url,\n *   // Primary button AlsoToMain action.\n *   action: \"DELETE_HISTORY_URL\",\n *   // Primary button USerEvent action.\n *   userEvent: \"DELETE\",\n *   // Array of locale ids to display.\n *   message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n *   // Text for primary button.\n *   confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this._handleCancelBtn = this._handleCancelBtn.bind(this);\n    this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n  }\n\n  _handleCancelBtn() {\n    this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n    this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n  }\n\n  _handleConfirmBtn() {\n    this.props.data.onConfirm.forEach(this.props.dispatch);\n  }\n\n  _renderModalMessage() {\n    const message_body = this.props.data.body_string_id;\n\n    if (!message_body) {\n      return null;\n    }\n\n    return (<span>\n      {message_body.map(msg => <p key={msg}><FormattedMessage id={msg} /></p>)}\n    </span>);\n  }\n\n  render() {\n    if (!this.props.visible) {\n      return null;\n    }\n\n    return (<div className=\"confirmation-dialog\">\n      <div className=\"modal-overlay\" onClick={this._handleCancelBtn} />\n      <div className=\"modal\">\n        <section className=\"modal-message\">\n          {this.props.data.icon && <span className={`icon icon-spacer icon-${this.props.data.icon}`} />}\n          {this._renderModalMessage()}\n        </section>\n        <section className=\"actions\">\n          <button onClick={this._handleCancelBtn}>\n            <FormattedMessage id={this.props.data.cancel_button_string_id} />\n          </button>\n          <button className=\"done\" onClick={this._handleConfirmBtn}>\n            <FormattedMessage id={this.props.data.confirm_button_string_id} />\n          </button>\n        </section>\n      </div>\n    </div>);\n  }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1.  User clicks \"No Thanks\"\n * 2.  User completed the data import\n * 3.  After 3 active days\n * 4.  User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onLaunchTour = this.onLaunchTour.bind(this);\n    this.onCancelTour = this.onCancelTour.bind(this);\n  }\n\n  onLaunchTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n  }\n\n  onCancelTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n  }\n\n  render() {\n    return (<div className=\"manual-migration-container\">\n        <p>\n          <span className=\"icon icon-import\" />\n          <FormattedMessage id=\"manual_migration_explanation2\" />\n        </p>\n        <div className=\"manual-migration-actions actions\">\n          <button className=\"dismiss\" onClick={this.onCancelTour}>\n            <FormattedMessage id=\"manual_migration_cancel_button\" />\n          </button>\n          <button onClick={this.onLaunchTour}>\n            <FormattedMessage id=\"manual_migration_import_button\" />\n          </button>\n        </div>\n    </div>);\n  }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","class _PrerenderData {\n  constructor(options) {\n    this.initialPrefs = options.initialPrefs;\n    this.initialSections = options.initialSections;\n    this._setValidation(options.validation);\n  }\n\n  get validation() {\n    return this._validation;\n  }\n\n  set validation(value) {\n    this._setValidation(value);\n  }\n\n  get invalidatingPrefs() {\n    return this._invalidatingPrefs;\n  }\n\n    // This is needed so we can use it in the constructor\n  _setValidation(value = []) {\n    this._validation = value;\n    this._invalidatingPrefs = value.reduce((result, next) => {\n      if (typeof next === \"string\") {\n        result.push(next);\n        return result;\n      } else if (next && next.oneOf) {\n        return result.concat(next.oneOf);\n      } else if (next && next.indexedDB) {\n        return result.concat(next.indexedDB);\n      }\n      throw new Error(\"Your validation configuration is not properly configured\");\n    }, []);\n  }\n\n  arePrefsValid(getPref, indexedDBPrefs) {\n    for (const prefs of this.validation) {\n      // {oneOf: [\"foo\", \"bar\"]}\n      if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n        return false;\n\n        // {indexedDB: [\"foo\", \"bar\"]}\n      } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n        const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n        if (anyModifiedPrefs) {\n          return false;\n        }\n        // \"foo\"\n      } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nthis.PrerenderData = new _PrerenderData({\n  initialPrefs: {\n    \"migrationExpired\": true,\n    \"feeds.topsites\": true,\n    \"showSearch\": true,\n    \"topSitesRows\": 1,\n    \"feeds.section.topstories\": true,\n    \"feeds.section.highlights\": true,\n    \"sectionOrder\": \"topsites,topstories,highlights\",\n    \"collapsed\": false\n  },\n  // Prefs listed as invalidating will prevent the prerendered version\n  // of AS from being used if their value is something other than what is listed\n  // here. This is required because some preferences cause the page layout to be\n  // too different for the prerendered version to be used. Unfortunately, this\n  // will result in users who have modified some of their preferences not being\n  // able to get the benefits of prerendering.\n  validation: [\n    \"feeds.topsites\",\n    \"showSearch\",\n    \"topSitesRows\",\n    \"sectionOrder\",\n    // This means if either of these are set to their default values,\n    // prerendering can be used.\n    {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n    // If any component has the following preference set to `true` it will\n    // invalidate the prerendered version.\n    {indexedDB: [\"collapsed\"]}\n  ],\n  initialSections: [\n    {\n      enabled: true,\n      icon: \"pocket\",\n      id: \"topstories\",\n      order: 1,\n      title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}}\n    },\n    {\n      enabled: true,\n      id: \"highlights\",\n      icon: \"highlights\",\n      order: 2,\n      title: {id: \"header_highlights\"}\n    }\n  ]\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PrerenderData.jsm","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onInputMount = this.onInputMount.bind(this);\n  }\n\n  handleEvent(event) {\n    // Also track search events with our own telemetry\n    if (event.detail.type === \"Search\") {\n      this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n    }\n  }\n\n  onClick(event) {\n    window.gContentSearchController.search(event);\n  }\n\n  componentWillUnmount() {\n    delete window.gContentSearchController;\n  }\n\n  onInputMount(input) {\n    if (input) {\n      // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n      // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n      // can add the appropriate telemetry probes for search. Without the correct\n      // name, certain tests like browser_UsageTelemetry_content.js will fail\n      // (See github ticket #2348 for more details)\n      const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n      // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n      // the search data and acts as context for the search request (See\n      // nsISearchEngine.getSubmission). It is necessary so that search engine\n      // plugins can correctly atribute referrals. (See github ticket #3321 for\n      // more details)\n      const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n      // gContentSearchController needs to exist as a global so that tests for\n      // the existing about:home can find it; and so it allows these tests to pass.\n      // In the future, when activity stream is default about:home, this can be renamed\n      window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n        healthReportKey, searchSource);\n      addEventListener(\"ContentSearchClient\", this);\n    } else {\n      window.gContentSearchController = null;\n      removeEventListener(\"ContentSearchClient\", this);\n    }\n  }\n\n  /*\n   * Do not change the ID on the input field, as legacy newtab code\n   * specifically looks for the id 'newtab-search-text' on input fields\n   * in order to execute searches in various tests\n   */\n  render() {\n    return (<div className=\"search-wrapper\">\n      <label htmlFor=\"newtab-search-text\" className=\"search-label\">\n        <span className=\"sr-only\"><FormattedMessage id=\"search_web_placeholder\" /></span>\n      </label>\n      <input\n        id=\"newtab-search-text\"\n        maxLength=\"256\"\n        placeholder={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        ref={this.onInputMount}\n        title={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        type=\"search\" />\n      <button\n        id=\"searchSubmit\"\n        className=\"search-button\"\n        onClick={this.onClick}\n        title={this.props.intl.formatMessage({id: \"search_button\"})}>\n        <span className=\"sr-only\"><FormattedMessage id=\"search_button\" /></span>\n      </button>\n    </div>);\n  }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Search/Search.jsx","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/constants.js","import {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW_DEFAULT = 3;\nconst CARDS_PER_ROW_COMPACT_WIDE = 4;\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Section extends React.PureComponent {\n  get numRows() {\n    const {rowsPref, maxRows, Prefs} = this.props;\n    return rowsPref ? Prefs.values[rowsPref] : maxRows;\n  }\n\n  _dispatchImpressionStats() {\n    const {props} = this;\n    let cardsPerRow = CARDS_PER_ROW_DEFAULT;\n    if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {\n      // If the section has compact cards and the viewport is wide enough, we show\n      // 4 columns instead of 3.\n      // $break-point-widest = 1072px (from _variables.scss)\n      cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;\n    }\n    const maxCards = cardsPerRow * this.numRows;\n    const cards = props.rows.slice(0, maxCards);\n\n    if (this.needsImpressionStats(cards)) {\n      props.dispatch(ac.ImpressionStats({\n        source: props.eventSource,\n        tiles: cards.map(link => ({id: link.guid}))\n      }));\n      this.impressionCardGuids = cards.map(link => link.guid);\n    }\n  }\n\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionStatsOrAddListener() {\n    const {props} = this;\n\n    if (!props.shouldSendImpressionStats || !props.dispatch) {\n      return;\n    }\n\n    if (props.document.visibilityState === VISIBLE) {\n      this._dispatchImpressionStats();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (props.document.visibilityState === VISIBLE) {\n          if (!this.props.pref.collapsed) {\n            this._dispatchImpressionStats();\n          }\n          props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.rows.length && !this.props.pref.collapsed) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    const {props} = this;\n    const isCollapsed = props.pref.collapsed;\n    const wasCollapsed = prevProps.pref.collapsed;\n    if (\n      // Don't send impression stats for the empty state\n      props.rows.length &&\n      (\n        // We only want to send impression stats if the content of the cards has changed\n        // and the section is not collapsed...\n        (props.rows !== prevProps.rows && !isCollapsed) ||\n        // or if we are expanding a section that was collapsed.\n        (wasCollapsed && !isCollapsed)\n      )\n    ) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  needsImpressionStats(cards) {\n    if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n      return true;\n    }\n\n    for (let i = 0; i < cards.length; i++) {\n      if (cards[i].guid !== this.impressionCardGuids[i]) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  render() {\n    const {\n      id, eventSource, title, icon, rows,\n      emptyState, dispatch, compactCards,\n      contextMenuOptions, initialized, disclaimer,\n      pref, privacyNoticeURL, isFirst, isLast\n    } = this.props;\n\n    const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;\n    const {numRows} = this;\n    const maxCards = maxCardsPerRow * numRows;\n    const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * numRows;\n\n    // Show topics only for top stories and if it's not initialized yet (so\n    // content doesn't shift when it is loaded) or has loaded with topics\n    const shouldShowTopics = (id === \"topstories\" &&\n      (!this.props.topics || this.props.topics.length > 0));\n\n    const realRows = rows.slice(0, maxCards);\n\n    // The empty state should only be shown after we have initialized and there is no content.\n    // Otherwise, we should show placeholders.\n    const shouldShowEmptyState = initialized && !rows.length;\n\n    const cards = [];\n    if (!shouldShowEmptyState) {\n      for (let i = 0; i < maxCards; i++) {\n        const link = realRows[i];\n        // On narrow viewports, we only show 3 cards per row. We'll mark the rest as\n        // .hide-for-narrow to hide in CSS via @media query.\n        const className = (i >= maxCardsOnNarrow) ? \"hide-for-narrow\" : \"\";\n        cards.push(link ? (\n          <Card key={i}\n            index={i}\n            className={className}\n            dispatch={dispatch}\n            link={link}\n            contextMenuOptions={contextMenuOptions}\n            eventSource={eventSource}\n            shouldSendImpressionStats={this.props.shouldSendImpressionStats}\n            isWebExtension={this.props.isWebExtension} />\n        ) : (\n          <PlaceholderCard key={i} className={className} />\n        ));\n      }\n    }\n\n    const sectionClassName = [\n      \"section\",\n      compactCards ? \"compact-cards\" : \"normal-cards\"\n    ].join(\" \");\n\n    // <Section> <-- React component\n    // <section> <-- HTML5 element\n    return (<ComponentPerfTimer {...this.props}>\n      <CollapsibleSection className={sectionClassName} icon={icon}\n        title={title}\n        id={id}\n        eventSource={eventSource}\n        disclaimer={disclaimer}\n        collapsed={this.props.pref.collapsed}\n        showPrefName={(pref && pref.feed) || id}\n        privacyNoticeURL={privacyNoticeURL}\n        Prefs={this.props.Prefs}\n        isFirst={isFirst}\n        isLast={isLast}\n        dispatch={this.props.dispatch}\n        isWebExtension={this.props.isWebExtension}>\n\n        {!shouldShowEmptyState && (<ul className=\"section-list\" style={{padding: 0}}>\n          {cards}\n        </ul>)}\n        {shouldShowEmptyState &&\n          <div className=\"section-empty-state\">\n            <div className=\"empty-state\">\n              {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n                <img className=\"empty-state-icon icon\" style={{\"background-image\": `url('${emptyState.icon}')`}} /> :\n                <img className={`empty-state-icon icon icon-${emptyState.icon}`} />}\n              <p className=\"empty-state-message\">\n                {getFormattedMessage(emptyState.message)}\n              </p>\n            </div>\n          </div>}\n        {shouldShowTopics && <Topics topics={this.props.topics} read_more_endpoint={this.props.read_more_endpoint} />}\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nSection.defaultProps = {\n  document: global.document,\n  rows: [],\n  emptyState: {},\n  pref: {},\n  title: \"\"\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n  renderSections() {\n    const sections = [];\n    const enabledSections = this.props.Sections.filter(section => section.enabled);\n    const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n    // Enabled sections doesn't include Top Sites, so we add it if enabled.\n    const expectedCount = enabledSections.length + ~~showTopSites;\n\n    for (const sectionId of sectionOrder.split(\",\")) {\n      const commonProps = {\n        key: sectionId,\n        isFirst: sections.length === 0,\n        isLast: sections.length === expectedCount - 1\n      };\n      if (sectionId === \"topsites\" && showTopSites) {\n        sections.push(<TopSites {...commonProps} />);\n      } else {\n        const section = enabledSections.find(s => s.id === sectionId);\n        if (section) {\n          sections.push(<SectionIntl {...section} {...commonProps} />);\n        }\n      }\n    }\n    return sections;\n  }\n\n  render() {\n    return (\n      <div className=\"sections-list\">\n        {this.renderSections()}\n      </div>\n    );\n  }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Sections/Sections.jsx","export const cardContextTypes = {\n  history: {\n    intlID: \"type_label_visited\",\n    icon: \"history-item\"\n  },\n  bookmark: {\n    intlID: \"type_label_bookmarked\",\n    icon: \"bookmark-added\"\n  },\n  trending: {\n    intlID: \"type_label_recommended\",\n    icon: \"trending\"\n  },\n  now: {\n    intlID: \"type_label_now\",\n    icon: \"now\"\n  },\n  pocket: {\n    intlID: \"type_label_pocket\",\n    icon: \"pocket\"\n  },\n  download: {\n    intlID: \"type_label_downloaded\",\n    icon: \"download\"\n  }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/types.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {\n      activeCard: null,\n      imageLoaded: false,\n      showContextMenu: false\n    };\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.onLinkClick = this.onLinkClick.bind(this);\n  }\n\n  /**\n   * Helper to conditionally load an image and update state when it loads.\n   */\n  async maybeLoadImage() {\n    // No need to load if it's already loaded or no image\n    const {image} = this.props.link;\n    if (!this.state.imageLoaded && image) {\n      // Initialize a promise to share a load across multiple card updates\n      if (!gImageLoading.has(image)) {\n        const loaderPromise = new Promise((resolve, reject) => {\n          const loader = new Image();\n          loader.addEventListener(\"load\", resolve);\n          loader.addEventListener(\"error\", reject);\n          loader.src = image;\n        });\n\n        // Save and remove the promise only while it's pending\n        gImageLoading.set(image, loaderPromise);\n        loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(image)).catch();\n      }\n\n      // Wait for the image whether just started loading or reused promise\n      await gImageLoading.get(image);\n\n      // Only update state if we're still waiting to load the original image\n      if (this.props.link.image === image && !this.state.imageLoaded) {\n        this.setState({imageLoaded: true});\n      }\n    }\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({\n      activeCard: this.props.index,\n      showContextMenu: true\n    });\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    // Filter out \"history\" type for being the default\n    if (this.props.link.type !== \"history\") {\n      return {value: {card_type: this.props.link.type}};\n    }\n\n    return null;\n  }\n\n  onLinkClick(event) {\n    event.preventDefault();\n    if (this.props.link.type === \"download\") {\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SHOW_DOWNLOAD_FILE,\n        data: this.props.link\n      }));\n    } else {\n      const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.OPEN_LINK,\n        data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n      }));\n    }\n    if (this.props.isWebExtension) {\n      this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n        source: this.props.eventSource,\n        url: this.props.link.url,\n        action_position: this.props.index\n      }));\n    } else {\n      this.props.dispatch(ac.UserEvent(Object.assign({\n        event: \"CLICK\",\n        source: this.props.eventSource,\n        action_position: this.props.index\n      }, this._getTelemetryInfo())));\n\n      if (this.props.shouldSendImpressionStats) {\n        this.props.dispatch(ac.ImpressionStats({\n          source: this.props.eventSource,\n          click: 0,\n          tiles: [{id: this.props.link.guid, pos: this.props.index}]\n        }));\n      }\n    }\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  componentDidMount() {\n    this.maybeLoadImage();\n  }\n\n  componentDidUpdate() {\n    this.maybeLoadImage();\n  }\n\n  componentWillReceiveProps(nextProps) {\n    // Clear the image state if changing images\n    if (nextProps.link.image !== this.props.link.image) {\n      this.setState({imageLoaded: false});\n    }\n  }\n\n  render() {\n    const {index, className, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n    const {props} = this;\n    const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n    // Display \"now\" as \"trending\" until we have new strings #3402\n    const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n    const hasImage = link.image || link.hasImage;\n    const imageStyle = {backgroundImage: link.image ? `url(${link.image})` : \"none\"};\n    const outerClassName = [\n      \"card-outer\",\n      className,\n      isContextMenuOpen && \"active\",\n      props.placeholder && \"placeholder\"\n    ].filter(v => v).join(\" \");\n\n    return (<li className={outerClassName}>\n      <a href={link.type === \"pocket\" ? link.open_url : link.url} onClick={!props.placeholder ? this.onLinkClick : undefined}>\n        <div className=\"card\">\n          <div className=\"card-preview-image-outer\">\n            {hasImage &&\n              <div className={`card-preview-image${this.state.imageLoaded ? \" loaded\" : \"\"}`} style={imageStyle} />\n            }\n          </div>\n          <div className=\"card-details\">\n            {link.type === \"download\" && <div className=\"card-host-name alternate\"><FormattedMessage id={GetPlatformString(this.props.platform)} /></div>}\n            {link.hostname &&\n              <div className=\"card-host-name\">\n                {link.hostname.slice(0, 100)}{link.type === \"download\" && `  \\u2014 ${link.description}`}\n              </div>\n            }\n            <div className={[\n              \"card-text\",\n              icon ? \"\" : \"no-context\",\n              link.description ? \"\" : \"no-description\",\n              link.hostname ? \"\" : \"no-host-name\"\n            ].join(\" \")}>\n              <h4 className=\"card-title\" dir=\"auto\">{link.title}</h4>\n              <p className=\"card-description\" dir=\"auto\">{link.description}</p>\n            </div>\n            <div className=\"card-context\">\n              {icon && !link.context && <span className={`card-context-icon icon icon-${icon}`} />}\n              {link.icon && link.context && <span className=\"card-context-icon icon\" style={{backgroundImage: `url('${link.icon}')`}} />}\n              {intlID && !link.context && <div className=\"card-context-label\"><FormattedMessage id={intlID} defaultMessage=\"Visited\" /></div>}\n              {link.context && <div className=\"card-context-label\">{link.context}</div>}\n            </div>\n          </div>\n        </div>\n      </a>\n      {!props.placeholder && <button className=\"context-menu-button icon\"\n        onClick={this.onMenuButtonClick}>\n        <span className=\"sr-only\">{`Open context menu for ${link.title}`}</span>\n      </button>}\n      {isContextMenuOpen &&\n        <LinkMenu\n          dispatch={dispatch}\n          index={index}\n          source={eventSource}\n          onUpdate={this.onMenuUpdate}\n          options={link.contextMenuOptions || contextMenuOptions}\n          site={link}\n          siteInfo={this._getTelemetryInfo()}\n          shouldSendImpressionStats={shouldSendImpressionStats} />\n      }\n   </li>);\n  }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => <Card placeholder={true} className={props.className} />;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/Card.jsx","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\nconst WEBEXT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"CheckCollapsed\", \"Separator\", \"ManageWebExtension\"];\n\nexport class _SectionMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n\n    const propOptions = props.isWebExtension ? [...WEBEXT_SECTION_MENU_OPTIONS] : [...DEFAULT_SECTION_MENU_OPTIONS];\n    // Prepend custom options and a separator\n    if (props.extraOptions) {\n      propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n    }\n    // Insert privacy notice before the last option (\"ManageSection\")\n    if (props.privacyNoticeURL) {\n      propOptions.splice(-1, 0, \"PrivacyNotice\");\n    }\n\n    const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n      const {action, id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            props.dispatch(ac.UserEvent({\n              event: userEvent,\n              source: props.source\n            }));\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n  render() {\n    const {url, name} = this.props;\n    return (<li><a key={name} className=\"topic-link\" href={url}>{name}</a></li>);\n  }\n}\n\nexport class Topics extends React.PureComponent {\n  render() {\n    const {topics, read_more_endpoint} = this.props;\n    return (\n      <div className=\"topic\">\n        <span><FormattedMessage id=\"pocket_read_more\" /></span>\n        <ul>{topics && topics.map(t => <Topic key={t.name} url={t.url} name={t.name} />)}</ul>\n\n        {read_more_endpoint && <a className=\"topic-read-more\" href={read_more_endpoint}>\n          <FormattedMessage id=\"pocket_read_even_more\" />\n        </a>}\n      </div>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Topics/Topics.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n  if (link.customScreenshotURL) {\n    return \"custom_screenshot\";\n  }\n  if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n    return \"tippytop\";\n  }\n  if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n    return \"rich_icon\";\n  }\n  if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n    return \"screenshot_with_icon\";\n  }\n  if (link.screenshot) {\n    return \"screenshot\";\n  }\n  return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n  const countTopSitesTypes = (acc, link) => {\n    acc[topSiteIconType(link)]++;\n    return acc;\n  };\n\n  return topSites.reduce(countTopSitesTypes, {\n    \"custom_screenshot\": 0,\n    \"screenshot_with_icon\": 0,\n    \"screenshot\": 0,\n    \"tippytop\": 0,\n    \"rich_icon\": 0,\n    \"no_image\": 0\n  });\n}\n\nexport class _TopSites extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onFormClose = this.onFormClose.bind(this);\n  }\n\n  /**\n   * Dispatch session statistics about the quality of TopSites icons and pinned count.\n   */\n  _dispatchTopSitesStats() {\n    const topSites = this._getVisibleTopSites();\n    const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n    const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n    // Dispatch telemetry event with the count of TopSites images types.\n    this.props.dispatch(ac.AlsoToMain({\n      type: at.SAVE_SESSION_PERF_DATA,\n      data: {topsites_icon_stats: topSitesIconsStats, topsites_pinned: topSitesPinned}\n    }));\n  }\n\n  /**\n   * Return the TopSites that are visible based on prefs and window width.\n   */\n  _getVisibleTopSites() {\n    // We hide 2 sites per row when not in the wide layout.\n    let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n    // $break-point-widest = 1072px (from _variables.scss)\n    if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n      sitesPerRow -= 2;\n    }\n    return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n  }\n\n  componentDidUpdate() {\n    this._dispatchTopSitesStats();\n  }\n\n  componentDidMount() {\n    this._dispatchTopSitesStats();\n  }\n\n  onFormClose() {\n    this.props.dispatch(ac.UserEvent({\n      source: TOP_SITES_SOURCE,\n      event: \"TOP_SITES_EDIT_CLOSE\"\n    }));\n    this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n  }\n\n  render() {\n    const {props} = this;\n    const {editForm} = props.TopSites;\n\n    return (<ComponentPerfTimer id=\"topsites\" initialized={props.TopSites.initialized} dispatch={props.dispatch}>\n      <CollapsibleSection\n        className=\"top-sites\"\n        icon=\"topsites\"\n        id=\"topsites\"\n        title={{id: \"header_top_sites\"}}\n        extraMenuOptions={[\"AddTopSite\"]}\n        showPrefName=\"feeds.topsites\"\n        eventSource={TOP_SITES_SOURCE}\n        collapsed={props.TopSites.pref ? props.TopSites.pref.collapsed : undefined}\n        isFirst={props.isFirst}\n        isLast={props.isLast}\n        dispatch={props.dispatch}>\n        <TopSiteList TopSites={props.TopSites} TopSitesRows={props.TopSitesRows} dispatch={props.dispatch} intl={props.intl} topSiteIconType={topSiteIconType} />\n        <div className=\"edit-topsites-wrapper\">\n          {editForm &&\n            <div className=\"edit-topsites\">\n              <div className=\"modal-overlay\" onClick={this.onFormClose} />\n              <div className=\"modal\">\n                <TopSiteForm\n                  site={props.TopSites.rows[editForm.index]}\n                  onClose={this.onFormClose}\n                  dispatch={this.props.dispatch}\n                  intl={this.props.intl}\n                  {...editForm} />\n              </div>\n            </div>\n          }\n        </div>\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nexport const TopSites = connect(state => ({\n  TopSites: state.TopSites,\n  Prefs: state.Prefs,\n  TopSitesRows: state.Prefs.values.topSitesRows\n}))(injectIntl(_TopSites));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSites.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {validationError: this.props.validationError};\n    this.onChange = this.onChange.bind(this);\n    this.onMount = this.onMount.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (nextProps.shouldFocus && !this.props.shouldFocus) {\n      this.input.focus();\n    }\n    if (nextProps.validationError && !this.props.validationError) {\n      this.setState({validationError: true});\n    }\n    // If the component is in an error state but the value was cleared by the parent\n    if (this.state.validationError && !nextProps.value) {\n      this.setState({validationError: false});\n    }\n  }\n\n  onChange(ev) {\n    if (this.state.validationError) {\n      this.setState({validationError: false});\n    }\n    this.props.onChange(ev);\n  }\n\n  onMount(input) {\n    this.input = input;\n  }\n\n  render() {\n    const showClearButton = this.props.value && this.props.onClear;\n    const {typeUrl} = this.props;\n    const {validationError} = this.state;\n\n    return (<label><FormattedMessage id={this.props.titleId} />\n      <div className={`field ${typeUrl ? \"url\" : \"\"}${validationError ? \" invalid\" : \"\"}`}>\n        {this.props.loading ?\n          <div className=\"loading-container\"><div className=\"loading-animation\" /></div> :\n          showClearButton && <div className=\"icon icon-clear-input\" onClick={this.props.onClear} />}\n        <input type=\"text\"\n          value={this.props.value}\n          ref={this.onMount}\n          onChange={this.onChange}\n          placeholder={this.props.intl.formatMessage({id: this.props.placeholderId})}\n          autoFocus={this.props.shouldFocus}\n          disabled={this.props.loading} />\n        {validationError &&\n          <aside className=\"error-tooltip\">\n            <FormattedMessage id={this.props.errorMessageId} />\n          </aside>}\n      </div>\n    </label>);\n  }\n}\n\nTopSiteFormInput.defaultProps = {\n  showClearButton: false,\n  value: \"\",\n  validationError: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    const {site} = props;\n    this.state = {\n      label: site ? (site.label || site.hostname) : \"\",\n      url: site ? site.url : \"\",\n      validationError: false,\n      customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n      showCustomScreenshotForm: site ? site.customScreenshotURL : false\n    };\n    this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n    this.onLabelChange = this.onLabelChange.bind(this);\n    this.onUrlChange = this.onUrlChange.bind(this);\n    this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n    this.onClearUrlClick = this.onClearUrlClick.bind(this);\n    this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n    this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n    this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n    this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n    this.validateUrl = this.validateUrl.bind(this);\n  }\n\n  onLabelChange(event) {\n    this.setState({\"label\": event.target.value});\n  }\n\n  onUrlChange(event) {\n    this.setState({\n      url: event.target.value,\n      validationError: false\n    });\n  }\n\n  onClearUrlClick() {\n    this.setState({\n      url: \"\",\n      validationError: false\n    });\n  }\n\n  onEnableScreenshotUrlForm() {\n    this.setState({showCustomScreenshotForm: true});\n  }\n\n  _updateCustomScreenshotInput(customScreenshotUrl) {\n    this.setState({\n      customScreenshotUrl,\n      validationError: false\n    });\n    this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n  }\n\n  onCustomScreenshotUrlChange(event) {\n    this._updateCustomScreenshotInput(event.target.value);\n  }\n\n  onClearScreenshotInput() {\n    this._updateCustomScreenshotInput(\"\");\n  }\n\n  onCancelButtonClick(ev) {\n    ev.preventDefault();\n    this.props.onClose();\n  }\n\n  onDoneButtonClick(ev) {\n    ev.preventDefault();\n\n    if (this.validateForm()) {\n      const site = {url: this.cleanUrl(this.state.url)};\n      const {index} = this.props;\n      if (this.state.label !== \"\") {\n        site.label = this.state.label;\n      }\n\n      if (this.state.customScreenshotUrl) {\n        site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n      } else if (this.props.site && this.props.site.customScreenshotURL) {\n        // Used to flag that previously cached screenshot should be removed\n        site.customScreenshotURL = null;\n      }\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.TOP_SITES_PIN,\n        data: {site, index}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"TOP_SITES_EDIT\",\n        action_position: index\n      }));\n\n      this.props.onClose();\n    }\n  }\n\n  onPreviewButtonClick(event) {\n    event.preventDefault();\n    if (this.validateForm()) {\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.PREVIEW_REQUEST,\n        data: {url: this.cleanUrl(this.state.customScreenshotUrl)}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"PREVIEW_REQUEST\"\n      }));\n    }\n  }\n\n  cleanUrl(url) {\n    // If we are missing a protocol, prepend http://\n    if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n      return `http://${url}`;\n    }\n    return url;\n  }\n\n  _tryParseUrl(url) {\n    try {\n      return new URL(url);\n    } catch (e) {\n      return null;\n    }\n  }\n\n  validateUrl(url) {\n    const validProtocols = [\"http:\", \"https:\"];\n    const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n    return urlObj && validProtocols.includes(urlObj.protocol);\n  }\n\n  validateCustomScreenshotUrl() {\n    const {customScreenshotUrl} = this.state;\n    return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n  }\n\n  validateForm() {\n    const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n    if (!validate) {\n      this.setState({validationError: true});\n    }\n\n    return validate;\n  }\n\n  _renderCustomScreenshotInput() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n    // Set focus on error if the url field is valid or when the input is first rendered and is empty\n    const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n    const isLoading = this.props.previewResponse === null &&\n      customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n    if (!this.state.showCustomScreenshotForm) {\n      return (<a className=\"enable-custom-image-input\" onClick={this.onEnableScreenshotUrlForm}>\n        <FormattedMessage id=\"topsites_form_use_image_link\" />\n      </a>);\n    }\n    return (<div className=\"custom-image-input-container\">\n      <TopSiteFormInput\n        errorMessageId={requestFailed ? \"topsites_form_image_validation\" : \"topsites_form_url_validation\"}\n        loading={isLoading}\n        onChange={this.onCustomScreenshotUrlChange}\n        onClear={this.onClearScreenshotInput}\n        shouldFocus={shouldFocus}\n        typeUrl={true}\n        value={customScreenshotUrl}\n        validationError={validationError}\n        titleId=\"topsites_form_image_url_label\"\n        placeholderId=\"topsites_form_url_placeholder\"\n        intl={this.props.intl} />\n    </div>);\n  }\n\n  render() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    // For UI purposes, editing without an existing link is \"add\"\n    const showAsAdd = !this.props.site;\n    const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n    const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n    // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n    // or the request failed\n    const previewMode = changed && !this.props.previewResponse;\n    const previewLink = Object.assign({}, this.props.site);\n    if (this.props.previewResponse) {\n      previewLink.screenshot = this.props.previewResponse;\n      previewLink.customScreenshotURL = this.props.previewUrl;\n    }\n    return (\n      <form className=\"topsite-form\">\n        <div className=\"form-input-container\">\n          <h3 className=\"section-title\">\n            <FormattedMessage id={showAsAdd ? \"topsites_form_add_header\" : \"topsites_form_edit_header\"} />\n          </h3>\n          <div className=\"fields-and-preview\">\n            <div className=\"form-wrapper\">\n              <TopSiteFormInput onChange={this.onLabelChange}\n                value={this.state.label}\n                titleId=\"topsites_form_title_label\"\n                placeholderId=\"topsites_form_title_placeholder\"\n                intl={this.props.intl} />\n              <TopSiteFormInput onChange={this.onUrlChange}\n                shouldFocus={this.state.validationError && !this.validateUrl(this.state.url)}\n                value={this.state.url}\n                onClear={this.onClearUrlClick}\n                validationError={this.state.validationError && !this.validateUrl(this.state.url)}\n                titleId=\"topsites_form_url_label\"\n                typeUrl={true}\n                placeholderId=\"topsites_form_url_placeholder\"\n                errorMessageId=\"topsites_form_url_validation\"\n                intl={this.props.intl} />\n              {this._renderCustomScreenshotInput()}\n            </div>\n            <TopSiteLink link={previewLink}\n              defaultStyle={requestFailed}\n              title={this.state.label} />\n          </div>\n        </div>\n        <section className=\"actions\">\n          <button className=\"cancel\" type=\"button\" onClick={this.onCancelButtonClick}>\n            <FormattedMessage id=\"topsites_form_cancel_button\" />\n          </button>\n          {previewMode ?\n            <button className=\"done preview\" type=\"submit\" onClick={this.onPreviewButtonClick}>\n              <FormattedMessage id=\"topsites_form_preview_button\" />\n            </button> :\n            <button className=\"done\" type=\"submit\" onClick={this.onDoneButtonClick}>\n              <FormattedMessage id={showAsAdd ? \"topsites_form_add_button\" : \"topsites_form_save_button\"} />\n            </button>}\n        </section>\n      </form>\n    );\n  }\n}\n\nTopSiteForm.defaultProps = {\n  site: null,\n  index: -1\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteForm.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\n\nexport class _StartupOverlay extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onInputChange = this.onInputChange.bind(this);\n    this.onSubmit = this.onSubmit.bind(this);\n    this.clickSkip = this.clickSkip.bind(this);\n    this.initScene = this.initScene.bind(this);\n    this.removeOverlay = this.removeOverlay.bind(this);\n\n    this.state = {emailInput: \"\"};\n    this.initScene();\n  }\n\n  initScene() {\n    // Timeout to allow the scene to render once before attaching the attribute\n    // to trigger the animation.\n    setTimeout(() => {\n      this.setState({show: true});\n    }, 10);\n  }\n\n  removeOverlay() {\n    window.removeEventListener(\"visibilitychange\", this.removeOverlay);\n    this.setState({show: false});\n    setTimeout(() => {\n      // Allow scrolling and fully remove overlay after animation finishes.\n      document.body.classList.remove(\"welcome\");\n    }, 400);\n  }\n\n  onInputChange(e) {\n    this.setState({emailInput: e.target.value});\n  }\n\n  onSubmit() {\n    this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\"}));\n    window.addEventListener(\"visibilitychange\", this.removeOverlay);\n  }\n\n  clickSkip() {\n    this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\"}));\n    this.removeOverlay();\n  }\n\n  render() {\n    let termsLink = (<a href=\"https://accounts.firefox.com/legal/terms\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_terms_of_service\" /></a>);\n    let privacyLink = (<a href=\"https://accounts.firefox.com/legal/privacy\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_privacy_notice\" /></a>);\n    return (\n      <div className={`overlay-wrapper ${this.state.show ? \"show \" : \"\"}`}>\n        <div className=\"background\" />\n        <div className=\"firstrun-scene\">\n          <div className=\"fxaccounts-container\">\n            <div className=\"firstrun-left-divider\">\n              <h1 className=\"firstrun-title\"><FormattedMessage id=\"firstrun_title\" /></h1>\n              <p className=\"firstrun-content\"><FormattedMessage id=\"firstrun_content\" /></p>\n              <a className=\"firstrun-link\" href=\"https://www.mozilla.org/firefox/features/sync/\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_learn_more_link\" /></a>\n            </div>\n            <div className=\"firstrun-sign-in\">\n              <p className=\"form-header\"><FormattedMessage id=\"firstrun_form_header\" /><span><FormattedMessage id=\"firstrun_form_sub_header\" /></span></p>\n              <form method=\"get\" action=\"https://accounts.firefox.com?entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun\" target=\"_blank\" rel=\"noopener noreferrer\" onSubmit={this.onSubmit}>\n                <input name=\"service\" type=\"hidden\" value=\"sync\" />\n                <input name=\"action\" type=\"hidden\" value=\"email\" />\n                <input name=\"context\" type=\"hidden\" value=\"fx_desktop_v3\" />\n                <input className=\"email-input\" name=\"email\" type=\"email\" required=\"true\" placeholder={this.props.intl.formatMessage({id: \"firstrun_email_input_placeholder\"})} onChange={this.onInputChange} />\n                <div className=\"extra-links\">\n                  <FormattedMessage\n                    id=\"firstrun_extra_legal_links\"\n                    values={{\n                      terms: termsLink,\n                      privacy: privacyLink\n                    }} />\n                </div>\n                <button className=\"continue-button\" type=\"submit\"><FormattedMessage id=\"firstrun_continue_to_login\" /></button>\n              </form>\n              <button className=\"skip-button\" disabled={!!this.state.emailInput} onClick={this.clickSkip}><FormattedMessage id=\"firstrun_skip_login\" /></button>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport const StartupOverlay = connect()(injectIntl(_StartupOverlay));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/StartupOverlay/StartupOverlay.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n  constructor(store, options = {}) {\n    this._store = store;\n    // Overrides for testing\n    this.document = options.document || global.document;\n    this._perfService = options.perfService || perfSvc;\n    this._onVisibilityChange = this._onVisibilityChange.bind(this);\n  }\n\n  /**\n   * sendEventOrAddListener - Notify immediately if the page is already visible,\n   *                    or else set up a listener for when visibility changes.\n   *                    This is needed for accurate session tracking for telemetry,\n   *                    because tabs are pre-loaded.\n   */\n  sendEventOrAddListener() {\n    if (this.document.visibilityState === VISIBLE) {\n      // If the document is already visible, to the user, send a notification\n      // immediately that a session has started.\n      this._sendEvent();\n    } else {\n      // If the document is not visible, listen for when it does become visible.\n      this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  /**\n   * _sendEvent - Sends a message to the main process to indicate the current\n   *              tab is now visible to the user, includes the\n   *              visibility_event_rcvd_ts time in ms from the UNIX epoch.\n   */\n  _sendEvent() {\n    this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n    try {\n      let visibility_event_rcvd_ts = this._perfService\n        .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n      this._store.dispatch(ac.AlsoToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data: {visibility_event_rcvd_ts}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up.\n    }\n  }\n\n  /**\n   * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n   *                      and removes the event listener. This should only be called once per tab.\n   */\n  _onVisibilityChange() {\n    if (this.document.visibilityState === VISIBLE) {\n      this._sendEvent();\n      this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/detect-user-session-start.js"],"sourceRoot":""}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..665bfc9ee05c4354d2959393c6c0f492dbd177b1
GIT binary patch
literal 14115
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
NrmCo=P$LKV@IO0q(G&mx
--- 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.05.24.1266-fdda2139</em:version>
+    <em:version>2018.05.30.1059-64e374ac</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/extensions/activity-stream/lib/ASRouter.jsm
+++ b/browser/extensions/activity-stream/lib/ASRouter.jsm
@@ -1,65 +1,25 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 Cu.importGlobalProperties(["fetch"]);
 const {ASRouterActions: ra} = ChromeUtils.import("resource://activity-stream/common/Actions.jsm", {});
+const {OnboardingMessageProvider} = ChromeUtils.import("resource://activity-stream/lib/OnboardingMessageProvider.jsm", {});
 
 const INCOMING_MESSAGE_NAME = "ASRouter:child-to-parent";
 const OUTGOING_MESSAGE_NAME = "ASRouter:parent-to-child";
 const ONE_HOUR_IN_MS = 60 * 60 * 1000;
 const SNIPPETS_ENDPOINT_PREF = "browser.newtabpage.activity-stream.asrouter.snippetsUrl";
 // Note: currently a restart is required when this pref is changed, this will be fixed in Bug 1462114
 const SNIPPETS_ENDPOINT = Services.prefs.getStringPref(SNIPPETS_ENDPOINT_PREF,
   "https://activity-stream-icons.services.mozilla.com/v1/messages.json.br");
-const LOCAL_TEST_MESSAGES = [
-  {
-    id: "ONBOARDING_1",
-    template: "onboarding",
-    bundled: 3,
-    content: {
-      title: "Private Browsing",
-      text: "Browse by yourself. Private Browsing with Tracking Protection blocks online trackers that follow you around the web.",
-      icon: "privatebrowsing",
-      button_label: "Try It Now",
-      button_action: "OPEN_PRIVATE_BROWSER_WINDOW",
-      button_action_params: "about:home"
-    }
-  },
-  {
-    id: "ONBOARDING_2",
-    template: "onboarding",
-    bundled: 3,
-    content: {
-      title: "Screenshots",
-      text: "Take, save and share screenshots - without leaving Firefox. Capture a region or an entire page as you browse. Then save to the web for easy access and sharing.",
-      icon: "screenshots",
-      button_label: "Try It Now",
-      button_action: "OPEN_URL",
-      button_action_params: "https://screenshots.firefox.com/#tour"
-    }
-  },
-  {
-    id: "ONBOARDING_3",
-    template: "onboarding",
-    bundled: 3,
-    content: {
-      title: "Add-ons",
-      text: "Add even more features that make Firefox work harder for you. Compare prices, check the weather or express your personality with a custom theme.",
-      icon: "addons",
-      button_label: "Try It Now",
-      button_action: "OPEN_ABOUT_PAGE",
-      button_action_params: "addons"
-    }
-  }
-];
 
 const MessageLoaderUtils = {
   /**
    * _localLoader - Loads messages for a local provider (i.e. one that lives in mozilla central)
    *
    * @param {obj} provider An AS router provider
    * @param {Array} provider.messages An array of messages
    * @returns {Array} the array of messages
@@ -74,19 +34,26 @@ const MessageLoaderUtils = {
    * @param {obj} provider An AS router provider
    * @param {string} provider.url An endpoint that returns an array of messages as JSON
    * @returns {Promise} resolves with an array of messages, or an empty array if none could be fetched
    */
   async _remoteLoader(provider) {
     let remoteMessages = [];
     if (provider.url) {
       try {
-        remoteMessages = (await (await fetch(provider.url)).json())
-          .messages
-          .map(msg => ({...msg, provider_url: provider.url}));
+        const response = await fetch(provider.url);
+        if (
+          // Empty response
+          response.status !== 204 &&
+          (response.ok || response.status === 302)
+        ) {
+          remoteMessages = (await response.json())
+            .messages
+            .map(msg => ({...msg, provider_url: provider.url}));
+        }
       } catch (e) {
         Cu.reportError(e);
       }
     }
     return remoteMessages;
   },
 
   /**
@@ -346,17 +313,18 @@ class _ASRouter {
       case "GET_NEXT_MESSAGE":
         // Wait for our initial message loading to be done before responding to any UI requests
         await this.waitForInitialized;
         // Check if any updates are needed first
         await this.loadMessagesFromAllProviders();
         await this.sendNextMessage(target);
         break;
       case ra.OPEN_PRIVATE_BROWSER_WINDOW:
-        this.openLinkIn(action.data.button_action_params, target, {isPrivate: true, where: "window"});
+        // Forcefully open about:privatebrowsing
+        target.browser.ownerGlobal.OpenBrowserWindow({private: true});
         break;
       case ra.OPEN_URL:
         this.openLinkIn(action.data.button_action_params, target, {isPrivate: false, where: "tabshifted"});
         break;
       case ra.OPEN_ABOUT_PAGE:
         this.openLinkIn(`about:${action.data.button_action_params}`, target, {isPrivate: false, trusted: true, where: "tab"});
         break;
       case "BLOCK_MESSAGE_BY_ID":
@@ -397,14 +365,14 @@ class _ASRouter {
 this._ASRouter = _ASRouter;
 
 /**
  * ASRouter - singleton instance of _ASRouter that controls all messages
  * in the new tab page.
  */
 this.ASRouter = new _ASRouter({
   providers: [
-    {id: "onboarding", type: "local", messages: LOCAL_TEST_MESSAGES},
+    {id: "onboarding", type: "local", messages: OnboardingMessageProvider.getMessages()},
     {id: "snippets", type: "remote", url: SNIPPETS_ENDPOINT, updateCycleInMs: ONE_HOUR_IN_MS * 4}
   ]
 });
 
 const EXPORTED_SYMBOLS = ["_ASRouter", "ASRouter", "MessageLoaderUtils"];
--- a/browser/extensions/activity-stream/lib/AboutPreferences.jsm
+++ b/browser/extensions/activity-stream/lib/AboutPreferences.jsm
@@ -226,16 +226,17 @@ this.AboutPreferences = class AboutPrefe
         if (rowsPref && maxRows) {
           const detailHbox = createAppend("hbox", detailVbox);
           detailHbox.setAttribute("align", "center");
           label.setAttribute("flex", 1);
           detailHbox.appendChild(label);
 
           // Add appropriate number of localized entries to the dropdown
           const menulist = createAppend("menulist", detailHbox);
+          menulist.setAttribute("crop", "none");
           const menupopup = createAppend("menupopup", menulist);
           for (let num = 1; num <= maxRows; num++) {
             const plurals = formatString({id: "prefs_section_rows_option", values: {num}});
             const item = createAppend("menuitem", menupopup);
             item.setAttribute("label", PluralForm.get(num, plurals));
             item.setAttribute("value", num);
           }
           linkPref(menulist, rowsPref, "int");
--- a/browser/extensions/activity-stream/lib/ActivityStream.jsm
+++ b/browser/extensions/activity-stream/lib/ActivityStream.jsm
@@ -134,20 +134,28 @@ const PREFS_CONFIG = new Map([
   ["section.highlights.includePocket", {
     title: "Boolean flag that decides whether or not to show saved Pocket stories in highlights.",
     value: true
   }],
   ["section.highlights.includeDownloads", {
     title: "Boolean flag that decides whether or not to show saved recent Downloads in highlights.",
     value: true
   }],
+  ["section.highlights.rows", {
+    title: "Number of rows of Highlights to display",
+    value: 2
+  }],
   ["section.topstories.showDisclaimer", {
     title: "Boolean flag that decides whether or not to show the topstories disclaimer.",
     value: true
   }],
+  ["section.topstories.rows", {
+    title: "Number of rows of Top Stories to display",
+    value: 1
+  }],
   ["tippyTop.service.endpoint", {
     title: "Tippy Top service manifest url",
     value: "https://activity-stream-icons.services.mozilla.com/v1/icons.json.br"
   }],
   ["sectionOrder", {
     title: "The rendering order for the sections",
     value: "topsites,topstories,highlights"
   }],
--- a/browser/extensions/activity-stream/lib/HighlightsFeed.jsm
+++ b/browser/extensions/activity-stream/lib/HighlightsFeed.jsm
@@ -20,17 +20,17 @@ ChromeUtils.defineModuleGetter(this, "Ne
   "resource://gre/modules/NewTabUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "Screenshots",
   "resource://activity-stream/lib/Screenshots.jsm");
 ChromeUtils.defineModuleGetter(this, "PageThumbs",
   "resource://gre/modules/PageThumbs.jsm");
 ChromeUtils.defineModuleGetter(this, "DownloadsManager",
   "resource://activity-stream/lib/DownloadsManager.jsm");
 
-const HIGHLIGHTS_MAX_LENGTH = 9;
+const HIGHLIGHTS_MAX_LENGTH = 16;
 const MANY_EXTRA_LENGTH = HIGHLIGHTS_MAX_LENGTH * 5 + TOP_SITES_DEFAULT_ROWS * TOP_SITES_MAX_SITES_PER_ROW;
 const SECTION_ID = "highlights";
 const SYNC_BOOKMARKS_FINISHED_EVENT = "weave:engine:sync:applied";
 const BOOKMARKS_RESTORE_SUCCESS_EVENT = "bookmarks-restore-success";
 const BOOKMARKS_RESTORE_FAILED_EVENT = "bookmarks-restore-failed";
 const RECENT_DOWNLOAD_THRESHOLD = 36 * 60 * 60 * 1000;
 
 this.HighlightsFeed = class HighlightsFeed {
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/lib/OnboardingMessageProvider.jsm
@@ -0,0 +1,67 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const ONBOARDING_MESSAGES = [
+  {
+    id: "ONBOARDING_1",
+    template: "onboarding",
+    bundled: 3,
+    content: {
+      title: "Private Browsing",
+      text: "Browse by yourself. Private Browsing with Tracking Protection blocks online trackers that follow you around the web.",
+      icon: "privatebrowsing",
+      button_label: "Try It Now",
+      button_action: "OPEN_PRIVATE_BROWSER_WINDOW"
+    }
+  },
+  {
+    id: "ONBOARDING_2",
+    template: "onboarding",
+    bundled: 3,
+    content: {
+      title: "Screenshots",
+      text: "Take, save and share screenshots - without leaving Firefox. Capture a region or an entire page as you browse. Then save to the web for easy access and sharing.",
+      icon: "screenshots",
+      button_label: "Try It Now",
+      button_action: "OPEN_URL",
+      button_action_params: "https://screenshots.firefox.com/#tour"
+    }
+  },
+  {
+    id: "ONBOARDING_3",
+    template: "onboarding",
+    bundled: 3,
+    content: {
+      title: "Add-ons",
+      text: "Add even more features that make Firefox work harder for you. Compare prices, check the weather or express your personality with a custom theme.",
+      icon: "addons",
+      button_label: "Try It Now",
+      button_action: "OPEN_ABOUT_PAGE",
+      button_action_params: "addons"
+    }
+  },
+  {
+    id: "ONBOARDING_4",
+    template: "onboarding",
+    bundled: 3,
+    content: {
+      title: "Extensions",
+      text: "Make browsing faster, smarter, or safer with browser apps. Protect passwords, find deals, download videos, and much more. You can even block annoying ads with extensions like Ghostery.",
+      icon: "gift",
+      button_label: "Get Ghostery",
+      button_action: "OPEN_URL",
+      button_action_params: "https://addons.mozilla.org/en-US/firefox/addon/ghostery/"
+    }
+  }
+];
+
+const OnboardingMessageProvider = {
+  getMessages() {
+    return ONBOARDING_MESSAGES;
+  }
+};
+this.OnboardingMessageProvider = OnboardingMessageProvider;
+
+const EXPORTED_SYMBOLS = ["OnboardingMessageProvider"];
--- a/browser/extensions/activity-stream/lib/SectionsManager.jsm
+++ b/browser/extensions/activity-stream/lib/SectionsManager.jsm
@@ -37,17 +37,18 @@ const BUILT_IN_SECTIONS = {
       link: {
         href: "https://getpocket.com/firefox/new_tab_learn_more",
         id: "section_disclaimer_topstories_linktext"
       },
       button: {id: "section_disclaimer_topstories_buttontext"}
     },
     privacyNoticeURL: "https://www.mozilla.org/privacy/firefox/#suggest-relevant-content",
     compactCards: false,
-    maxRows: 1,
+    rowsPref: "section.topstories.rows",
+    maxRows: 4,
     availableLinkMenuOptions: ["CheckBookmarkOrArchive", "CheckSavedToPocket", "Separator", "OpenInNewWindow", "OpenInPrivateWindow", "Separator", "BlockUrl"],
     emptyState: {
       message: {id: "topstories_empty_state", values: {provider: options.provider_name}},
       icon: "check"
     },
     shouldSendImpressionStats: true,
     dedupeFrom: ["highlights"]
   }),
@@ -70,17 +71,18 @@ const BUILT_IN_SECTIONS = {
         titleString: "prefs_highlights_options_pocket_label"
       }]
     },
     shouldHidePref:  false,
     eventSource: "HIGHLIGHTS",
     icon: "highlights",
     title: {id: "header_highlights"},
     compactCards: true,
-    maxRows: 2,
+    rowsPref: "section.highlights.rows",
+    maxRows: 4,
     emptyState: {
       message: {id: "highlights_empty_state"},
       icon: "highlights"
     },
     shouldSendImpressionStats: false
   })
 };
 
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Yañı İlmek</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
-    <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Ağ&#x27;da qıdır</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Ağ&#x27;da qıdır" title="Ağ&#x27;da qıdır"/><button id="searchSubmit" class="search-button" title="Qıdır"><span class="sr-only"><span>Qıdır</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Zirvedeki Saytlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket tevsiyeli</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Yüksek-ışıtmalar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div></div>
+    <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Ağ&#x27;da qıdır</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Ağ&#x27;da qıdır" title="Ağ&#x27;da qıdır"/><button id="searchSubmit" class="search-button" title="Qıdır"><span class="sr-only"><span>Qıdır</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Zirvedeki Saytlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytnı tahrir et"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket tevsiyeli</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Popülâr Mevzular:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Yüksek-ışıtmalar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Yañı İlmek saifeñizni Özelleştiriñiz"></button></div></div></main></div></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
     <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
@@ -33,52 +33,52 @@ window.gActivityStreamStrings = {
   "menu_action_go_to_download_page": "Endirme Saifesine Bar",
   "menu_action_remove_download": "Keçmişten Çetleştir",
   "search_button": "Qıdır",
   "search_header": "{search_engine_name} Qıdırması",
   "search_web_placeholder": "Ağ'da qıdır",
   "section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.",
   "section_disclaimer_topstories_linktext": "Learn how it works.",
   "section_disclaimer_topstories_buttontext": "Tamam, añladım",
-  "prefs_home_header": "Firefox Home Content",
-  "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_section_rows_option": "{num} row;{num} rows",
+  "prefs_home_header": "Firefox Ev Muhtevası",
+  "prefs_home_description": "Firefox Ev saifesinde körmege istegeniñiz muhtevanı saylañız.",
+  "prefs_section_rows_option": "{num} satır;{num} satır",
   "prefs_search_header": "Ağ Qıdırması",
-  "prefs_topsites_description": "The sites you visit most",
-  "prefs_topstories_description2": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "prefs_topsites_description": "En çoq ziyaret etkeniñiz saytlar",
+  "prefs_topstories_description2": "İnternet etrafından mükemmel muhteva, siziñ içün şahsiyleştirilgen",
+  "prefs_topstories_options_sponsored_label": "Sponsorlı Hikâyeler",
   "prefs_topstories_sponsored_learn_more": "Daha çoq ögren",
-  "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
-  "prefs_highlights_options_visited_label": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
-  "prefs_snippets_description": "Updates from Mozilla and Firefox",
-  "settings_pane_button_label": "Customize your New Tab page",
-  "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_snippets_header": "Snippets",
+  "prefs_highlights_description": "Saqlağan yaki ziyaret etken olğanıñız saytlarnıñ bir saylamı",
+  "prefs_highlights_options_visited_label": "Ziyaret etilgen saifeler",
+  "prefs_highlights_options_download_label": "Eñ Deminki Endirme",
+  "prefs_highlights_options_pocket_label": "Pocket’ke Saqlanğan Saifeler",
+  "prefs_snippets_description": "Mozilla ve Firefox’tan Yañartmalar",
+  "settings_pane_button_label": "Yañı İlmek saifeñizni Özelleştiriñiz",
+  "settings_pane_topsites_header": "Eñ Üst Saytlar",
+  "settings_pane_highlights_header": "Yüksek-ışıtmalar",
+  "settings_pane_highlights_options_bookmarks": "Saifeimleri",
+  "settings_pane_snippets_header": "Qırpıntılar",
   "edit_topsites_button_text": "Tahrir Et",
-  "edit_topsites_edit_button": "Edit this site",
-  "topsites_form_add_header": "New Top Site",
-  "topsites_form_edit_header": "Edit Top Site",
+  "edit_topsites_edit_button": "Bu saytnı tahrir et",
+  "topsites_form_add_header": "Yañı Üst Sayt",
+  "topsites_form_edit_header": "Üst Saytnı Tahrir Et",
   "topsites_form_title_label": "Serlevha",
-  "topsites_form_title_placeholder": "Enter a title",
+  "topsites_form_title_placeholder": "Bir serlevha kirset",
   "topsites_form_url_label": "URL",
-  "topsites_form_image_url_label": "Custom Image URL",
-  "topsites_form_url_placeholder": "Type or paste a URL",
-  "topsites_form_use_image_link": "Use a custom image…",
+  "topsites_form_image_url_label": "Özel Suret URL'si",
+  "topsites_form_url_placeholder": "Bir URL tuşlañız yaki yapıştırıñız",
+  "topsites_form_use_image_link": "Özel bir suret qullan…",
   "topsites_form_preview_button": "Ögbaqış",
   "topsites_form_add_button": "Ekle",
   "topsites_form_save_button": "Saqla",
   "topsites_form_cancel_button": "Vazgeç",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
-  "pocket_read_more": "Popular Topics:",
-  "pocket_read_even_more": "View More Stories",
+  "pocket_read_more": "Popülâr Mevzular:",
+  "pocket_read_even_more": "Daha Çoq Hikâye Köster",
   "highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.",
   "topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.",
   "manual_migration_explanation2": "Try Firefox with the bookmarks, history and passwords from another browser.",
   "manual_migration_cancel_button": "Hayır, Teşekkürler",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Kesimni Çetleştir",
--- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Ne, děkuji",
   "manual_migration_import_button": "Importovat nyní",
   "error_fallback_default_info": "Jejda, při načítání tohoto obsahu se něco pokazilo.",
   "error_fallback_default_refresh_suggestion": "Obnovte prosím stránku a zkuste to znovu.",
   "section_menu_action_remove_section": "Odebrat sekci",
   "section_menu_action_collapse_section": "Sbalit sekci",
   "section_menu_action_expand_section": "Rozbalit sekci",
   "section_menu_action_manage_section": "Nastavení sekce",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Správa rozšíření",
   "section_menu_action_add_topsite": "Přidat mezi top stránky",
   "section_menu_action_move_up": "Posunout nahoru",
   "section_menu_action_move_down": "Posunout dolů",
   "section_menu_action_privacy_notice": "Zásady ochrany osobních údajů",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Obnovit výchozí",
-  "settings_pane_header": "Předvolby nového panelu",
-  "settings_pane_body2": "Vyberte, co chcete na této stránce vidět.",
-  "settings_pane_search_header": "Vyhledávání",
-  "settings_pane_search_body": "Vyhledávání na webu rovnou ze stránky nového panelu.",
-  "settings_pane_topsites_body": "Přístup k nejčastěji navštěvovaným stránkám.",
-  "settings_pane_topsites_options_showmore": "Zobrazit dva řádky",
-  "settings_pane_highlights_body2": "Najděte cestu zpět k zajímavým věcem, které jste nedávno viděli nebo uložili do záložek.",
-  "settings_pane_highlights_options_visited": "Navštívené stránky",
-  "settings_pane_snippets_body": "Přečtěte si krátké zprávy od Mozilly o Firefoxu, internetu a občas i náhodné memy a hlášky.",
-  "settings_pane_done_button": "Hotovo",
-  "settings_pane_topstories_options_sponsored": "Zobrazit sponzorované příběhy",
-  "pocket_description": "Objevte obsah s vysokou kvalitou, který byste mohli jinak propásnout. Pomůže vám služby Pocket od Mozilly."
+  "firstrun_title": "Vezměte si Firefox s sebou",
+  "firstrun_content": "Mějte své záložky, historii i uložená hesla s sebou na všech svých zařízeních.",
+  "firstrun_learn_more_link": "Zjistěte více o účtech Firefoxu",
+  "firstrun_form_header": "Zadejte svoji e-mailovou adresu",
+  "firstrun_form_sub_header": "a používejte službu Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-mail",
+  "firstrun_extra_legal_links": "Pokračováním souhlasíte s {terms} a {privacy}.",
+  "firstrun_terms_of_service": "Podmínkami používání služby",
+  "firstrun_privacy_notice": "Zásadami ochrany soukromí",
+  "firstrun_continue_to_login": "Pokračovat",
+  "firstrun_skip_login": "Přeskočit tento krok"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Dim Diolch",
   "manual_migration_import_button": "Mewnforio Nawr",
   "error_fallback_default_info": "Wps, aeth rhywbeth o'i le wrth llwytho'r cynnwys hwn.",
   "error_fallback_default_refresh_suggestion": "Adnewyddu'r dudalen i geisio eto.",
   "section_menu_action_remove_section": "Tynnu'r Adran",
   "section_menu_action_collapse_section": "Cau'r Adran",
   "section_menu_action_expand_section": "Estyn yr Adran",
   "section_menu_action_manage_section": "Rheoli'r Adran",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Rheoli Estyniad",
   "section_menu_action_add_topsite": "Ychwanegu Hoff Wefan",
   "section_menu_action_move_up": "Symud i Fyny",
   "section_menu_action_move_down": "Symud i Lawr",
   "section_menu_action_privacy_notice": "Hysbysiad Preifatrwydd",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Adfer y Rhagosodedig",
-  "settings_pane_header": "Dewisiadau Tab Newydd",
-  "settings_pane_body2": "Dewis beth fyddwch yn ei weld ar y dudalen hon.",
-  "settings_pane_search_header": "Chwilio",
-  "settings_pane_search_body": "Chwilio'r We o'ch tab newydd.",
-  "settings_pane_topsites_body": "Cael mynediad at y gwefannau rydych yn ymweld â nhw amlaf.",
-  "settings_pane_topsites_options_showmore": "Dangos dwy res",
-  "settings_pane_highlights_body2": "Mynd yn ôl at bethau diddorol rydych wedi ymweld â nhw neu osod nod tudalen iddyn nhw.",
-  "settings_pane_highlights_options_visited": "Gwefannau Ymwelwyd â Nhw",
-  "settings_pane_snippets_body": "Darllenwch ddiweddariadau cryno gan Mozilla am Firefox, diwylliant y Rhyngrwyd ac weithiau meme ar hap.",
-  "settings_pane_done_button": "Gorffen",
-  "settings_pane_topstories_options_sponsored": "Dangos Straeon wedi eu Noddi",
-  "pocket_description": "Darganfyddwch gynnwys o ansawdd uchel y byddech o bosib yn eu colli, gyda chymorth gan Pocket, sy nawr yn rhan o Mozilla."
+  "firstrun_title": "Mynd â Firefox gyda Chi",
+  "firstrun_content": "Cewch eich nodau tudalen, hanes, cyfrineiriau a gosodiadau eraill ar eich holl ddyfeisiau.",
+  "firstrun_learn_more_link": "Dysgu rhagor am Gyfrif Firefox",
+  "firstrun_form_header": "Rhowch eich e-bost",
+  "firstrun_form_sub_header": "i barhau i Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-bost",
+  "firstrun_extra_legal_links": "Gan barhau, rydych yn cytuno i delerau'r {terms} a'r {privacy}.",
+  "firstrun_terms_of_service": "Amodau Gwasanaeth",
+  "firstrun_privacy_notice": "Hysbysiad Preifatrwydd",
+  "firstrun_continue_to_login": "Parhau",
+  "firstrun_skip_login": "Hepgor y cam hwn"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
@@ -75,37 +75,37 @@ window.gActivityStreamStrings = {
   "pocket_read_more": "Populære emner:",
   "pocket_read_even_more": "Se flere historier",
   "highlights_empty_state": "Gå i gang med at browse, så vil vi vise dig nogle af de artikler, videoer og andre sider, du har besøgt eller gemt et bogmærke til for nylig.",
   "topstories_empty_state": "Der er ikke flere nye historier. Kom tilbage senere for at se flere tophistorier fra {provider}. Kan du ikke vente? Vælg et populært emne og find flere spændende historier fra hele verden.",
   "manual_migration_explanation2": "Prøv Firefox med bogmærkerne, historikken og adgangskoderne fra en anden browser.",
   "manual_migration_cancel_button": "Nej tak",
   "manual_migration_import_button": "Importer nu",
   "error_fallback_default_info": "Hovsa. Noget gik galt ved indlæsning af indholdet.",
-  "error_fallback_default_refresh_suggestion": "Genindlæs siden og prøv igen.",
+  "error_fallback_default_refresh_suggestion": "Prøv igen ved at genindlæse siden.",
   "section_menu_action_remove_section": "Fjern afsnit",
   "section_menu_action_collapse_section": "Sammenfold afsnit",
   "section_menu_action_expand_section": "Udvid afsnit",
   "section_menu_action_manage_section": "Håndter afsnit",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Håndter udvidelse",
   "section_menu_action_add_topsite": "Tilføj ny webside",
   "section_menu_action_move_up": "Flyt op",
   "section_menu_action_move_down": "Flyt ned",
   "section_menu_action_privacy_notice": "Privatlivspolitik",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
+  "firstrun_title": "Tag Firefox med dig",
+  "firstrun_content": "Få adgang til din historik, dine bogmærker, adgangskoder og andre indstillinger på alle dine enheder.",
+  "firstrun_learn_more_link": "Læs mere om Firefox-konti",
+  "firstrun_form_header": "Indtast din mailadresse",
+  "firstrun_form_sub_header": "for at fortsætte til Firefox Sync.",
+  "firstrun_email_input_placeholder": "Mailadresse",
+  "firstrun_extra_legal_links": "Ved at fortsætte godkender du vores {terms} og {privacy}.",
+  "firstrun_terms_of_service": "tjenestevilkår",
+  "firstrun_privacy_notice": "privatlivspolitik",
+  "firstrun_continue_to_login": "Fortsæt",
+  "firstrun_skip_login": "Spring dette trin over",
   "prefs_restore_defaults_button": "Gendan standarder",
   "settings_pane_header": "Indstillinger for Nyt faneblad",
   "settings_pane_body2": "Vælg, hvad du vil se på denne side.",
   "settings_pane_search_header": "Søgning",
   "settings_pane_search_body": "Søg på nettet fra Nyt faneblad.",
   "settings_pane_topsites_body": "Adgang til de websider, du besøger oftest.",
   "settings_pane_topsites_options_showmore": "Vis to rækker",
   "settings_pane_highlights_body2": "Find tilbage til interessant indhold, du har besøgt eller gemt et bogmærke til for nylig.",
--- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
@@ -80,25 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Ne, dankon",
   "manual_migration_import_button": "Importi nun",
   "error_fallback_default_info": "Fuŝ', io malbona okazis dum ŝargo de tiu ĉi enhavo.",
   "error_fallback_default_refresh_suggestion": "Refreŝigi paĝon por klopodi denove.",
   "section_menu_action_remove_section": "Forigi sekcion",
   "section_menu_action_collapse_section": "Faldi sekcion",
   "section_menu_action_expand_section": "Malfaldi sekcion",
   "section_menu_action_manage_section": "Administri sekcion",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Administri etendaĵon",
   "section_menu_action_add_topsite": "Aldoni oftan retejon",
   "section_menu_action_move_up": "Movi supren",
   "section_menu_action_move_down": "Movi malsupren",
   "section_menu_action_privacy_notice": "Rimarko pri privateco",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step"
+  "firstrun_title": "Portu Firefox kun vi",
+  "firstrun_content": "Ricevu viajn legosignojn, historion, pasvortojn kaj aliajn agordojn en ĉiuj viaj aparatoj.",
+  "firstrun_learn_more_link": "Pli da informo pri la kontoj de Firefox",
+  "firstrun_form_header": "Tajpu vian retpoŝtan adreson",
+  "firstrun_form_sub_header": "por pluiri al Spegulado de Firefox.",
+  "firstrun_email_input_placeholder": "Retpoŝta adreso",
+  "firstrun_extra_legal_links": "Se vi daŭrigas vi akceptas la {terms} kaj {privacy}.",
+  "firstrun_terms_of_service": "kondiĉojn de uzo",
+  "firstrun_privacy_notice": "rimarkon pri privateco",
+  "firstrun_continue_to_login": "Daŭrigi",
+  "firstrun_skip_login": "Pretersalti tiun ĉi paŝon"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js
@@ -80,38 +80,38 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "No gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Epa, algo salió mal al cargar este contenido.",
   "error_fallback_default_refresh_suggestion": "Refrescar la página para reintentar.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Colapsar sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Administrar sección",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Administrar extensión",
   "section_menu_action_add_topsite": "Agregar Sitio más visitado",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Bajar",
   "section_menu_action_privacy_notice": "Nota de privacidad",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurar Predeterminados",
-  "settings_pane_header": "Preferencia de nueva pestaña",
-  "settings_pane_body2": "Seleccionar lo que se ve en esta página.",
+  "firstrun_title": "Lleve Firefox con usted",
+  "firstrun_content": "Acceda a sus marcadores, historial, contraseñas y más ajustes en todos sus dispositivos.",
+  "firstrun_learn_more_link": "Descubra más sobre las Cuentas de Firefox",
+  "firstrun_form_header": "Ingrese su correo electrónico",
+  "firstrun_form_sub_header": "para pasar a Firefox Sync.",
+  "firstrun_email_input_placeholder": "Correo electrónico",
+  "firstrun_extra_legal_links": "Al proceder, acepta los {terms} y {privacy}.",
+  "firstrun_terms_of_service": "Términos del servicio",
+  "firstrun_privacy_notice": "Anuncio de privacidad",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Saltear este paso",
+  "prefs_restore_defaults_button": "Restaurar valores predeterminados",
+  "settings_pane_header": "Preferencias de nueva pestaña",
+  "settings_pane_body2": "Elige lo que ves en esta página.",
   "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Buscar en la Web desde nueva pestaña.",
-  "settings_pane_topsites_body": "Acceder a los sitios web más visitados.",
+  "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
+  "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
   "settings_pane_topsites_options_showmore": "Mostrar dos filas",
-  "settings_pane_highlights_body2": "Encuentre el camino de vuelta a las páginas interesantes que visitó o que marcó como favorito.",
+  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que has visitado o marcado recientemente.",
   "settings_pane_highlights_options_visited": "Sitios visitados",
-  "settings_pane_snippets_body": "Leer dulces actualizaciones cortas de Mozilla sobre Firefox, cultura de Internet y algún meme ocasional al azar.",
+  "settings_pane_snippets_body": "Lee actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y de repente un meme de vez en cuando.",
   "settings_pane_done_button": "Listo",
   "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
-  "pocket_description": "Descubrir contenido de alta calidad que se podría perder de otra forma, con la ayuda de Pocket, ahora parte de Mozilla."
+  "pocket_description": "Descubre contenido de alta calidad que de otra forma te podrías perder, con la ayuda de Pocket, ahora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js
@@ -80,38 +80,38 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Chuta, algo se fue a las pailas al cargar este contenido.",
   "error_fallback_default_refresh_suggestion": "Recarga la página para volver a intentarlo.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Contraer sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Gestionar sección",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gestionar extensión",
   "section_menu_action_add_topsite": "Añadir sitio frecuente",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Bajar",
   "section_menu_action_privacy_notice": "Aviso de privacidad",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurar predeterminados",
-  "settings_pane_header": "Preferencias de Nueva pestaña",
-  "settings_pane_body2": "Elige qué es lo que ves en esta página.",
+  "firstrun_title": "Lleva a Firefox contigo",
+  "firstrun_content": "Ten tus marcadores, historial, contraseñas y otros ajustes en todos tus dispositivos.",
+  "firstrun_learn_more_link": "Aprende más sobre Firefox Accounts",
+  "firstrun_form_header": "Ingresa tu correo",
+  "firstrun_form_sub_header": "para conectarte a Firefox Sync.",
+  "firstrun_email_input_placeholder": "Correo",
+  "firstrun_extra_legal_links": "Al proceder, aceptas los {terms} y la {privacy}.",
+  "firstrun_terms_of_service": "Términos del servicio",
+  "firstrun_privacy_notice": "Política de privacidad",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Saltar este paso",
+  "prefs_restore_defaults_button": "Restaurar valores predeterminados",
+  "settings_pane_header": "Preferencias de nueva pestaña",
+  "settings_pane_body2": "Elige lo que ves en esta página.",
   "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Busca en la Web desde tu nueva pestaña.",
-  "settings_pane_topsites_body": "Accede a los sitios que más visitas.",
+  "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
+  "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
   "settings_pane_topsites_options_showmore": "Mostrar dos filas",
-  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que ya has visitado o marcado.",
+  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que has visitado o marcado recientemente.",
   "settings_pane_highlights_options_visited": "Sitios visitados",
-  "settings_pane_snippets_body": "Lee breves y dulces actualizaciones de Mozilla sobre Firefox, la cultura de internet y un meme aleatorio ocasional.",
-  "settings_pane_done_button": "Hecho",
+  "settings_pane_snippets_body": "Lee actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y de repente un meme de vez en cuando.",
+  "settings_pane_done_button": "Listo",
   "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
-  "pocket_description": "Descubre contenido de alta calidad que de otra forma te perderías, con la ayuda de Pocket, ahora parte de Mozilla."
+  "pocket_description": "Descubre contenido de alta calidad que de otra forma te podrías perder, con la ayuda de Pocket, ahora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js
@@ -80,38 +80,38 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Lo sentimos, algo salió mal al cargar el contenido.",
   "error_fallback_default_refresh_suggestion": "Recargue la página e inténtelo de nuevo.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Contraer sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Gestionar sección",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gestionar extensión",
   "section_menu_action_add_topsite": "Añadir sitio popular",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Bajar",
   "section_menu_action_privacy_notice": "Aviso de privacidad",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurar predeterminados",
+  "firstrun_title": "Llévese Firefox consigo",
+  "firstrun_content": "Acceda a sus marcadores, historial, contraseñas y más ajustes en todos sus dispositivos.",
+  "firstrun_learn_more_link": "Descubra más sobre las Cuentas de Firefox",
+  "firstrun_form_header": "Introduzca su correo electrónico",
+  "firstrun_form_sub_header": "para acceder a Firefox Sync.",
+  "firstrun_email_input_placeholder": "Correo electrónico",
+  "firstrun_extra_legal_links": "Al proceder, aceptas los {terms} y la {privacy}.",
+  "firstrun_terms_of_service": "Términos del servicio",
+  "firstrun_privacy_notice": "Aviso de privacidad",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Saltar este paso",
+  "prefs_restore_defaults_button": "Restaurar valores predeterminados",
   "settings_pane_header": "Preferencias de nueva pestaña",
-  "settings_pane_body2": "Elija lo quiera ver en esta página.",
+  "settings_pane_body2": "Elige lo que ves en esta página.",
   "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Busque en la Web desde su nueva pestaña.",
-  "settings_pane_topsites_body": "Acceda a las páginas que más visita.",
+  "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
+  "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
   "settings_pane_topsites_options_showmore": "Mostrar dos filas",
-  "settings_pane_highlights_body2": "Vuelva a encontrar todas las cosas interesantes que haya visitado o marcado recientemente.",
+  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que has visitado o marcado recientemente.",
   "settings_pane_highlights_options_visited": "Sitios visitados",
-  "settings_pane_snippets_body": "Lea actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y el típico meme aleatorio.",
-  "settings_pane_done_button": "Hecho",
+  "settings_pane_snippets_body": "Lee actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y de repente un meme de vez en cuando.",
+  "settings_pane_done_button": "Listo",
   "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
-  "pocket_description": "Gracias a Pocket, que ahora forma parte de Mozilla, podrá descubrir contenido de alta calidad que de otra forma se perdería."
+  "pocket_description": "Descubre contenido de alta calidad que de otra forma te podrías perder, con la ayuda de Pocket, ahora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js
@@ -80,32 +80,32 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Ups, algo salió mal mientras se cargaba el contenido.",
   "error_fallback_default_refresh_suggestion": "Actualiza la página e intenta de nuevo.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Sección de colapso",
   "section_menu_action_expand_section": "Ampliar la sección",
   "section_menu_action_manage_section": "Administrar sección",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gestionar extensión",
   "section_menu_action_add_topsite": "Agregar sitio popular",
   "section_menu_action_move_up": "Más",
   "section_menu_action_move_down": "Bajar",
   "section_menu_action_privacy_notice": "Política de privacidad",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
+  "firstrun_title": "Llévese Firefox consigo",
+  "firstrun_content": "Acceda a sus marcadores, historial, contraseñas y más ajustes en todos sus dispositivos.",
+  "firstrun_learn_more_link": "Descubra más sobre las Cuentas de Firefox",
+  "firstrun_form_header": "Introduzca su correo electrónico",
+  "firstrun_form_sub_header": "para acceder a Firefox Sync.",
+  "firstrun_email_input_placeholder": "Correo electrónico",
+  "firstrun_extra_legal_links": "Al proceder, aceptas los {terms} y la {privacy}.",
+  "firstrun_terms_of_service": "Términos del servicio",
+  "firstrun_privacy_notice": "Aviso de privacidad",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Saltar este paso",
   "prefs_restore_defaults_button": "Restaurar valores predeterminados",
   "settings_pane_header": "Preferencias de nueva pestaña",
   "settings_pane_body2": "Elige lo que ves en esta página.",
   "settings_pane_search_header": "Buscar",
   "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
   "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
   "settings_pane_topsites_options_showmore": "Mostrar dos filas",
   "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que has visitado o marcado recientemente.",
--- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Ez, eskerrik asko",
   "manual_migration_import_button": "Inportatu orain",
   "error_fallback_default_info": "Kontxo, zerbait gaizki joan da edukia kargatzerakoan.",
   "error_fallback_default_refresh_suggestion": "Berritu orria berriro saiatzeko.",
   "section_menu_action_remove_section": "Kendu atala",
   "section_menu_action_collapse_section": "Tolestu atala",
   "section_menu_action_expand_section": "Zabaldu atala",
   "section_menu_action_manage_section": "Kudeatu atala",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Kudeatu hedapena",
   "section_menu_action_add_topsite": "Gehitu maiz erabilitako gunea",
   "section_menu_action_move_up": "Eraman gora",
   "section_menu_action_move_down": "Eraman behera",
   "section_menu_action_privacy_notice": "Pribatutasun-oharra",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Berrezarri lehenespenak",
-  "settings_pane_header": "Fitxa berriaren hobespenak",
-  "settings_pane_body2": "Aukeratu orri honetan ikusiko duzuna.",
-  "settings_pane_search_header": "Bilaketa",
-  "settings_pane_search_body": "Bilatu webean zure fitxa berritik.",
-  "settings_pane_topsites_body": "Sartu gehien bisitatzen dituzun webguneetara.",
-  "settings_pane_topsites_options_showmore": "Erakutsi bi errenkada",
-  "settings_pane_highlights_body2": "Aurkitu itzultzeko bidea azkenaldian bisitatutako edo laster-marka egindako gauza interesgarrietara.",
-  "settings_pane_highlights_options_visited": "Bisitatutako guneak",
-  "settings_pane_snippets_body": "Irakurri Firefoxi eta interneteko kulturari buruzko Mozillaren eguneraketa laburrak, hala nola tartekako ausazko memeak.",
-  "settings_pane_done_button": "Eginda",
-  "settings_pane_topstories_options_sponsored": "Erakutsi babesleen istorioak",
-  "pocket_description": "Deskubritu orain Mozillaren zati den Pocket-en laguntzari esker bestela gal zenitzakeen kalitatezko edukiak."
+  "firstrun_title": "Eraman Firefox aldean",
+  "firstrun_content": "Izan laster-markak, historia, pasahitzak eta beste ezarpenak eskura zure gailu guztietatik.",
+  "firstrun_learn_more_link": "Firefox kontuei buruzko argibide gehiago",
+  "firstrun_form_header": "Idatzi zure helbide elektronikoa",
+  "firstrun_form_sub_header": "Firefox Sync-ekin jarraitzeko.",
+  "firstrun_email_input_placeholder": "Helbide elektronikoa",
+  "firstrun_extra_legal_links": "Jarraitzearekin bat, {terms} eta {privacy} onartzen dituzu.",
+  "firstrun_terms_of_service": "Zerbitzu-baldintzak",
+  "firstrun_privacy_notice": "Pribatutasun-oharra",
+  "firstrun_continue_to_login": "Jarraitu",
+  "firstrun_skip_login": "Saltatu urrats hau"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Non merci",
   "manual_migration_import_button": "Importer",
   "error_fallback_default_info": "Oups, une erreur s’est produite lors du chargement du contenu.",
   "error_fallback_default_refresh_suggestion": "Actualisez la page pour réessayer.",
   "section_menu_action_remove_section": "Supprimer la section",
   "section_menu_action_collapse_section": "Réduire la section",
   "section_menu_action_expand_section": "Développer la section",
   "section_menu_action_manage_section": "Gérer la section",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gérer l’extension",
   "section_menu_action_add_topsite": "Ajouter un site populaire",
   "section_menu_action_move_up": "Déplacer vers le haut",
   "section_menu_action_move_down": "Déplacer vers le bas",
   "section_menu_action_privacy_notice": "Politique de confidentialité",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Configuration par défaut",
-  "settings_pane_header": "Préférences Nouvel onglet",
-  "settings_pane_body2": "Choisissez les éléments à afficher sur la page.",
-  "settings_pane_search_header": "Recherche",
-  "settings_pane_search_body": "Effectuez une recherche sur le Web depuis le nouvel onglet.",
-  "settings_pane_topsites_body": "Accédez aux sites que vous consultez le plus.",
-  "settings_pane_topsites_options_showmore": "Afficher deux lignes",
-  "settings_pane_highlights_body2": "Retrouvez des pages intéressantes que vous avez visitées récemment ou ajoutées aux marque-pages.",
-  "settings_pane_highlights_options_visited": "Sites visités",
-  "settings_pane_snippets_body": "Consultez les brèves de Mozilla à propos de Firefox, la culture Internet, mais aussi quelques mèmes Internet de temps en temps.",
-  "settings_pane_done_button": "Terminé",
-  "settings_pane_topstories_options_sponsored": "Afficher les articles sponsorisés",
-  "pocket_description": "Grâce à Pocket, faisant désormais partie de Mozilla, découvrez du contenu de grande qualité que vous auriez pu manquer dans le cas contraire."
+  "firstrun_title": "Emportez Firefox avec vous",
+  "firstrun_content": "Accédez à vos marque-pages, votre historique, vos mots de passe et d’autres paramètres sur l’ensemble de vos appareils.",
+  "firstrun_learn_more_link": "En savoir plus sur les comptes Firefox",
+  "firstrun_form_header": "Saisissez votre adresse électronique",
+  "firstrun_form_sub_header": "pour continuer avec Firefox Sync.",
+  "firstrun_email_input_placeholder": "Adresse électronique",
+  "firstrun_extra_legal_links": "En continuant, vous acceptez les {terms} et la {privacy}.",
+  "firstrun_terms_of_service": "Conditions d’utilisation",
+  "firstrun_privacy_notice": "Politique de confidentialité",
+  "firstrun_continue_to_login": "Continuer",
+  "firstrun_skip_login": "Ignorer cette étape"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Nee tankewol",
   "manual_migration_import_button": "No ymportearje",
   "error_fallback_default_info": "Oeps, der is wat misgien by it laden fan dizze ynhâld.",
   "error_fallback_default_refresh_suggestion": "Fernij de side om it opnij te probearjen.",
   "section_menu_action_remove_section": "Seksje fuortsmite",
   "section_menu_action_collapse_section": "Seksje ynklappe",
   "section_menu_action_expand_section": "Seksje útklappe",
   "section_menu_action_manage_section": "Seksje beheare",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Utwreiding beheare",
   "section_menu_action_add_topsite": "Topwebsite tafoegje",
   "section_menu_action_move_up": "Omheech ferpleatse",
   "section_menu_action_move_down": "Omleech ferpleatse",
   "section_menu_action_privacy_notice": "Privacyferklearring",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Standertwearden opnij ynstelle",
-  "settings_pane_header": "Nij ljepblêdfoarkarren",
-  "settings_pane_body2": "Kies wat jo op dizze side sjogge.",
-  "settings_pane_search_header": "Sykje",
-  "settings_pane_search_body": "Sykje op it web fan jo nije ljepblêd út.",
-  "settings_pane_topsites_body": "Benaderje de websites dy't jo it meast besykje.",
-  "settings_pane_topsites_options_showmore": "Twa rigen toane",
-  "settings_pane_highlights_body2": "Fyn fluch ynteressante saken út jo blêdwizers en resint besocht siden werom.",
-  "settings_pane_highlights_options_visited": "Besochte websites",
-  "settings_pane_snippets_body": "Lês koart nijs fan Mozilla oer Firefox, ynternetkultuer en somtiden in meme.",
-  "settings_pane_done_button": "Dien",
-  "settings_pane_topstories_options_sponsored": "Sponsore ferhalen toane",
-  "pocket_description": "Untdek ynhâld fan hege kwaliteit mei help fan Pocket (no ûnderdiel fan Mozilla), dy't jo oars misten."
+  "firstrun_title": "Nim Firefox mei jo mei",
+  "firstrun_content": "Krij jo blêdwizers, skiednis, wachtwurden en oare ynstellingen op al jo apparaten.",
+  "firstrun_learn_more_link": "Mear ynfo oer Firefox Accounts",
+  "firstrun_form_header": "Fier jo e-mailadres yn",
+  "firstrun_form_sub_header": "om troch te gean nei Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-mailadres",
+  "firstrun_extra_legal_links": "Troch fierder te gean, gean jo akkoard mei de {terms} en {privacy}.",
+  "firstrun_terms_of_service": "Tsjinstbetingsten",
+  "firstrun_privacy_notice": "Privacyferklearring",
+  "firstrun_continue_to_login": "Trochgean",
+  "firstrun_skip_login": "Dizze stap oerslaan"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Ag̃amiénte",
   "manual_migration_import_button": "Egueroike Ko'ág̃a",
   "error_fallback_default_info": "Ema'ẽ, mba’épa osẽvai henyhẽnguévo ko tetepy.",
   "error_fallback_default_refresh_suggestion": "Kuatiarogue mbopiro’y eñepyrũjey hag̃ua",
   "section_menu_action_remove_section": "Emboguete vore",
   "section_menu_action_collapse_section": "Embopytupa vore",
   "section_menu_action_expand_section": "Emyasãi vore",
   "section_menu_action_manage_section": "Eñagareko vorére",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Emongu'e jepysokue",
   "section_menu_action_add_topsite": "Embojuaju Tenda ojeikeveha",
   "section_menu_action_move_up": "Jupi",
   "section_menu_action_move_down": "Guejy",
   "section_menu_action_privacy_notice": "Marandu’i ñemiguáva",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Embojevy Ijypykueguáva",
-  "settings_pane_header": "Tendayke Pyahu Jeguererohoryrã",
-  "settings_pane_body2": "Eiporavo rehechaséva ko toguépe.",
-  "settings_pane_search_header": "Eheka",
-  "settings_pane_search_body": "Eheka ñandutivevépe tendayke pyahu guive.",
-  "settings_pane_topsites_body": "Eike ñandutirenda rehechajepivévape.",
-  "settings_pane_topsites_options_showmore": "Mokõi tysýi jechauka",
-  "settings_pane_highlights_body2": "Ehekajey tape reipuruva'ekue reg̃uahẽvo ñandutiroguépe reguerohorýva'ekue.",
-  "settings_pane_highlights_options_visited": "Tenda Ojeikemáva",
-  "settings_pane_snippets_body": "Emoñe'ẽ mba'epyahu oĩva Firefox, Ñandutiveve reko térã memekuéra rehegua.",
-  "settings_pane_done_button": "Oĩmbáma",
-  "settings_pane_topstories_options_sponsored": "Ehechauka Mombe'upy ojehepyme'ẽva'ekue hese",
-  "pocket_description": "Ejuhu mba'erecharã iporãitéva Pocket rupive, ha'éva ko'ág̃a Mozilla rembipuru."
+  "firstrun_title": "Egueraha Firefox nendive",
+  "firstrun_content": "Eike nde techaukaha, tembiasakue, ñe’ẽñemi ha ambueve ñemoĩporã opaite nde mba’e’okápe.",
+  "firstrun_learn_more_link": "Eikuaave Firefox Accounts rehegua",
+  "firstrun_form_header": "Emoinge ne ñandutiveve",
+  "firstrun_form_sub_header": "eike hag̃ua Firefox Sync-pe.",
+  "firstrun_email_input_placeholder": "Ñandutiveve",
+  "firstrun_extra_legal_links": "Ejapóva, emoneĩ ko'ã {terms} ha {privacy}.",
+  "firstrun_terms_of_service": "Mba'epytyvõrã ñemboguata",
+  "firstrun_privacy_notice": "Ñemigua purureko",
+  "firstrun_continue_to_login": "Eku'ejey",
+  "firstrun_skip_login": "Ehejánte kóva"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>નવી ટૅબ</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
-    <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>વેબ પર શોધો</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="વેબ પર શોધો" title="વેબ પર શોધો"/><button id="searchSubmit" class="search-button" title="શોધો"><span class="sr-only"><span>શોધો</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ટોચની સાઇટ્સ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>દ્વારા ભલામણ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>લોકપ્રિય વિષયો:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>હાઇલાઇટ્સ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="તમારા નવા ટૅબ પૃષ્ઠને કસ્ટમાઇઝ કરો"></button></div></div></main></div></div></div>
+    <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>વેબ પર શોધો</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="વેબ પર શોધો" title="વેબ પર શોધો"/><button id="searchSubmit" class="search-button" title="શોધો"><span class="sr-only"><span>શોધો</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ટોચની સાઇટ્સ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>લોકપ્રિય વિષયો:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>હાઇલાઇટ્સ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="તમારા નવા ટૅબ પૃષ્ઠને કસ્ટમાઇઝ કરો"></button></div></div></main></div></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
     <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js
@@ -1,14 +1,14 @@
 // Note - this is a generated gu-IN file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "નવી ટૅબ",
   "header_top_sites": "ટોચની સાઇટ્સ",
   "header_highlights": "હાઇલાઇટ્સ",
-  "header_recommended_by": "દ્વારા ભલામણ",
+  "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "{title} માટે સંદર્ભ મેનૂ ખોલો",
   "section_context_menu_button_sr": "વિભાગ સંદર્ભ મેનૂ ખોલો",
   "type_label_visited": "જોવામા આવેલ:",
   "type_label_bookmarked": "બુકમાર્ક્સ",
   "type_label_recommended": "વલણ",
   "type_label_pocket": "પોકેટ પર સાચવ્યું",
   "type_label_downloaded": "ડાઉનલોડ કરેલું",
   "menu_action_bookmark": "બુકમાર્ક",
@@ -70,17 +70,17 @@ window.gActivityStreamStrings = {
   "topsites_form_add_button": "ઉમેરો",
   "topsites_form_save_button": "સાચવો",
   "topsites_form_cancel_button": "રદ કરો",
   "topsites_form_url_validation": "માન્ય URL આવશ્યક છે",
   "topsites_form_image_validation": "છબી લોડ થવામાં નિષ્ફળ. એક અલગ URL અજમાવી જુઓ.",
   "pocket_read_more": "લોકપ્રિય વિષયો:",
   "pocket_read_even_more": "વધુ વાર્તાઓ જુઓ",
   "highlights_empty_state": "બ્રાઉઝ કરવું પ્રારંભ કરો અને અમે અહીં કેટલાક સરસ લેખો, વિડિઓઝ અને અન્ય પૃષ્ઠો દર્શાવીશું જે તમે તાજેતરમાં મુલાકાત લીધાં છે અથવા બુકમાર્ક કર્યા છે.",
-  "topstories_empty_state": "તમે પકડાઈ ગયા છો. {પ્રદાતા} તરફથી વધુ ટોચની વાતો માટે પછીથી પાછા તપાસો. રાહ નથી જોઈ શકતા? સમગ્ર વેબ પરથી વધુ સુંદર વાર્તાઓ શોધવા માટે એક લોકપ્રિય વિષય પસંદ કરો.",
+  "topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.",
   "manual_migration_explanation2": "અન્ય બ્રાઉઝરથી બુકમાર્ક્સ, ઇતિહાસ અને પાસવર્ડ્સ સાથે ફાયરફોક્સ અજમાવો.",
   "manual_migration_cancel_button": "ના અભાર",
   "manual_migration_import_button": "હવે આયાત કરો",
   "error_fallback_default_info": "ઊફ્ફ, આ સામગ્રીને લોડ કરવામાં કંઈક ખોટું થયું.",
   "error_fallback_default_refresh_suggestion": "ફરી પ્રયાસ કરવા માટે પૃષ્ઠને તાજું કરો.",
   "section_menu_action_remove_section": "વિભાગ દૂર કરો",
   "section_menu_action_collapse_section": "વિભાગ સંકુચિત કરો",
   "section_menu_action_expand_section": "વિભાગ વિસ્તૃત કરો",
--- a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
@@ -20,39 +20,39 @@ window.gActivityStreamStrings = {
   "menu_action_pin": "पिन करें",
   "menu_action_unpin": "पिन हटाएँ",
   "confirm_history_delete_p1": "क्या वाकई आप इस पृष्ठ का हर उदाहरण के अपने इतिहास से हटाना चाहते हैं?",
   "confirm_history_delete_notice_p2": "इस क्रिया को पहले जैसा नहीं किया जा सकता है.",
   "menu_action_save_to_pocket": "Pocket में सहेजें",
   "menu_action_delete_pocket": "पॉकेट से हटाएं",
   "menu_action_archive_pocket": "पॉकेट में पुरालेख",
   "menu_action_show_file_mac_os": "Show in Finder",
-  "menu_action_show_file_windows": "Open Containing Folder",
-  "menu_action_show_file_linux": "Open Containing Folder",
-  "menu_action_show_file_default": "Show File",
-  "menu_action_open_file": "Open File",
-  "menu_action_copy_download_link": "Copy Download Link",
-  "menu_action_go_to_download_page": "Go to Download Page",
-  "menu_action_remove_download": "Remove from History",
+  "menu_action_show_file_windows": "संग्राहक फोल्डर खोलें",
+  "menu_action_show_file_linux": "संग्राहक फोल्डर खोलें",
+  "menu_action_show_file_default": "फ़ाइल दिखाएं",
+  "menu_action_open_file": "फ़ाइल खोलें",
+  "menu_action_copy_download_link": "डाउनलोड लिंक कॉपी करें",
+  "menu_action_go_to_download_page": "डाउनलोड पृष्ठ पर जाएं",
+  "menu_action_remove_download": "इतिहास से हटाएँ",
   "search_button": "खोज",
   "search_header": "{search_engine_name} खोज",
   "search_web_placeholder": "वेब पर खोजें",
   "section_disclaimer_topstories": "वेब पर सबसे दिलचस्प कहानियाँ, आपके पठन के आधार पर चयनित. Pocket के द्वारा, जो अब है Mozilla का हिस्सा.",
   "section_disclaimer_topstories_linktext": "जाने यह कैसे काम करता है.",
   "section_disclaimer_topstories_buttontext": "ठीक है, समझ गए",
   "prefs_home_header": "Firefox होम सामग्री",
   "prefs_home_description": "चुनें जो सामग्री आप अपने Firefox होम स्क्रीन पर चाहते हैं ।",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "वेब खोज",
   "prefs_topsites_description": "साइटों आप सबसे अधिक यात्रा",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "prefs_topstories_options_sponsored_label": "प्रायोजित कहानियां",
   "prefs_topstories_sponsored_learn_more": "अधिक जानें",
   "prefs_highlights_description": "आपके द्वारा सहेजी गई या विज़िट की गई साइटों का चयन",
-  "prefs_highlights_options_visited_label": "Visited Pages",
+  "prefs_highlights_options_visited_label": "देखे गए पृष्ठ",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla और Firefox से अद्यतन",
   "settings_pane_button_label": "अपने नए टैब पृष्ठ को अनुकूलित करें",
   "settings_pane_topsites_header": "सर्वोच्च साइटें",
   "settings_pane_highlights_header": "झलकियाँ",
   "settings_pane_highlights_options_bookmarks": "पुस्तचिह्न",
   "settings_pane_snippets_header": "अंश",
@@ -95,25 +95,10 @@ window.gActivityStreamStrings = {
   "firstrun_learn_more_link": "Learn more about Firefox Accounts",
   "firstrun_form_header": "Enter your email",
   "firstrun_form_sub_header": "to continue to Firefox Sync.",
   "firstrun_email_input_placeholder": "Email",
   "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
   "firstrun_terms_of_service": "Terms of Service",
   "firstrun_privacy_notice": "Privacy Notice",
   "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "डिफ़ॉल्ट पुनः स्थापित करे",
-  "prefs_topstories_description": "उच्च गुणवत्ता की सामग्री आप अंयथा याद कर सकते है",
-  "prefs_topstories_show_sponsored_label": "{provider} प्रायोजित कहानियां",
-  "settings_pane_header": "नयी टैब वरीयताएँ",
-  "settings_pane_body2": "चुनें कि आप इस पृष्ठ पर क्या देखते हैं.",
-  "settings_pane_search_header": "खोज",
-  "settings_pane_search_body": "अपने नए टैब से वेब पर खोजें.",
-  "settings_pane_topsites_body": "आपके द्वारा सबसे ज्यादा खोजी जाने वाली वेबसाइट्स देखें.",
-  "settings_pane_topsites_options_showmore": "दो पंक्तियाँ दिखाएँ",
-  "settings_pane_highlights_body2": "हाल ही में देखी गयी या पुस्तचिंहित की गयी रोचक चीज़ों पर वापस जाएँ.",
-  "settings_pane_highlights_options_visited": "देखी गयीं साइटें",
-  "settings_pane_snippets_body": "Firefox, इंटरनेट संस्कृति और यादृच्छिक मीम के बारे में Mozilla के संक्षिप्त और प्यारे अपडेट पढ़ें.",
-  "settings_pane_done_button": "संपन्न",
-  "settings_pane_topstories_options_sponsored": "प्रायोजित कहानियाँ दिखाएँ",
-  "pocket_description": "पॉकेट, जो अब Mozilla का हिस्सा है, की मदद से अन्यथा आपसे छूटने वाली उच्च-गुणवत्ता सामग्रियों को खोजें."
+  "firstrun_skip_login": "Skip this step"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Ně, dźakuju so",
   "manual_migration_import_button": "Nětko importować",
   "error_fallback_default_info": "Hopla, při čitanju tutoho wobsaha je so něšto nimokuliło.",
   "error_fallback_default_refresh_suggestion": "Aktualizujće stronu, zo byšće hišće raz spytał.",
   "section_menu_action_remove_section": "Wotrězk wotstronić",
   "section_menu_action_collapse_section": "Wotrězk schować",
   "section_menu_action_expand_section": "Wotrězk pokazać",
   "section_menu_action_manage_section": "Wotrězk rjadować",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Rozšěrjenje rjadować",
   "section_menu_action_add_topsite": "Woblubowane sydło přidać",
   "section_menu_action_move_up": "Horje",
   "section_menu_action_move_down": "Dele",
   "section_menu_action_privacy_notice": "Zdźělenka priwatnosće",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Standard wobnowić",
-  "settings_pane_header": "Nastajenja noweho rajtarka",
-  "settings_pane_body2": "Wubjerće, štož so na tutej stronje pokazuje.",
-  "settings_pane_search_header": "Pytać",
-  "settings_pane_search_body": "Přepytajće web ze swojeho noweho rajtarka.",
-  "settings_pane_topsites_body": "Wočińće websydła, kotrež sće najhusćišo wopytał.",
-  "settings_pane_topsites_options_showmore": "Dwaj rjadaj pokazać",
-  "settings_pane_highlights_body2": "Namakajće swój puć wróćo k zajimawym stronam, kotrež sće njedawno wopytał abo jako zapołožki składował.",
-  "settings_pane_highlights_options_visited": "Wopytane sydła",
-  "settings_pane_snippets_body": "Čitajće krótke aktualizacije wot Mozilla wo Firefox, internetnej kulturje a hdys a hdys meme.",
-  "settings_pane_done_button": "Hotowo",
-  "settings_pane_topstories_options_sponsored": "Sponsorowane stawizny pokazać",
-  "pocket_description": "Wotkryjće wobsah wysokeje kwality, kotryž byšće hewak parował, z pomocu Pocket, kotryž je nětko dźěl Mozilla."
+  "firstrun_title": "Wzmiće Firefox sobu",
+  "firstrun_content": "Wzmiće swoje zapołožki, historiju, hesła a druhe nastajenja na wšěch wašich gratach sobu.",
+  "firstrun_learn_more_link": "Zhońće wjace wo Firefox Accounts",
+  "firstrun_form_header": "Zapodajće swoju e-mejlowu adresu,",
+  "firstrun_form_sub_header": "zo byšće z Firefox Sync pokročował.",
+  "firstrun_email_input_placeholder": "E-mejl",
+  "firstrun_extra_legal_links": "Hdyž pokročujeće, zwoliće do {terms} a {privacy}.",
+  "firstrun_terms_of_service": "Wužiwanske wuměnjenja",
+  "firstrun_privacy_notice": "Zdźělenka priwatnosće",
+  "firstrun_continue_to_login": "Pokročować",
+  "firstrun_skip_login": "Tutón krok přeskočić"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Köszönöm, nem",
   "manual_migration_import_button": "Importálás most",
   "error_fallback_default_info": "Hoppá, valami hiba történt a tartalom betöltésekor.",
   "error_fallback_default_refresh_suggestion": "Az újrapróbálkozáshoz frissítse az oldalt.",
   "section_menu_action_remove_section": "Szakasz eltávolítása",
   "section_menu_action_collapse_section": "Szakasz összecsukása",
   "section_menu_action_expand_section": "Szakasz lenyitása",
   "section_menu_action_manage_section": "Szakasz kezelése",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Kiterjesztés kezelése",
   "section_menu_action_add_topsite": "Hozzáadás a népszerű oldalakhoz",
   "section_menu_action_move_up": "Mozgatás felfelé",
   "section_menu_action_move_down": "Mozgatás lefelé",
   "section_menu_action_privacy_notice": "Adatvédelmi nyilatkozat",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Alapértelmezések visszaállítása",
-  "settings_pane_header": "Új lap beállításai",
-  "settings_pane_body2": "Válassza ki, hogy mit akar látni ezen az oldalon.",
-  "settings_pane_search_header": "Keresés",
-  "settings_pane_search_body": "Keresés a weben az új lapon.",
-  "settings_pane_topsites_body": "A leggyakrabban látogatott webhelyek elérése.",
-  "settings_pane_topsites_options_showmore": "Két sor megjelenítése",
-  "settings_pane_highlights_body2": "Találjon vissza azokhoz az érdekes dolgokhoz, amelyeket meglátogatott vagy könyvjelzőzött.",
-  "settings_pane_highlights_options_visited": "Látogatott helyek",
-  "settings_pane_snippets_body": "Olvasson rövid és érdekes híreket a Mozillától, a Firefoxról, az internetes kultúráról, és időnként kapjon mémeket.",
-  "settings_pane_done_button": "Kész",
-  "settings_pane_topstories_options_sponsored": "Szponzorált történetek megjelenítése",
-  "pocket_description": "Fedezzen fel olyan, magas minőségű tartalmakat, amelyek egyébként elkerülnék a figyelmét, a Pocket segítségével, amely most már a Mozilla része."
+  "firstrun_title": "Vigye magával a Firefoxot",
+  "firstrun_content": "Kapja meg a könyvjelzőit, előzményeit, jelszavait és egyéb beállításait az összes eszközén.",
+  "firstrun_learn_more_link": "Ismerje meg a Firefox fiókokat",
+  "firstrun_form_header": "Adja meg az e-mail címét",
+  "firstrun_form_sub_header": "és lépjen tovább a Firefox Synchez.",
+  "firstrun_email_input_placeholder": "E-mail",
+  "firstrun_extra_legal_links": "A folytatással elfogadja a {terms} és az {privacy}.",
+  "firstrun_terms_of_service": "Felhasználási feltételeket",
+  "firstrun_privacy_notice": "Adatvédelmi nyilatkozatot",
+  "firstrun_continue_to_login": "Folytatás",
+  "firstrun_skip_login": "Lépés kihagyása"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "No, gratias",
   "manual_migration_import_button": "Importar ora",
   "error_fallback_default_info": "Op, error durante le carga de iste contento.",
   "error_fallback_default_refresh_suggestion": "Refresca le pagina pro retentar.",
   "section_menu_action_remove_section": "Remover le section",
   "section_menu_action_collapse_section": "Collaber le section",
   "section_menu_action_expand_section": "Expander le section",
   "section_menu_action_manage_section": "Gerer le section",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gerer extension",
   "section_menu_action_add_topsite": "Adder a sito popular",
   "section_menu_action_move_up": "Mover in alto",
   "section_menu_action_move_down": "Mover in basso",
-  "section_menu_action_privacy_notice": "Advertentia de confidentialitate",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
+  "section_menu_action_privacy_notice": "Notification de confidentialitate",
+  "firstrun_title": "Porta Firefox con te",
+  "firstrun_content": "Tene tu marcapaginas, chronologia, contrasignos e altere configurationes sur tote tu apparatos.",
+  "firstrun_learn_more_link": "Apprende plus re Firefox Accounts",
+  "firstrun_form_header": "Insere tu email",
+  "firstrun_form_sub_header": "pro continuar con Firefox Sync.",
   "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurar le predefinitiones",
-  "settings_pane_header": "Preferentias de nove scheda",
-  "settings_pane_body2": "Selige lo que tu vole vider in iste pagina.",
-  "settings_pane_search_header": "Cercar",
-  "settings_pane_search_body": "Cercar in le Web ab tu nove scheda.",
-  "settings_pane_topsites_body": "Acceder al sitos web que tu plus visita.",
-  "settings_pane_topsites_options_showmore": "Monstrar duo lineas",
-  "settings_pane_highlights_body2": "Retrova cosas interessante que tu ha recentemente visitate o addite marcapaginas.",
-  "settings_pane_highlights_options_visited": "Sitos visitate",
-  "settings_pane_snippets_body": "Lege breve e legier novas de Mozilla super Firefox, cultura internet e occasionalmente super alcun meme.",
-  "settings_pane_done_button": "Facite",
-  "settings_pane_topstories_options_sponsored": "Monstrar historias sponsorisate",
-  "pocket_description": "Discoperir contento de alte qualitate que tu poterea alteremente non cognoscer, con le adjuta de Pocket, ora parte de Mozilla."
+  "firstrun_extra_legal_links": "Si tu procede, tu consenti a {terms} e {privacy}.",
+  "firstrun_terms_of_service": "Terminos de servicio",
+  "firstrun_privacy_notice": "Notification de confidentialitate",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Saltar iste grado"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "No grazie",
   "manual_migration_import_button": "Importa adesso",
   "error_fallback_default_info": "Oops, qualcosa è andato storto durante il tentativo di caricare questo contenuto.",
   "error_fallback_default_refresh_suggestion": "Aggiornare la pagina per riprovare.",
   "section_menu_action_remove_section": "Rimuovi sezione",
   "section_menu_action_collapse_section": "Comprimi sezione",
   "section_menu_action_expand_section": "Espandi sezione",
   "section_menu_action_manage_section": "Gestisci sezione",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gestisci estensione",
   "section_menu_action_add_topsite": "Aggiungi sito principale",
   "section_menu_action_move_up": "Sposta in alto",
   "section_menu_action_move_down": "Sposta in basso",
   "section_menu_action_privacy_notice": "Informativa sulla privacy",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
+  "firstrun_title": "Porta Firefox con te",
+  "firstrun_content": "Ritrova segnalibri, cronologia, password e altre impostazioni su tutti i tuoi dispositivi.",
+  "firstrun_learn_more_link": "Scopri di più sull’account Firefox",
+  "firstrun_form_header": "Inserisci email",
+  "firstrun_form_sub_header": "per utilizzare Firefox Sync.",
   "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Ripristina valori predefiniti",
-  "settings_pane_header": "Preferenze Nuova scheda",
-  "settings_pane_body2": "Scegli quali elementi visualizzare in questa pagina.",
-  "settings_pane_search_header": "Ricerca",
-  "settings_pane_search_body": "Avvia ricerche in una nuova scheda.",
-  "settings_pane_topsites_body": "Accedi ai siti che visiti più spesso.",
-  "settings_pane_topsites_options_showmore": "Visualizza due righe",
-  "settings_pane_highlights_body2": "Ritrova pagine interessanti che avevi visitato o aggiunto ai segnalibri.",
-  "settings_pane_highlights_options_visited": "Siti visitati",
-  "settings_pane_snippets_body": "Brevi notizie direttamente da Mozilla a proposito di Firefox, Internet, senza dimenticare qualche meme di tanto in tanto.",
-  "settings_pane_done_button": "Fatto",
-  "settings_pane_topstories_options_sponsored": "Visualizza articoli sponsorizzati",
-  "pocket_description": "Grazie a Pocket, un componente della famiglia Mozilla, scopri contenuti di alta qualità che altrimenti potrebbero sfuggirti."
+  "firstrun_extra_legal_links": "Proseguendo, accetto le {terms} e l’{privacy}.",
+  "firstrun_terms_of_service": "condizioni di utilizzo del servizio",
+  "firstrun_privacy_notice": "informativa sulla privacy",
+  "firstrun_continue_to_login": "Continua",
+  "firstrun_skip_login": "Ignora questo passaggio"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
@@ -80,25 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "არა, გმადლობთ",
   "manual_migration_import_button": "ახლავე გადმოტანა",
   "error_fallback_default_info": "სამწუხაროდ, შიგთავსის ჩატვირთვისას რაღაც ხარვეზი წარმოიქმნა.",
   "error_fallback_default_refresh_suggestion": "განაახლეთ გვერდი და სცადეთ ხელახლა.",
   "section_menu_action_remove_section": "ამ ნაწილის მოცილება",
   "section_menu_action_collapse_section": "ამ ნაწილის აკეცვა",
   "section_menu_action_expand_section": "ამ ნაწილის გაშლა",
   "section_menu_action_manage_section": "გვერდის ნაწილების მართვა",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "გაფართოების მართვა",
   "section_menu_action_add_topsite": "რჩეული საიტის დამატება",
   "section_menu_action_move_up": "აწევა",
   "section_menu_action_move_down": "ჩამოწევა",
   "section_menu_action_privacy_notice": "პირადი მონაცემების დაცვის განაცხადი",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step"
+  "firstrun_title": "თან წაიყოლეთ Firefox",
+  "firstrun_content": "მიიღეთ წვდომა თქვენს სანიშნებთან, ისტორიასთან, პაროლებსა და სხვა პარამეტრებთან, ყველა თქვენს მოწყობილობაზე.",
+  "firstrun_learn_more_link": "იხილეთ ვრცლად, Firefox ანგარიშების შესახებ",
+  "firstrun_form_header": "შეიყვანეთ თქვენი ელფოსტა",
+  "firstrun_form_sub_header": "Firefox Sync-ზე გადასასვლელად.",
+  "firstrun_email_input_placeholder": "ელფოსტა",
+  "firstrun_extra_legal_links": "გაგრძელების შემთხვევაში, თქვენ ეთანხმებით {terms} და {privacy}.",
+  "firstrun_terms_of_service": "გამოყენების პირობებსა",
+  "firstrun_privacy_notice": "პირადი მონაცემების დაცვის განაცხადს",
+  "firstrun_continue_to_login": "გაგრძელება",
+  "firstrun_skip_login": "გამოტოვება"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
@@ -5,56 +5,56 @@ window.gActivityStreamStrings = {
   "header_highlights": "Aktualitātes",
   "header_recommended_by": "Iesaka {provider}",
   "context_menu_button_sr": "Atvērt izvēlni {title}",
   "section_context_menu_button_sr": "Atvērt sadaļas izvēlni",
   "type_label_visited": "Apmeklēta",
   "type_label_bookmarked": "Grāmatzīmēs",
   "type_label_recommended": "Populāri",
   "type_label_pocket": "Saglabāts Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Lejupielādēts",
   "menu_action_bookmark": "Saglabāt",
   "menu_action_remove_bookmark": "Noņemt grāmatzīmi",
   "menu_action_open_new_window": "Atvērt saiti jaunā logā",
   "menu_action_open_private_window": "Atvērt saiti jaunā privātajā logā",
   "menu_action_dismiss": "Noraidīt",
   "menu_action_delete": "Dzēst no vēstures",
   "menu_action_pin": "Piespraust",
   "menu_action_unpin": "Atspraust",
   "confirm_history_delete_p1": "Vai tiešām vēlaties dzēst visas šīs lapas versijas no jūsu vēstures?",
   "confirm_history_delete_notice_p2": "Šī ir neatgriezeniska darbība.",
   "menu_action_save_to_pocket": "Saglabāt Pocket",
   "menu_action_delete_pocket": "Dzēst no Pocket",
   "menu_action_archive_pocket": "Arhivēt Pocket",
-  "menu_action_show_file_mac_os": "Show in Finder",
-  "menu_action_show_file_windows": "Open Containing Folder",
-  "menu_action_show_file_linux": "Open Containing Folder",
-  "menu_action_show_file_default": "Show File",
-  "menu_action_open_file": "Open File",
-  "menu_action_copy_download_link": "Copy Download Link",
-  "menu_action_go_to_download_page": "Go to Download Page",
-  "menu_action_remove_download": "Remove from History",
+  "menu_action_show_file_mac_os": "Parādīt Finder",
+  "menu_action_show_file_windows": "Atvērt mapi",
+  "menu_action_show_file_linux": "Atvērt mapi",
+  "menu_action_show_file_default": "Rādīt failu",
+  "menu_action_open_file": "Atvērt failu",
+  "menu_action_copy_download_link": "Kopēt lejupielādes saiti",
+  "menu_action_go_to_download_page": "Iet uz lejupielāžu lapu",
+  "menu_action_remove_download": "Noņemt no vēstures",
   "search_button": "Meklēt",
   "search_header": "{search_engine_name} meklēšana",
   "search_web_placeholder": "Meklēt internetā",
   "section_disclaimer_topstories": "Interesantākie stāsti internetā, atkasīti balstoties uz jūsu lasīto. No Pocket, kas tagad ir daļa no Mozilla.",
   "section_disclaimer_topstories_linktext": "Apskatiet kā tas strādā.",
   "section_disclaimer_topstories_buttontext": "Labi, sapratu",
   "prefs_home_header": "Firefox sākuma saturs",
   "prefs_home_description": "Izvēlieties, ko redzēt Firefox sākuma lapā.",
   "prefs_section_rows_option": "{num} rindu;{num} rinda;{num} rindas",
   "prefs_search_header": "Tīmekļa meklēšana",
   "prefs_topsites_description": "Biežāk apmeklētās lapas",
-  "prefs_topstories_description2": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "prefs_topstories_description2": "Saņemiet sev pielāgotu saturu no visas pasaules",
+  "prefs_topstories_options_sponsored_label": "Sponsorētie stāsti",
   "prefs_topstories_sponsored_learn_more": "Uzzināt vairāk",
   "prefs_highlights_description": "Jūsu apmeklēto vai saglabāto lapu izlase",
-  "prefs_highlights_options_visited_label": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "prefs_highlights_options_visited_label": "Apmeklētās lapas",
+  "prefs_highlights_options_download_label": "Nesenās lejupielādes",
+  "prefs_highlights_options_pocket_label": "Pocket saglabātās lapas",
   "prefs_snippets_description": "Mozilla un Firefox jaunumi",
   "settings_pane_button_label": "Pielāgojiet jaunās cilnes lapu",
   "settings_pane_topsites_header": "Populārākās lapas",
   "settings_pane_highlights_header": "Aktualitātes",
   "settings_pane_highlights_options_bookmarks": "Grāmatzīmes",
   "settings_pane_snippets_header": "Fragmenti",
   "edit_topsites_button_text": "Rediģēt",
   "edit_topsites_edit_button": "Rediģēt šo lapu",
@@ -80,40 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Nē, paldies",
   "manual_migration_import_button": "Importē tagad",
   "error_fallback_default_info": "Ak vai, ielādējot saturu kaut kas nogājis greizi.",
   "error_fallback_default_refresh_suggestion": "Pārlādējiet lapu, lai mēģinātu vēlreiz.",
   "section_menu_action_remove_section": "Aizvākt sadaļu",
   "section_menu_action_collapse_section": "Sakļaut sadaļu",
   "section_menu_action_expand_section": "Izvērst sadaļu",
   "section_menu_action_manage_section": "Pārvaldīt sadaļu",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Pārvaldīt paplašinājumu",
   "section_menu_action_add_topsite": "Pievienot populāru lapu",
   "section_menu_action_move_up": "Pārvietot augšup",
   "section_menu_action_move_down": "Pārvietot lejup",
   "section_menu_action_privacy_notice": "Privātuma politika",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Atjaunot sākotnējos",
-  "prefs_topstories_description": "Labas kvalitātes saturs, kas jūs varētu intereēt",
-  "prefs_topstories_show_sponsored_label": "{provider} sponsorētie stāsti",
-  "settings_pane_header": "Jaunas cilnes iestatījumi",
-  "settings_pane_body2": "Izvēlieties, ko gribat redzēt šajā lapā.",
-  "settings_pane_search_header": "Meklēšana",
-  "settings_pane_search_body": "Meklējiet tīmeklī no jaunās cilnes lapas.",
-  "settings_pane_topsites_body": "Ātri nokļūstiet biežāk apmeklētajās lapās.",
-  "settings_pane_topsites_options_showmore": "Rādīt divas rindas",
-  "settings_pane_highlights_body2": "Atgriezieties interesantās vietās, kuras esat nesen apmeklējis vai saglabājis grāmatzīmēs.",
-  "settings_pane_highlights_options_visited": "Apmeklētās lapas",
-  "settings_pane_snippets_body": "Lasiet īsas ziņas no Mozilla par Firefox, internetu un reizēm kādu memi.",
-  "settings_pane_done_button": "Gatavs",
-  "settings_pane_topstories_options_sponsored": "Rādīt sponsoru stāstus",
-  "pocket_description": "Atklājiet augstas kvalitātes saturu, kas citādi paskrietu garām. Pakalpojumu nodrošina Pocket, kas tagad ir daļa no Mozilla."
+  "firstrun_title": "Paņemiet Firefox sev līdz",
+  "firstrun_content": "Izmantojiet grāmatzīmes, vēsturi, saglabātās paroles un citus iestatījumus visās savās ierīcēs.",
+  "firstrun_learn_more_link": "Uzzini vairāk par Firefox kontiem",
+  "firstrun_form_header": "Ievadiet savu epastu",
+  "firstrun_form_sub_header": "lai turpinātu Firefox Sync.",
+  "firstrun_email_input_placeholder": "Epasts",
+  "firstrun_extra_legal_links": "Turpinot jūs piekrītat {terms} un {privacy}.",
+  "firstrun_terms_of_service": "Lietošanas noteikumiem",
+  "firstrun_privacy_notice": "Privātuma politikai",
+  "firstrun_continue_to_login": "Turpināt",
+  "firstrun_skip_login": "Izlaist šo soli"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
@@ -70,17 +70,17 @@ window.gActivityStreamStrings = {
   "topsites_form_add_button": "ചേർക്കൂ",
   "topsites_form_save_button": "സംരക്ഷിയ്ക്കൂ",
   "topsites_form_cancel_button": "ഒഴിവാക്കൂ",
   "topsites_form_url_validation": "പ്രവർത്തിയ്ക്കുന്ന URL ആവശ്യമാണ്",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "ജനപ്രിയ വിഷയങ്ങൾ:",
   "pocket_read_even_more": "കൂടുതൽ ലേഖനങ്ങൾ കാണുക",
   "highlights_empty_state": "ബ്രൗസിംഗ് ആരംഭിക്കുക, നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ചതോ ബുക്ക്മാർക്ക് ചെയ്തതോ ആയ മികച്ച ലേഖനങ്ങളിൽ നിന്നോ, വീഡിയോകളിൽ നിന്നോ, മറ്റു പേജുകളിൽ നിന്നോ ചിലത് ഞങ്ങൾ ഇവിടെ കാണിക്കും.",
-  "topstories_empty_state": "നിങ്ങൾ ഇവിടെ വരെ എത്തി. {Provider}ൽ നിന്നുള്ള കൂടുതൽ പ്രധാന വാർത്തകൾക്കായി പിന്നീട് വീണ്ടും പരിശോധിക്കുക. കാത്തിരിക്കാൻ പറ്റില്ലേ? വെബിൽ നിന്ന് കൂടുതൽ മികച്ച കഥകൾ കണ്ടെത്തുന്നതിന് ഒരു ജനപ്രിയ വിഷയം തിരഞ്ഞെടുക്കുക.",
+  "topstories_empty_state": "നിങ്ങൾ ഇവിടെ വരെ എത്തി. {provider}ൽ നിന്നുള്ള കൂടുതൽ പ്രധാന വാർത്തകൾക്കായി പിന്നീട് വീണ്ടും പരിശോധിക്കുക. കാത്തിരിക്കാൻ പറ്റില്ലേ? വെബിൽ നിന്ന് കൂടുതൽ മികച്ച കഥകൾ കണ്ടെത്തുന്നതിന് ഒരു ജനപ്രിയ വിഷയം തിരഞ്ഞെടുക്കുക.",
   "manual_migration_explanation2": "മറ്റൊരു ബ്രൗസറിൽ നിന്നുള്ള ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ എന്നിവ ഉപയോഗിച്ച് ഫയർഫോക്സ് പരീക്ഷിക്കുക.",
   "manual_migration_cancel_button": "വേണ്ട, നന്ദി",
   "manual_migration_import_button": "ഇപ്പോൾ ഇറക്കുമതി ചെയ്യുക",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
@@ -95,59 +95,10 @@ window.gActivityStreamStrings = {
   "firstrun_learn_more_link": "Learn more about Firefox Accounts",
   "firstrun_form_header": "Enter your email",
   "firstrun_form_sub_header": "to continue to Firefox Sync.",
   "firstrun_email_input_placeholder": "Email",
   "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
   "firstrun_terms_of_service": "Terms of Service",
   "firstrun_privacy_notice": "Privacy Notice",
   "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "default_label_loading": "ലോഡ്ചെയ്യുന്നു…",
-  "header_stories": "മികച്ച ലേഖനങ്ങൾ",
-  "header_visit_again": "വീണ്ടും സന്ദർശിക്കുക",
-  "header_bookmarks": "അടുത്തിടെയുള്ള ബുക്ക്മാർക്കുകൾ",
-  "header_bookmarks_placeholder": "നിങ്ങൾക്ക് ഇതുവരെ ബുക്ക്മാർക്കുകൾ ഇല്ല.",
-  "header_stories_from": "എവിടെ നിന്നും",
-  "type_label_synced": "മറ്റു ഉപകരണങ്ങളുമായി സാമ്യപ്പെടുക",
-  "type_label_open": "തുറക്കുക",
-  "type_label_topic": "വിഷയം",
-  "type_label_now": "ഇപ്പോൾ",
-  "menu_action_copy_address": "വിലാസം പകർത്തുക",
-  "menu_action_email_link": "ഇമെയിൽ വിലാസം…",
-  "search_for_something_with": "തിരയാൻ {search_term} : എന്നത് ഉപയോഗിയ്ക്കുക",
-  "search_settings": "തിരയാനുള്ള രീതികൾ മാറ്റുക",
-  "section_info_option": "വിവരം",
-  "section_info_send_feedback": "ഫീഡ്ബാക്ക് അയയ്ക്കുക",
-  "section_info_privacy_notice": "സ്വകാര്യതാ അറിയിപ്പ്",
-  "welcome_title": "പുതിയ ജാലകത്തിലേക്കു സ്വാഗതം",
-  "welcome_body": "നിങ്ങളുടെ ഏറ്റവും ശ്രദ്ധേയമായ അടയാളങ്ങൾ, ലേഖനങ്ങൾ, വീഡിയോകൾ, കൂടാതെ നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ച താളുകൾ എന്നിവ കാണിക്കുന്നതിനായി ഫയർഫോക്സ് ഈ ഇടം ഉപയോഗിക്കും, അതിനാൽ നിങ്ങൾക്ക് എളുപ്പത്തിൽ അവയിലേക്ക് തിരിച്ചു പോകാം.",
-  "welcome_label": "താങ്കളുടെ ഹൈലൈറ്റ്സ് തിരിച്ചറിയുന്നു",
-  "time_label_less_than_minute": "<1 മിനിറ്റ്",
-  "time_label_minute": "{number} മിനിറ്റ്",
-  "time_label_hour": "{number} മിനിറ്റ്",
-  "time_label_day": "{number} മിനിറ്റ്",
-  "settings_pane_header": "പുതിയ ടാബിന്റെ മുൻഗണനകൾ",
-  "settings_pane_body2": "നിങ്ങൾ ഈ താളിൽ കാണുന്നത് തിരഞ്ഞെടുക്കുക.",
-  "settings_pane_search_header": "തിരയുക",
-  "settings_pane_search_body": "പുതിയ ടാബിൽ നിന്ന് ഇന്റർനെറ്റിൽ തിരയുക.",
-  "settings_pane_topsites_body": "നിങ്ങൾ കൂടുതൽ സന്ദർശിക്കുന്ന വെബ്‌സൈറ്റുകളിൽ പ്രവേശിക്കുക.",
-  "settings_pane_topsites_options_showmore": "രണ്ടു വരികൾ കാണിയ്ക്കുക",
-  "settings_pane_bookmarks_header": "അടുത്തിടെയുള്ള ബുക്ക്മാർക്കുകൾ",
-  "settings_pane_bookmarks_body": "നിങ്ങളുടെ പുതിയതായി സൃഷ്ടിച്ച ബുക്ക്മാർക്കുകൾ ഒരു സ്ഥലത്ത്.",
-  "settings_pane_visit_again_header": "വീണ്ടും സന്ദർശിക്കുക",
-  "settings_pane_visit_again_body": "നിങ്ങൾ ഓർത്തുവയ്ക്കാനോ അല്ലെങ്കിൽ തിരികെ ചെല്ലാനോ ആഗ്രഹിക്കുന്ന ബ്രൌസിംഗ് ചരിത്രത്തിന്റെ ഭാഗങ്ങൾ നിങ്ങൾക്ക് ഫയർഫോക്സ് കാണിച്ച് തരും.",
-  "settings_pane_highlights_body2": "നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ചതോ അല്ലെങ്കിൽ ബുക്ക്മാർക്ക് ചെയ്തതോ ആയ രസകരമായ കാര്യങ്ങളിലേക്ക് വഴി കണ്ടെത്തുക.",
-  "settings_pane_highlights_options_visited": "സന്ദർശിച്ച സൈറ്റുകൾ",
-  "settings_pane_snippets_body": "മോസില്ലയിൽ നിന്നും ഫയർഫോക്സ്, ഇന്റർനെറ്റ് സംസ്കാരം, വല്ലപ്പോഴുമുള്ള ക്രമമില്ലാത്ത മെമെ, എന്നിവയിൽ ചെറുതും മധുരവുമായ പരിഷ്കരണങ്ങൾ വായിക്കുക.",
-  "settings_pane_done_button": "തീർന്നു",
-  "settings_pane_topstories_options_sponsored": "സ്പോൺസർ ചെയ്തവ കാണിക്കുക",
-  "edit_topsites_button_label": "നിങ്ങളുടെ മുന്നേറിയ സൈറ്റുകളുടെ വിഭാഗം ഇഷ്ടാനുസൃതമാക്കുക",
-  "edit_topsites_showmore_button": "കൂടുതൽ കാണിക്കുക",
-  "edit_topsites_showless_button": "കുറച്ച് കാണിക്കുക",
-  "edit_topsites_done_button": "തീർന്നു",
-  "edit_topsites_pin_button": "ഈ സൈറ്റ് പിൻ ചെയ്യുക",
-  "edit_topsites_unpin_button": "ഈ സൈറ്റ് അണ്‍പിന്‍ ചെയ്യുക",
-  "edit_topsites_dismiss_button": "ഈ സൈറ്റ് പുറത്താക്കുക",
-  "edit_topsites_add_button": "ചേര്‍ക്കുക",
-  "pocket_feedback_header": "250 ലക്ഷം പേരാൽ തെരഞ്ഞെടുക്കപ്പെട്ട വെബിലെ ഏറ്റവും മികച്ചവയാണിവ.",
-  "pocket_description": "മോസില്ലയുടെ ഭാഗമായ, പോക്കറ്റിന്റെ സഹായം കൊണ്ട്, നിങ്ങൾക്ക് കണ്ടെത്താനാവാത്ത ഉയർന്ന നിലവാരമുള്ള ഉള്ളടക്കം കണ്ടെത്തുക."
+  "firstrun_skip_login": "Skip this step"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
@@ -35,17 +35,17 @@ window.gActivityStreamStrings = {
   "search_button": "Cari",
   "search_header": "{search_engine_name} Cari",
   "search_web_placeholder": "Cari dalam Web",
   "section_disclaimer_topstories": "Kisah paling menarik dalam web yang dipilih berdasarkan yang anda baca. Dari Pocket, kini sebahagian daripada Mozilla.",
   "section_disclaimer_topstories_linktext": "Ketahui fungsi ciri ini.",
   "section_disclaimer_topstories_buttontext": "Ok, faham",
   "prefs_home_header": "Kandungan Halaman Utama Firefox",
   "prefs_home_description": "Pilih kandungan yang mahu dalam skrin Halaman Utama Firefox.",
-  "prefs_section_rows_option": "{num} row;{num} rows",
+  "prefs_section_rows_option": "{num} rows",
   "prefs_search_header": "Carian Web",
   "prefs_topsites_description": "Laman yang anda kerap lawati",
   "prefs_topstories_description2": "Kandungan hebat dalam seluruh web, khas untuk anda",
   "prefs_topstories_options_sponsored_label": "Kisah Tajaan",
   "prefs_topstories_sponsored_learn_more": "Ketahui selanjutnya",
   "prefs_highlights_description": "Pilihan laman yang anda sudah simpan atau lawati",
   "prefs_highlights_options_visited_label": "Halaman Dilawati",
   "prefs_highlights_options_download_label": "Muat Turun Terbaru",
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Tidak, Terima kasih",
   "manual_migration_import_button": "Import Sekarang",
   "error_fallback_default_info": "Ooops, ada kesilapan memuatkan kandungan ini.",
   "error_fallback_default_refresh_suggestion": "Muat semula halaman untuk cuba lagi.",
   "section_menu_action_remove_section": "Buang Seksyen",
   "section_menu_action_collapse_section": "Runtuhkan Seksyen",
   "section_menu_action_expand_section": "Kembangkan Seksyen",
   "section_menu_action_manage_section": "Urus Seksyen",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Urus Ekstensi",
   "section_menu_action_add_topsite": "Tambah Laman Teratas",
   "section_menu_action_move_up": "Pindah Atas",
   "section_menu_action_move_down": "Pindah Bawah",
   "section_menu_action_privacy_notice": "Notis Privasi",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Pulih Piawai",
-  "settings_pane_header": "Keutamaan Tab Baru",
-  "settings_pane_body2": "Pilih apa yang mahu anda paparkan dalam halaman ini.",
-  "settings_pane_search_header": "Cari",
-  "settings_pane_search_body": "Carian Web dari tab baru anda.",
-  "settings_pane_topsites_body": "Akses laman web yang paling banyak dilawati.",
-  "settings_pane_topsites_options_showmore": "Papar dua baris",
-  "settings_pane_highlights_body2": "Dapatkan semula perkara menarik yang sudah dilayari atau ditandabuku.",
-  "settings_pane_highlights_options_visited": "Laman Dilawati",
-  "settings_pane_snippets_body": "Baca ringkasan berita terbaru daripada Mozilla berkaitan Firefox, budaya internet dan ikutan rambang semasa.",
-  "settings_pane_done_button": "Siap",
-  "settings_pane_topstories_options_sponsored": "Papar Kisah Tajaan",
-  "pocket_description": "Teroka kandungan berkualiti tinggi yang mungkin ada tertinggal, menggunakan bantuan Pocket, yang menjadi sebahagian daripada Mozilla."
+  "firstrun_title": "Bawa Firefox bersama Anda",
+  "firstrun_content": "Dapatkan tandabuku, sejarah, kata laluan dan tetapan lain dalam semua peranti anda.",
+  "firstrun_learn_more_link": "Ketahui selanjutnya perihal Akaun Firefox",
+  "firstrun_form_header": "Masukkan e-mel anda",
+  "firstrun_form_sub_header": "untuk ke Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-mel",
+  "firstrun_extra_legal_links": "Dengan meneruskan, anda bersetuju dengan {terms} dan {privacy}.",
+  "firstrun_terms_of_service": "Terma Perkhidmatan",
+  "firstrun_privacy_notice": "Notis Privasi",
+  "firstrun_continue_to_login": "Teruskan",
+  "firstrun_skip_login": "Langkau langkah ini"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Nei takk",
   "manual_migration_import_button": "Importer nå",
   "error_fallback_default_info": "Ups, noe gikk galt når innholdet skulle lastes inn.",
   "error_fallback_default_refresh_suggestion": "Oppdater siden for å prøve igjen.",
   "section_menu_action_remove_section": "Fjern seksjon",
   "section_menu_action_collapse_section": "Slå sammen seksjon",
   "section_menu_action_expand_section": "Utvid seksjon",
   "section_menu_action_manage_section": "Håndter seksjon",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Behandle utvidelse",
   "section_menu_action_add_topsite": "Legg til toppsted",
   "section_menu_action_move_up": "Flytt opp",
   "section_menu_action_move_down": "Flytt ned",
   "section_menu_action_privacy_notice": "Personvernbestemmelser",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Gjenopprett standard",
-  "settings_pane_header": "Innstillinger for Ny fane",
-  "settings_pane_body2": "Velg hva du ser på denne siden.",
-  "settings_pane_search_header": "Søk",
-  "settings_pane_search_body": "Søk på nettet fra din nye fane.",
-  "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
-  "settings_pane_topsites_options_showmore": "Vis to rader",
-  "settings_pane_highlights_body2": "Finn veien tilbake til interessante ting du nylig har besøkt eller bokmerket.",
-  "settings_pane_highlights_options_visited": "Besøkte nettsteder",
-  "settings_pane_snippets_body": "Les korte nyheter fra Mozilla om Firefox, internettkultur og fra tid til annen en tilfeldig meme.",
-  "settings_pane_done_button": "Ferdig",
-  "settings_pane_topstories_options_sponsored": "Vis sponsede historier",
-  "pocket_description": "Oppdag høykvalitetsinnhold som du ellers ville gå glipp av, ved hjelp av Pocket, som nå er en del av Mozilla."
+  "firstrun_title": "Ta med deg Firefox",
+  "firstrun_content": "Få dine bokmerker, historikk, passord, og andre innstillinger på alle enhetene dine.",
+  "firstrun_learn_more_link": "Les mer om Firefox-konto",
+  "firstrun_form_header": "Skriv inn e-postadressen din",
+  "firstrun_form_sub_header": "for å fortsette til Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-post",
+  "firstrun_extra_legal_links": "Ved å fortsette, godtar du {terms} og {privacy}.",
+  "firstrun_terms_of_service": "Tjenestevilkår",
+  "firstrun_privacy_notice": "Personvernbestemmelser",
+  "firstrun_continue_to_login": "Fortsett",
+  "firstrun_skip_login": "Hopp over dette trinnet"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Nee bedankt",
   "manual_migration_import_button": "Nu importeren",
   "error_fallback_default_info": "Oeps, er is iets misgegaan bij het laden van deze inhoud.",
   "error_fallback_default_refresh_suggestion": "Vernieuw de pagina om het opnieuw te proberen.",
   "section_menu_action_remove_section": "Sectie verwijderen",
   "section_menu_action_collapse_section": "Sectie samenvouwen",
   "section_menu_action_expand_section": "Sectie uitvouwen",
   "section_menu_action_manage_section": "Sectie beheren",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Extensie beheren",
   "section_menu_action_add_topsite": "Topwebsite toevoegen",
   "section_menu_action_move_up": "Omhoog verplaatsen",
   "section_menu_action_move_down": "Omlaag verplaatsen",
   "section_menu_action_privacy_notice": "Privacyverklaring",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Standaardwaarden herstellen",
-  "settings_pane_header": "Nieuw-tabbladvoorkeuren",
-  "settings_pane_body2": "Kies wat u op deze pagina ziet.",
-  "settings_pane_search_header": "Zoeken",
-  "settings_pane_search_body": "Het web doorzoeken vanaf uw nieuwe tabblad.",
-  "settings_pane_topsites_body": "De websites benaderen die u het vaakst bezoekt.",
-  "settings_pane_topsites_options_showmore": "Twee rijen tonen",
-  "settings_pane_highlights_body2": "Vind uw weg terug naar interessante dingen die u onlangs hebt bezocht of waarvoor u een bladwijzer hebt gemaakt.",
-  "settings_pane_highlights_options_visited": "Bezochte websites",
-  "settings_pane_snippets_body": "Lees korte updates van Mozilla over Firefox, internetcultuur, en af en toe een willekeurige meme.",
-  "settings_pane_done_button": "Gereed",
-  "settings_pane_topstories_options_sponsored": "Gesponsorde verhalen tonen",
-  "pocket_description": "Ontdek inhoud van hoge kwaliteit die u anders zou missen met behulp van Pocket, nu onderdeel van Mozilla."
+  "firstrun_title": "Neem Firefox met u mee",
+  "firstrun_content": "Bereik uw bladwijzers, geschiedenis, wachtwoorden en andere instellingen op al uw apparaten.",
+  "firstrun_learn_more_link": "Meer info over Firefox Accounts",
+  "firstrun_form_header": "Voer uw e-mailadres in",
+  "firstrun_form_sub_header": "om door te gaan naar Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-mailadres",
+  "firstrun_extra_legal_links": "Door verder te gaan, gaat u akkoord met de {terms} en {privacy}.",
+  "firstrun_terms_of_service": "Servicevoorwaarden",
+  "firstrun_privacy_notice": "Privacyverklaring",
+  "firstrun_continue_to_login": "Doorgaan",
+  "firstrun_skip_login": "Deze stap overslaan"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Nei takk",
   "manual_migration_import_button": "Importer no",
   "error_fallback_default_info": "Ops, noko gjekk gale då innhaldet skulle lastast inn.",
   "error_fallback_default_refresh_suggestion": "Oppdater sida for å prøve på nytt.",
   "section_menu_action_remove_section": "Fjern seksjon",
   "section_menu_action_collapse_section": "Slå saman seksjon",
   "section_menu_action_expand_section": "Utvid seksjon",
   "section_menu_action_manage_section": "Handter seksjon",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Handter utviding",
   "section_menu_action_add_topsite": "Legg til mest besøkte",
   "section_menu_action_move_up": "Flytt opp",
   "section_menu_action_move_down": "Flytt ned",
   "section_menu_action_privacy_notice": "Personvernmerknad",
-  "firstrun_title": "Take Firefox with You",
+  "firstrun_title": "Ta med deg Firefox",
   "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Gjenopprett standard",
-  "settings_pane_header": "Innstillingar for Ny fane",
-  "settings_pane_body2": "Vel kva du vil sjå på denne sida.",
-  "settings_pane_search_header": "Søk",
-  "settings_pane_search_body": "Søk på nettet frå den nye fana di.",
-  "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
-  "settings_pane_topsites_options_showmore": "Vis to rader",
-  "settings_pane_highlights_body2": "Finn vegen tilbake til interessante ting du nyleg har besøkt eller bokmerka.",
-  "settings_pane_highlights_options_visited": "Besøkte nettsteder",
-  "settings_pane_snippets_body": "Les korte nyheiter frå Mozilla om Firefox, internettkultur og frå tid til annan ein tilfeldig meme.",
-  "settings_pane_done_button": "Ferdig",
-  "settings_pane_topstories_options_sponsored": "Vis sponsa historiar",
-  "pocket_description": "Oppdag høgkvalitetsinnhald som du elles ville gå glipp av, ved hjelp av Pocket, som no er ein del av Mozilla."
+  "firstrun_learn_more_link": "Les meir om Firefox-kontoen",
+  "firstrun_form_header": "Skriv inn e-postadressa di",
+  "firstrun_form_sub_header": "for å fortsetje til Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-post",
+  "firstrun_extra_legal_links": "Ved å fortsetje, godtek du {terms} og {privacy}.",
+  "firstrun_terms_of_service": "Tenestevilkår",
+  "firstrun_privacy_notice": "Personvernpraksis",
+  "firstrun_continue_to_login": "Fortset",
+  "firstrun_skip_login": "Hopp over dette steget"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Não, obrigado",
   "manual_migration_import_button": "Importar agora",
   "error_fallback_default_info": "Opa, algo deu errado ao carregar esse conteúdo.",
   "error_fallback_default_refresh_suggestion": "Atualize a página para tentar novamente.",
   "section_menu_action_remove_section": "Remover seção",
   "section_menu_action_collapse_section": "Recolher seção",
   "section_menu_action_expand_section": "Expandir seção",
   "section_menu_action_manage_section": "Gerenciar seção",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gerenciar extensão",
   "section_menu_action_add_topsite": "Adicionar ao sites preferidos",
   "section_menu_action_move_up": "Mover para cima",
   "section_menu_action_move_down": "Mover para baixo",
   "section_menu_action_privacy_notice": "Política de privacidade",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurar padrões",
-  "settings_pane_header": "Preferências de novas abas",
-  "settings_pane_body2": "Escolha o que verá nessa página.",
-  "settings_pane_search_header": "Pesquisar",
-  "settings_pane_search_body": "Pesquise na Web a partir da sua nova aba.",
-  "settings_pane_topsites_body": "Acesse os sites que você mais visita.",
-  "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
-  "settings_pane_highlights_body2": "Encontre o caminho de volta para as coisas interessantes que você favoritou ou viu recentemente.",
-  "settings_pane_highlights_options_visited": "Sites visitados",
-  "settings_pane_snippets_body": "Saiba das notícias e novidades da Mozilla sobre o Firefox, Internet e às vezes alguns memes.",
-  "settings_pane_done_button": "Concluído",
-  "settings_pane_topstories_options_sponsored": "Mostrar histórias patrocinadas",
-  "pocket_description": "Descubra conteúdo de alta qualidade que você poderia ter perdido, com a ajuda do Pocket, agora parte da Mozilla."
+  "firstrun_title": "Leve o Firefox com você",
+  "firstrun_content": "Tenha seus favoritos, histórico, senhas e outras configurações em todos os seus dispositivos.",
+  "firstrun_learn_more_link": "Saiba mais sobre a Conta Firefox",
+  "firstrun_form_header": "Insira seu email",
+  "firstrun_form_sub_header": "para continuar com o Firefox Sync.",
+  "firstrun_email_input_placeholder": "E-mail",
+  "firstrun_extra_legal_links": "Ao continuar você concorda com os {terms} e {privacy}.",
+  "firstrun_terms_of_service": "Termos de serviço",
+  "firstrun_privacy_notice": "Política de privacidade",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Pular essa etapa"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Não, obrigado",
   "manual_migration_import_button": "Importar agora",
   "error_fallback_default_info": "Oops, algo correu mal ao carregar este conteúdo.",
   "error_fallback_default_refresh_suggestion": "Atualize a página para tentar novamente.",
   "section_menu_action_remove_section": "Remover secção",
   "section_menu_action_collapse_section": "Colapsar secção",
   "section_menu_action_expand_section": "Expandir secção",
   "section_menu_action_manage_section": "Gerir secção",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Gerir extensão",
   "section_menu_action_add_topsite": "Adicionar site mais visitado",
   "section_menu_action_move_up": "Mover para cima",
   "section_menu_action_move_down": "Mover para baixo",
   "section_menu_action_privacy_notice": "Aviso de privacidade",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
+  "firstrun_title": "Leve o Firefox consigo",
+  "firstrun_content": "Obtenha os seus marcadores, histórico, palavras-passe e outras definições em todos os seus dispositivos.",
+  "firstrun_learn_more_link": "Saber mais acerca do Contas Firefox",
+  "firstrun_form_header": "Introduza o seu e-mail",
+  "firstrun_form_sub_header": "para continuar para o Firefox Sync.",
   "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurar padrões",
-  "settings_pane_header": "Preferências de novas abas",
-  "settings_pane_body2": "Escolha o que verá nessa página.",
-  "settings_pane_search_header": "Pesquisar",
-  "settings_pane_search_body": "Pesquise na Web a partir da sua nova aba.",
-  "settings_pane_topsites_body": "Acesse os sites que você mais visita.",
-  "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
-  "settings_pane_highlights_body2": "Encontre o caminho de volta para as coisas interessantes que você favoritou ou viu recentemente.",
-  "settings_pane_highlights_options_visited": "Sites visitados",
-  "settings_pane_snippets_body": "Saiba das notícias e novidades da Mozilla sobre o Firefox, Internet e às vezes alguns memes.",
-  "settings_pane_done_button": "Concluído",
-  "settings_pane_topstories_options_sponsored": "Mostrar histórias patrocinadas",
-  "pocket_description": "Descubra conteúdo de alta qualidade que você poderia ter perdido, com a ajuda do Pocket, agora parte da Mozilla."
+  "firstrun_extra_legal_links": "Ao proceder, está a concordar com os {terms} e o {privacy}.",
+  "firstrun_terms_of_service": "Termos de serviço",
+  "firstrun_privacy_notice": "Aviso de privacidade",
+  "firstrun_continue_to_login": "Continuar",
+  "firstrun_skip_login": "Saltar este passo"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Filă nouă</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
-    <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Caută pe web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Caută pe web" title="Caută pe web"/><button id="searchSubmit" class="search-button" title="Caută"><span class="sr-only"><span>Caută</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Site-uri de top</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomandat de Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Subiecte populare:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Evidențieri</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Particularizează pagina de filă nouă"></button></div></div></main></div></div></div>
+    <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Caută pe web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Caută pe web" title="Caută pe web"/><button id="searchSubmit" class="search-button" title="Caută"><span class="sr-only"><span>Caută</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Site-uri de top</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomandat de Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Subiecte populare:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Evidențieri</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizează pagina pentru filă nouă"></button></div></div></main></div></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
     <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
@@ -46,17 +46,17 @@ window.gActivityStreamStrings = {
   "prefs_topstories_description2": "Conținut nemaipomenit de pe web, personalizat pentru tine",
   "prefs_topstories_options_sponsored_label": "Articole sponsorizate",
   "prefs_topstories_sponsored_learn_more": "Află mai multe",
   "prefs_highlights_description": "O selecție a site-urilor pe care le-ai salvat sau vizitat",
   "prefs_highlights_options_visited_label": "Pagini vizitate",
   "prefs_highlights_options_download_label": "Cele mai recente descărcări",
   "prefs_highlights_options_pocket_label": "Pagini salvate în Pocket",
   "prefs_snippets_description": "Știri de la Mozilla și Firefox",
-  "settings_pane_button_label": "Particularizează pagina de filă nouă",
+  "settings_pane_button_label": "Personalizează pagina pentru filă nouă",
   "settings_pane_topsites_header": "Site-uri de top",
   "settings_pane_highlights_header": "Evidențieri",
   "settings_pane_highlights_options_bookmarks": "Marcaje",
   "settings_pane_snippets_header": "Fragmente",
   "edit_topsites_button_text": "Editează",
   "edit_topsites_edit_button": "Editează acest site",
   "topsites_form_add_header": "Site de top nou",
   "topsites_form_edit_header": "Editează site-ul de top",
@@ -95,23 +95,10 @@ window.gActivityStreamStrings = {
   "firstrun_learn_more_link": "Learn more about Firefox Accounts",
   "firstrun_form_header": "Enter your email",
   "firstrun_form_sub_header": "to continue to Firefox Sync.",
   "firstrun_email_input_placeholder": "Email",
   "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
   "firstrun_terms_of_service": "Terms of Service",
   "firstrun_privacy_notice": "Privacy Notice",
   "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Restaurează valorile implicite",
-  "settings_pane_header": "Preferințe pentru filă nouă",
-  "settings_pane_body2": "Alege ceea ce vezi pe această pagină.",
-  "settings_pane_search_header": "Caută",
-  "settings_pane_search_body": "Caută pe web din noua filă.",
-  "settings_pane_topsites_body": "Accesează site-urile pe care le vizitezi mai des.",
-  "settings_pane_topsites_options_showmore": "Arată două rânduri",
-  "settings_pane_highlights_body2": "Regăsește lucrurile interesante pe care le-ai vizitat sau marcat recent.",
-  "settings_pane_highlights_options_visited": "Site-uri vizitate",
-  "settings_pane_snippets_body": "Citește actualizări scurte de la Mozilla despre Firefox, cultura internetului și meme-ul ocazional aleatoriu.",
-  "settings_pane_done_button": "Gata",
-  "settings_pane_topstories_options_sponsored": "Arată articolele sponsorizate",
-  "pocket_description": "Descoperă conținut de calitate pe care l-ai putea rata, cu ajutorul Pocket, acum parte din Mozilla."
+  "firstrun_skip_login": "Skip this step"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Не, хвала",
   "manual_migration_import_button": "Увези сада",
   "error_fallback_default_info": "Упс, дошло је до грешке приликом учитавања овог садржаја.",
   "error_fallback_default_refresh_suggestion": "Освежите страницу да покушате поново.",
   "section_menu_action_remove_section": "Уклони секцију",
   "section_menu_action_collapse_section": "Скупи секцију",
   "section_menu_action_expand_section": "Прошири секцију",
   "section_menu_action_manage_section": "Управљај секцијом",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Управљај екстензијама",
   "section_menu_action_add_topsite": "Додај омиљени сајт",
   "section_menu_action_move_up": "Помери горе",
   "section_menu_action_move_down": "Помери доле",
   "section_menu_action_privacy_notice": "Обавештење о приватности",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Врати подразумевано",
-  "settings_pane_header": "Поставке новог језичка",
-  "settings_pane_body2": "Изаберите шта желите видети на овој страници.",
-  "settings_pane_search_header": "Претрага",
-  "settings_pane_search_body": "Претражујте веб из вашег новог језичка.",
-  "settings_pane_topsites_body": "Приступите најпосећенијим веб сајтовима.",
-  "settings_pane_topsites_options_showmore": "Прикажи у два реда",
-  "settings_pane_highlights_body2": "Поново погледајте занимљиве ствари које сте скоро посетили или забележили.",
-  "settings_pane_highlights_options_visited": "Посећени сајтови",
-  "settings_pane_snippets_body": "Читајте кратке новости од Mozilla-е о Firefox-у, интернет култури и погледајте понеки насумични мем.",
-  "settings_pane_done_button": "Готово",
-  "settings_pane_topstories_options_sponsored": "Прикажи промовисане приче",
-  "pocket_description": "Откријте високо квалитетан садржај који можда не бисте видели, уз помоћ Pocket-а који је сада део Mozilla-е."
+  "firstrun_title": "Понесите Firefox са собом",
+  "firstrun_content": "Имајте све забелешке, историјат, лозинке и друге поставке на свим вашим уређајима.",
+  "firstrun_learn_more_link": "Сазнајте више о Firefox Accounts",
+  "firstrun_form_header": "Унесите вашу адресу е-поште",
+  "firstrun_form_sub_header": "да бисте наставили на Firefox Sync.",
+  "firstrun_email_input_placeholder": "Адреса е-поште",
+  "firstrun_extra_legal_links": "Наставком, прихватате {terms} и {privacy}.",
+  "firstrun_terms_of_service": "услове коришћења",
+  "firstrun_privacy_notice": "обавештење о приватности",
+  "firstrun_continue_to_login": "Настави",
+  "firstrun_skip_login": "Прескочи овај корак"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Nej tack",
   "manual_migration_import_button": "Importera nu",
   "error_fallback_default_info": "Oj, något gick fel när innehållet skulle laddas.",
   "error_fallback_default_refresh_suggestion": "Uppdatera sidan för att försöka igen.",
   "section_menu_action_remove_section": "Ta bort sektion",
   "section_menu_action_collapse_section": "Fäll ihop sektion",
   "section_menu_action_expand_section": "Expandera sektion",
   "section_menu_action_manage_section": "Hantera sektion",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Hantera tillägg",
   "section_menu_action_add_topsite": "Lägg till mest besökta",
   "section_menu_action_move_up": "Flytta upp",
   "section_menu_action_move_down": "Flytta ner",
   "section_menu_action_privacy_notice": "Sekretesspolicy",
   "firstrun_title": "Take Firefox with You",
   "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
+  "firstrun_learn_more_link": "Lär dig mer om Firefox-konton",
+  "firstrun_form_header": "Ange din e-postadress",
   "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
+  "firstrun_email_input_placeholder": "E-post",
   "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Återställ standard",
-  "settings_pane_header": "Inställningar Ny flik",
-  "settings_pane_body2": "Välj vad du vill se på denna sida.",
-  "settings_pane_search_header": "Sök",
-  "settings_pane_search_body": "Sök på webben från din nya flik.",
-  "settings_pane_topsites_body": "Åtkomst till de webbplatser du besökt mest.",
-  "settings_pane_topsites_options_showmore": "Visa två rader",
-  "settings_pane_highlights_body2": "Hitta tillbaka till intressanta saker som du nyligen har besökt eller bokmärkt.",
-  "settings_pane_highlights_options_visited": "Besökta sidor",
-  "settings_pane_snippets_body": "Läs korta nyheter från Mozilla om Firefox, internetkultur och från tid till annan en meme.",
-  "settings_pane_done_button": "Klar",
-  "settings_pane_topstories_options_sponsored": "Visa sponsrade nyheter",
-  "pocket_description": "Upptäck högkvalitativt innehåll som du annars skulle missa, med hjälp av Pocket, nu en del av Mozilla."
+  "firstrun_terms_of_service": "Användarvillkor",
+  "firstrun_privacy_notice": "Sekretesspolicy",
+  "firstrun_continue_to_login": "Fortsätt",
+  "firstrun_skip_login": "Hoppa över det här steget"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
@@ -43,17 +43,17 @@ window.gActivityStreamStrings = {
   "prefs_section_rows_option": "{num} แถว",
   "prefs_search_header": "การค้นหาเว็บ",
   "prefs_topsites_description": "ไซต์ที่คุณเยี่ยมชมมากที่สุด",
   "prefs_topstories_description2": "เนื้อหาที่ยอดเยี่ยมจากเว็บต่าง ๆ ปรับแต่งให้เป็นส่วนบุคคลเพื่อคุณ",
   "prefs_topstories_options_sponsored_label": "เรื่องราวที่ได้รับการสนับสนุน",
   "prefs_topstories_sponsored_learn_more": "เรียนรู้เพิ่มเติม",
   "prefs_highlights_description": "การคัดเลือกไซต์ที่คุณได้บันทึกไว้หรือเยี่ยมชม",
   "prefs_highlights_options_visited_label": "หน้าที่เยี่ยมชมแล้ว",
-  "prefs_highlights_options_download_label": "ดาวน์โหลดล่าสุด",
+  "prefs_highlights_options_download_label": "การดาวน์โหลดล่าสุด",
   "prefs_highlights_options_pocket_label": "หน้าที่บันทึกไว้ใน Pocket",
   "prefs_snippets_description": "ข้อมูลอัปเดตจาก Mozilla และ Firefox",
   "settings_pane_button_label": "ปรับแต่งหน้าแท็บใหม่ของคุณ",
   "settings_pane_topsites_header": "ไซต์เด่น",
   "settings_pane_highlights_header": "รายการเด่น",
   "settings_pane_highlights_options_bookmarks": "ที่คั่นหน้า",
   "settings_pane_snippets_header": "ส่วนย่อย",
   "edit_topsites_button_text": "แก้ไข",
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "ไม่ ขอบคุณ",
   "manual_migration_import_button": "นำเข้าตอนนี้",
   "error_fallback_default_info": "อุปส์ มีบางอย่างผิดพลาดในการโหลดเนื้อหานี้",
   "error_fallback_default_refresh_suggestion": "เรียกหน้าใหม่เพื่อลองอีกครั้ง",
   "section_menu_action_remove_section": "เอาส่วนออก",
   "section_menu_action_collapse_section": "ยุบส่วน",
   "section_menu_action_expand_section": "ขยายส่วน",
   "section_menu_action_manage_section": "จัดการส่วน",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "จัดการส่วนขยาย",
   "section_menu_action_add_topsite": "เพิ่มไซต์เด่น",
   "section_menu_action_move_up": "ย้ายขึ้น",
   "section_menu_action_move_down": "ย้ายลง",
   "section_menu_action_privacy_notice": "ประกาศความเป็นส่วนตัว",
-  "firstrun_title": "Take Firefox with You",
+  "firstrun_title": "นำ Firefox ไปกับคุณ",
   "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
+  "firstrun_learn_more_link": "เรียนรู้เพิ่มเติมเกี่ยวกับบัญชี Firefox",
+  "firstrun_form_header": "ป้อนอีเมลของคุณ",
+  "firstrun_form_sub_header": "เพื่อดำเนินการต่อไปยัง Firefox Sync",
+  "firstrun_email_input_placeholder": "อีเมล",
   "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "เรียกคืนค่าเริ่มต้น",
-  "settings_pane_header": "ค่ากำหนดแท็บใหม่",
-  "settings_pane_body2": "เลือกสิ่งที่คุณเห็นในหน้านี้",
-  "settings_pane_search_header": "ค้นหา",
-  "settings_pane_search_body": "ค้นหาเว็บจากแท็บใหม่ของคุณ",
-  "settings_pane_topsites_body": "เข้าถึงเว็บไซต์ที่คุณเยี่ยมชมมากที่สุด",
-  "settings_pane_topsites_options_showmore": "แสดงสองแถว",
-  "settings_pane_highlights_body2": "ค้นหาทางของคุณกลับไปยังสิ่งที่น่าสนใจที่คุณได้เยี่ยมชมหรือเพิ่มที่คั่นหน้าไว้ล่าสุด",
-  "settings_pane_highlights_options_visited": "ไซต์ที่เยี่ยมชมแล้ว",
-  "settings_pane_snippets_body": "อ่านข้อมูลอัปเดตที่สั้นและไพเราะจาก Mozilla เกี่ยวกับ Firefox, วัฒนธรรมอินเทอร์เน็ต และมีมแบบสุ่มเป็นครั้งคราว",
-  "settings_pane_done_button": "เสร็จสิ้น",
-  "settings_pane_topstories_options_sponsored": "แสดงเรื่องราวที่ได้รับการสนับสนุน",
-  "pocket_description": "ค้นพบเนื้อหาคุณภาพสูงที่คุณอาจพลาดไปด้วยความช่วยเหลือจาก Pocket ที่ตอนนี้เป็นส่วนหนึ่งของ Mozilla"
+  "firstrun_terms_of_service": "เงื่อนไขการให้บริการ",
+  "firstrun_privacy_notice": "ประกาศความเป็นส่วนตัว",
+  "firstrun_continue_to_login": "ดำเนินการต่อ",
+  "firstrun_skip_login": "ข้ามขั้นตอนนี้"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "Gerek yok",
   "manual_migration_import_button": "Olur, aktaralım",
   "error_fallback_default_info": "Bu içerik yüklenirken bir hata oluştu.",
   "error_fallback_default_refresh_suggestion": "Yeniden denemek için sayfayı tazeleyin.",
   "section_menu_action_remove_section": "Bölümü sil",
   "section_menu_action_collapse_section": "Bölümü daralt",
   "section_menu_action_expand_section": "Bölümü genişlet",
   "section_menu_action_manage_section": "Bölümü yönet",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "Eklentiyi yönet",
   "section_menu_action_add_topsite": "Sık kullanılan site ekle",
   "section_menu_action_move_up": "Yukarı taşı",
   "section_menu_action_move_down": "Aşağı taşı",
   "section_menu_action_privacy_notice": "Gizlilik bildirimi",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "Varsayılanları geri yükle",
-  "settings_pane_header": "Yeni Sekme Tercihleri",
-  "settings_pane_body2": "Bu sayfada görmek istediklerinizi seçin.",
-  "settings_pane_search_header": "Arama",
-  "settings_pane_search_body": "Yeni sekme üzerinden web’de arama yapın.",
-  "settings_pane_topsites_body": "En sık ziyaret ettiğiniz web sitelerine erişin.",
-  "settings_pane_topsites_options_showmore": "İki satır göster",
-  "settings_pane_highlights_body2": "Son zamanlarda baktığınız veya yer imlerinize eklediğiniz ilginç şeyleri yeniden keşfedin.",
-  "settings_pane_highlights_options_visited": "Ziyaret ettiğim siteler",
-  "settings_pane_snippets_body": "Firefox, internet kültürü ve önemli gelişmeler hakkında Mozilla’dan gelen kısa güncelleme notlarını okuyun.",
-  "settings_pane_done_button": "Tamam",
-  "settings_pane_topstories_options_sponsored": "Sponsorlu haberleri göster",
-  "pocket_description": "Mozilla ailesinin yeni üyesi Pocket’ın yardımıyla, gözünüzden kaçabilecek kaliteli içerikleri keşfedin."
+  "firstrun_title": "Firefox’u yanınızda taşıyın",
+  "firstrun_content": "Yer imlerinizi, geçmişinizi, parolalarınızı ve diğer ayarlarınızı tüm cihazlarınızda kullanabilirsiniz.",
+  "firstrun_learn_more_link": "Firefox Hesapları hakkında bilgi alın",
+  "firstrun_form_header": "Firefox Sync’e devam etmek için",
+  "firstrun_form_sub_header": "e-posta adresinizi yazın.",
+  "firstrun_email_input_placeholder": "E-posta",
+  "firstrun_extra_legal_links": "Devam ederseniz {terms} ve {privacy} kabul etmiş sayılırsınız.",
+  "firstrun_terms_of_service": "Kullanım Koşullarını",
+  "firstrun_privacy_notice": "Gizlilik Bildirimini",
+  "firstrun_continue_to_login": "Devam et",
+  "firstrun_skip_login": "Bu adımı atla"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "不用了",
   "manual_migration_import_button": "立即导入",
   "error_fallback_default_info": "哎呀,加载此内容出错了。",
   "error_fallback_default_refresh_suggestion": "刷新页面以重试。",
   "section_menu_action_remove_section": "移除板块",
   "section_menu_action_collapse_section": "折叠板块",
   "section_menu_action_expand_section": "展开板块",
   "section_menu_action_manage_section": "管理板块",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "管理扩展",
   "section_menu_action_add_topsite": "添加常用网站",
   "section_menu_action_move_up": "上移",
   "section_menu_action_move_down": "下移",
   "section_menu_action_privacy_notice": "隐私声明",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "恢复默认设置",
-  "settings_pane_header": "新标签页偏好设置",
-  "settings_pane_body2": "选择您想在此页面上看到什么。",
-  "settings_pane_search_header": "搜索",
-  "settings_pane_search_body": "在新标签页内就能搜遍网络。",
-  "settings_pane_topsites_body": "显示您经常访问的网站。",
-  "settings_pane_topsites_options_showmore": "双行显示",
-  "settings_pane_highlights_body2": "根据您最近访问的页面和添加的书签推荐您感兴趣的东西。",
-  "settings_pane_highlights_options_visited": "访问过的网站",
-  "settings_pane_snippets_body": "阅读 Mozilla 就 Firefox 与互联网文化提供的简短有趣的小文章,偶尔还会介绍有关模因的小知识。",
-  "settings_pane_done_button": "完成",
-  "settings_pane_topstories_options_sponsored": "显示赞助内容",
-  "pocket_description": "借助 Pocket(目前属 Mozilla 旗下)发现您不容错过的高品质内容。"
+  "firstrun_title": "随身携带 Firefox",
+  "firstrun_content": "在您的所有设备上获取您的书签、历史记录、密码以及其他设置。",
+  "firstrun_learn_more_link": "详细了解 Firefox 账户",
+  "firstrun_form_header": "请输入您的电子邮箱",
+  "firstrun_form_sub_header": "继续使用 Firefox 同步服务。",
+  "firstrun_email_input_placeholder": "电子邮件",
+  "firstrun_extra_legal_links": "若您选择继续,即表示您同意我们的{terms}和{privacy}。",
+  "firstrun_terms_of_service": "服务条款",
+  "firstrun_privacy_notice": "隐私声明",
+  "firstrun_continue_to_login": "继续",
+  "firstrun_skip_login": "跳过此步骤"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
   "manual_migration_cancel_button": "不必了",
   "manual_migration_import_button": "立即匯入",
   "error_fallback_default_info": "唉唷,載入內容時發生錯誤。",
   "error_fallback_default_refresh_suggestion": "請重新整理頁面再試一次。",
   "section_menu_action_remove_section": "移除段落",
   "section_menu_action_collapse_section": "摺疊段落",
   "section_menu_action_expand_section": "展開段落",
   "section_menu_action_manage_section": "管理段落",
-  "section_menu_action_manage_webext": "Manage Extension",
+  "section_menu_action_manage_webext": "管理擴充套件",
   "section_menu_action_add_topsite": "新增熱門網站",
   "section_menu_action_move_up": "上移",
   "section_menu_action_move_down": "下移",
   "section_menu_action_privacy_notice": "隱私權公告",
-  "firstrun_title": "Take Firefox with You",
-  "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
-  "firstrun_learn_more_link": "Learn more about Firefox Accounts",
-  "firstrun_form_header": "Enter your email",
-  "firstrun_form_sub_header": "to continue to Firefox Sync.",
-  "firstrun_email_input_placeholder": "Email",
-  "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
-  "firstrun_terms_of_service": "Terms of Service",
-  "firstrun_privacy_notice": "Privacy Notice",
-  "firstrun_continue_to_login": "Continue",
-  "firstrun_skip_login": "Skip this step",
-  "prefs_restore_defaults_button": "回復為預設值",
-  "settings_pane_header": "新分頁偏好設定",
-  "settings_pane_body2": "選擇要在此頁面看到哪些東西。",
-  "settings_pane_search_header": "搜尋",
-  "settings_pane_search_body": "直接在新分頁頁面搜尋網頁。",
-  "settings_pane_topsites_body": "前往您最常造訪的網站。",
-  "settings_pane_topsites_options_showmore": "顯示兩行",
-  "settings_pane_highlights_body2": "快速回到您最近在網站發現的有趣事物,或是剛加入書籤的頁面。",
-  "settings_pane_highlights_options_visited": "造訪過的網站",
-  "settings_pane_snippets_body": "閱讀來自 Mozilla,關於 Firefox、網路文化、偶而還有一些不同 meme 的最新消息。",
-  "settings_pane_done_button": "完成",
-  "settings_pane_topstories_options_sponsored": "顯示贊助內容",
-  "pocket_description": "透過 Mozilla 旗下的 Pocket 服務,發現您可能錯過的優質內容。"
+  "firstrun_title": "Firefox 隨身帶著走",
+  "firstrun_content": "在您的任何裝置上取得書籤、瀏覽紀錄、密碼及其他設定。",
+  "firstrun_learn_more_link": "了解 Firefox Accounts 的更多資訊",
+  "firstrun_form_header": "輸入您的電子郵件地址",
+  "firstrun_form_sub_header": "繼續前往 Firefox Sync。",
+  "firstrun_email_input_placeholder": "電子郵件",
+  "firstrun_extra_legal_links": "若繼續,代表您同意{terms}及{privacy}。",
+  "firstrun_terms_of_service": "服務條款",
+  "firstrun_privacy_notice": "隱私權公告",
+  "firstrun_continue_to_login": "繼續",
+  "firstrun_skip_login": "跳過這步"
 };
--- a/browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
+++ b/browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
@@ -333,25 +333,22 @@ describe("ASRouter", () => {
       const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
       await Router.onMessage(msg);
 
       assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: testMessage});
     });
   });
 
   describe("#onMessage: Onboarding actions", () => {
-    it("should call openLinkIn with the correct params on OPEN_PRIVATE_BROWSER_WINDOW", async () => {
-      sinon.spy(Router, "openLinkIn");
+    it("should call OpenBrowserWindow with a private window on OPEN_PRIVATE_BROWSER_WINDOW", async () => {
       let [testMessage] = Router.state.messages;
-      testMessage.button_action_params = "about:home";
       const msg = fakeAsyncMessage({type: "OPEN_PRIVATE_BROWSER_WINDOW", data: testMessage});
       await Router.onMessage(msg);
 
-      assert.calledWith(Router.openLinkIn, testMessage.button_action_params, msg.target, {isPrivate: true, where: "window"});
-      assert.calledOnce(msg.target.browser.ownerGlobal.openLinkIn);
+      assert.calledWith(msg.target.browser.ownerGlobal.OpenBrowserWindow, {private: true});
     });
     it("should call openLinkIn with the correct params on OPEN_URL", async () => {
       sinon.spy(Router, "openLinkIn");
       let [testMessage] = Router.state.messages;
       testMessage.button_action_params = "some/url.com";
       const msg = fakeAsyncMessage({type: "OPEN_URL", data: testMessage});
       await Router.onMessage(msg);
 
--- a/browser/extensions/activity-stream/test/unit/asrouter/MessageLoaderUtils.test.js
+++ b/browser/extensions/activity-stream/test/unit/asrouter/MessageLoaderUtils.test.js
@@ -34,23 +34,63 @@ describe("MessageLoaderUtils", () => {
       const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
       assert.isArray(result.messages);
       // Does the message have the right properties?
       const [message] = result.messages;
       assert.propertyVal(message, "id", "foo");
       assert.propertyVal(message, "provider", "provider123");
       assert.propertyVal(message, "provider_url", "https://foo.com");
     });
-    it("should return an empty array if the request results in an error", async () => {
+    describe("remote provider HTTP codes", () => {
+      const testMessage = {id: "foo"};
       const provider = {id: "provider123", type: "remote", url: "https://foo.com"};
-      fetchStub.rejects(new Error("something went wrong"));
+      const respJson = {messages: [testMessage]};
+
+      function assertReturnsCorrectMessages(actual) {
+        assert.isArray(actual.messages);
+        // Does the message have the right properties?
+        const [message] = actual.messages;
+        assert.propertyVal(message, "id", testMessage.id);
+        assert.propertyVal(message, "provider", provider.id);
+        assert.propertyVal(message, "provider_url", provider.url);
+      }
+
+      it("should return messages for 200 response", async () => {
+        fetchStub.resolves({ok: true, status: 200, json: () => Promise.resolve(respJson)});
+        assertReturnsCorrectMessages(await MessageLoaderUtils.loadMessagesForProvider(provider));
+      });
+
+      it("should return messages for a 302 response with json", async () => {
+        fetchStub.resolves({ok: false, status: 302, json: () => Promise.resolve(respJson)});
+        assertReturnsCorrectMessages(await MessageLoaderUtils.loadMessagesForProvider(provider));
+      });
 
-      const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+      it("should return an empty array for a 204 response", async () => {
+        fetchStub.resolves({ok: true, status: 204, json: () => ""});
+        const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+        assert.deepEqual(result.messages, []);
+      });
+
+      it("should return an empty array for a 500 response", async () => {
+        fetchStub.resolves({ok: false, status: 500, json: () => ""});
+        const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+        assert.deepEqual(result.messages, []);
+      });
 
-      assert.deepEqual(result.messages, []);
+      it("should return an empty array if json doesn't parse properly", async () => {
+        fetchStub.resolves({ok: false, status: 200, json: () => ""});
+        const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+        assert.deepEqual(result.messages, []);
+      });
+
+      it("should return an empty array if the request rejects", async () => {
+        fetchStub.rejects(new Error("something went wrong"));
+        const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+        assert.deepEqual(result.messages, []);
+      });
     });
     it("should return an empty array for a remote provider with a blank URL without attempting a request", async () => {
       const provider = {id: "provider123", type: "remote", url: ""};
 
       const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
 
       assert.notCalled(fetchStub);
       assert.deepEqual(result.messages, []);
--- a/browser/extensions/activity-stream/test/unit/asrouter/constants.js
+++ b/browser/extensions/activity-stream/test/unit/asrouter/constants.js
@@ -20,13 +20,14 @@ export const FAKE_REMOTE_PROVIDER = {id:
 export class FakeRemotePageManager {
   constructor() {
     this.addMessageListener = sinon.stub();
     this.sendAsyncMessage = sinon.stub();
     this.removeMessageListener = sinon.stub();
     this.browser = {
       ownerGlobal: {
         openTrustedLinkIn: sinon.stub(),
-        openLinkIn: sinon.stub()
+        openLinkIn: sinon.stub(),
+        OpenBrowserWindow: sinon.stub()
       }
     };
   }
 }
--- a/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
+++ b/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
@@ -1,17 +1,17 @@
 "use strict";
 
 import {actionTypes as at} from "common/Actions.jsm";
 import {Dedupe} from "common/Dedupe.jsm";
 import {GlobalOverrider} from "test/unit/utils";
 import injector from "inject!lib/HighlightsFeed.jsm";
 import {Screenshots} from "lib/Screenshots.jsm";
 
-const FAKE_LINKS = new Array(9).fill(null).map((v, i) => ({url: `http://www.site${i}.com`}));
+const FAKE_LINKS = new Array(20).fill(null).map((v, i) => ({url: `http://www.site${i}.com`}));
 const FAKE_IMAGE = "data123";
 
 describe("Highlights Feed", () => {
   let HighlightsFeed;
   let SECTION_ID;
   let SYNC_BOOKMARKS_FINISHED_EVENT;
   let BOOKMARKS_RESTORE_SUCCESS_EVENT;
   let BOOKMARKS_RESTORE_FAILED_EVENT;