Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New docs #9301

Merged
merged 130 commits into from Dec 23, 2019
Merged

New docs #9301

merged 130 commits into from Dec 23, 2019

Conversation

lfades
Copy link
Member

@lfades lfades commented Nov 4, 2019

This PR adds a new folder with multiple md files, which will become the new docs used for http://nextjs.org.

A manifest was included for the routes, it includes the path for the file in the repo, the title, and the order for the sections. A note here is that it could be only the order and the path, then use a script to add the titles.

This docs have gone through many reviews by myself, but it lacks external feedback, which is very welcome.

No need to merge until the implementation is also done in https://github.com/zeit/next-site

Closes #9470
Closes #8779
Closes #6531 🎉
Closes #6098
Closes #5610
Closes #4347
Closes #1229 🎉
Closes #1069 - The programmatic API is a no no, the other requested changes are now handled. "How Next.js improves performance" is not directly handled, but we do handle warnings for every case where you may want to opt out of the very good performance Next.js brings by default.

Not sure if it solves #3265

Related to #8075
Related to #4337
Handles documentation change requested in #9584

@lfades lfades requested a review from Timer as a code owner November 4, 2019 04:39
@ijjk
Copy link
Member

ijjk commented Nov 4, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.4s 14.4s -27ms
nodeModulesSize 48.6 MB 48.5 MB -78.9 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 16.6 kB 16.6 kB -15 B
main-HASH.js gzip 5.87 kB 5.86 kB -7 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..254ddadd9.js 28.7 kB N/A N/A
de003c3a9d30..add9.js gzip 10.9 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB -15 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB -15 B
main-HASH.module.js gzip 5.29 kB 5.28 kB -7 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -15 B
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 3.94 kB -115 B
index.html gzip 1.03 kB 1 kB -30 B
link.html 4.58 kB 4.47 kB -115 B
link.html gzip 1.11 kB 1.08 kB -33 B
withRouter.html 4.59 kB 4.47 kB -115 B
withRouter.html gzip 1.1 kB 1.07 kB -34 B
Overall change 13.2 kB 12.9 kB -345 B

Diffs

Diff for main-HASH.js
@@ -289,7 +289,7 @@ var _inherits = __webpack_require__("N9n2");
 
 var _slicedToArray = __webpack_require__("8+Nu");
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -302,8 +302,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -320,7 +318,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -412,12 +410,9 @@ function (_react$default$Compon) {
   }, {
     key: "componentDidMount",
     value: function componentDidMount() {
-      this.scrollToHash();
-
-      if (false) {} // If page was exported and has a querystring
+      this.scrollToHash(); // If page was exported and has a querystring
       // If it's a dynamic route or has a querystring
 
-
       if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -560,10 +555,7 @@ function () {
                   emitter: emitter
                 });
               }
-            }); // call init-client middleware
-
-            if (false) {}
-
+            });
             renderCtx = {
               App: App,
               Component: Component,
@@ -574,7 +566,7 @@ function () {
             render(renderCtx);
             return _context.abrupt("return", emitter);
 
-          case 31:
+          case 30:
           case "end":
             return _context.stop();
         }
@@ -667,14 +659,12 @@ function _renderError() {
             return _context3.abrupt("return", webpackHMR.reportRuntimeError(webpackHMR.prepareError(err)));
 
           case 3:
-            if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
-
-
+            // Make sure we log the error to the console, otherwise users can't track down issues.
             console.error(err);
-            _context3.next = 7;
+            _context3.next = 6;
             return pageLoader.loadPage('/_error');
 
-          case 7:
+          case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
             // In production we do a normal render with the `ErrorComponent` as component.
             // If we've gotten here upon initial render, we can use the props from the server.
@@ -694,31 +684,31 @@ function _renderError() {
             };
 
             if (!props.props) {
-              _context3.next = 14;
+              _context3.next = 13;
               break;
             }
 
             _context3.t0 = props.props;
-            _context3.next = 17;
+            _context3.next = 16;
             break;
 
-          case 14:
-            _context3.next = 16;
+          case 13:
+            _context3.next = 15;
             return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 16:
+          case 15:
             _context3.t0 = _context3.sent;
 
-          case 17:
+          case 16:
             initProps = _context3.t0;
-            _context3.next = 20;
+            _context3.next = 19;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 20:
+          case 19:
           case "end":
             return _context3.stop();
         }
Diff for main-HASH.module.js
@@ -288,7 +288,7 @@ exports.HeadManagerContext = React.createContext(null);
 "use strict";
 
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -301,8 +301,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -319,7 +317,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -397,12 +395,9 @@ class Container extends _react.default.Component {
   }
 
   componentDidMount() {
-    this.scrollToHash();
-
-    if (false) {} // If page was exported and has a querystring
+    this.scrollToHash(); // If page was exported and has a querystring
     // If it's a dynamic route or has a querystring
 
-
     if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -507,10 +502,7 @@ function () {
           emitter
         });
       }
-    }); // call init-client middleware
-
-    if (false) {}
-
+    });
     var renderCtx = {
       App,
       Component,
@@ -567,8 +559,6 @@ function _renderError() {
     } = props; // In development runtime errors are caught by react-error-overlay
     // In production we catch runtime errors using componentDidCatch which will trigger renderError
 
-    if (false) {}
-
     if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-6664b64e499fca4460ff.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,9 +43,9 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-108e86883c2fd794bd5c.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-6664b64e499fca4460ff.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.219514909c9db8a9ff76.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -58,9 +57,9 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.aa9b9639e60cb81cd54f.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -16,11 +16,11 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-6664b64e499fca4460ff.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -36,7 +36,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -59,17 +58,17 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.aa9b9639e60cb81cd54f.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-108e86883c2fd794bd5c.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-6664b64e499fca4460ff.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -16,11 +16,11 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-6664b64e499fca4460ff.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +34,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -57,17 +56,17 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.aa9b9639e60cb81cd54f.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-108e86883c2fd794bd5c.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-6664b64e499fca4460ff.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.6s 14.1s -521ms
nodeModulesSize 48.6 MB 48.5 MB -78.9 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 16.6 kB 16.6 kB -15 B
main-HASH.js gzip 5.87 kB 5.86 kB -7 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..254ddadd9.js 28.7 kB N/A N/A
de003c3a9d30..add9.js gzip 10.9 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB -15 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB -15 B
main-HASH.module.js gzip 5.29 kB 5.28 kB -7 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -15 B
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 248 kB 241 kB -6.52 kB
_error.js gzip 65.6 kB 64.4 kB -1.24 kB
hooks.html 4.19 kB 4.08 kB -115 B
hooks.html gzip 1.07 kB 1.03 kB -33 B
index.js 248 kB 241 kB -6.58 kB
index.js gzip 65.8 kB 64.5 kB -1.3 kB
link.js 280 kB 274 kB -6.58 kB
link.js gzip 74.7 kB 73.4 kB -1.27 kB
routerDirect.js 273 kB 267 kB -6.58 kB
routerDirect.js gzip 72.8 kB 71.5 kB -1.29 kB
withRouter.js 273 kB 267 kB -6.58 kB
withRouter.js gzip 72.9 kB 71.6 kB -1.3 kB
Overall change 1.33 MB 1.29 MB -33 kB

Commit: 9bbe8ce

@ijjk
Copy link
Member

ijjk commented Nov 8, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.6s 13.4s -227ms
nodeModulesSize 49 MB 48.9 MB -59.4 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 16.6 kB 16.6 kB -24 B
main-HASH.js gzip 5.88 kB 5.86 kB -16 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..254ddadd9.js 28.7 kB N/A N/A
de003c3a9d30..add9.js gzip 10.9 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB -24 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB -24 B
main-HASH.module.js gzip 5.3 kB 5.28 kB -16 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -24 B
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 3.94 kB -115 B
index.html gzip 1.04 kB 1 kB -33 B
link.html 4.58 kB 4.47 kB -115 B
link.html gzip 1.11 kB 1.08 kB -34 B
withRouter.html 4.59 kB 4.47 kB -115 B
withRouter.html gzip 1.1 kB 1.07 kB -35 B
Overall change 13.2 kB 12.9 kB -345 B

Diffs

Diff for main-HASH.js
@@ -289,7 +289,7 @@ var _inherits = __webpack_require__("N9n2");
 
 var _slicedToArray = __webpack_require__("8+Nu");
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -302,8 +302,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -320,7 +318,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -342,7 +340,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.3";
+var version = "9.1.3-canary.1";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -412,12 +410,9 @@ function (_react$default$Compon) {
   }, {
     key: "componentDidMount",
     value: function componentDidMount() {
-      this.scrollToHash();
-
-      if (false) {} // If page was exported and has a querystring
+      this.scrollToHash(); // If page was exported and has a querystring
       // If it's a dynamic route or has a querystring
 
-
       if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -560,10 +555,7 @@ function () {
                   emitter: emitter
                 });
               }
-            }); // call init-client middleware
-
-            if (false) {}
-
+            });
             renderCtx = {
               App: App,
               Component: Component,
@@ -574,7 +566,7 @@ function () {
             render(renderCtx);
             return _context.abrupt("return", emitter);
 
-          case 31:
+          case 30:
           case "end":
             return _context.stop();
         }
@@ -667,14 +659,12 @@ function _renderError() {
             return _context3.abrupt("return", webpackHMR.reportRuntimeError(webpackHMR.prepareError(err)));
 
           case 3:
-            if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
-
-
+            // Make sure we log the error to the console, otherwise users can't track down issues.
             console.error(err);
-            _context3.next = 7;
+            _context3.next = 6;
             return pageLoader.loadPage('/_error');
 
-          case 7:
+          case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
             // In production we do a normal render with the `ErrorComponent` as component.
             // If we've gotten here upon initial render, we can use the props from the server.
@@ -694,31 +684,31 @@ function _renderError() {
             };
 
             if (!props.props) {
-              _context3.next = 14;
+              _context3.next = 13;
               break;
             }
 
             _context3.t0 = props.props;
-            _context3.next = 17;
+            _context3.next = 16;
             break;
 
-          case 14:
-            _context3.next = 16;
+          case 13:
+            _context3.next = 15;
             return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 16:
+          case 15:
             _context3.t0 = _context3.sent;
 
-          case 17:
+          case 16:
             initProps = _context3.t0;
-            _context3.next = 20;
+            _context3.next = 19;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 20:
+          case 19:
           case "end":
             return _context3.stop();
         }
@@ -1347,7 +1337,7 @@ function () {
           if (true) {
             _this3.getDependencies(route).then(function (deps) {
               deps.forEach(function (d) {
-                if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
+                if (!document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
               });
Diff for main-HASH.module.js
@@ -288,7 +288,7 @@ exports.HeadManagerContext = React.createContext(null);
 "use strict";
 
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -301,8 +301,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -319,7 +317,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -341,7 +339,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.3";
+var version = "9.1.3-canary.1";
 exports.version = version;
 var {
   props,
@@ -397,12 +395,9 @@ class Container extends _react.default.Component {
   }
 
   componentDidMount() {
-    this.scrollToHash();
-
-    if (false) {} // If page was exported and has a querystring
+    this.scrollToHash(); // If page was exported and has a querystring
     // If it's a dynamic route or has a querystring
 
-
     if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -507,10 +502,7 @@ function () {
           emitter
         });
       }
-    }); // call init-client middleware
-
-    if (false) {}
-
+    });
     var renderCtx = {
       App,
       Component,
@@ -567,8 +559,6 @@ function _renderError() {
     } = props; // In development runtime errors are caught by react-error-overlay
     // In production we catch runtime errors using componentDidCatch which will trigger renderError
 
-    if (false) {}
-
     if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
 
 
@@ -1177,7 +1167,7 @@ class PageLoader {
         if (true) {
           this.getDependencies(route).then(deps => {
             deps.forEach(d => {
-              if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
+              if (!document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
             });
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,9 +43,9 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-18bfe41f4c8a2c106463.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.219514909c9db8a9ff76.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -58,9 +57,9 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.aa9b9639e60cb81cd54f.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -16,11 +16,11 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -36,7 +36,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -59,17 +58,17 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.aa9b9639e60cb81cd54f.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-18bfe41f4c8a2c106463.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -16,11 +16,11 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +34,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -57,17 +56,17 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.aa9b9639e60cb81cd54f.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-18bfe41f4c8a2c106463.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.1s 14s -96ms
nodeModulesSize 49 MB 48.9 MB -59.4 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 16.6 kB 16.6 kB -24 B
main-HASH.js gzip 5.88 kB 5.86 kB -16 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..254ddadd9.js 28.7 kB N/A N/A
de003c3a9d30..add9.js gzip 10.9 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB -24 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB -24 B
main-HASH.module.js gzip 5.3 kB 5.28 kB -16 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -24 B
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 248 kB 241 kB -6.52 kB
_error.js gzip 65.6 kB 64.4 kB -1.24 kB
hooks.html 4.19 kB 4.08 kB -115 B
hooks.html gzip 1.07 kB 1.03 kB -35 B
index.js 248 kB 241 kB -6.58 kB
index.js gzip 65.8 kB 64.5 kB -1.3 kB
link.js 280 kB 274 kB -6.58 kB
link.js gzip 74.7 kB 73.4 kB -1.27 kB
routerDirect.js 273 kB 267 kB -6.58 kB
routerDirect.js gzip 72.8 kB 71.5 kB -1.29 kB
withRouter.js 273 kB 267 kB -6.58 kB
withRouter.js gzip 72.9 kB 71.6 kB -1.3 kB
Overall change 1.33 MB 1.29 MB -33 kB

Commit: 464f324

@ijjk
Copy link
Member

ijjk commented Nov 9, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.7s 14.5s -211ms
nodeModulesSize 48.9 MB 48.9 MB -29.5 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 14.8 kB 16.6 kB ⚠️ +1.73 kB
main-HASH.js gzip 5.12 kB 5.86 kB ⚠️ +749 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..641cd3dea.js 19.8 kB N/A N/A
16b1a7225520..3dea.js gzip 7.28 kB N/A N/A
314e4c089430..de6eb480f.js 7.9 kB N/A N/A
314e4c089430..480f.js gzip 3.31 kB N/A N/A
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..39988e4af.js 33.1 kB N/A N/A
de003c3a9d30..e4af.js gzip 12.3 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
16b1a7225520..7459734ec.js N/A 20.1 kB N/A
16b1a7225520..34ec.js gzip N/A 7.38 kB N/A
4952ddcd88e7..bfe360fe6.js N/A 10.5 kB N/A
4952ddcd88e7..0fe6.js gzip N/A 4.06 kB N/A
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB ⚠️ +1.73 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB -24 B
main-HASH.module.js gzip 5.3 kB 5.28 kB -16 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..68.module.js 16 kB N/A N/A
16b1a7225520..dule.js gzip 6.17 kB N/A N/A
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
16b1a7225520..0d.module.js N/A 16.2 kB N/A
16b1a7225520..dule.js gzip N/A 6.22 kB N/A
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -24 B
Client Pages Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_app.js 7.71 kB 1.63 kB -6.08 kB
_app.js gzip 3.22 kB 788 B -2.43 kB
_error.js 14.9 kB 12.3 kB -2.64 kB
_error.js gzip 5.57 kB 4.79 kB -783 B
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 4.05 kB 5.81 kB ⚠️ +1.76 kB
link.js gzip 1.81 kB 2.56 kB ⚠️ +755 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 29.7 kB 22.8 kB -6.96 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 353 B 244 B -109 B
_buildManifest.js gzip 260 B 201 B -59 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 209 B ⚠️ +1 B
Overall change 604 B 495 B -109 B
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
index.html 3.9 kB 3.94 kB ⚠️ +39 B
index.html gzip 1.02 kB 1 kB -13 B
link.html 4.58 kB 4.47 kB -115 B
link.html gzip 1.14 kB 1.08 kB -58 B
withRouter.html 4.43 kB 4.47 kB ⚠️ +39 B
withRouter.html gzip 1.09 kB 1.07 kB -17 B
Overall change 12.9 kB 12.9 kB -37 B

Diffs

Diff for main-HASH.js
@@ -65,6 +65,22 @@ exports.DataManager = DataManager;
 
 /***/ }),
 
+/***/ "8iia":
+/***/ (function(module, exports, __webpack_require__) {
+
+// https://github.com/DavidBruant/Map-Set.prototype.toJSON
+var classof = __webpack_require__("QMMT");
+var from = __webpack_require__("RRc/");
+module.exports = function (NAME) {
+  return function toJSON() {
+    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
+    return from(this);
+  };
+};
+
+
+/***/ }),
+
 /***/ "BMP1":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -273,7 +289,7 @@ var _inherits = __webpack_require__("N9n2");
 
 var _slicedToArray = __webpack_require__("8+Nu");
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -286,8 +302,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -304,7 +318,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -326,7 +340,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.3";
+var version = "9.1.3-canary.1";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -396,12 +410,9 @@ function (_react$default$Compon) {
   }, {
     key: "componentDidMount",
     value: function componentDidMount() {
-      this.scrollToHash();
-
-      if (false) {} // If page was exported and has a querystring
+      this.scrollToHash(); // If page was exported and has a querystring
       // If it's a dynamic route or has a querystring
 
-
       if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -544,10 +555,7 @@ function () {
                   emitter: emitter
                 });
               }
-            }); // call init-client middleware
-
-            if (false) {}
-
+            });
             renderCtx = {
               App: App,
               Component: Component,
@@ -558,7 +566,7 @@ function () {
             render(renderCtx);
             return _context.abrupt("return", emitter);
 
-          case 31:
+          case 30:
           case "end":
             return _context.stop();
         }
@@ -651,14 +659,12 @@ function _renderError() {
             return _context3.abrupt("return", webpackHMR.reportRuntimeError(webpackHMR.prepareError(err)));
 
           case 3:
-            if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
-
-
+            // Make sure we log the error to the console, otherwise users can't track down issues.
             console.error(err);
-            _context3.next = 7;
+            _context3.next = 6;
             return pageLoader.loadPage('/_error');
 
-          case 7:
+          case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
             // In production we do a normal render with the `ErrorComponent` as component.
             // If we've gotten here upon initial render, we can use the props from the server.
@@ -678,31 +684,31 @@ function _renderError() {
             };
 
             if (!props.props) {
-              _context3.next = 14;
+              _context3.next = 13;
               break;
             }
 
             _context3.t0 = props.props;
-            _context3.next = 17;
+            _context3.next = 16;
             break;
 
-          case 14:
-            _context3.next = 16;
+          case 13:
+            _context3.next = 15;
             return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 16:
+          case 15:
             _context3.t0 = _context3.sent;
 
-          case 17:
+          case 16:
             initProps = _context3.t0;
-            _context3.next = 20;
+            _context3.next = 19;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 20:
+          case 19:
           case "end":
             return _context3.stop();
         }
@@ -899,6 +905,20 @@ module.exports = __webpack_require__("UDep");
 
 /***/ }),
 
+/***/ "RRc/":
+/***/ (function(module, exports, __webpack_require__) {
+
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (iter, ITERATOR) {
+  var result = [];
+  forOf(iter, false, result.push, result, ITERATOR);
+  return result;
+};
+
+
+/***/ }),
+
 /***/ "UDep":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -914,6 +934,158 @@ module.exports = __webpack_require__("WEpk").Map;
 
 /***/ }),
 
+/***/ "Wu5q":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var dP = __webpack_require__("2faE").f;
+var create = __webpack_require__("oVml");
+var redefineAll = __webpack_require__("XJU/");
+var ctx = __webpack_require__("2GTP");
+var anInstance = __webpack_require__("EXMj");
+var forOf = __webpack_require__("oioR");
+var $iterDefine = __webpack_require__("MPFp");
+var step = __webpack_require__("UO39");
+var setSpecies = __webpack_require__("TJWN");
+var DESCRIPTORS = __webpack_require__("jmDH");
+var fastKey = __webpack_require__("6/1s").fastKey;
+var validate = __webpack_require__("n3ko");
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+  // fast case
+  var index = fastKey(key);
+  var entry;
+  if (index !== 'F') return that._i[index];
+  // frozen object case
+  for (entry = that._f; entry; entry = entry.n) {
+    if (entry.k == key) return entry;
+  }
+};
+
+module.exports = {
+  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+    var C = wrapper(function (that, iterable) {
+      anInstance(that, C, NAME, '_i');
+      that._t = NAME;         // collection type
+      that._i = create(null); // index
+      that._f = undefined;    // first entry
+      that._l = undefined;    // last entry
+      that[SIZE] = 0;         // size
+      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+    });
+    redefineAll(C.prototype, {
+      // 23.1.3.1 Map.prototype.clear()
+      // 23.2.3.2 Set.prototype.clear()
+      clear: function clear() {
+        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+          entry.r = true;
+          if (entry.p) entry.p = entry.p.n = undefined;
+          delete data[entry.i];
+        }
+        that._f = that._l = undefined;
+        that[SIZE] = 0;
+      },
+      // 23.1.3.3 Map.prototype.delete(key)
+      // 23.2.3.4 Set.prototype.delete(value)
+      'delete': function (key) {
+        var that = validate(this, NAME);
+        var entry = getEntry(that, key);
+        if (entry) {
+          var next = entry.n;
+          var prev = entry.p;
+          delete that._i[entry.i];
+          entry.r = true;
+          if (prev) prev.n = next;
+          if (next) next.p = prev;
+          if (that._f == entry) that._f = next;
+          if (that._l == entry) that._l = prev;
+          that[SIZE]--;
+        } return !!entry;
+      },
+      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+      forEach: function forEach(callbackfn /* , that = undefined */) {
+        validate(this, NAME);
+        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+        var entry;
+        while (entry = entry ? entry.n : this._f) {
+          f(entry.v, entry.k, this);
+          // revert to the last existing entry
+          while (entry && entry.r) entry = entry.p;
+        }
+      },
+      // 23.1.3.7 Map.prototype.has(key)
+      // 23.2.3.7 Set.prototype.has(value)
+      has: function has(key) {
+        return !!getEntry(validate(this, NAME), key);
+      }
+    });
+    if (DESCRIPTORS) dP(C.prototype, 'size', {
+      get: function () {
+        return validate(this, NAME)[SIZE];
+      }
+    });
+    return C;
+  },
+  def: function (that, key, value) {
+    var entry = getEntry(that, key);
+    var prev, index;
+    // change existing entry
+    if (entry) {
+      entry.v = value;
+    // create new entry
+    } else {
+      that._l = entry = {
+        i: index = fastKey(key, true), // <- index
+        k: key,                        // <- key
+        v: value,                      // <- value
+        p: prev = that._l,             // <- previous entry
+        n: undefined,                  // <- next entry
+        r: false                       // <- removed
+      };
+      if (!that._f) that._f = entry;
+      if (prev) prev.n = entry;
+      that[SIZE]++;
+      // add to index
+      if (index !== 'F') that._i[index] = entry;
+    } return that;
+  },
+  getEntry: getEntry,
+  setStrong: function (C, NAME, IS_MAP) {
+    // add .keys, .values, .entries, [@@iterator]
+    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+    $iterDefine(C, NAME, function (iterated, kind) {
+      this._t = validate(iterated, NAME); // target
+      this._k = kind;                     // kind
+      this._l = undefined;                // previous
+    }, function () {
+      var that = this;
+      var kind = that._k;
+      var entry = that._l;
+      // revert to the last existing entry
+      while (entry && entry.r) entry = entry.p;
+      // get next entry
+      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+        // or finish the iteration
+        that._t = undefined;
+        return step(1);
+      }
+      // return step by kind
+      if (kind == 'keys') return step(0, entry.k);
+      if (kind == 'values') return step(0, entry.v);
+      return step(0, [entry.k, entry.v]);
+    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+    // add [@@species], 23.1.2.2, 23.2.2.2
+    setSpecies(NAME);
+  }
+};
+
+
+/***/ }),
+
 /***/ "XLbu":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1165,7 +1337,7 @@ function () {
           if (true) {
             _this3.getDependencies(route).then(function (deps) {
               deps.forEach(function (d) {
-                if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
+                if (!document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
               });
Diff for main-HASH.module.js
@@ -288,7 +288,7 @@ exports.HeadManagerContext = React.createContext(null);
 "use strict";
 
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -301,8 +301,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -319,7 +317,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -341,7 +339,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.3";
+var version = "9.1.3-canary.1";
 exports.version = version;
 var {
   props,
@@ -397,12 +395,9 @@ class Container extends _react.default.Component {
   }
 
   componentDidMount() {
-    this.scrollToHash();
-
-    if (false) {} // If page was exported and has a querystring
+    this.scrollToHash(); // If page was exported and has a querystring
     // If it's a dynamic route or has a querystring
 
-
     if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -507,10 +502,7 @@ function () {
           emitter
         });
       }
-    }); // call init-client middleware
-
-    if (false) {}
-
+    });
     var renderCtx = {
       App,
       Component,
@@ -567,8 +559,6 @@ function _renderError() {
     } = props; // In development runtime errors are caught by react-error-overlay
     // In production we catch runtime errors using componentDidCatch which will trigger renderError
 
-    if (false) {}
-
     if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
 
 
@@ -1177,7 +1167,7 @@ class PageLoader {
         if (true) {
           this.getDependencies(route).then(deps => {
             deps.forEach(d => {
-              if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
+              if (!document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
             });
Diff for _app.js
@@ -1,350 +1,5 @@
 (window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
-/***/ "+SFK":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("AUvm");
-__webpack_require__("wgeU");
-__webpack_require__("adOz");
-__webpack_require__("dl0q");
-module.exports = __webpack_require__("WEpk").Symbol;
-
-
-/***/ }),
-
-/***/ "+plK":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("ApPD");
-module.exports = __webpack_require__("WEpk").Object.getPrototypeOf;
-
-
-/***/ }),
-
-/***/ "/+P4":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Object$getPrototypeOf = __webpack_require__("Bhuq");
-
-var _Object$setPrototypeOf = __webpack_require__("TRZx");
-
-function _getPrototypeOf(o) {
-  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || _Object$getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
-
-module.exports = _getPrototypeOf;
-
-/***/ }),
-
-/***/ "2Nb0":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("FlQf");
-__webpack_require__("bBy9");
-module.exports = __webpack_require__("zLkG").f('iterator');
-
-
-/***/ }),
-
-/***/ "A5Xg":
-/***/ (function(module, exports, __webpack_require__) {
-
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = __webpack_require__("NsO/");
-var gOPN = __webpack_require__("ar/p").f;
-var toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
-  ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function (it) {
-  try {
-    return gOPN(it);
-  } catch (e) {
-    return windowNames.slice();
-  }
-};
-
-module.exports.f = function getOwnPropertyNames(it) {
-  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
-
-
-/***/ }),
-
-/***/ "AUvm":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// ECMAScript 6 symbols shim
-var global = __webpack_require__("5T2Y");
-var has = __webpack_require__("B+OT");
-var DESCRIPTORS = __webpack_require__("jmDH");
-var $export = __webpack_require__("Y7ZC");
-var redefine = __webpack_require__("kTiW");
-var META = __webpack_require__("6/1s").KEY;
-var $fails = __webpack_require__("KUxP");
-var shared = __webpack_require__("29s/");
-var setToStringTag = __webpack_require__("RfKB");
-var uid = __webpack_require__("YqAc");
-var wks = __webpack_require__("UWiX");
-var wksExt = __webpack_require__("zLkG");
-var wksDefine = __webpack_require__("Zxgi");
-var enumKeys = __webpack_require__("R+7+");
-var isArray = __webpack_require__("kAMH");
-var anObject = __webpack_require__("5K7Z");
-var isObject = __webpack_require__("93I4");
-var toObject = __webpack_require__("JB68");
-var toIObject = __webpack_require__("NsO/");
-var toPrimitive = __webpack_require__("G8Mo");
-var createDesc = __webpack_require__("rr1i");
-var _create = __webpack_require__("oVml");
-var gOPNExt = __webpack_require__("A5Xg");
-var $GOPD = __webpack_require__("vwuL");
-var $GOPS = __webpack_require__("mqlF");
-var $DP = __webpack_require__("2faE");
-var $keys = __webpack_require__("w6GO");
-var gOPD = $GOPD.f;
-var dP = $DP.f;
-var gOPN = gOPNExt.f;
-var $Symbol = global.Symbol;
-var $JSON = global.JSON;
-var _stringify = $JSON && $JSON.stringify;
-var PROTOTYPE = 'prototype';
-var HIDDEN = wks('_hidden');
-var TO_PRIMITIVE = wks('toPrimitive');
-var isEnum = {}.propertyIsEnumerable;
-var SymbolRegistry = shared('symbol-registry');
-var AllSymbols = shared('symbols');
-var OPSymbols = shared('op-symbols');
-var ObjectProto = Object[PROTOTYPE];
-var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
-var QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = DESCRIPTORS && $fails(function () {
-  return _create(dP({}, 'a', {
-    get: function () { return dP(this, 'a', { value: 7 }).a; }
-  })).a != 7;
-}) ? function (it, key, D) {
-  var protoDesc = gOPD(ObjectProto, key);
-  if (protoDesc) delete ObjectProto[key];
-  dP(it, key, D);
-  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function (tag) {
-  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
-  sym._k = tag;
-  return sym;
-};
-
-var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
-  return typeof it == 'symbol';
-} : function (it) {
-  return it instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(it, key, D) {
-  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
-  anObject(it);
-  key = toPrimitive(key, true);
-  anObject(D);
-  if (has(AllSymbols, key)) {
-    if (!D.enumerable) {
-      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
-      it[HIDDEN][key] = true;
-    } else {
-      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
-      D = _create(D, { enumerable: createDesc(0, false) });
-    } return setSymbolDesc(it, key, D);
-  } return dP(it, key, D);
-};
-var $defineProperties = function defineProperties(it, P) {
-  anObject(it);
-  var keys = enumKeys(P = toIObject(P));
-  var i = 0;
-  var l = keys.length;
-  var key;
-  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
-  return it;
-};
-var $create = function create(it, P) {
-  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-};
-var $propertyIsEnumerable = function propertyIsEnumerable(key) {
-  var E = isEnum.call(this, key = toPrimitive(key, true));
-  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
-  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-};
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
-  it = toIObject(it);
-  key = toPrimitive(key, true);
-  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
-  var D = gOPD(it, key);
-  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
-  return D;
-};
-var $getOwnPropertyNames = function getOwnPropertyNames(it) {
-  var names = gOPN(toIObject(it));
-  var result = [];
-  var i = 0;
-  var key;
-  while (names.length > i) {
-    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
-  } return result;
-};
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
-  var IS_OP = it === ObjectProto;
-  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
-  var result = [];
-  var i = 0;
-  var key;
-  while (names.length > i) {
-    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
-  } return result;
-};
-
-// 19.4.1.1 Symbol([description])
-if (!USE_NATIVE) {
-  $Symbol = function Symbol() {
-    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
-    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
-    var $set = function (value) {
-      if (this === ObjectProto) $set.call(OPSymbols, value);
-      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
-      setSymbolDesc(this, tag, createDesc(1, value));
-    };
-    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
-    return wrap(tag);
-  };
-  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
-    return this._k;
-  });
-
-  $GOPD.f = $getOwnPropertyDescriptor;
-  $DP.f = $defineProperty;
-  __webpack_require__("ar/p").f = gOPNExt.f = $getOwnPropertyNames;
-  __webpack_require__("NV0k").f = $propertyIsEnumerable;
-  $GOPS.f = $getOwnPropertySymbols;
-
-  if (DESCRIPTORS && !__webpack_require__("uOPS")) {
-    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
-  }
-
-  wksExt.f = function (name) {
-    return wrap(wks(name));
-  };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
-
-for (var es6Symbols = (
-  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
-  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
-
-for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
-  // 19.4.2.1 Symbol.for(key)
-  'for': function (key) {
-    return has(SymbolRegistry, key += '')
-      ? SymbolRegistry[key]
-      : SymbolRegistry[key] = $Symbol(key);
-  },
-  // 19.4.2.5 Symbol.keyFor(sym)
-  keyFor: function keyFor(sym) {
-    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
-    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
-  },
-  useSetter: function () { setter = true; },
-  useSimple: function () { setter = false; }
-});
-
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
-  // 19.1.2.2 Object.create(O [, Properties])
-  create: $create,
-  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
-  defineProperty: $defineProperty,
-  // 19.1.2.3 Object.defineProperties(O, Properties)
-  defineProperties: $defineProperties,
-  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
-  // 19.1.2.7 Object.getOwnPropertyNames(O)
-  getOwnPropertyNames: $getOwnPropertyNames,
-  // 19.1.2.8 Object.getOwnPropertySymbols(O)
-  getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
-// https://bugs.chromium.org/p/v8/issues/detail?id=3443
-var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
-
-$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
-  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
-    return $GOPS.f(toObject(it));
-  }
-});
-
-// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
-  var S = $Symbol();
-  // MS Edge converts symbol values to JSON as {}
-  // WebKit converts symbol values to JSON as null
-  // V8 throws on boxed symbols
-  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
-  stringify: function stringify(it) {
-    var args = [it];
-    var i = 1;
-    var replacer, $replacer;
-    while (arguments.length > i) args.push(arguments[i++]);
-    $replacer = replacer = args[1];
-    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
-    if (!isArray(replacer)) replacer = function (key, value) {
-      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
-      if (!isSymbol(value)) return value;
-    };
-    args[1] = replacer;
-    return _stringify.apply($JSON, args);
-  }
-});
-
-// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__("NegM")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global.JSON, 'JSON', true);
-
-
-/***/ }),
-
-/***/ "ApPD":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.9 Object.getPrototypeOf(O)
-var toObject = __webpack_require__("JB68");
-var $getPrototypeOf = __webpack_require__("U+KD");
-
-__webpack_require__("zn7N")('getPrototypeOf', function () {
-  return function getPrototypeOf(it) {
-    return $getPrototypeOf(toObject(it));
-  };
-});
-
-
-/***/ }),
-
 /***/ "B5Ud":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -517,155 +172,6 @@ function createUrl(router) {
 
 /***/ }),
 
-/***/ "Bhuq":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("+plK");
-
-/***/ }),
-
-/***/ "K47E":
-/***/ (function(module, exports) {
-
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-module.exports = _assertThisInitialized;
-
-/***/ }),
-
-/***/ "N9n2":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Object$create = __webpack_require__("SqZg");
-
-var setPrototypeOf = __webpack_require__("vjea");
-
-function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = _Object$create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) setPrototypeOf(subClass, superClass);
-}
-
-module.exports = _inherits;
-
-/***/ }),
-
-/***/ "R+7+":
-/***/ (function(module, exports, __webpack_require__) {
-
-// all enumerable object keys, includes symbols
-var getKeys = __webpack_require__("w6GO");
-var gOPS = __webpack_require__("mqlF");
-var pIE = __webpack_require__("NV0k");
-module.exports = function (it) {
-  var result = getKeys(it);
-  var getSymbols = gOPS.f;
-  if (getSymbols) {
-    var symbols = getSymbols(it);
-    var isEnum = pIE.f;
-    var i = 0;
-    var key;
-    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
-  } return result;
-};
-
-
-/***/ }),
-
-/***/ "XVgq":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("2Nb0");
-
-/***/ }),
-
-/***/ "Z7t5":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("+SFK");
-
-/***/ }),
-
-/***/ "ZDA2":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _typeof = __webpack_require__("iZP3");
-
-var assertThisInitialized = __webpack_require__("K47E");
-
-function _possibleConstructorReturn(self, call) {
-  if (call && (_typeof(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return assertThisInitialized(self);
-}
-
-module.exports = _possibleConstructorReturn;
-
-/***/ }),
-
-/***/ "Zxgi":
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__("5T2Y");
-var core = __webpack_require__("WEpk");
-var LIBRARY = __webpack_require__("uOPS");
-var wksExt = __webpack_require__("zLkG");
-var defineProperty = __webpack_require__("2faE").f;
-module.exports = function (name) {
-  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
-  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
-};
-
-
-/***/ }),
-
-/***/ "adOz":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Zxgi")('asyncIterator');
-
-
-/***/ }),
-
-/***/ "ar/p":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = __webpack_require__("5vMV");
-var hiddenKeys = __webpack_require__("FpHa").concat('length', 'prototype');
-
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
-  return $keys(O, hiddenKeys);
-};
-
-
-/***/ }),
-
-/***/ "dl0q":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Zxgi")('observable');
-
-
-/***/ }),
-
 /***/ "e9+W":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -677,41 +183,6 @@ __webpack_require__("Zxgi")('observable');
     }]);
   
 
-/***/ }),
-
-/***/ "iZP3":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Symbol$iterator = __webpack_require__("XVgq");
-
-var _Symbol = __webpack_require__("Z7t5");
-
-function _typeof2(obj) { if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
-
-function _typeof(obj) {
-  if (typeof _Symbol === "function" && _typeof2(_Symbol$iterator) === "symbol") {
-    module.exports = _typeof = function _typeof(obj) {
-      return _typeof2(obj);
-    };
-  } else {
-    module.exports = _typeof = function _typeof(obj) {
-      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : _typeof2(obj);
-    };
-  }
-
-  return _typeof(obj);
-}
-
-module.exports = _typeof;
-
-/***/ }),
-
-/***/ "zLkG":
-/***/ (function(module, exports, __webpack_require__) {
-
-exports.f = __webpack_require__("UWiX");
-
-
 /***/ })
 
-},[["e9+W",0,2,1,3]]]);
\ No newline at end of file
+},[["e9+W",0,2,1,3,4]]]);
\ No newline at end of file
Diff for _error.js
@@ -60,19 +60,6 @@ exports.useAmp = useAmp;
 
 /***/ }),
 
-/***/ "/HRN":
-/***/ (function(module, exports) {
-
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-module.exports = _classCallCheck;
-
-/***/ }),
-
 /***/ "/a9y":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -229,110 +216,6 @@ module.exports = _nonIterableSpread;
 
 /***/ }),
 
-/***/ "3GJH":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("lCc8");
-var $Object = __webpack_require__("WEpk").Object;
-module.exports = function create(P, D) {
-  return $Object.create(P, D);
-};
-
-
-/***/ }),
-
-/***/ "6/1s":
-/***/ (function(module, exports, __webpack_require__) {
-
-var META = __webpack_require__("YqAc")('meta');
-var isObject = __webpack_require__("93I4");
-var has = __webpack_require__("B+OT");
-var setDesc = __webpack_require__("2faE").f;
-var id = 0;
-var isExtensible = Object.isExtensible || function () {
-  return true;
-};
-var FREEZE = !__webpack_require__("KUxP")(function () {
-  return isExtensible(Object.preventExtensions({}));
-});
-var setMeta = function (it) {
-  setDesc(it, META, { value: {
-    i: 'O' + ++id, // object ID
-    w: {}          // weak collections IDs
-  } });
-};
-var fastKey = function (it, create) {
-  // return primitive with prefix
-  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
-  if (!has(it, META)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return 'F';
-    // not necessary to add metadata
-    if (!create) return 'E';
-    // add missing metadata
-    setMeta(it);
-  // return object ID
-  } return it[META].i;
-};
-var getWeak = function (it, create) {
-  if (!has(it, META)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return true;
-    // not necessary to add metadata
-    if (!create) return false;
-    // add missing metadata
-    setMeta(it);
-  // return hash weak collections IDs
-  } return it[META].w;
-};
-// add metadata on freeze-family methods calling
-var onFreeze = function (it) {
-  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
-  return it;
-};
-var meta = module.exports = {
-  KEY: META,
-  NEED: false,
-  fastKey: fastKey,
-  getWeak: getWeak,
-  onFreeze: onFreeze
-};
-
-
-/***/ }),
-
-/***/ "6tYh":
-/***/ (function(module, exports, __webpack_require__) {
-
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var isObject = __webpack_require__("93I4");
-var anObject = __webpack_require__("5K7Z");
-var check = function (O, proto) {
-  anObject(O);
-  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
-  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
-    function (test, buggy, set) {
-      try {
-        set = __webpack_require__("2GTP")(Function.call, __webpack_require__("vwuL").f(Object.prototype, '__proto__').set, 2);
-        set(test, []);
-        buggy = !(test instanceof Array);
-      } catch (e) { buggy = true; }
-      return function setPrototypeOf(O, proto) {
-        check(O, proto);
-        if (buggy) O.__proto__ = proto;
-        else set(O, proto);
-        return O;
-      };
-    }({}, false) : undefined),
-  check: check
-};
-
-
-/***/ }),
-
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -499,6 +382,22 @@ exports["default"] = Head;
 
 /***/ }),
 
+/***/ "8iia":
+/***/ (function(module, exports, __webpack_require__) {
+
+// https://github.com/DavidBruant/Map-Set.prototype.toJSON
+var classof = __webpack_require__("QMMT");
+var from = __webpack_require__("RRc/");
+module.exports = function (NAME) {
+  return function toJSON() {
+    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
+    return from(this);
+  };
+};
+
+
+/***/ }),
+
 /***/ "9BDd":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -553,18 +452,6 @@ module.exports = function (original) {
 
 /***/ }),
 
-/***/ "EXMj":
-/***/ (function(module, exports) {
-
-module.exports = function (it, Constructor, name, forbiddenField) {
-  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
-    throw TypeError(name + ': incorrect invocation!');
-  } return it;
-};
-
-
-/***/ }),
-
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -604,16 +491,6 @@ $export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
 
 /***/ }),
 
-/***/ "Hfiw":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $export = __webpack_require__("Y7ZC");
-$export($export.S, 'Object', { setPrototypeOf: __webpack_require__("6tYh").set });
-
-
-/***/ }),
-
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -630,51 +507,6 @@ module.exports = function (object, index, value) {
 
 /***/ }),
 
-/***/ "JbBM":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Hfiw");
-module.exports = __webpack_require__("WEpk").Object.setPrototypeOf;
-
-
-/***/ }),
-
-/***/ "KI45":
-/***/ (function(module, exports) {
-
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
-
-module.exports = _interopRequireDefault;
-
-/***/ }),
-
-/***/ "NV0k":
-/***/ (function(module, exports) {
-
-exports.f = {}.propertyIsEnumerable;
-
-
-/***/ }),
-
-/***/ "NwJ3":
-/***/ (function(module, exports, __webpack_require__) {
-
-// check on default Array iterator
-var Iterators = __webpack_require__("SBuE");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var ArrayProto = Array.prototype;
-
-module.exports = function (it) {
-  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-};
-
-
-/***/ }),
-
 /***/ "PQJW":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -690,64 +522,20 @@ module.exports = _iterableToArray;
 
 /***/ }),
 
-/***/ "RU/L":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Rqdy");
-var $Object = __webpack_require__("WEpk").Object;
-module.exports = function defineProperty(it, key, desc) {
-  return $Object.defineProperty(it, key, desc);
-};
-
-
-/***/ }),
-
-/***/ "Rqdy":
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__("Y7ZC");
-// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-$export($export.S + $export.F * !__webpack_require__("jmDH"), 'Object', { defineProperty: __webpack_require__("2faE").f });
-
-
-/***/ }),
-
-/***/ "SqZg":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("3GJH");
-
-/***/ }),
-
-/***/ "TJWN":
+/***/ "RRc/":
 /***/ (function(module, exports, __webpack_require__) {
 
-"use strict";
-
-var global = __webpack_require__("5T2Y");
-var core = __webpack_require__("WEpk");
-var dP = __webpack_require__("2faE");
-var DESCRIPTORS = __webpack_require__("jmDH");
-var SPECIES = __webpack_require__("UWiX")('species');
+var forOf = __webpack_require__("oioR");
 
-module.exports = function (KEY) {
-  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
-  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
-    configurable: true,
-    get: function () { return this; }
-  });
+module.exports = function (iter, ITERATOR) {
+  var result = [];
+  forOf(iter, false, result.push, result, ITERATOR);
+  return result;
 };
 
 
 /***/ }),
 
-/***/ "TRZx":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("JbBM");
-
-/***/ }),
-
 /***/ "TbGu":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -765,35 +553,6 @@ module.exports = _toConsumableArray;
 
 /***/ }),
 
-/***/ "TuGD":
-/***/ (function(module, exports, __webpack_require__) {
-
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var SAFE_CLOSING = false;
-
-try {
-  var riter = [7][ITERATOR]();
-  riter['return'] = function () { SAFE_CLOSING = true; };
-  // eslint-disable-next-line no-throw-literal
-  Array.from(riter, function () { throw 2; });
-} catch (e) { /* empty */ }
-
-module.exports = function (exec, skipClosing) {
-  if (!skipClosing && !SAFE_CLOSING) return false;
-  var safe = false;
-  try {
-    var arr = [7];
-    var iter = arr[ITERATOR]();
-    iter.next = function () { return { done: safe = true }; };
-    arr[ITERATOR] = function () { return iter; };
-    exec(arr);
-  } catch (e) { /* empty */ }
-  return safe;
-};
-
-
-/***/ }),
-
 /***/ "V+O7":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -909,41 +668,153 @@ module.exports = __webpack_require__("ldVq");
 
 /***/ }),
 
-/***/ "WaGi":
+/***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
-var _Object$defineProperty = __webpack_require__("hfKm");
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
+"use strict";
 
-    _Object$defineProperty(target, descriptor.key, descriptor);
+var dP = __webpack_require__("2faE").f;
+var create = __webpack_require__("oVml");
+var redefineAll = __webpack_require__("XJU/");
+var ctx = __webpack_require__("2GTP");
+var anInstance = __webpack_require__("EXMj");
+var forOf = __webpack_require__("oioR");
+var $iterDefine = __webpack_require__("MPFp");
+var step = __webpack_require__("UO39");
+var setSpecies = __webpack_require__("TJWN");
+var DESCRIPTORS = __webpack_require__("jmDH");
+var fastKey = __webpack_require__("6/1s").fastKey;
+var validate = __webpack_require__("n3ko");
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+  // fast case
+  var index = fastKey(key);
+  var entry;
+  if (index !== 'F') return that._i[index];
+  // frozen object case
+  for (entry = that._f; entry; entry = entry.n) {
+    if (entry.k == key) return entry;
   }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-module.exports = _createClass;
-
-/***/ }),
-
-/***/ "XJU/":
-/***/ (function(module, exports, __webpack_require__) {
+};
 
-var hide = __webpack_require__("NegM");
-module.exports = function (target, src, safe) {
-  for (var key in src) {
-    if (safe && target[key]) target[key] = src[key];
-    else hide(target, key, src[key]);
-  } return target;
+module.exports = {
+  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+    var C = wrapper(function (that, iterable) {
+      anInstance(that, C, NAME, '_i');
+      that._t = NAME;         // collection type
+      that._i = create(null); // index
+      that._f = undefined;    // first entry
+      that._l = undefined;    // last entry
+      that[SIZE] = 0;         // size
+      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+    });
+    redefineAll(C.prototype, {
+      // 23.1.3.1 Map.prototype.clear()
+      // 23.2.3.2 Set.prototype.clear()
+      clear: function clear() {
+        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+          entry.r = true;
+          if (entry.p) entry.p = entry.p.n = undefined;
+          delete data[entry.i];
+        }
+        that._f = that._l = undefined;
+        that[SIZE] = 0;
+      },
+      // 23.1.3.3 Map.prototype.delete(key)
+      // 23.2.3.4 Set.prototype.delete(value)
+      'delete': function (key) {
+        var that = validate(this, NAME);
+        var entry = getEntry(that, key);
+        if (entry) {
+          var next = entry.n;
+          var prev = entry.p;
+          delete that._i[entry.i];
+          entry.r = true;
+          if (prev) prev.n = next;
+          if (next) next.p = prev;
+          if (that._f == entry) that._f = next;
+          if (that._l == entry) that._l = prev;
+          that[SIZE]--;
+        } return !!entry;
+      },
+      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+      forEach: function forEach(callbackfn /* , that = undefined */) {
+        validate(this, NAME);
+        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+        var entry;
+        while (entry = entry ? entry.n : this._f) {
+          f(entry.v, entry.k, this);
+          // revert to the last existing entry
+          while (entry && entry.r) entry = entry.p;
+        }
+      },
+      // 23.1.3.7 Map.prototype.has(key)
+      // 23.2.3.7 Set.prototype.has(value)
+      has: function has(key) {
+        return !!getEntry(validate(this, NAME), key);
+      }
+    });
+    if (DESCRIPTORS) dP(C.prototype, 'size', {
+      get: function () {
+        return validate(this, NAME)[SIZE];
+      }
+    });
+    return C;
+  },
+  def: function (that, key, value) {
+    var entry = getEntry(that, key);
+    var prev, index;
+    // change existing entry
+    if (entry) {
+      entry.v = value;
+    // create new entry
+    } else {
+      that._l = entry = {
+        i: index = fastKey(key, true), // <- index
+        k: key,                        // <- key
+        v: value,                      // <- value
+        p: prev = that._l,             // <- previous entry
+        n: undefined,                  // <- next entry
+        r: false                       // <- removed
+      };
+      if (!that._f) that._f = entry;
+      if (prev) prev.n = entry;
+      that[SIZE]++;
+      // add to index
+      if (index !== 'F') that._i[index] = entry;
+    } return that;
+  },
+  getEntry: getEntry,
+  setStrong: function (C, NAME, IS_MAP) {
+    // add .keys, .values, .entries, [@@iterator]
+    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+    $iterDefine(C, NAME, function (iterated, kind) {
+      this._t = validate(iterated, NAME); // target
+      this._k = kind;                     // kind
+      this._l = undefined;                // previous
+    }, function () {
+      var that = this;
+      var kind = that._k;
+      var entry = that._l;
+      // revert to the last existing entry
+      while (entry && entry.r) entry = entry.p;
+      // get next entry
+      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+        // or finish the iteration
+        that._t = undefined;
+        return step(1);
+      }
+      // return step by kind
+      if (kind == 'keys') return step(0, entry.k);
+      if (kind == 'values') return step(0, entry.v);
+      return step(0, [entry.k, entry.v]);
+    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+    // add [@@species], 23.1.2.2, 23.2.2.2
+    setSpecies(NAME);
+  }
 };
 
 
@@ -1148,23 +1019,6 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
-/***/ "hfKm":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("RU/L");
-
-/***/ }),
-
-/***/ "lCc8":
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__("Y7ZC");
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-$export($export.S, 'Object', { create: __webpack_require__("oVml") });
-
-
-/***/ }),
-
 /***/ "ldVq":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1210,14 +1064,6 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
-/***/ "mqlF":
-/***/ (function(module, exports) {
-
-exports.f = Object.getOwnPropertySymbols;
-
-
-/***/ }),
-
 /***/ "n3ko":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1230,38 +1076,6 @@ module.exports = function (it, TYPE) {
 
 /***/ }),
 
-/***/ "oioR":
-/***/ (function(module, exports, __webpack_require__) {
-
-var ctx = __webpack_require__("2GTP");
-var call = __webpack_require__("sNwI");
-var isArrayIter = __webpack_require__("NwJ3");
-var anObject = __webpack_require__("5K7Z");
-var toLength = __webpack_require__("tEej");
-var getIterFn = __webpack_require__("fNZA");
-var BREAK = {};
-var RETURN = {};
-var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
-  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
-  var f = ctx(fn, that, entries ? 2 : 1);
-  var index = 0;
-  var length, step, iterator, result;
-  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
-  // fast case for arrays with default iterator
-  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
-    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
-    if (result === BREAK || result === RETURN) return result;
-  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
-    result = call(iterator, f, step.value, entries);
-    if (result === BREAK || result === RETURN) return result;
-  }
-};
-exports.BREAK = BREAK;
-exports.RETURN = RETURN;
-
-
-/***/ }),
-
 /***/ "p0XB":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1336,25 +1150,6 @@ module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
 
 /***/ }),
 
-/***/ "sNwI":
-/***/ (function(module, exports, __webpack_require__) {
-
-// call something on iterator step with safe closing on error
-var anObject = __webpack_require__("5K7Z");
-module.exports = function (iterator, fn, value, entries) {
-  try {
-    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
-  // 7.4.6 IteratorClose(iterator, completion)
-  } catch (e) {
-    var ret = iterator['return'];
-    if (ret !== undefined) anObject(ret.call(iterator));
-    throw e;
-  }
-};
-
-
-/***/ }),
-
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1375,54 +1170,6 @@ module.exports = function (original, length) {
 
 /***/ }),
 
-/***/ "vjea":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Object$setPrototypeOf = __webpack_require__("TRZx");
-
-function _setPrototypeOf(o, p) {
-  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-
-module.exports = _setPrototypeOf;
-
-/***/ }),
-
-/***/ "vwuL":
-/***/ (function(module, exports, __webpack_require__) {
-
-var pIE = __webpack_require__("NV0k");
-var createDesc = __webpack_require__("rr1i");
-var toIObject = __webpack_require__("NsO/");
-var toPrimitive = __webpack_require__("G8Mo");
-var has = __webpack_require__("B+OT");
-var IE8_DOM_DEFINE = __webpack_require__("eUtF");
-var gOPD = Object.getOwnPropertyDescriptor;
-
-exports.f = __webpack_require__("jmDH") ? gOPD : function getOwnPropertyDescriptor(O, P) {
-  O = toIObject(O);
-  P = toPrimitive(P, true);
-  if (IE8_DOM_DEFINE) try {
-    return gOPD(O, P);
-  } catch (e) { /* empty */ }
-  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
-};
-
-
-/***/ }),
-
-/***/ "wgeU":
-/***/ (function(module, exports) {
-
-
-
-/***/ }),
-
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1437,23 +1184,6 @@ __webpack_require__("cHUd")('Set');
 
 module.exports = __webpack_require__("VKFn");
 
-/***/ }),
-
-/***/ "zn7N":
-/***/ (function(module, exports, __webpack_require__) {
-
-// most Object methods by ES6 should accept primitives
-var $export = __webpack_require__("Y7ZC");
-var core = __webpack_require__("WEpk");
-var fails = __webpack_require__("KUxP");
-module.exports = function (KEY, exec) {
-  var fn = (core.Object || {})[KEY] || Object[KEY];
-  var exp = {};
-  exp[KEY] = exec(fn);
-  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
-};
-
-
 /***/ })
 
-},[["04ac",0,2,1,5]]]);
\ No newline at end of file
+},[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for link.js
@@ -9,6 +9,22 @@ __webpack_require__("cHUd")('Map');
 
 /***/ }),
 
+/***/ "8iia":
+/***/ (function(module, exports, __webpack_require__) {
+
+// https://github.com/DavidBruant/Map-Set.prototype.toJSON
+var classof = __webpack_require__("QMMT");
+var from = __webpack_require__("RRc/");
+module.exports = function (NAME) {
+  return function toJSON() {
+    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
+    return from(this);
+  };
+};
+
+
+/***/ }),
+
 /***/ "LX0d":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -43,6 +59,20 @@ aLink.getInitialProps = function () {
 
 /***/ }),
 
+/***/ "RRc/":
+/***/ (function(module, exports, __webpack_require__) {
+
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (iter, ITERATOR) {
+  var result = [];
+  forOf(iter, false, result.push, result, ITERATOR);
+  return result;
+};
+
+
+/***/ }),
+
 /***/ "UDep":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -71,6 +101,158 @@ module.exports = __webpack_require__("WEpk").Map;
 
 /***/ }),
 
+/***/ "Wu5q":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var dP = __webpack_require__("2faE").f;
+var create = __webpack_require__("oVml");
+var redefineAll = __webpack_require__("XJU/");
+var ctx = __webpack_require__("2GTP");
+var anInstance = __webpack_require__("EXMj");
+var forOf = __webpack_require__("oioR");
+var $iterDefine = __webpack_require__("MPFp");
+var step = __webpack_require__("UO39");
+var setSpecies = __webpack_require__("TJWN");
+var DESCRIPTORS = __webpack_require__("jmDH");
+var fastKey = __webpack_require__("6/1s").fastKey;
+var validate = __webpack_require__("n3ko");
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+  // fast case
+  var index = fastKey(key);
+  var entry;
+  if (index !== 'F') return that._i[index];
+  // frozen object case
+  for (entry = that._f; entry; entry = entry.n) {
+    if (entry.k == key) return entry;
+  }
+};
+
+module.exports = {
+  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+    var C = wrapper(function (that, iterable) {
+      anInstance(that, C, NAME, '_i');
+      that._t = NAME;         // collection type
+      that._i = create(null); // index
+      that._f = undefined;    // first entry
+      that._l = undefined;    // last entry
+      that[SIZE] = 0;         // size
+      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+    });
+    redefineAll(C.prototype, {
+      // 23.1.3.1 Map.prototype.clear()
+      // 23.2.3.2 Set.prototype.clear()
+      clear: function clear() {
+        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+          entry.r = true;
+          if (entry.p) entry.p = entry.p.n = undefined;
+          delete data[entry.i];
+        }
+        that._f = that._l = undefined;
+        that[SIZE] = 0;
+      },
+      // 23.1.3.3 Map.prototype.delete(key)
+      // 23.2.3.4 Set.prototype.delete(value)
+      'delete': function (key) {
+        var that = validate(this, NAME);
+        var entry = getEntry(that, key);
+        if (entry) {
+          var next = entry.n;
+          var prev = entry.p;
+          delete that._i[entry.i];
+          entry.r = true;
+          if (prev) prev.n = next;
+          if (next) next.p = prev;
+          if (that._f == entry) that._f = next;
+          if (that._l == entry) that._l = prev;
+          that[SIZE]--;
+        } return !!entry;
+      },
+      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+      forEach: function forEach(callbackfn /* , that = undefined */) {
+        validate(this, NAME);
+        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+        var entry;
+        while (entry = entry ? entry.n : this._f) {
+          f(entry.v, entry.k, this);
+          // revert to the last existing entry
+          while (entry && entry.r) entry = entry.p;
+        }
+      },
+      // 23.1.3.7 Map.prototype.has(key)
+      // 23.2.3.7 Set.prototype.has(value)
+      has: function has(key) {
+        return !!getEntry(validate(this, NAME), key);
+      }
+    });
+    if (DESCRIPTORS) dP(C.prototype, 'size', {
+      get: function () {
+        return validate(this, NAME)[SIZE];
+      }
+    });
+    return C;
+  },
+  def: function (that, key, value) {
+    var entry = getEntry(that, key);
+    var prev, index;
+    // change existing entry
+    if (entry) {
+      entry.v = value;
+    // create new entry
+    } else {
+      that._l = entry = {
+        i: index = fastKey(key, true), // <- index
+        k: key,                        // <- key
+        v: value,                      // <- value
+        p: prev = that._l,             // <- previous entry
+        n: undefined,                  // <- next entry
+        r: false                       // <- removed
+      };
+      if (!that._f) that._f = entry;
+      if (prev) prev.n = entry;
+      that[SIZE]++;
+      // add to index
+      if (index !== 'F') that._i[index] = entry;
+    } return that;
+  },
+  getEntry: getEntry,
+  setStrong: function (C, NAME, IS_MAP) {
+    // add .keys, .values, .entries, [@@iterator]
+    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+    $iterDefine(C, NAME, function (iterated, kind) {
+      this._t = validate(iterated, NAME); // target
+      this._k = kind;                     // kind
+      this._l = undefined;                // previous
+    }, function () {
+      var that = this;
+      var kind = that._k;
+      var entry = that._l;
+      // revert to the last existing entry
+      while (entry && entry.r) entry = entry.p;
+      // get next entry
+      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+        // or finish the iteration
+        that._t = undefined;
+        return step(1);
+      }
+      // return step by kind
+      if (kind == 'keys') return step(0, entry.k);
+      if (kind == 'values') return step(0, entry.v);
+      return step(0, [entry.k, entry.v]);
+    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+    // add [@@species], 23.1.2.2, 23.2.2.2
+    setSpecies(NAME);
+  }
+};
+
+
+/***/ }),
+
 /***/ "XLbu":
 /***/ (function(module, exports, __webpack_require__) {
Diff for routerDirect.js
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = (function(a,b){return {"/_error":[b],"/link":[a,b],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.c29872cbf1d93285c3d9.js","static\u002Fchunks\u002F314e4c089430eb8cdc865a8a097be397fffdf2f3.dabd6bf1b89781ecd750.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,14 +12,14 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
-        as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
+        as="script" crossorigin="anonymous" />
     </head>
     
     <body>
@@ -31,7 +31,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,9 +43,9 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-aeb145aa3b20f0a133be.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.219514909c9db8a9ff76.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -54,12 +53,14 @@
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/commons.ae25279399a9d28ee270.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.590e9c97bed24d8fff40.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.cf0e4a968d6e5bfa6e29.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
-        async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.module.js"
Diff for link.html
@@ -14,13 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -36,7 +36,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -55,21 +54,21 @@
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/commons.ae25279399a9d28ee270.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.590e9c97bed24d8fff40.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.cf0e4a968d6e5bfa6e29.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.c29872cbf1d93285c3d9.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/314e4c089430eb8cdc865a8a097be397fffdf2f3.dabd6bf1b89781ecd750.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-aeb145aa3b20f0a133be.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,13 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +34,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -53,19 +52,21 @@
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/commons.ae25279399a9d28ee270.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.590e9c97bed24d8fff40.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.cf0e4a968d6e5bfa6e29.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.c29872cbf1d93285c3d9.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-aeb145aa3b20f0a133be.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 15.7s 14.7s -954ms
nodeModulesSize 48.9 MB 48.9 MB -29.5 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 14.8 kB 16.6 kB ⚠️ +1.73 kB
main-HASH.js gzip 5.12 kB 5.86 kB ⚠️ +749 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..641cd3dea.js 19.8 kB N/A N/A
16b1a7225520..3dea.js gzip 7.28 kB N/A N/A
314e4c089430..de6eb480f.js 7.9 kB N/A N/A
314e4c089430..480f.js gzip 3.31 kB N/A N/A
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..39988e4af.js 33.1 kB N/A N/A
de003c3a9d30..e4af.js gzip 12.3 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
16b1a7225520..7459734ec.js N/A 20.1 kB N/A
16b1a7225520..34ec.js gzip N/A 7.38 kB N/A
4952ddcd88e7..bfe360fe6.js N/A 10.5 kB N/A
4952ddcd88e7..0fe6.js gzip N/A 4.06 kB N/A
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB ⚠️ +1.73 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB -24 B
main-HASH.module.js gzip 5.3 kB 5.28 kB -16 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..68.module.js 16 kB N/A N/A
16b1a7225520..dule.js gzip 6.17 kB N/A N/A
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
16b1a7225520..0d.module.js N/A 16.2 kB N/A
16b1a7225520..dule.js gzip N/A 6.22 kB N/A
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -24 B
Client Pages Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_app.js 7.71 kB 1.63 kB -6.08 kB
_app.js gzip 3.22 kB 788 B -2.43 kB
_error.js 14.9 kB 12.3 kB -2.64 kB
_error.js gzip 5.57 kB 4.79 kB -783 B
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 4.05 kB 5.81 kB ⚠️ +1.76 kB
link.js gzip 1.81 kB 2.56 kB ⚠️ +755 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 29.7 kB 22.8 kB -6.96 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 353 B 244 B -109 B
_buildManifest.js gzip 260 B 201 B -59 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 209 B ⚠️ +1 B
Overall change 604 B 495 B -109 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 243 kB 241 kB -2.05 kB
_error.js gzip 64.8 kB 64.4 kB -409 B
hooks.html 4.04 kB 4.08 kB ⚠️ +39 B
hooks.html gzip 1.05 kB 1.03 kB -16 B
index.js 244 kB 241 kB -2.11 kB
index.js gzip 65 kB 64.5 kB -475 B
link.js 276 kB 274 kB -1.79 kB
link.js gzip 73.8 kB 73.4 kB -404 B
routerDirect.js 269 kB 267 kB -1.79 kB
routerDirect.js gzip 71.9 kB 71.5 kB -401 B
withRouter.js 269 kB 267 kB -1.79 kB
withRouter.js gzip 72 kB 71.6 kB -402 B
Overall change 1.3 MB 1.29 MB -9.49 kB

Commit: a867651

@ijjk
Copy link
Member

ijjk commented Nov 12, 2019

Stats from current PR

Default Server Mode
General
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.8s 13.4s -418ms
nodeModulesSize 48.8 MB 48.8 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 14.9 kB 14.9 kB
main-HASH.js gzip 5.12 kB 5.12 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..b3f403e8a.js 19.8 kB 19.8 kB
16b1a7225520..3e8a.js gzip 7.28 kB 7.28 kB
314e4c089430..de6eb480f.js 7.9 kB 7.9 kB
314e4c089430..480f.js gzip 3.31 kB 3.31 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..39988e4af.js 33.1 kB 33.1 kB
de003c3a9d30..e4af.js gzip 12.3 kB 12.3 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.31 kB 5.31 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..d8.module.js 16 kB 16 kB
16b1a7225520..dule.js gzip 6.17 kB 6.17 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 191 kB 191 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 7.71 kB 7.71 kB
_app.js gzip 3.22 kB 3.22 kB
_error.js 14.9 kB 14.9 kB
_error.js gzip 5.57 kB 5.57 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 4.05 kB 4.05 kB
link.js gzip 1.81 kB 1.81 kB
routerDirect.js 411 B 411 B
routerDirect.js gzip 283 B 283 B
withRouter.js 421 B 421 B
withRouter.js gzip 282 B 282 B
Overall change 29.7 kB 29.7 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 353 B 353 B
_buildManifest.js gzip 259 B 259 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 604 B 604 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 3.9 kB 3.9 kB
index.html gzip 1.01 kB 1.01 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.14 kB 1.14 kB
withRouter.html 4.43 kB 4.43 kB
withRouter.html gzip 1.09 kB 1.09 kB
Overall change 12.9 kB 12.9 kB

Serverless Mode
General
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.2s 14.2s -30ms
nodeModulesSize 48.8 MB 48.8 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 14.9 kB 14.9 kB
main-HASH.js gzip 5.12 kB 5.12 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..b3f403e8a.js 19.8 kB 19.8 kB
16b1a7225520..3e8a.js gzip 7.28 kB 7.28 kB
314e4c089430..de6eb480f.js 7.9 kB 7.9 kB
314e4c089430..480f.js gzip 3.31 kB 3.31 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..39988e4af.js 33.1 kB 33.1 kB
de003c3a9d30..e4af.js gzip 12.3 kB 12.3 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.31 kB 5.31 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..d8.module.js 16 kB 16 kB
16b1a7225520..dule.js gzip 6.17 kB 6.17 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 191 kB 191 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 7.71 kB 7.71 kB
_app.js gzip 3.22 kB 3.22 kB
_error.js 14.9 kB 14.9 kB
_error.js gzip 5.57 kB 5.57 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 4.05 kB 4.05 kB
link.js gzip 1.81 kB 1.81 kB
routerDirect.js 411 B 411 B
routerDirect.js gzip 283 B 283 B
withRouter.js 421 B 421 B
withRouter.js gzip 282 B 282 B
Overall change 29.7 kB 29.7 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 353 B 353 B
_buildManifest.js gzip 259 B 259 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 604 B 604 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 244 kB 244 kB
_error.js gzip 64.9 kB 64.9 kB
hooks.html 4.04 kB 4.04 kB
hooks.html gzip 1.05 kB 1.05 kB
index.js 244 kB 244 kB
index.js gzip 65 kB 65 kB
link.js 276 kB 276 kB
link.js gzip 73.9 kB 73.9 kB
routerDirect.js 269 kB 269 kB
routerDirect.js gzip 72 kB 72 kB
withRouter.js 269 kB 269 kB
withRouter.js gzip 72.1 kB 72.1 kB
Overall change 1.31 MB 1.31 MB

Commit: a30affe

@ijjk
Copy link
Member

ijjk commented Nov 21, 2019

Stats from current PR

Default Server Mode
General
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 15.4s 15.4s -3ms
nodeModulesSize 48.3 MB 48.3 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode
General
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 16s 16s -44ms
nodeModulesSize 48.3 MB 48.3 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB
Overall change 1.37 MB 1.37 MB

Commit: df1baa6

@ijjk
Copy link
Member

ijjk commented Nov 23, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.9s 14.4s ⚠️ +490ms
nodeModulesSize 48.3 MB 48.3 MB -709 B
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB ⚠️ +1 B
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.5s 14.8s ⚠️ +369ms
nodeModulesSize 48.3 MB 48.3 MB -709 B
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB -1 B
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB ⚠️ +2 B
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB -1 B
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB -1 B
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB -1 B
Overall change 1.37 MB 1.37 MB

Commit: c458b7e

@ijjk
Copy link
Member

ijjk commented Nov 23, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.8s 13.9s ⚠️ +74ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB ⚠️ +1 B
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.2s 14.8s ⚠️ +557ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB -1 B
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB ⚠️ +2 B
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB -1 B
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB -1 B
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB -1 B
Overall change 1.37 MB 1.37 MB

Commit: e484699

@ijjk
Copy link
Member

ijjk commented Nov 23, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14s 13.7s -275ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB ⚠️ +1 B
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.4s 14.3s -112ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB -1 B
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB ⚠️ +2 B
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB -1 B
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB -1 B
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB -1 B
Overall change 1.37 MB 1.37 MB

Commit: b1b97c3

@ijjk
Copy link
Member

ijjk commented Nov 23, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.9s 13.8s -66ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB ⚠️ +1 B
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.3s 14.2s -79ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB -1 B
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB ⚠️ +2 B
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB -1 B
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB -1 B
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB -1 B
Overall change 1.37 MB 1.37 MB

Commit: 660b825

@ijjk
Copy link
Member

ijjk commented Nov 23, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.4s 14.3s -158ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB ⚠️ +1 B
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.9s 14.9s -36ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB -1 B
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB ⚠️ +2 B
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB -1 B
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB -1 B
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB -1 B
Overall change 1.37 MB 1.37 MB

Commit: cb3b9ea

@ijjk
Copy link
Member

ijjk commented Nov 23, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 12.4s 12.4s -14ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB
link.html 4.58 kB 4.58 kB
link.html gzip 1.12 kB 1.12 kB ⚠️ +1 B
withRouter.html 4.59 kB 4.59 kB
withRouter.html gzip 1.1 kB 1.1 kB
Overall change 13.2 kB 13.2 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 12.9s 12.7s -138ms
nodeModulesSize 48.3 MB 48.3 MB -1.75 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.33 kB 6.33 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..ebc17c08d.js 19.8 kB 19.8 kB
16b1a7225520..c08d.js gzip 7.35 kB 7.35 kB
4952ddcd88e7..49d7903c2.js 9.6 kB 9.6 kB
4952ddcd88e7..03c2.js gzip 3.76 kB 3.76 kB
commons.HASH.js 10.4 kB 10.4 kB
commons.HASH.js gzip 3.91 kB 3.91 kB
de003c3a9d30..a824c82eb.js 28.3 kB 28.3 kB
de003c3a9d30..82eb.js gzip 10.7 kB 10.7 kB
framework.HASH.js 125 kB 125 kB
framework.HASH.js gzip 39.4 kB 39.4 kB
Overall change 213 kB 213 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.3 kB 5.3 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..9a.module.js 21.3 kB 21.3 kB
16b1a7225520..dule.js gzip 8.14 kB 8.14 kB
4952ddcd88e7..cc.module.js 11.9 kB 11.9 kB
4952ddcd88e7..dule.js gzip 4.43 kB 4.43 kB
de003c3a9d30..36.module.js 22.2 kB 22.2 kB
de003c3a9d30..dule.js gzip 8.71 kB 8.71 kB
framework.HASH.module.js 125 kB 125 kB
framework.HA..dule.js gzip 39.4 kB 39.4 kB
Overall change 196 kB 196 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 9.11 kB 9.11 kB
polyfills-HASH.js gzip 3.11 kB 3.11 kB
Overall change 9.11 kB 9.11 kB
Client Pages
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.92 kB 2.92 kB
_app.js gzip 1.32 kB 1.32 kB
_error.js 13.2 kB 13.2 kB
_error.js gzip 5.1 kB 5.1 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.76 kB 6.76 kB
link.js gzip 2.88 kB 2.88 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 26 kB 26 kB
Client Pages Modern
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 677 B 677 B
hooks.module.js gzip 384 B 384 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 19.3 kB 19.3 kB
Client Build Manifests
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 208 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary lfades/next.js new-docs Change
_error.js 255 kB 255 kB
_error.js gzip 67.9 kB 67.9 kB -1 B
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 256 kB 256 kB
index.js gzip 68 kB 68 kB ⚠️ +2 B
link.js 288 kB 288 kB
link.js gzip 77.1 kB 77.1 kB -1 B
routerDirect.js 281 kB 281 kB
routerDirect.js gzip 75.1 kB 75.1 kB -1 B
withRouter.js 281 kB 281 kB
withRouter.js gzip 75.2 kB 75.2 kB -1 B
Overall change 1.37 MB 1.37 MB

Commit: ecb95e6

@ijjk
Copy link
Member

ijjk commented Dec 17, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 11.5s 11.9s ⚠️ +322ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 11.8s 12.5s ⚠️ +680ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.1 kB
link.js 289 kB 288 kB -845 B
link.js gzip 77.1 kB 77.1 kB -94 B
routerDirect.js 282 kB 281 kB -849 B
routerDirect.js gzip 75.2 kB 75.1 kB -93 B
withRouter.js 282 kB 281 kB -845 B
withRouter.js gzip 75.3 kB 75.2 kB -88 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 2b35e1b

@ijjk
Copy link
Member

ijjk commented Dec 17, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.2s 13.7s ⚠️ +533ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.1s 14.7s ⚠️ +562ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.1 kB
link.js 289 kB 288 kB -845 B
link.js gzip 77.1 kB 77.1 kB -94 B
routerDirect.js 282 kB 281 kB -849 B
routerDirect.js gzip 75.2 kB 75.1 kB -93 B
withRouter.js 282 kB 281 kB -845 B
withRouter.js gzip 75.3 kB 75.2 kB -88 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 846ad3d

@ijjk
Copy link
Member

ijjk commented Dec 18, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.4s 14.2s ⚠️ +761ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.8s 14.4s ⚠️ +673ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.1 kB
link.js 289 kB 288 kB -845 B
link.js gzip 77.1 kB 77.1 kB -94 B
routerDirect.js 282 kB 281 kB -849 B
routerDirect.js gzip 75.2 kB 75.1 kB -93 B
withRouter.js 282 kB 281 kB -845 B
withRouter.js gzip 75.3 kB 75.2 kB -88 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 2f9f15a

@ijjk
Copy link
Member

ijjk commented Dec 19, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.4s 17.1s ⚠️ +2.7s
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.5s 17s ⚠️ +2.5s
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 5dbf090

@ijjk
Copy link
Member

ijjk commented Dec 19, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.5s 13.9s ⚠️ +432ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 15.3s 16s ⚠️ +699ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: c4d9c4b

@ijjk
Copy link
Member

ijjk commented Dec 20, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 11.8s 12.6s ⚠️ +801ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 11.8s 12.6s ⚠️ +839ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 47d875a

@ijjk
Copy link
Member

ijjk commented Dec 20, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.8s 14.5s ⚠️ +756ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.2s 15s ⚠️ +783ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 4cb6be1

@ijjk
Copy link
Member

ijjk commented Dec 20, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 11.9s 12.5s ⚠️ +616ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 12.6s 13s ⚠️ +337ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: 7b07d79

@ijjk
Copy link
Member

ijjk commented Dec 20, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.3s 14.9s ⚠️ +676ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14.7s 15.6s ⚠️ +878ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: adf923a

@ijjk
Copy link
Member

ijjk commented Dec 20, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 13.8s 14.6s ⚠️ +766ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
index.html 4.06 kB 4.06 kB
index.html gzip 1.04 kB 1.04 kB ⚠️ +1 B
link.html 4.11 kB 4.58 kB ⚠️ +474 B
link.html gzip 1.05 kB 1.12 kB ⚠️ +71 B
withRouter.html 4.12 kB 4.59 kB ⚠️ +474 B
withRouter.html gzip 1.03 kB 1.1 kB ⚠️ +72 B
Overall change 12.3 kB 13.2 kB ⚠️ +948 B

Diffs

Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -437,7 +437,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -513,7 +513,7 @@ function (_react$default$Compon) {
       // If it's a dynamic route or has a querystring
 
 
-      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
           // WARNING: `_h` is an internal option for handing Next.js
@@ -585,13 +585,11 @@ function () {
               onPerfEntry = function onPerfEntry(_ref3) {
                 var name = _ref3.name,
                     startTime = _ref3.startTime,
-                    value = _ref3.value,
-                    duration = _ref3.duration;
+                    value = _ref3.value;
                 mod.unstable_onPerformanceData({
                   name: name,
                   startTime: startTime,
-                  value: value,
-                  duration: duration
+                  value: value
                 });
               };
             }
@@ -845,19 +843,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', function () {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(function (list) {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1390,11 +1377,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1402,20 +1387,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1450,7 +1427,7 @@ function () {
     value: function getDependencies(route) {
       return this.promisedBuildManifest.then(function (man) {
         return man[route] && man[route].map(function (url) {
-          return "/_next/" + encodeURI(url);
+          return "/_next/" + url;
         }) || [];
       });
     }
@@ -1528,10 +1505,6 @@ function () {
                 if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
-
-                if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                  loadStyle(d); // FIXME: handle failure
-                }
               });
 
               _this3.loadRoute(route);
@@ -1557,7 +1530,7 @@ function () {
               case 0:
                 route = _this.normalizeRoute(route);
                 scriptRoute = route === '/' ? '/index.js' : route + ".js";
-                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+                url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
                 _this.loadScript(url, route, true);
 
@@ -1584,7 +1557,7 @@ function () {
       }
 
       script.crossOrigin = "anonymous";
-      script.src = url;
+      script.src = encodeURI(url);
 
       script.onerror = function () {
         var error = new Error("Error loading script " + url);
@@ -1648,10 +1621,10 @@ function () {
                   scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
                 }
 
-                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+                url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
                 // its own deduping mechanism.
 
-                if (!document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+                if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
                   _context2.next = 6;
                   break;
                 }
@@ -1694,7 +1667,7 @@ function () {
                   break;
                 }
 
-                preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+                preloadScript(url);
                 return _context2.abrupt("return");
 
               case 18:
@@ -1741,4 +1714,4 @@ exports["default"] = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,2,1,3,4]]]);
\ No newline at end of file
+},[["BMP1",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for commons.HASH.js
@@ -128,15 +128,6 @@ module.exports = function (it) {
 
 /***/ }),
 
-/***/ "9BDd":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("GvbO");
-module.exports = __webpack_require__("WEpk").Array.isArray;
-
-
-/***/ }),
-
 /***/ "B+OT":
 /***/ (function(module, exports) {
 
@@ -217,17 +208,6 @@ module.exports = function (it, S) {
 
 /***/ }),
 
-/***/ "GvbO":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-var $export = __webpack_require__("Y7ZC");
-
-$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
-
-
-/***/ }),
-
 /***/ "Hsns":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -528,16 +508,6 @@ $exports.store = store;
 
 /***/ }),
 
-/***/ "VKFn":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("bBy9");
-__webpack_require__("FlQf");
-module.exports = __webpack_require__("ldVq");
-
-
-/***/ }),
-
 /***/ "VVlx":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -848,23 +818,6 @@ module.exports = __webpack_require__("NegM");
 
 /***/ }),
 
-/***/ "ldVq":
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__("QMMT");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var Iterators = __webpack_require__("SBuE");
-module.exports = __webpack_require__("WEpk").isIterable = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-
-/***/ }),
-
 /***/ "oVml":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -913,13 +866,6 @@ module.exports = Object.create || function create(O, Properties) {
 
 /***/ }),
 
-/***/ "p0XB":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("9BDd");
-
-/***/ }),
-
 /***/ "rr1i":
 /***/ (function(module, exports) {
 
@@ -1010,13 +956,6 @@ module.exports = Object.keys || function keys(O) {
 };
 
 
-/***/ }),
-
-/***/ "yLu3":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("VKFn");
-
 /***/ })
 
 }]);
\ No newline at end of file
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -341,7 +341,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.7-canary.0";
+var version = "9.1.5-canary.2";
 exports.version = version;
 var {
   props,
@@ -403,7 +403,7 @@ class Container extends _react.default.Component {
     // If it's a dynamic route or has a querystring
 
 
-    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component.__NEXT_SPR && location.search) {
+    if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
         // WARNING: `_h` is an internal option for handing Next.js
@@ -461,14 +461,12 @@ function () {
         var {
           name,
           startTime,
-          value,
-          duration
+          value
         } = _ref3;
         mod.unstable_onPerformanceData({
           name,
           startTime,
-          value,
-          duration
+          value
         });
       };
     }
@@ -622,19 +620,8 @@ function renderReactElement(reactEl, domEl) {
     }
   }
 
-  if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-    if (!(PerformanceObserver in window)) {
-      window.addEventListener('load', () => {
-        performance.getEntriesByType('paint').forEach(onPerfEntry);
-      });
-    } else {
-      var observer = new PerformanceObserver(list => {
-        list.getEntries().forEach(onPerfEntry);
-      });
-      observer.observe({
-        entryTypes: ['paint']
-      });
-    }
+  if (onPerfEntry) {
+    performance.getEntriesByType('paint').forEach(onPerfEntry);
   }
 }
 
@@ -1081,11 +1068,9 @@ var _mitt = _interopRequireDefault(__webpack_require__("dZ6Y"));
 /* global document, window */
 
 
-var prefetchOrPreload = undefined ? 'prefetch' : 'preload';
-
 function supportsPreload(el) {
   try {
-    return el.relList.supports(prefetchOrPreload);
+    return el.relList.supports('preload');
   } catch (_unused) {
     return false;
   }
@@ -1093,20 +1078,12 @@ function supportsPreload(el) {
 
 var hasPreload = supportsPreload(document.createElement('link'));
 
-function preloadLink(url, resourceType) {
+function preloadScript(url) {
   var link = document.createElement('link');
-  link.rel = prefetchOrPreload;
+  link.rel = 'preload';
   link.crossOrigin = "anonymous";
-  link.href = url;
-  link.as = resourceType;
-  document.head.appendChild(link);
-}
-
-function loadStyle(url) {
-  var link = document.createElement('link');
-  link.rel = 'stylesheet';
-  link.crossOrigin = "anonymous";
-  link.href = url;
+  link.href = encodeURI(url);
+  link.as = 'script';
   document.head.appendChild(link);
 }
 
@@ -1133,7 +1110,7 @@ class PageLoader {
 
 
   getDependencies(route) {
-    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + encodeURI(url)) || []);
+    return this.promisedBuildManifest.then(man => man[route] && man[route].map(url => "/_next/" + url) || []);
   }
 
   normalizeRoute(route) {
@@ -1203,10 +1180,6 @@ class PageLoader {
               if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
-
-              if (/\.css$/.test(d) && !document.querySelector("link[rel=stylesheet][href^=\"" + d + "\"]")) {
-                loadStyle(d); // FIXME: handle failure
-              }
             });
             this.loadRoute(route);
             this.loadingRoutes[route] = true;
@@ -1222,7 +1195,7 @@ class PageLoader {
     return (0, _asyncToGenerator2.default)(function* () {
       route = _this.normalizeRoute(route);
       var scriptRoute = route === '/' ? '/index.js' : route + ".js";
-      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + encodeURI(scriptRoute);
+      var url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
 
       _this.loadScript(url, route, true);
     })();
@@ -1239,7 +1212,7 @@ class PageLoader {
     }
 
     script.crossOrigin = "anonymous";
-    script.src = url;
+    script.src = encodeURI(url);
 
     script.onerror = () => {
       var error = new Error("Error loading script " + url);
@@ -1289,10 +1262,10 @@ class PageLoader {
         scriptRoute = scriptRoute.replace(/\.js$/, '.module.js');
       }
 
-      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + encodeURI(scriptRoute)); // n.b. If preload is not supported, we fall back to `loadPage` which has
+      var url = _this2.assetPrefix + (isDependency ? route : "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute); // n.b. If preload is not supported, we fall back to `loadPage` which has
       // its own deduping mechanism.
 
-      if (document.querySelector("link[rel=\"" + prefetchOrPreload + "\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+      if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
         return;
       } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
 
@@ -1317,7 +1290,7 @@ class PageLoader {
 
 
       if (hasPreload) {
-        preloadLink(url, url.match(/\.css$/) ? 'style' : 'script');
+        preloadScript(url);
         return;
       }
 
@@ -1345,4 +1318,4 @@ exports.default = PageLoader;
 
 /***/ })
 
-},[["BMP1",0,1,2,3]]]);
\ No newline at end of file
+},[["BMP1",0,1,2,3,4]]]);
\ No newline at end of file
Diff for polyfills-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{
 
 /***/ "GkXk":
 /***/ (function(module, exports, __webpack_require__) {
@@ -635,497 +635,6 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 /***/ }),
 
-/***/ "T1qB":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {(function(global) {
-  /**
-   * Polyfill URLSearchParams
-   *
-   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
-   */
-
-  var checkIfIteratorIsSupported = function() {
-    try {
-      return !!Symbol.iterator;
-    } catch (error) {
-      return false;
-    }
-  };
-
-
-  var iteratorSupported = checkIfIteratorIsSupported();
-
-  var createIterator = function(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return { done: value === void 0, value: value };
-      }
-    };
-
-    if (iteratorSupported) {
-      iterator[Symbol.iterator] = function() {
-        return iterator;
-      };
-    }
-
-    return iterator;
-  };
-
-  /**
-   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
-   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
-   */
-  var serializeParam = function(value) {
-    return encodeURIComponent(value).replace(/%20/g, '+');
-  };
-
-  var deserializeParam = function(value) {
-    return decodeURIComponent(String(value).replace(/\+/g, ' '));
-  };
-
-  var polyfillURLSearchParams = function() {
-
-    var URLSearchParams = function(searchString) {
-      Object.defineProperty(this, '_entries', { writable: true, value: {} });
-      var typeofSearchString = typeof searchString;
-
-      if (typeofSearchString === 'undefined') {
-        // do nothing
-      } else if (typeofSearchString === 'string') {
-        if (searchString !== '') {
-          this._fromString(searchString);
-        }
-      } else if (searchString instanceof URLSearchParams) {
-        var _this = this;
-        searchString.forEach(function(value, name) {
-          _this.append(name, value);
-        });
-      } else if ((searchString !== null) && (typeofSearchString === 'object')) {
-        if (Object.prototype.toString.call(searchString) === '[object Array]') {
-          for (var i = 0; i < searchString.length; i++) {
-            var entry = searchString[i];
-            if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {
-              this.append(entry[0], entry[1]);
-            } else {
-              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
-            }
-          }
-        } else {
-          for (var key in searchString) {
-            if (searchString.hasOwnProperty(key)) {
-              this.append(key, searchString[key]);
-            }
-          }
-        }
-      } else {
-        throw new TypeError('Unsupported input\'s type for URLSearchParams');
-      }
-    };
-
-    var proto = URLSearchParams.prototype;
-
-    proto.append = function(name, value) {
-      if (name in this._entries) {
-        this._entries[name].push(String(value));
-      } else {
-        this._entries[name] = [String(value)];
-      }
-    };
-
-    proto.delete = function(name) {
-      delete this._entries[name];
-    };
-
-    proto.get = function(name) {
-      return (name in this._entries) ? this._entries[name][0] : null;
-    };
-
-    proto.getAll = function(name) {
-      return (name in this._entries) ? this._entries[name].slice(0) : [];
-    };
-
-    proto.has = function(name) {
-      return (name in this._entries);
-    };
-
-    proto.set = function(name, value) {
-      this._entries[name] = [String(value)];
-    };
-
-    proto.forEach = function(callback, thisArg) {
-      var entries;
-      for (var name in this._entries) {
-        if (this._entries.hasOwnProperty(name)) {
-          entries = this._entries[name];
-          for (var i = 0; i < entries.length; i++) {
-            callback.call(thisArg, entries[i], name, this);
-          }
-        }
-      }
-    };
-
-    proto.keys = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push(name);
-      });
-      return createIterator(items);
-    };
-
-    proto.values = function() {
-      var items = [];
-      this.forEach(function(value) {
-        items.push(value);
-      });
-      return createIterator(items);
-    };
-
-    proto.entries = function() {
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-      });
-      return createIterator(items);
-    };
-
-    if (iteratorSupported) {
-      proto[Symbol.iterator] = proto.entries;
-    }
-
-    proto.toString = function() {
-      var searchArray = [];
-      this.forEach(function(value, name) {
-        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
-      });
-      return searchArray.join('&');
-    };
-
-
-    global.URLSearchParams = URLSearchParams;
-  };
-
-  var checkIfURLSearchParamsSupported = function() {
-    try {
-      var URLSearchParams = global.URLSearchParams;
-
-      return (new URLSearchParams('?a=1').toString() === 'a=1') && (typeof URLSearchParams.prototype.set === 'function');
-    } catch (e) {
-      return false;
-    }
-  };
-
-  if (!checkIfURLSearchParamsSupported()) {
-    polyfillURLSearchParams();
-  }
-
-  var proto = global.URLSearchParams.prototype;
-
-  if (typeof proto.sort !== 'function') {
-    proto.sort = function() {
-      var _this = this;
-      var items = [];
-      this.forEach(function(value, name) {
-        items.push([name, value]);
-        if (!_this._entries) {
-          _this.delete(name);
-        }
-      });
-      items.sort(function(a, b) {
-        if (a[0] < b[0]) {
-          return -1;
-        } else if (a[0] > b[0]) {
-          return +1;
-        } else {
-          return 0;
-        }
-      });
-      if (_this._entries) { // force reset because IE keeps keys index
-        _this._entries = {};
-      }
-      for (var i = 0; i < items.length; i++) {
-        this.append(items[i][0], items[i][1]);
-      }
-    };
-  }
-
-  if (typeof proto._fromString !== 'function') {
-    Object.defineProperty(proto, '_fromString', {
-      enumerable: false,
-      configurable: false,
-      writable: false,
-      value: function(searchString) {
-        if (this._entries) {
-          this._entries = {};
-        } else {
-          var keys = [];
-          this.forEach(function(value, name) {
-            keys.push(name);
-          });
-          for (var i = 0; i < keys.length; i++) {
-            this.delete(keys[i]);
-          }
-        }
-
-        searchString = searchString.replace(/^\?/, '');
-        var attributes = searchString.split('&');
-        var attribute;
-        for (var i = 0; i < attributes.length; i++) {
-          attribute = attributes[i].split('=');
-          this.append(
-            deserializeParam(attribute[0]),
-            (attribute.length > 1) ? deserializeParam(attribute[1]) : ''
-          );
-        }
-      }
-    });
-  }
-
-  // HTMLAnchorElement
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-(function(global) {
-  /**
-   * Polyfill URL
-   *
-   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
-   */
-
-  var checkIfURLIsSupported = function() {
-    try {
-      var u = new global.URL('b', 'http://a');
-      u.pathname = 'c%20d';
-      return (u.href === 'http://a/c%20d') && u.searchParams;
-    } catch (e) {
-      return false;
-    }
-  };
-
-
-  var polyfillURL = function() {
-    var _URL = global.URL;
-
-    var URL = function(url, base) {
-      if (typeof url !== 'string') url = String(url);
-
-      // Only create another document if the base is different from current location.
-      var doc = document, baseElement;
-      if (base && (global.location === void 0 || base !== global.location.href)) {
-        doc = document.implementation.createHTMLDocument('');
-        baseElement = doc.createElement('base');
-        baseElement.href = base;
-        doc.head.appendChild(baseElement);
-        try {
-          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
-        } catch (err) {
-          throw new Error('URL unable to set base ' + base + ' due to ' + err);
-        }
-      }
-
-      var anchorElement = doc.createElement('a');
-      anchorElement.href = url;
-      if (baseElement) {
-        doc.body.appendChild(anchorElement);
-        anchorElement.href = anchorElement.href; // force href to refresh
-      }
-
-      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href)) {
-        throw new TypeError('Invalid URL');
-      }
-
-      Object.defineProperty(this, '_anchorElement', {
-        value: anchorElement
-      });
-
-
-      // create a linked searchParams which reflect its changes on URL
-      var searchParams = new global.URLSearchParams(this.search);
-      var enableSearchUpdate = true;
-      var enableSearchParamsUpdate = true;
-      var _this = this;
-      ['append', 'delete', 'set'].forEach(function(methodName) {
-        var method = searchParams[methodName];
-        searchParams[methodName] = function() {
-          method.apply(searchParams, arguments);
-          if (enableSearchUpdate) {
-            enableSearchParamsUpdate = false;
-            _this.search = searchParams.toString();
-            enableSearchParamsUpdate = true;
-          }
-        };
-      });
-
-      Object.defineProperty(this, 'searchParams', {
-        value: searchParams,
-        enumerable: true
-      });
-
-      var search = void 0;
-      Object.defineProperty(this, '_updateSearchParams', {
-        enumerable: false,
-        configurable: false,
-        writable: false,
-        value: function() {
-          if (this.search !== search) {
-            search = this.search;
-            if (enableSearchParamsUpdate) {
-              enableSearchUpdate = false;
-              this.searchParams._fromString(this.search);
-              enableSearchUpdate = true;
-            }
-          }
-        }
-      });
-    };
-
-    var proto = URL.prototype;
-
-    var linkURLWithAnchorAttribute = function(attributeName) {
-      Object.defineProperty(proto, attributeName, {
-        get: function() {
-          return this._anchorElement[attributeName];
-        },
-        set: function(value) {
-          this._anchorElement[attributeName] = value;
-        },
-        enumerable: true
-      });
-    };
-
-    ['hash', 'host', 'hostname', 'port', 'protocol']
-      .forEach(function(attributeName) {
-        linkURLWithAnchorAttribute(attributeName);
-      });
-
-    Object.defineProperty(proto, 'search', {
-      get: function() {
-        return this._anchorElement['search'];
-      },
-      set: function(value) {
-        this._anchorElement['search'] = value;
-        this._updateSearchParams();
-      },
-      enumerable: true
-    });
-
-    Object.defineProperties(proto, {
-
-      'toString': {
-        get: function() {
-          var _this = this;
-          return function() {
-            return _this.href;
-          };
-        }
-      },
-
-      'href': {
-        get: function() {
-          return this._anchorElement.href.replace(/\?$/, '');
-        },
-        set: function(value) {
-          this._anchorElement.href = value;
-          this._updateSearchParams();
-        },
-        enumerable: true
-      },
-
-      'pathname': {
-        get: function() {
-          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
-        },
-        set: function(value) {
-          this._anchorElement.pathname = value;
-        },
-        enumerable: true
-      },
-
-      'origin': {
-        get: function() {
-          // get expected port from protocol
-          var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];
-          // add port to origin if, expected port is different than actual port
-          // and it is not empty f.e http://foo:8080
-          // 8080 != 80 && 8080 != ''
-          var addPortToOrigin = this._anchorElement.port != expectedPort &&
-            this._anchorElement.port !== '';
-
-          return this._anchorElement.protocol +
-            '//' +
-            this._anchorElement.hostname +
-            (addPortToOrigin ? (':' + this._anchorElement.port) : '');
-        },
-        enumerable: true
-      },
-
-      'password': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-
-      'username': { // TODO
-        get: function() {
-          return '';
-        },
-        set: function(value) {
-        },
-        enumerable: true
-      },
-    });
-
-    URL.createObjectURL = function(blob) {
-      return _URL.createObjectURL.apply(_URL, arguments);
-    };
-
-    URL.revokeObjectURL = function(url) {
-      return _URL.revokeObjectURL.apply(_URL, arguments);
-    };
-
-    global.URL = URL;
-
-  };
-
-  if (!checkIfURLIsSupported()) {
-    polyfillURL();
-  }
-
-  if ((global.location !== void 0) && !('origin' in global.location)) {
-    var getOrigin = function() {
-      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');
-    };
-
-    try {
-      Object.defineProperty(global.location, 'origin', {
-        get: getOrigin,
-        enumerable: true
-      });
-    } catch (e) {
-      setInterval(function() {
-        global.location.origin = getOrigin();
-      }, 100);
-    }
-  }
-
-})(
-  (typeof global !== 'undefined') ? global
-    : ((typeof window !== 'undefined') ? window
-    : ((typeof self !== 'undefined') ? self : this))
-);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
 /***/ "XLER":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1134,37 +643,8 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
 
 __webpack_require__("GkXk");
 
-__webpack_require__("T1qB");
-
 Object.assign = __webpack_require__("MgzW");
 
-/***/ }),
-
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
-} catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
 /***/ })
 
 },[["XLER",0]]]);
\ No newline at end of file
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -122,14 +122,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -276,11 +276,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1["default"].createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1["default"].createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -324,28 +326,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return function (h) {
-    var unique = true;
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
-
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -354,28 +350,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -436,6 +425,15 @@ module.exports = function (NAME) {
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
 /***/ "ApPD":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -481,6 +479,29 @@ module.exports = __webpack_require__("+plK");
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -509,6 +530,17 @@ exports.HeadManagerContext = React.createContext(null);
 
 /***/ }),
 
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -621,6 +653,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "VJsP":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -666,6 +749,16 @@ $export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) { A
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -943,6 +1036,62 @@ module.exports = _possibleConstructorReturn;
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "d04V":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -980,6 +1129,23 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1008,6 +1174,92 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1015,6 +1267,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1022,6 +1287,13 @@ module.exports = __webpack_require__("+iuc");
 __webpack_require__("cHUd")('Set');
 
 
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -99,6 +99,26 @@ var __jsx = react_default.a.createElement;
 
 /***/ }),
 
+/***/ "9BDd":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("GvbO");
+module.exports = __webpack_require__("WEpk").Array.isArray;
+
+
+/***/ }),
+
+/***/ "GvbO":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
+var $export = __webpack_require__("Y7ZC");
+
+$export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
+
+
+/***/ }),
+
 /***/ "Rp86":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -109,6 +129,16 @@ module.exports = __webpack_require__("fXsU");
 
 /***/ }),
 
+/***/ "VKFn":
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__("bBy9");
+__webpack_require__("FlQf");
+module.exports = __webpack_require__("ldVq");
+
+
+/***/ }),
+
 /***/ "XXOK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -141,6 +171,37 @@ module.exports = __webpack_require__("WEpk").getIterator = function (it) {
     }]);
   
 
+/***/ }),
+
+/***/ "ldVq":
+/***/ (function(module, exports, __webpack_require__) {
+
+var classof = __webpack_require__("QMMT");
+var ITERATOR = __webpack_require__("UWiX")('iterator');
+var Iterators = __webpack_require__("SBuE");
+module.exports = __webpack_require__("WEpk").isIterable = function (it) {
+  var O = Object(it);
+  return O[ITERATOR] !== undefined
+    || '@@iterator' in O
+    // eslint-disable-next-line no-prototype-builtins
+    || Iterators.hasOwnProperty(classof(O));
+};
+
+
+/***/ }),
+
+/***/ "p0XB":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("9BDd");
+
+/***/ }),
+
+/***/ "yLu3":
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__("VKFn");
+
 /***/ })
 
 },[["g1vQ",0,2,1]]]);
\ No newline at end of file
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "+plK":
 /***/ (function(module, exports, __webpack_require__) {
@@ -407,7 +407,7 @@ exports["default"] = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -713,4 +713,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,2,1,3,4]]]);
\ No newline at end of file
+},[["V8Sf",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "+oT+":
 /***/ (function(module, exports, __webpack_require__) {
@@ -67,14 +67,11 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 var _utils = __webpack_require__("g/15");
 
 exports.AppInitialProps = _utils.AppInitialProps;
-
-__webpack_require__("nOHt");
 /**
 * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
 * This allows for keeping state between navigation, custom error handling, injecting additional data.
 */
 
-
 function appGetInitialProps(_x) {
   return _appGetInitialProps.apply(this, arguments);
 }
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -171,6 +171,66 @@ var styles = {
 
 /***/ }),
 
+/***/ "6/1s":
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__("YqAc")('meta');
+var isObject = __webpack_require__("93I4");
+var has = __webpack_require__("B+OT");
+var setDesc = __webpack_require__("2faE").f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+  return true;
+};
+var FREEZE = !__webpack_require__("KUxP")(function () {
+  return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+  setDesc(it, META, { value: {
+    i: 'O' + ++id, // object ID
+    w: {}          // weak collections IDs
+  } });
+};
+var fastKey = function (it, create) {
+  // return primitive with prefix
+  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return 'F';
+    // not necessary to add metadata
+    if (!create) return 'E';
+    // add missing metadata
+    setMeta(it);
+  // return object ID
+  } return it[META].i;
+};
+var getWeak = function (it, create) {
+  if (!has(it, META)) {
+    // can't set metadata to uncaught frozen object
+    if (!isExtensible(it)) return true;
+    // not necessary to add metadata
+    if (!create) return false;
+    // add missing metadata
+    setMeta(it);
+  // return hash weak collections IDs
+  } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+  return it;
+};
+var meta = module.exports = {
+  KEY: META,
+  NEED: false,
+  fastKey: fastKey,
+  getWeak: getWeak,
+  onFreeze: onFreeze
+};
+
+
+/***/ }),
+
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -204,11 +264,13 @@ var amp_1 = __webpack_require__("/0+H");
 function defaultHead() {
   var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
   var head = [react_1.default.createElement("meta", {
+    key: "charSet",
     charSet: "utf-8"
   })];
 
   if (!inAmpMode) {
     head.push(react_1.default.createElement("meta", {
+      key: "viewport",
       name: "viewport",
       content: "width=device-width,minimum-scale=1,initial-scale=1"
     }));
@@ -252,28 +314,22 @@ function unique() {
   var metaTypes = new _Set();
   var metaCategories = {};
   return h => {
-    var unique = true;
-
-    if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {
-      var key = h.key.slice(h.key.indexOf('$') + 1);
+    if (h.key && typeof h.key !== 'number' && h.key.indexOf('.$') === 0) {
+      if (keys.has(h.key)) return false;
+      keys.add(h.key);
+      return true;
+    } // If custom meta tag has been added the key will be prepended with `.$`, we can
+    // check for this and dedupe in favor of the custom one, so the default
+    // is not rendered as well
 
-      if (keys.has(key)) {
-        unique = false;
-      } else {
-        keys.add(key);
-      }
-    } // eslint-disable-next-line default-case
 
+    if (keys.has(".$".concat(h.key))) return false; // eslint-disable-next-line default-case
 
     switch (h.type) {
       case 'title':
       case 'base':
-        if (tags.has(h.type)) {
-          unique = false;
-        } else {
-          tags.add(h.type);
-        }
-
+        if (tags.has(h.type)) return false;
+        tags.add(h.type);
         break;
 
       case 'meta':
@@ -282,28 +338,21 @@ function unique() {
           if (!h.props.hasOwnProperty(metatype)) continue;
 
           if (metatype === 'charSet') {
-            if (metaTypes.has(metatype)) {
-              unique = false;
-            } else {
-              metaTypes.add(metatype);
-            }
+            if (metaTypes.has(metatype)) return false;
+            metaTypes.add(metatype);
           } else {
             var category = h.props[metatype];
             var categories = metaCategories[metatype] || new _Set();
-
-            if (categories.has(category)) {
-              unique = false;
-            } else {
-              categories.add(category);
-              metaCategories[metatype] = categories;
-            }
+            if (categories.has(category)) return false;
+            categories.add(category);
+            metaCategories[metatype] = categories;
           }
         }
 
         break;
     }
 
-    return unique;
+    return true;
   };
 }
 /**
@@ -384,6 +433,29 @@ module.exports = __webpack_require__("raTm")(SET, function (get) {
 
 /***/ }),
 
+/***/ "C2SN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+var isArray = __webpack_require__("kAMH");
+var SPECIES = __webpack_require__("UWiX")('species');
+
+module.exports = function (original) {
+  var C;
+  if (isArray(original)) {
+    C = original.constructor;
+    // cross-realm fallback
+    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+    if (isObject(C)) {
+      C = C[SPECIES];
+      if (C === null) C = undefined;
+    }
+  } return C === undefined ? Array : C;
+};
+
+
+/***/ }),
+
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -435,6 +507,57 @@ __webpack_require__("aPfg")('Set');
 
 /***/ }),
 
+/***/ "V7Et":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 0 -> Array#forEach
+// 1 -> Array#map
+// 2 -> Array#filter
+// 3 -> Array#some
+// 4 -> Array#every
+// 5 -> Array#find
+// 6 -> Array#findIndex
+var ctx = __webpack_require__("2GTP");
+var IObject = __webpack_require__("M1xp");
+var toObject = __webpack_require__("JB68");
+var toLength = __webpack_require__("tEej");
+var asc = __webpack_require__("v6xn");
+module.exports = function (TYPE, $create) {
+  var IS_MAP = TYPE == 1;
+  var IS_FILTER = TYPE == 2;
+  var IS_SOME = TYPE == 3;
+  var IS_EVERY = TYPE == 4;
+  var IS_FIND_INDEX = TYPE == 6;
+  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+  var create = $create || asc;
+  return function ($this, callbackfn, that) {
+    var O = toObject($this);
+    var self = IObject(O);
+    var f = ctx(callbackfn, that, 3);
+    var length = toLength(self.length);
+    var index = 0;
+    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+    var val, res;
+    for (;length > index; index++) if (NO_HOLES || index in self) {
+      val = self[index];
+      res = f(val, index, O);
+      if (TYPE) {
+        if (IS_MAP) result[index] = res;   // map
+        else if (res) switch (TYPE) {
+          case 3: return true;             // some
+          case 5: return val;              // find
+          case 6: return index;            // findIndex
+          case 2: result.push(val);        // filter
+        } else if (IS_EVERY) return false; // every
+      }
+    }
+    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
+  };
+};
+
+
+/***/ }),
+
 /***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -658,6 +781,62 @@ exports.default = () => {
 
 /***/ }),
 
+/***/ "aPfg":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+var aFunction = __webpack_require__("eaoh");
+var ctx = __webpack_require__("2GTP");
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
+    var mapFn = arguments[1];
+    var mapping, A, n, cb;
+    aFunction(this);
+    mapping = mapFn !== undefined;
+    if (mapping) aFunction(mapFn);
+    if (source == undefined) return new this();
+    A = [];
+    if (mapping) {
+      n = 0;
+      cb = ctx(mapFn, arguments[2], 2);
+      forOf(source, false, function (nextItem) {
+        A.push(cb(nextItem, n++));
+      });
+    } else {
+      forOf(source, false, A.push, A);
+    }
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
+/***/ "cHUd":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// https://tc39.github.io/proposal-setmap-offrom/
+var $export = __webpack_require__("Y7ZC");
+
+module.exports = function (COLLECTION) {
+  $export($export.S, COLLECTION, { of: function of() {
+    var length = arguments.length;
+    var A = new Array(length);
+    while (length--) A[length] = arguments[length];
+    return new this(A);
+  } });
+};
+
+
+/***/ }),
+
 /***/ "dL40":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -669,6 +848,18 @@ $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__("8iia")('Set
 
 /***/ }),
 
+/***/ "kAMH":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 7.2.2 IsArray(argument)
+var cof = __webpack_require__("a0xu");
+module.exports = Array.isArray || function isArray(arg) {
+  return cof(arg) == 'Array';
+};
+
+
+/***/ }),
+
 /***/ "lwAK":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -697,6 +888,85 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
+/***/ "n3ko":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("93I4");
+module.exports = function (it, TYPE) {
+  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+  return it;
+};
+
+
+/***/ }),
+
+/***/ "raTm":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var global = __webpack_require__("5T2Y");
+var $export = __webpack_require__("Y7ZC");
+var meta = __webpack_require__("6/1s");
+var fails = __webpack_require__("KUxP");
+var hide = __webpack_require__("NegM");
+var redefineAll = __webpack_require__("XJU/");
+var forOf = __webpack_require__("oioR");
+var anInstance = __webpack_require__("EXMj");
+var isObject = __webpack_require__("93I4");
+var setToStringTag = __webpack_require__("RfKB");
+var dP = __webpack_require__("2faE").f;
+var each = __webpack_require__("V7Et")(0);
+var DESCRIPTORS = __webpack_require__("jmDH");
+
+module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+  var Base = global[NAME];
+  var C = Base;
+  var ADDER = IS_MAP ? 'set' : 'add';
+  var proto = C && C.prototype;
+  var O = {};
+  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
+    new C().entries().next();
+  }))) {
+    // create collection constructor
+    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+    redefineAll(C.prototype, methods);
+    meta.NEED = true;
+  } else {
+    C = wrapper(function (target, iterable) {
+      anInstance(target, C, NAME, '_c');
+      target._c = new Base();
+      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
+    });
+    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
+      var IS_ADDER = KEY == 'add' || KEY == 'set';
+      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
+        anInstance(this, C, KEY);
+        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
+        var result = this._c[KEY](a === 0 ? 0 : a, b);
+        return IS_ADDER ? this : result;
+      });
+    });
+    IS_WEAK || dP(C.prototype, 'size', {
+      get: function () {
+        return this._c.size;
+      }
+    });
+  }
+
+  setToStringTag(C, NAME);
+
+  O[NAME] = C;
+  $export($export.G + $export.W + $export.F, O);
+
+  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+  return C;
+};
+
+
+/***/ }),
+
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -704,6 +974,19 @@ module.exports = __webpack_require__("+iuc");
 
 /***/ }),
 
+/***/ "v6xn":
+/***/ (function(module, exports, __webpack_require__) {
+
+// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+var speciesConstructor = __webpack_require__("C2SN");
+
+module.exports = function (original, length) {
+  return new (speciesConstructor(original))(length);
+};
+
+
+/***/ }),
+
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
 
 /***/ "+MDD":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "RNiq":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "/h46":
 /***/ (function(module, exports, __webpack_require__) {
@@ -285,7 +285,7 @@ exports.default = void 0;
 
 var _map = _interopRequireDefault(__webpack_require__("LX0d"));
 
-var _url = __webpack_require__("QmWs");
+var _url = __webpack_require__("CxY0");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
@@ -579,4 +579,4 @@ module.exports = __webpack_require__("raTm")(MAP, function (get) {
 
 /***/ })
 
-},[["V8Sf",0,1,2,3]]]);
\ No newline at end of file
+},[["V8Sf",0,1,2,3,4]]]);
\ No newline at end of file
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "LtRI":
 /***/ (function(module, exports, __webpack_require__) {
@@ -38,4 +38,4 @@ routerDirect.getInitialProps = () => ({});
 
 /***/ })
 
-},[["LtRI",0,1,2,3]]]);
\ No newline at end of file
+},[["LtRI",0,1,2,3,4]]]);
\ No newline at end of file
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "0Hlz":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -36,4 +36,4 @@ useWithRouter.getInitialProps = () => ({});
 
 /***/ })
 
-},[["eThv",0,1,2,3]]]);
\ No newline at end of file
+},[["eThv",0,1,2,3,4]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,13 +12,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -31,7 +31,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,23 +44,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +36,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -51,19 +53,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,11 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
+        as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -32,7 +34,7 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"></script>
+        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-e754f88c1bb3ceddee51.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -49,19 +51,23 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+        <script src="/_next/static/chunks/commons.28980f98e28c3e7be276.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.3ec8eb716b710a3491f9.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.94451837ca7449fffbc9.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.007dab24dcf3dfb91774.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.ee914e8dc1c0daa933b4.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.5f63c642fc68b85bc4ba.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-fb673a2c6c55eaf67f3a.js"
+        <script src="/_next/static/runtime/main-f0e3b16a229bdd59944b.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-92a65ed780ac058f8736.module.js"
+        <script src="/_next/static/runtime/main-0e1c4b24306318fc1d32.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
buildDuration 14s 14.1s ⚠️ +172ms
nodeModulesSize 48.7 MB 49.7 MB ⚠️ +1.05 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.js 18.5 kB 17.9 kB -604 B
main-HASH.js gzip 6.5 kB 6.33 kB -165 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..1db6754d3.js 12 kB N/A N/A
4952ddcd88e7..54d3.js gzip 4.68 kB N/A N/A
commons.HASH.js 10.9 kB 10.4 kB -498 B
commons.HASH.js gzip 4.06 kB 3.91 kB -149 B
de003c3a9d30..7d55a2235.js 38.3 kB N/A N/A
de003c3a9d30..2235.js gzip 13.9 kB N/A N/A
framework.HASH.js 126 kB 125 kB -122 B
framework.HASH.js gzip 39.5 kB 39.4 kB -66 B
16b1a7225520..ebc17c08d.js N/A 19.8 kB N/A
16b1a7225520..c08d.js gzip N/A 7.35 kB N/A
4952ddcd88e7..49d7903c2.js N/A 9.6 kB N/A
4952ddcd88e7..03c2.js gzip N/A 3.76 kB N/A
de003c3a9d30..a824c82eb.js N/A 28.3 kB N/A
de003c3a9d30..82eb.js gzip N/A 10.7 kB N/A
Overall change 207 kB 213 kB -1.22 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
main-HASH.module.js 14.5 kB 14.1 kB -397 B
main-HASH.module.js gzip 5.42 kB 5.3 kB -124 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..b9.module.js 14.9 kB N/A N/A
4952ddcd88e7..dule.js gzip 5.56 kB N/A N/A
de003c3a9d30..a0.module.js 33.1 kB N/A N/A
de003c3a9d30..dule.js gzip 12.5 kB N/A N/A
framework.HASH.module.js 126 kB 125 kB -18 B
framework.HA..dule.js gzip 39.4 kB 39.4 kB -56 B
16b1a7225520..9a.module.js N/A 21.3 kB N/A
16b1a7225520..dule.js gzip N/A 8.14 kB N/A
4952ddcd88e7..60.module.js N/A 11.9 kB N/A
4952ddcd88e7..dule.js gzip N/A 4.43 kB N/A
de003c3a9d30..36.module.js N/A 22.2 kB N/A
de003c3a9d30..dule.js gzip N/A 8.71 kB N/A
Overall change 190 kB 196 kB -415 B
Legacy Client Bundles (polyfills) Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
polyfills-HASH.js 15.3 kB 9.11 kB -6.21 kB
polyfills-HASH.js gzip 4.76 kB 3.11 kB -1.65 kB
Overall change 15.3 kB 9.11 kB -6.21 kB
Client Pages Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.js 2.94 kB 2.92 kB -18 B
_app.js gzip 1.33 kB 1.32 kB -13 B
_error.js 10.4 kB 13.2 kB ⚠️ +2.85 kB
_error.js gzip 4.07 kB 5.1 kB ⚠️ +1.03 kB
hooks.js 1.44 kB 1.92 kB ⚠️ +480 B
hooks.js gzip 779 B 941 B ⚠️ +162 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 6.77 kB 6.76 kB -17 B
link.js gzip 2.89 kB 2.88 kB -14 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 22.7 kB 26 kB ⚠️ +3.3 kB
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_app.module.js 1.54 kB 1.54 kB -1 B
_app.module.js gzip 757 B 759 B ⚠️ +2 B
_error.module.js 7.35 kB 10.5 kB ⚠️ +3.16 kB
_error.module.js gzip 3.06 kB 4.26 kB ⚠️ +1.21 kB
hooks.module.js 651 B 677 B ⚠️ +26 B
hooks.module.js gzip 371 B 384 B ⚠️ +13 B
index.module.js 276 B 292 B ⚠️ +16 B
index.module.js gzip 212 B 223 B ⚠️ +11 B
link.module.js 5.45 kB 5.49 kB ⚠️ +46 B
link.module.js gzip 2.46 kB 2.47 kB ⚠️ +7 B
routerDirect.module.js 383 B 399 B ⚠️ +16 B
routerDirect..dule.js gzip 273 B 285 B ⚠️ +12 B
withRouter.module.js 394 B 409 B ⚠️ +15 B
withRouter.m..dule.js gzip 272 B 282 B ⚠️ +10 B
Overall change 16 kB 19.3 kB ⚠️ +3.28 kB
Client Build Manifests Overall increase ⚠️
zeit/next.js canary lfades/next.js new-docs Change
_buildManifest.js 81 B 244 B ⚠️ +163 B
_buildManifest.js gzip 61 B 201 B ⚠️ +140 B
_buildManifest.module.js 81 B 251 B ⚠️ +170 B
_buildManife..dule.js gzip 61 B 208 B ⚠️ +147 B
Overall change 162 B 495 B ⚠️ +333 B
Serverless bundles Overall decrease ✓
zeit/next.js canary lfades/next.js new-docs Change
_error.js 281 kB 255 kB -25.6 kB
_error.js gzip 74.9 kB 67.9 kB -6.99 kB
hooks.html 4.19 kB 4.19 kB
hooks.html gzip 1.07 kB 1.07 kB -2 B
index.js 281 kB 256 kB -25.5 kB
index.js gzip 75.1 kB 68 kB -7.11 kB
link.js 289 kB 288 kB -851 B
link.js gzip 77.2 kB 77.1 kB -96 B
routerDirect.js 282 kB 281 kB -855 B
routerDirect.js gzip 75.2 kB 75.1 kB -95 B
withRouter.js 282 kB 281 kB -851 B
withRouter.js gzip 75.3 kB 75.2 kB -89 B
Overall change 1.42 MB 1.37 MB -53.6 kB

Commit: cd0f0df

@timneutkens timneutkens merged commit e346561 into vercel:canary Dec 23, 2019
@lfades lfades deleted the new-docs branch January 28, 2020 15:22
@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.