# Stats from current release

Default Server Mode (Increase detected ⚠)

General Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| buildDuration | 13.7s | 13.3s | -430ms |
| nodeModulesSize | 48.6 MB | 48.9 MB | ⚠ +295 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.49 kB | 6.44 kB | -52 B |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..2235.js gzip | 13.9 kB | 13.8 kB | -25 B |
| framework.HASH.js gzip | 39.5 kB | 39.5 kB | ✓ |
| Overall change | 69.3 kB | 69.2 kB | -77 B |

Client Bundles (main, webpack, commons) Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 5.42 kB | ⚠ +7 B |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.5 kB | 12.6 kB | ⚠ +35 B |
| framework.HA..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
| Overall change | 63.7 kB | 63.7 kB | ⚠ +42 B |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.89 kB | 2.93 kB | ⚠ +37 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.86 kB | 9.89 kB | ⚠ +37 B |

Client Pages Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.46 kB | 2.49 kB | ⚠ +35 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.4 kB | 7.43 kB | ⚠ +35 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Rendered Page Sizes Overall decrease ✓

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| index.html gzip | 1.04 kB | 1.04 kB | ✓ |
| link.html gzip | 1.05 kB | 1.04 kB | -1 B |
| withRouter.html gzip | 1.03 kB | 1.03 kB | -1 B |
| Overall change | 3.12 kB | 3.12 kB | -2 B |

#### Diffs

Diff for link.js

```diff
@@ -639,19 +639,41 @@
                 this.cleanUpListeners()
               },
             },
+            {
+              key: 'getHref',
+              value: function getHref() {
+                var pathname = window.location.pathname
+
+                var _this$formatUrls2 = this.formatUrls(
+                    this.props.href,
+                    this.props.as
+                  ),
+                  parsedHref = _this$formatUrls2.href
+
+                return (0, _url.resolve)(pathname, parsedHref)
+              },
+            },
             {
               key: 'handleRef',
               value: function handleRef(ref) {
                 var _this2 = this

+                var isPrefetched =
+                  _router['default'].router.pageLoader.prefetched[
+                    this.getHref()
+                  ]
+
                 if (this.p && IntersectionObserver && ref && ref.tagName) {
                   this.cleanUpListeners()
-                  this.cleanUpListeners = listenToIntersections(
-                    ref,
-                    function() {
-                      _this2.prefetch()
-                    }
-                  )
+
+                  if (!isPrefetched) {
+                    this.cleanUpListeners = listenToIntersections(
+                      ref,
+                      function() {
+                        _this2.prefetch()
+                      }
+                    )
+                  }
                 }
               }, // The function is memoized so that no extra lifecycles are needed
               // as per https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
@@ -661,17 +683,7 @@
               value: function prefetch() {
                 if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)

-                var pathname = window.location.pathname
-
-                var _this$formatUrls2 = this.formatUrls(
-                    this.props.href,
-                    this.props.as
-                  ),
-                  parsedHref = _this$formatUrls2.href
-
-                var href = (0, _url.resolve)(pathname, parsedHref)
-
-                _router['default'].prefetch(href)
+                _router['default'].prefetch(this.getHref())
               },
             },
             {
```

Diff for link.module.js

```diff
@@ -490,12 +490,27 @@
           this.cleanUpListeners()
         }

+        getHref() {
+          var { pathname } = window.location
+          var { href: parsedHref } = this.formatUrls(
+            this.props.href,
+            this.props.as
+          )
+          return (0, _url.resolve)(pathname, parsedHref)
+        }
+
         handleRef(ref) {
+          var isPrefetched =
+            _router.default.router.pageLoader.prefetched[this.getHref()]
+
           if (this.p && IntersectionObserver && ref && ref.tagName) {
             this.cleanUpListeners()
-            this.cleanUpListeners = listenToIntersections(ref, () => {
-              this.prefetch()
-            })
+
+            if (!isPrefetched) {
+              this.cleanUpListeners = listenToIntersections(ref, () => {
+                this.prefetch()
+              })
+            }
           }
         } // The function is memoized so that no extra lifecycles are needed
         // as per https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
@@ -503,14 +518,7 @@
         prefetch() {
           if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)

-          var { pathname } = window.location
-          var { href: parsedHref } = this.formatUrls(
-            this.props.href,
-            this.props.as
-          )
-          var href = (0, _url.resolve)(pathname, parsedHref)
-
-          _router.default.prefetch(href)
+          _router.default.prefetch(this.getHref())
         }

         render() {
```

Diff for de003c3a9d30..b0e06633d.js

```diff
@@ -1445,10 +1445,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var _slicedToArray = __webpack_require__('8+Nu')

-      var _Promise = __webpack_require__('eVuF')
-
       var _Object$assign = __webpack_require__('Qetd')

+      var _Promise = __webpack_require__('eVuF')
+
       var _classCallCheck = __webpack_require__('/HRN')

       var _createClass = __webpack_require__('WaGi')
@@ -1483,6 +1483,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var route_regex_1 = __webpack_require__('YTqd')

+      function addBasePath(path) {
+        // @ts-ignore variable is always a string
+        var p = ''
+        return path.indexOf(p) !== 0 ? p + path : path
+      }
+
       function toRoute(path) {
         return path.replace(/\/$/, '') || '/'
       }
@@ -1503,6 +1509,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

             _classCallCheck(this, Router)

+            // Static Data Cache
+            this.sdc = {}
+
             this.onPopState = function(e) {
               if (!e.state) {
                 // We get state as undefined for two reasons.
@@ -1553,6 +1562,34 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }

               _this.replace(url, as, options)
+            }
+
+            this._getStaticData = function(asPath, _cachedData) {
+              var pathname = url_1.parse(asPath).pathname
+              pathname = !pathname || pathname === '/' ? '/index' : pathname
+              return true && (_cachedData = _this.sdc[pathname])
+                ? _Promise.resolve(_cachedData)
+                : fetch(
+                    // @ts-ignore __NEXT_DATA__
+                    '/_next/data/'
+                      .concat(__NEXT_DATA__.buildId)
+                      .concat(pathname, '.json')
+                  )
+                    .then(function(res) {
+                      if (!res.ok) {
+                        throw new Error('Failed to load static props')
+                      }
+
+                      return res.json()
+                    })
+                    .then(function(data) {
+                      _this.sdc[pathname] = data
+                      return data
+                    })
+                    ['catch'](function(err) {
+                      err.code = 'PAGE_LOAD_ERROR'
+                      throw err
+                    })
             } // represents the current component key

             this.route = toRoute(pathname) // set up the component cache (by route keys)
@@ -1731,7 +1768,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       _this2.asPath = as
                       Router.events.emit('hashChangeStart', as)

-                      _this2.changeState(method, url, as)
+                      _this2.changeState(method, url, addBasePath(as))

                       _this2.scrollToHash(as)

@@ -1807,7 +1844,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

                         Router.events.emit('beforeHistoryChange', as)

-                        _this2.changeState(method, url, as, options)
+                        _this2.changeState(
+                          method,
+                          url,
+                          addBasePath(as),
+                          options
+                        )

                         var hash = window.location.hash.substring(1)

@@ -1895,20 +1937,24 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                         var _require, isValidElementType
                       }

-                      return new _Promise(function(resolve, reject) {
-                        // we provide AppTree later so this needs to be `any`
-                        _this3
-                          .getInitialProps(Component, {
-                            pathname: pathname,
-                            query: query,
-                            asPath: as,
-                          })
-                          .then(function(props) {
-                            routeInfo.props = props
-                            _this3.components[route] = routeInfo
-                            resolve(routeInfo)
-                          }, reject)
-                      })
+                      return _this3
+                        ._getData(function() {
+                          return Component.__NEXT_SPR
+                            ? _this3._getStaticData(as)
+                            : _this3.getInitialProps(
+                                Component, // we provide AppTree later so this needs to be `any`
+                                {
+                                  pathname: pathname,
+                                  query: query,
+                                  asPath: as,
+                                }
+                              )
+                        })
+                        .then(function(props) {
+                          routeInfo.props = props
+                          _this3.components[route] = routeInfo
+                          return routeInfo
+                        })
                     })
                     ['catch'](function(err) {
                       return new _Promise(function(resolve) {
@@ -2079,12 +2125,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       }

                       return
-                    } // Prefetch is not supported in development mode because it would trigger on-demand-entries
-
-                    if (false) {
                     } // @ts-ignore pathname is always defined

-                    var route = toRoute(pathname)
+                    var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries
+
+                    if (false) {
+                    }

                     _this4.pageLoader.prefetch(route).then(resolve, reject)
                   })
@@ -2146,122 +2192,46 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 },
               },
               {
-                key: 'getInitialProps',
-                value: function getInitialProps(Component, ctx) {
-                  var cancelled,
-                    cancel,
-                    App,
-                    props,
-                    status,
-                    _url_1$parse4,
-                    pathname,
-                    AppTree,
-                    err
-
-                  return _regeneratorRuntime.async(
-                    function getInitialProps$(_context2) {
-                      while (1) {
-                        switch ((_context2.prev = _context2.next)) {
-                          case 0:
-                            cancelled = false
-
-                            cancel = function cancel() {
-                              cancelled = true
-                            }
-
-                            this.clc = cancel
-                            App = this.components['/_app'].Component
+                key: '_getData',
+                value: function _getData(fn) {
+                  var _this5 = this

-                            if (!Component.__NEXT_SPR) {
-                              _context2.next = 12
-                              break
-                            }
-
-                            // pathname should have leading slash
-                            ;(_url_1$parse4 = url_1.parse(
-                              ctx.asPath || ctx.pathname
-                            )),
-                              (pathname = _url_1$parse4.pathname)
-                            pathname =
-                              !pathname || pathname === '/'
-                                ? '/index'
-                                : pathname
-                            _context2.next = 9
-                            return _regeneratorRuntime.awrap(
-                              fetch(
-                                // @ts-ignore __NEXT_DATA__
-                                '/_next/data/'
-                                  .concat(__NEXT_DATA__.buildId)
-                                  .concat(pathname, '.json')
-                              )
-                                .then(function(res) {
-                                  if (!res.ok) {
-                                    status = res.status
-                                    throw new Error(
-                                      'failed to load prerender data'
-                                    )
-                                  }
-
-                                  return res.json()
-                                })
-                                ['catch'](function(err) {
-                                  console.error(
-                                    'Failed to load data',
-                                    status,
-                                    err
-                                  )
-                                  window.location.href = pathname
-                                  return new _Promise(function() {})
-                                })
-                            )
+                  var cancelled = false

-                          case 9:
-                            props = _context2.sent
-                            _context2.next = 17
-                            break
-
-                          case 12:
-                            AppTree = this._wrapApp(App)
-                            ctx.AppTree = AppTree
-                            _context2.next = 16
-                            return _regeneratorRuntime.awrap(
-                              utils_1.loadGetInitialProps(App, {
-                                AppTree: AppTree,
-                                Component: Component,
-                                router: this,
-                                ctx: ctx,
-                              })
-                            )
-
-                          case 16:
-                            props = _context2.sent
+                  var cancel = function cancel() {
+                    cancelled = true
+                  }

-                          case 17:
-                            if (cancel === this.clc) {
-                              this.clc = null
-                            }
+                  this.clc = cancel
+                  return fn().then(function(data) {
+                    if (cancel === _this5.clc) {
+                      _this5.clc = null
+                    }

-                            if (!cancelled) {
-                              _context2.next = 22
-                              break
-                            }
+                    if (cancelled) {
+                      var err = new Error('Loading initial props cancelled')
+                      err.cancelled = true
+                      throw err
+                    }

-                            err = new Error('Loading initial props cancelled')
-                            err.cancelled = true
-                            throw err
+                    return data
+                  })
+                },
+              },
+              {
+                key: 'getInitialProps',
+                value: function getInitialProps(Component, ctx) {
+                  var App = this.components['/_app'].Component

-                          case 22:
-                            return _context2.abrupt('return', props)
+                  var AppTree = this._wrapApp(App)

-                          case 23:
-                          case 'end':
-                            return _context2.stop()
-                        }
-                      }
-                    },
-                    null,
-                    this
-                  )
+                  ctx.AppTree = AppTree
+                  return utils_1.loadGetInitialProps(App, {
+                    AppTree: AppTree,
+                    Component: Component,
+                    router: this,
+                    ctx: ctx,
+                  })
                 },
               },
               {
```

Diff for de003c3a9d30..0f.module.js

```diff
@@ -1785,10 +1785,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
     /***/ elyg: /***/ function(module, exports, __webpack_require__) {
       'use strict'

-      var _Promise = __webpack_require__('eVuF')
-
       var _Object$assign = __webpack_require__('Qetd')

+      var _Promise = __webpack_require__('eVuF')
+
       var _Object$defineProperty = __webpack_require__('hfKm')

       var __importDefault =
@@ -1819,6 +1819,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var route_regex_1 = __webpack_require__('YTqd')

+      function addBasePath(path) {
+        // @ts-ignore variable is always a string
+        var p = ''
+        return path.indexOf(p) !== 0 ? p + path : path
+      }
+
       function toRoute(path) {
         return path.replace(/\/$/, '') || '/'
       }
@@ -1834,6 +1840,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             err,
             subscription,
           } = _ref
+          // Static Data Cache
+          this.sdc = {}

           this.onPopState = e => {
             if (!e.state) {
@@ -1879,6 +1887,34 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             }

             this.replace(url, as, options)
+          }
+
+          this._getStaticData = (asPath, _cachedData) => {
+            var pathname = url_1.parse(asPath).pathname
+            pathname = !pathname || pathname === '/' ? '/index' : pathname
+            return true && (_cachedData = this.sdc[pathname])
+              ? _Promise.resolve(_cachedData)
+              : fetch(
+                  // @ts-ignore __NEXT_DATA__
+                  '/_next/data/'
+                    .concat(__NEXT_DATA__.buildId)
+                    .concat(pathname, '.json')
+                )
+                  .then(res => {
+                    if (!res.ok) {
+                      throw new Error('Failed to load static props')
+                    }
+
+                    return res.json()
+                  })
+                  .then(data => {
+                    this.sdc[pathname] = data
+                    return data
+                  })
+                  .catch(err => {
+                    err.code = 'PAGE_LOAD_ERROR'
+                    throw err
+                  })
           } // represents the current component key

           this.route = toRoute(pathname) // set up the component cache (by route keys)
@@ -2039,7 +2075,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             if (!options._h && this.onlyAHashChange(as)) {
               this.asPath = as
               Router.events.emit('hashChangeStart', as)
-              this.changeState(method, url, as)
+              this.changeState(method, url, addBasePath(as))
               this.scrollToHash(as)
               Router.events.emit('hashChangeComplete', as)
               return resolve(true)
@@ -2104,7 +2140,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 }

                 Router.events.emit('beforeHistoryChange', as)
-                this.changeState(method, url, as, options)
+                this.changeState(method, url, addBasePath(as), options)
                 var hash = window.location.hash.substring(1)

                 if (false) {
@@ -2189,17 +2225,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 var isValidElementType
               }

-              return new _Promise((resolve, reject) => {
-                // we provide AppTree later so this needs to be `any`
-                this.getInitialProps(Component, {
-                  pathname,
-                  query,
-                  asPath: as,
-                }).then(props => {
-                  routeInfo.props = props
-                  this.components[route] = routeInfo
-                  resolve(routeInfo)
-                }, reject)
+              return this._getData(() =>
+                Component.__NEXT_SPR
+                  ? this._getStaticData(as)
+                  : this.getInitialProps(
+                      Component, // we provide AppTree later so this needs to be `any`
+                      {
+                        pathname,
+                        query,
+                        asPath: as,
+                      }
+                    )
+              ).then(props => {
+                routeInfo.props = props
+                this.components[route] = routeInfo
+                return routeInfo
               })
             })
             .catch(err => {
@@ -2337,12 +2377,13 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }

               return
-            } // Prefetch is not supported in development mode because it would trigger on-demand-entries
+            } // @ts-ignore pathname is always defined
+
+            var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries

             if (false) {
-            } // @ts-ignore pathname is always defined
+            }

-            var route = toRoute(pathname)
             this.pageLoader.prefetch(route).then(resolve, reject)
           })
         }
@@ -2371,7 +2412,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           return Component
         }

-        async getInitialProps(Component, ctx) {
+        _getData(fn) {
           var cancelled = false

           var cancel = () => {
@@ -2379,56 +2420,33 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           }

           this.clc = cancel
-          var { Component: App } = this.components['/_app']
-          var props
-
-          if (Component.__NEXT_SPR) {
-            var status // pathname should have leading slash
-
-            var { pathname } = url_1.parse(ctx.asPath || ctx.pathname)
-            pathname = !pathname || pathname === '/' ? '/index' : pathname
-            props = await fetch(
-              // @ts-ignore __NEXT_DATA__
-              '/_next/data/'
-                .concat(__NEXT_DATA__.buildId)
-                .concat(pathname, '.json')
-            )
-              .then(res => {
-                if (!res.ok) {
-                  status = res.status
-                  throw new Error('failed to load prerender data')
-                }
+          return fn().then(data => {
+            if (cancel === this.clc) {
+              this.clc = null
+            }

-                return res.json()
-              })
-              .catch(err => {
-                console.error('Failed to load data', status, err)
-                window.location.href = pathname
-                return new _Promise(() => {})
-              })
-          } else {
-            var AppTree = this._wrapApp(App)
+            if (cancelled) {
+              var err = new Error('Loading initial props cancelled')
+              err.cancelled = true
+              throw err
+            }

-            ctx.AppTree = AppTree
-            props = await utils_1.loadGetInitialProps(App, {
-              AppTree,
-              Component,
-              router: this,
-              ctx,
-            })
-          }
+            return data
+          })
+        }

-          if (cancel === this.clc) {
-            this.clc = null
-          }
+        getInitialProps(Component, ctx) {
+          var { Component: App } = this.components['/_app']

-          if (cancelled) {
-            var err = new Error('Loading initial props cancelled')
-            err.cancelled = true
-            throw err
-          }
+          var AppTree = this._wrapApp(App)

-          return props
+          ctx.AppTree = AppTree
+          return utils_1.loadGetInitialProps(App, {
+            AppTree,
+            Component,
+            router: this,
+            ctx,
+          })
         }

         abortComponentLoad(as) {
```

Diff for main-HASH.js

```diff
@@ -479,7 +479,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.6'
+      var version = '9.1.7-canary.15'
       exports.version = version
       var props = data.props,
         err = data.err,
@@ -1601,35 +1601,33 @@
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
-      /* global document, window */

-      var prefetchOrPreload = undefined ? 'prefetch' : 'preload'
-
-      function supportsPreload(el) {
+      function hasRel(rel, link) {
         try {
-          return el.relList.supports(prefetchOrPreload)
-        } catch (_unused) {
-          return false
-        }
-      }
-
-      var hasPreload = supportsPreload(document.createElement('link'))
-
-      function preloadLink(url, resourceType) {
-        var link = document.createElement('link')
-        link.rel = prefetchOrPreload
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        link.as = resourceType
-        document.head.appendChild(link)
+          link = document.createElement('link')
+          return link.relList.supports(rel)
+        } catch (_unused) {}
       }

-      function loadStyle(url) {
-        var link = document.createElement('link')
-        link.rel = 'stylesheet'
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        document.head.appendChild(link)
+      var relPrefetch =
+        hasRel('preload') && !hasRel('prefetch') // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            'preload' // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            'prefetch'
+      var hasNoModule = 'noModule' in document.createElement('script')
+
+      function appendLink(href, rel, as) {
+        return new _promise['default'](function(res, rej, link) {
+          link = document.createElement('link')
+          link.crossOrigin = 'anonymous'
+          link.href = href
+          link.rel = rel
+          if (as) link.as = as
+          link.onload = res
+          link.onerror = rej
+          document.head.appendChild(link)
+        })
       }

       var PageLoader =
@@ -1641,6 +1639,7 @@
             this.buildId = buildId
             this.assetPrefix = assetPrefix
             this.pageCache = {}
+            this.prefetched = {}
             this.pageRegisterEvents = (0, _mitt['default'])()
             this.loadingRoutes = {}

@@ -1749,6 +1748,8 @@
                   }

                   if (!_this3.loadingRoutes[route]) {
+                    _this3.loadingRoutes[route] = true
+
                     if (true) {
                       _this3.getDependencies(route).then(function(deps) {
                         deps.forEach(function(d) {
@@ -1765,13 +1766,14 @@
                               'link[rel=stylesheet][href^="' + d + '"]'
                             )
                           ) {
-                            loadStyle(d) // FIXME: handle failure
+                            appendLink(d, 'stylesheet')['catch'](function() {
+                              // FIXME: handle failure
+                              // Right now, this is needed to prevent an unhandled rejection.
+                            })
                           }
                         })

                         _this3.loadRoute(route)
-
-                        _this3.loadingRoutes[route] = true
                       })
                     } else {
                     }
@@ -1824,7 +1826,7 @@

                 var script = document.createElement('script')

-                if (true && 'noModule' in script) {
+                if (true && hasNoModule) {
                   script.type = 'module' // Only page bundle scripts need to have .module added to url,
                   // dependencies already have it added during build manifest creation

@@ -1887,41 +1889,54 @@
                 return (0, _asyncToGenerator2['default'])(
                   /*#__PURE__*/
                   _regeneratorRuntime.mark(function _callee2() {
-                    var scriptRoute, url, cn
+                    var cn, url, scriptRoute
                     return _regeneratorRuntime.wrap(function _callee2$(
                       _context2
                     ) {
                       while (1) {
                         switch ((_context2.prev = _context2.next)) {
                           case 0:
-                            route = _this2.normalizeRoute(route)
-                            scriptRoute =
-                              (route === '/' ? '/index' : route) + '.js'
+                            if (!(cn = navigator.connection)) {
+                              _context2.next = 3
+                              break
+                            }

-                            if (
-                              true &&
-                              'noModule' in document.createElement('script')
-                            ) {
-                              scriptRoute = scriptRoute.replace(
-                                /\.js$/,
-                                '.module.js'
-                              )
+                            if (!(cn.saveData || /2g/.test(cn.effectiveType))) {
+                              _context2.next = 3
+                              break
                             }

-                            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
-                            // its own deduping mechanism.
+                            return _context2.abrupt('return')
+
+                          case 3:
+                            url = _this2.assetPrefix
+
+                            if (isDependency) {
+                              url += route
+                            } else {
+                              route = _this2.normalizeRoute(route)
+                              _this2.prefetched[route] = true
+                              scriptRoute =
+                                (route === '/' ? '/index' : route) + '.js'
+
+                              if (true && hasNoModule) {
+                                scriptRoute = scriptRoute.replace(
+                                  /\.js$/,
+                                  '.module.js'
+                                )
+                              }
+
+                              url +=
+                                '/_next/static/' +
+                                encodeURIComponent(_this2.buildId) +
+                                '/pages' +
+                                encodeURI(scriptRoute)
+                            }

                             if (
                               !document.querySelector(
                                 'link[rel="' +
-                                  prefetchOrPreload +
+                                  relPrefetch +
                                   '"][href^="' +
                                   url +
                                   '"], script[data-next-page="' +
@@ -1929,95 +1944,42 @@
                                   '"]'
                               )
                             ) {
-                              _context2.next = 6
+                              _context2.next = 7
                               break
                             }

                             return _context2.abrupt('return')

-                          case 6:
-                            if (!(cn = navigator.connection)) {
-                              _context2.next = 9
-                              break
-                            }
-
-                            if (
-                              !(
-                                (cn.effectiveType || '').indexOf('2g') !== -1 ||
-                                cn.saveData
-                              )
-                            ) {
-                              _context2.next = 9
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 9:
-                            if (!(true && !isDependency)) {
-                              _context2.next = 15
-                              break
-                            }
-
-                            _context2.next = 13
-                            return _this2.getDependencies(route)
-
-                          case 13:
-                            _context2.t0 = function(url) {
-                              _this2.prefetch(url, true)
-                            }
-
-                            _context2.sent.forEach(_context2.t0)
-
-                          case 15:
-                            if (!hasPreload) {
-                              _context2.next = 18
-                              break
-                            }
-
-                            preloadLink(
-                              url,
-                              url.match(/\.css$/) ? 'style' : 'script'
-                            )
-                            return _context2.abrupt('return')
-
-                          case 18:
-                            if (!isDependency) {
-                              _context2.next = 20
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 20:
-                            if (!(document.readyState === 'complete')) {
-                              _context2.next = 24
-                              break
-                            }
-
+                          case 7:
                             return _context2.abrupt(
                               'return',
-                              _this2.loadPage(route)['catch'](function() {})
-                            )
-
-                          case 24:
-                            return _context2.abrupt(
-                              'return',
-                              new _promise['default'](function(resolve) {
-                                window.addEventListener('load', function() {
-                                  _this2.loadPage(route).then(
-                                    function() {
-                                      return resolve()
-                                    },
-                                    function() {
-                                      return resolve()
-                                    }
-                                  )
-                                })
-                              })
+                              _promise['default']
+                                .all([
+                                  appendLink(
+                                    url,
+                                    relPrefetch,
+                                    url.match(/\.css$/) ? 'style' : 'script'
+                                  ),
+                                  true &&
+                                    !isDependency &&
+                                    _this2
+                                      .getDependencies(route)
+                                      .then(function(urls) {
+                                        return _promise['default'].all(
+                                          urls.map(function(url) {
+                                            return _this2.prefetch(url, true)
+                                          })
+                                        )
+                                      }),
+                                ])
+                                .then(
+                                  // do not return any data
+                                  function() {}, // swallow prefetch errors
+                                  function() {}
+                                )
                             )

-                          case 25:
+                          case 8:
                           case 'end':
                             return _context2.stop()
                         }
```

Diff for main-HASH.module.js

```diff
@@ -361,7 +361,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.6'
+      var version = '9.1.7-canary.15'
       exports.version = version
       var {
         props,
@@ -1172,35 +1172,33 @@
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
-      /* global document, window */

-      var prefetchOrPreload = undefined ? 'prefetch' : 'preload'
-
-      function supportsPreload(el) {
+      function hasRel(rel, link) {
         try {
-          return el.relList.supports(prefetchOrPreload)
-        } catch (_unused) {
-          return false
-        }
-      }
-
-      var hasPreload = supportsPreload(document.createElement('link'))
-
-      function preloadLink(url, resourceType) {
-        var link = document.createElement('link')
-        link.rel = prefetchOrPreload
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        link.as = resourceType
-        document.head.appendChild(link)
+          link = document.createElement('link')
+          return link.relList.supports(rel)
+        } catch (_unused) {}
       }

-      function loadStyle(url) {
-        var link = document.createElement('link')
-        link.rel = 'stylesheet'
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        document.head.appendChild(link)
+      var relPrefetch =
+        hasRel('preload') && !hasRel('prefetch') // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            'preload' // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            'prefetch'
+      var hasNoModule = 'noModule' in document.createElement('script')
+
+      function appendLink(href, rel, as) {
+        return new _promise.default((res, rej, link) => {
+          link = document.createElement('link')
+          link.crossOrigin = 'anonymous'
+          link.href = href
+          link.rel = rel
+          if (as) link.as = as
+          link.onload = res
+          link.onerror = rej
+          document.head.appendChild(link)
+        })
       }

       class PageLoader {
@@ -1208,6 +1206,7 @@
           this.buildId = buildId
           this.assetPrefix = assetPrefix
           this.pageCache = {}
+          this.prefetched = {}
           this.pageRegisterEvents = (0, _mitt.default)()
           this.loadingRoutes = {}

@@ -1290,6 +1289,8 @@
             }

             if (!this.loadingRoutes[route]) {
+              this.loadingRoutes[route] = true
+
               if (true) {
                 this.getDependencies(route).then(deps => {
                   deps.forEach(d => {
@@ -1306,11 +1307,13 @@
                         'link[rel=stylesheet][href^="' + d + '"]'
                       )
                     ) {
-                      loadStyle(d) // FIXME: handle failure
+                      appendLink(d, 'stylesheet').catch(() => {
+                        // FIXME: handle failure
+                        // Right now, this is needed to prevent an unhandled rejection.
+                      })
                     }
                   })
                   this.loadRoute(route)
-                  this.loadingRoutes[route] = true
                 })
               } else {
               }
@@ -1338,7 +1341,7 @@
         loadScript(url, route, isPage) {
           var script = document.createElement('script')

-          if (true && 'noModule' in script) {
+          if (true && hasNoModule) {
             script.type = 'module' // Only page bundle scripts need to have .module added to url,
             // dependencies already have it added during build manifest creation

@@ -1390,27 +1393,39 @@
           var _this2 = this

           return (0, _asyncToGenerator2.default)(function*() {
-            route = _this2.normalizeRoute(route)
-            var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+            // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+            // License: Apache 2.0
+            var cn

-            if (true && 'noModule' in document.createElement('script')) {
-              scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+            if ((cn = navigator.connection)) {
+              // Don't prefetch if using 2G or if Save-Data is enabled.
+              if (cn.saveData || /2g/.test(cn.effectiveType)) return
             }

-            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
-            // its own deduping mechanism.
+            var url = _this2.assetPrefix
+
+            if (isDependency) {
+              url += route
+            } else {
+              route = _this2.normalizeRoute(route)
+              _this2.prefetched[route] = true
+              var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+
+              if (true && hasNoModule) {
+                scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+              }
+
+              url +=
+                '/_next/static/' +
+                encodeURIComponent(_this2.buildId) +
+                '/pages' +
+                encodeURI(scriptRoute)
+            }

             if (
               document.querySelector(
                 'link[rel="' +
-                  prefetchOrPreload +
+                  relPrefetch +
                   '"][href^="' +
                   url +
                   '"], script[data-next-page="' +
@@ -1419,48 +1434,30 @@
               )
             ) {
               return
-            } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
-
-            var cn
-
-            if ((cn = navigator.connection)) {
-              // Don't prefetch if the user is on 2G or if Save-Data is enabled.
-              if (
-                (cn.effectiveType || '').indexOf('2g') !== -1 ||
-                cn.saveData
-              ) {
-                return
-              }
-            }
-
-            if (true && !isDependency) {
-              ;(yield _this2.getDependencies(route)).forEach(url => {
-                _this2.prefetch(url, true)
-              })
-            } // Feature detection is used to see if preload is supported
-            // If not fall back to loading script tags before the page is loaded
-            // https://caniuse.com/#feat=link-rel-preload
-
-            if (hasPreload) {
-              preloadLink(url, url.match(/\.css$/) ? 'style' : 'script')
-              return
-            }
-
-            if (isDependency) {
-              // loadPage will automatically handle depencies, so no need to
-              // preload them manually
-              return
             }

-            if (document.readyState === 'complete') {
-              return _this2.loadPage(route).catch(() => {})
-            } else {
-              return new _promise.default(resolve => {
-                window.addEventListener('load', () => {
-                  _this2.loadPage(route).then(() => resolve(), () => resolve())
-                })
-              })
-            }
+            return _promise.default
+              .all([
+                appendLink(
+                  url,
+                  relPrefetch,
+                  url.match(/\.css$/) ? 'style' : 'script'
+                ),
+                true &&
+                  !isDependency &&
+                  _this2
+                    .getDependencies(route)
+                    .then(urls =>
+                      _promise.default.all(
+                        urls.map(url => _this2.prefetch(url, true))
+                      )
+                    ),
+              ])
+              .then(
+                // do not return any data
+                () => {}, // swallow prefetch errors
+                () => {}
+              )
           })()
         }
       }
```

Diff for index.html

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      href="/_next/static/runtime/main-07461eb576fc6f982346.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -45,7 +45,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -121,13 +121,13 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-8500e7d614d5ca841401.js"
+      src="/_next/static/runtime/main-eb5c7e9abaff342d4868.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      src="/_next/static/runtime/main-07461eb576fc6f982346.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
@@ -163,13 +163,13 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
```

Diff for link.html

```diff
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      href="/_next/static/runtime/main-07461eb576fc6f982346.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -156,25 +156,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-8500e7d614d5ca841401.js"
+      src="/_next/static/runtime/main-eb5c7e9abaff342d4868.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      src="/_next/static/runtime/main-07461eb576fc6f982346.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
```

Diff for withRouter.html

```diff
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      href="/_next/static/runtime/main-07461eb576fc6f982346.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -151,25 +151,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-8500e7d614d5ca841401.js"
+      src="/_next/static/runtime/main-eb5c7e9abaff342d4868.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      src="/_next/static/runtime/main-07461eb576fc6f982346.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
```

Serverless Mode (Increase detected ⚠)

General Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| buildDuration | 14.2s | 14.2s | -14ms |
| nodeModulesSize | 48.6 MB | 48.9 MB | ⚠ +295 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.49 kB | 6.44 kB | -52 B |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..2235.js gzip | 13.9 kB | N/A | N/A |
| framework.HASH.js gzip | 39.5 kB | 39.5 kB | ✓ |
| de003c3a9d30..6ef5.js gzip | N/A | 13.8 kB | N/A |
| Overall change | 69.3 kB | 69.2 kB | -52 B |

Client Bundles (main, webpack, commons) Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 5.42 kB | ⚠ +7 B |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.5 kB | N/A | N/A |
| framework.HA..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
| de003c3a9d30..dule.js gzip | N/A | 12.6 kB | N/A |
| Overall change | 63.7 kB | 63.7 kB | ⚠ +7 B |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.89 kB | 2.93 kB | ⚠ +37 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.86 kB | 9.89 kB | ⚠ +37 B |

Client Pages Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.46 kB | 2.49 kB | ⚠ +35 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.4 kB | 7.43 kB | ⚠ +35 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Serverless bundles Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.15 | Change |
| - | - | - | - |
| _error.js gzip | 74.8 kB | 78.9 kB | ⚠ +4.04 kB |
| hooks.html gzip | 1.07 kB | 1.07 kB | ✓ |
| index.js gzip | 75.1 kB | 79.1 kB | ⚠ +4.01 kB |
| link.js gzip | 77.1 kB | 81.3 kB | ⚠ +4.15 kB |
| routerDirect.js gzip | 75.2 kB | 79.2 kB | ⚠ +4.02 kB |
| withRouter.js gzip | 75.3 kB | 79.3 kB | ⚠ +4.03 kB |
| Overall change | 379 kB | 399 kB | ⚠ +20.3 kB |


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


I got V! (To be honest, I know very little about BTS, but I googled and I love his hair! Seems like a good fit)


Sorry to jump on this. I'm not really sure of the implications but I can see that in the master code the pregenerated_asm/Cargo.toml is not in sync with this and it still declares `1.0.26` as de dependency version. Is it ok?


I think we were both a little unsure if that's the notation we wanted [but I'm warming up to it], so having it not fully exposed yet made sense.  But I think moving it out is likely the right thing to do.


Thank you.  The thrust of my question was that this wouldn't suddenly get yanked from OS (which would be odd given the focus on OS in the docs), which you have satisfied.  I'd hope that selling hosting or similar might generate some revenue: indeed setting up environments is beyond/too much effort for many.


Successfully deployed to following URLs:

* https://blogrodrigomellofrontend-blnwfbpsc.now.sh
* https://rodrigomello.blog
* https://blogrodrigomellofrontend.rodrigojcmello.now.sh
* https://blogrodrigomellofrontend-git-master.rodrigojcmello.now.sh


code added


Successfully deployed to following URLs:

* https://main-pv3u4gq7d.now.sh
* https://vista1nik.ml
* https://main.vista1nik.now.sh
* https://main-git-master.vista1nik.now.sh


Having a print statement and then an input statement are working fine for you here. I'm wondering if there's a specific reason why you chose to split them up? (If you remember)


With SD skin is indeed bigger now. But fonts are big by default.
With Fontsize -10, FULL HD is small. Fontsize 0 is OK.

![1_0_19_4AED_840_600_FFFF0000_0_0_0_20200104160230](https://user-images.githubusercontent.com/16049676/71767394-2a0f9a00-2f0c-11ea-915a-2af927f4f184.jpg)

With fontsize 0:

![1_0_19_4AED_840_600_FFFF0000_0_0_0_20200104160742](https://user-images.githubusercontent.com/16049676/71767413-6ba04500-2f0c-11ea-815d-43de53a81c08.jpg)


Resolved Now.


Successfully deployed to following URLs:

* https://mrrobot-comments-79zb9f084.now.sh
* https://mrrobot-comments.now.sh
* https://mrrobot.now.sh
* https://mrrobot-comments.amio1.now.sh
* https://mrrobot-comments-git-master.amio1.now.sh


Successfully deployed to following URLs:

* https://automatic-writing-7la93x6kh.now.sh
* https://automatic-writing.now.sh
* https://automatic-writing.razdvapoka.now.sh
* https://automatic-writing-git-master.razdvapoka.now.sh


Is there a way to fund this project? I'd love to see it completed


varified


Successfully deployed to following URLs:

* https://stack-g4lovmp1m.now.sh
* https://stack.achuth.now.sh
* https://stack-git-master.achuth.now.sh


After some testing  on Windows and Linux, the only real complaint I would have is the default darkmode color choice for all comments (css comments, xhtml comments, and xhtml css comments). It looks really muted and dim to me against the dark background on both platforms. It gets even more so when combined with the default darkmode line selected color.

![darkmode-comment-colors-windows](https://user-images.githubusercontent.com/9285982/71767540-2ca5cb80-2edb-11ea-9fa7-64ba204cdddd.png)

![darkmode comment-colors-linux](https://user-images.githubusercontent.com/9285982/71767546-3e876e80-2edb-11ea-8ef3-a769761f5ad0.png)


change format of URL


This comment is wrong - we have a `shroud.IsVisible(MPos)` overload that already manages the projection. Just remove the `PPos` cast below.


Issue 23 - Repositorio api


revert?


Sorry to be pedantic... :-)
But this seems to imply that the detector is confident that it has detected all the actual bounce locations. It's probably more accurate to say that the detector is capable of predicting multiple locations, which may the all the correct bounces, or a subset, or maybe even a few hypothesized extra ones.


Decrease Font size with 10 pixels by default is NO GO for users with 32 inch TV, Full HD skin and bad eyes.
Before i worked on this, i had something like.. OMG what is this....When i opened movieplayer.

I suggest to add a condition for SD and HD skins.


@coolshou: Can you create a PR? ^^


please always use {} for any if condition


Also need to verify lit type


Successfully deployed to following URLs:

* https://yaoyixuan-1ucf9mtcc.now.sh
* https://yaoyixuan.now.sh
* https://yaoyixuan.ymwl5888.now.sh
* https://yaoyixuan-git-master.ymwl5888.now.sh


For some checking purposes


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


Successfully deployed to following URLs:

* https://fitfam-rhfaqc5ui.now.sh
* https://fitfam.me
* https://fitfam.andykay.now.sh
* https://fitfam-git-master.andykay.now.sh


수정요청

----- 수정 전 -----

// 1/1000초로 계산하여 카운트하는 main인 함수
// T 는 1/1000초로 계산하는 와중 멈췄다 다시 시작할 때 더욱 정확하게 하기 위한 인수
// InOut 은 멈췄다면 딱 한 번 '1000-멈췄던 시간' 만큼 돌려 시간의 정확성을 높이기 위한 인수
function Count(T, InOut) {
    // 1 : 2 : 3  -> 01 : 02 : 03  모양 잡아주기위해 사용
    if (Hour >= 0 && Hour < 10) {

`         document.getElementsByName('Hour')[0].value = "0" + Hour;`

    }
    if (Minute >= 0 && Minute < 10) {
`        document.getElementsByName('Minute')[0].value = "0" + Minute;`
    }
    if (Second >= 0 && Second < 10) {
`        document.getElementsByName('Second')[0].value = "0" + Second;`
    }

----- 수정 후 -----

// 1/1000초로 계산하여 카운트하는 main인 함수
// T 는 1/1000초로 계산하는 와중 멈췄다 다시 시작할 때 더욱 정확하게 하기 위한 인수
// InOut 은 멈췄다면 딱 한 번 '1000-멈췄던 시간' 만큼 돌려 시간의 정확성을 높이기 위한 인수
function Count(T, InOut) {
    // 1 : 2 : 3  -> 01 : 02 : 03  모양 잡아주기위해 사용
    if (Hour >= 0 && Hour < 10) {
`        document.getElementsByName('Hour')[0].value = "0" + Number(Hour);`
    }
    if (Minute >= 0 && Minute < 10) {
`        document.getElementsByName('Minute')[0].value = "0" + Number(Minute);`
    }
    if (Second >= 0 && Second < 10) {
`        document.getElementsByName('Second')[0].value = "0" + Number(Second);`
    }


Successfully deployed to following URLs:

* https://ripe-components-vue-15sqr2iki.now.sh
* https://ripe-components-vue.platforme.now.sh
* https://ripe-components-vue-git-master.platforme.now.sh


Successfully deployed to following URLs:

* https://nateradebaughreact-datetime-1dkih9txc.now.sh
* https://nateradebaugh-datetime.now.sh
* https://react-datetime.now.sh
* https://react-datetime.naterad.com
* https://nateradebaugh-react-datetime.nateradebaugh.now.sh
* https://nateradebaugh-react-datetime-git-master.nateradebaugh.now.sh


Please don't use `jdk.internal`


### **Refatorando: 2020-03-01**

Renomeando classe `"Caminho"` para `"Diretorio"`;

**Métodos renomeados:**

**Classe:** Diretorio (antiga classe caminho)

**Métodos:**

1. Caminhos **->** DiretoriosDocTxt;
2. CaminhoOrigem **->** DiretorioOrigem;
3. CaminhoDestino **->** DiretorioDestino;
4. Caminho Enviados **->** DiretorioEnviados.


Successfully deployed to following URLs:

* https://trezycom-mq3t9sj9v.now.sh
* https://trezy.com
* https://trezy.dev
* https://trezycom.trezy.now.sh
* https://trezycom-git-master.trezy.now.sh


### Lipsum Really?

So we ___really___ were not able to find better filler text?


Successfully deployed to following URLs:

* https://whatcolourhoodieiskevinwearingtodaycom-gyg295bb5.now.sh
* https://whatcolourhoodieiskevinwearingtoday.com
* https://whatcolourhoodieiskevinwearingtodaycom.kevincarrogan.now.sh
* https://whatcolourhoodieiskevinwearingtodaycom-git-master.kevincarrogan.now.sh


Successfully deployed to following URLs:

* https://front-end-pp-n7xud7q6k.now.sh
* https://front-end-pp.now.sh
* https://front-end-pp.plantpurpose.now.sh
* https://front-end-pp-git-master.plantpurpose.now.sh


Antes del receso


Successfully deployed to following URLs:

* https://baseweb-13qvpipq0.now.sh
* https://baseweb.uber-ui-platform.now.sh
* https://baseweb-git-master.uber-ui-platform.now.sh


### Lipsum Really?

So we ___really___ were not able to find *better* filler text?


@JuliaRegistrator register


TeamCity Glyssen / Glyssen pull requests 64-bit with SIL NuGet packages [Build *.*.780.8866c39036189c77b3be363d2708360237e1f2fe](https://build.palaso.org/viewLog.html?buildId=176621&buildTypeId=Glyssen_GlyssenPullRequests64bitWithSilNuGetPackages) outcome was **FAILURE**
Summary: Compilation error: Glyssen.sln (new) Build time: 00:00:58


Registration pull request created: [JuliaRegistries/General/7454](https://github.com/JuliaRegistries/General/pull/7454)

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if [Julia TagBot](https://github.com/apps/julia-tagbot) is installed, or can be done manually through the github interface, or via:
```
git tag -a v0.1.4 -m "<description of version>" df9594e8ddfcdc799a087eeff30682d1ead643b3
git push origin v0.1.4
```


Successfully deployed to following URLs:

* https://ndesign-hncnk9ur4.now.sh
* https://ndesign.now.sh
* https://ndesign.noinu.now.sh
* https://ndesign-git-master.noinu.now.sh


Probably should use `stdenv.shell`.


haha no rush!


Successfully deployed to following URLs:

* https://front-end-pp-jeugifmyi.now.sh
* https://front-end-pp.now.sh
* https://front-end-pp.plantpurpose.now.sh
* https://front-end-pp-git-master.plantpurpose.now.sh


These removed lines might have had a reason, for plugins? Not sure...


![Difference between blocks](https://raw.githubusercontent.com/2ndclemens/pergamon-arcade/636ca9e43881442707f40d6af315f6f167b4092b/.makecode/blocksdiff.png)


Braces not needed here


>
>
> for constructs like message_str, this won't work.

Oh, OK, I test with line 117 (no construct) and now it works.
But I thought constructed cases are pretty common in dialog?


Successfully deployed to following URLs:

* https://fantastic-robot-fsoaux0ds.now.sh
* https://fantastic-robot.now.sh
* https://fantastic-robot.ivangrimes.now.sh
* https://fantastic-robot-git-master.ivangrimes.now.sh


Successfully deployed to following URLs:

* https://xero-to-bankline-5nexudq17.now.sh
* https://xero-to-bankline.now.sh
* https://xero-to-bankline.rorymal.com
* https://xero-to-bankline.rorymalcolm.now.sh
* https://xero-to-bankline-git-master.rorymalcolm.now.sh


Updated a usercontroller


Successfully deployed to following URLs:

* https://pacman-react-r79mtyvx9.now.sh
* https://pacman-react.now.sh
* https://pacman-react.github78.now.sh
* https://pacman-react-git-master.github78.now.sh


Successfully deployed to following URLs:

* https://city-dev-client-ibbamjj73.now.sh
* https://city-dev-client.now.sh
* https://city-dev-client.bomjfedosei.now.sh
* https://city-dev-client-git-master.bomjfedosei.now.sh


Successfully deployed to following URLs:

* https://chargstation-fcxtufveg.now.sh
* https://chargstation.now.sh
* https://chargstation.abiodunjames.now.sh
* https://chargstation-git-master.abiodunjames.now.sh


Successfully deployed to following URLs:

* https://sr-fe-v2-pttq35chc.now.sh
* https://sr-fe-v2.now.sh
* https://sonurai.com
* https://sr-fe-v2.arai.now.sh
* https://sr-fe-v2-git-master.arai.now.sh


Successfully deployed to following URLs:

* https://xero-to-bankline-45bbrmxk4.now.sh
* https://xero-to-bankline.now.sh
* https://xero-to-bankline.rorymal.com
* https://xero-to-bankline.rorymalcolm.now.sh
* https://xero-to-bankline-git-master.rorymalcolm.now.sh


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/W9qsf1kqxbrBYdQ8axy7sGKg/repo/examples/official-storybook/built-storybooks/angular-cli'
~~~


He


Successfully deployed to following URLs:

* https://xxiv-memories-oa4b34o2i.now.sh
* https://xxiv-memories.now.sh
* https://devierdedimensie.nl
* https://xxiv-memories.techmaus.now.sh
* https://xxiv-memories-git-master.techmaus.now.sh


I would be great to see a comment discussing how the total is used, how it might change, etc.


When `cmd->commandNumber` is 0, caller stack layout is different and `sendPacket` is invalid.


Successfully deployed to following URLs:

* https://taverntainmentcom-ohu65bset.now.sh
* https://taverntainment.now.sh
* https://taverntainmentcom.madebyglutard1.now.sh
* https://taverntainmentcom-git-master.madebyglutard1.now.sh


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


It looks like you're never changing total at all? Only setting and resetting total2. You probably don't need both variables then, you could just use one.


I'll update our docs accordingly to avoid further confusion :)


![](https://github.trello.services/images/mini-trello-icon.png) [Notification empties all fields! State variables everywhere to avoid this?](https://trello.com/c/dtTtNIY5/260-notification-empties-all-fields-state-variables-everywhere-to-avoid-this)


Would it look like:

```solidity
if(amount % 3 != 0){
    amount.sub(1);
    balances[msg.sender] = balances[msg.sender].add(1); // Used SafeMath
}
```
?


Yes. I did figured this out too, after committing the change.

Thanks nevertheless :-)


I think typographically speaking only the input should be after the colon.  So I'd prefer this:
`Delete buffer(s) [0/2]: foobar`.


@msavy While I was creating a test for #790 I noticed the folder `prepare`.
The test files in this folder are never used. See e.g. https://github.com/apiman/apiman/search?q=001_create_plan.resttest

Can we delete this folder or was it intended as example structure?


Successfully deployed to following URLs:

* https://reader-8x5cpg2o9.now.sh
* https://reader.oacore.now.sh
* https://reader-git-master.oacore.now.sh


EnhanceOutdoorAirReporting (JasonGlazer) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-UnitTestsCoverage-Debug: OK (1254 of 1254 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-43.52%25-green.png)


Ah yes. I wrote in pseudo code 😬


It also makes it clearer that the use can type something.  Otherwise it feels that `[0/2]` is already the input of the prompt.


1) 서블릿이란? 작성코드


one connection,  many cursors used one by one, data changes ,is cursor know that during cursor active time?


вот таких штуковин в тестах не должно быть. чем больше логики в тестах, тем больше вероятность багов


Successfully deployed to following URLs:

* https://website-h9cronl4h.now.sh
* https://jaydickson.net
* https://www.jaydickson.net
* https://website.jaydickson02.now.sh
* https://website-git-master.jaydickson02.now.sh


This is the exact if statement at the bottom - maybe we should factor this out to a method with some clear name so  we can have this patch contained in one clear spot


1. 프론트 혼자 개발하면서 < 프론트엔드`를` 혼자 개발하면서. 조사를 생략하면 문장이 어색해집니다.

2. 사용자가 생기는것을 < 내가 만든 서비스를 다른 사람들이 사용하는 상황을 처음 경험했다.

3. 서비스뽕 < 비속어를 쓸때는 ~strike~, `강조` 등을 사용하면 좋습니다.

4. 그 후로 유지보수하다가 < 그 후로 이 `서비스`를 유지보수 하다가. 무엇을 유지보수 하는건가요? 주어가 생략되면 어색한 문장입니다.

5. `트루오더`, `내곁에 김사부`는 웹뷰로 개발되었고, 지금회사 와서 반응형 웹을 처음 해봤는데 시작할때 많이 버벅거렸던게 생각난다. < A and B의 문장 구조인데, A와 B의 상관관계가 적어보입니다. 웹뷰로 개발된 것과 반응형웹을 버벅거렸던 것이 어떤 상관관계가 있나요? 문장을 둘로 나눠보세요.


best code


Successfully deployed to following URLs:

* https://live-pelican-1wr60ls3r.now.sh
* https://live-pelican.now.sh
* https://live-pelican.epsi.now.sh
* https://live-pelican-git-master.epsi.now.sh


이런와중에 신기하게도 `내곁에 김사부`가 사용자와 매출이 바로 생기고 있다. 그렇지만 내 기술적 고민들은 아직 해결 못했고, 해결하려고 노력 중이다. < 두 문장의 위치를 바꾸면 조금 더 자연스러울 것 같습니다.


:+1: alright by me! I'd be good either removing the rest, or leaving them since they _are_ still listed in docs as `= null`.


1. 코드리뷰에 갈증이 나있는 상태였다. < 어색하지는 않지만, 다음과 같이 바꿔보면 어떨까요? 코드리뷰에 갈증을 느끼는 상태였다.

2. 남편이 추천해준 스터디에 등록하고 참여했다. < 문장 앞에 그래서, 그랬기때문에 등 연결어구를 붙여주면 좀 더 자연스러울 것 같습니다.


`elasticsearch2/target`

@hsuanyi , unfortunately, Autostyle does not handle `.gitignore` files yet, and it looks like the violations are found in the old folders.

Do you think you could remove the stale `elasticsearch2` and `elasticsearch5` folders?


Successfully deployed to following URLs:

* https://hanshenrikcom-4kp1r0t0s.now.sh
* https://hanshenrik.com
* https://www.hanshenrik.com
* https://hanshenrikcom.hanshenrik.now.sh
* https://hanshenrikcom-git-master.hanshenrik.now.sh


Successfully deployed to following URLs:

* https://live-pelican-j52iz8fuv.now.sh
* https://live-pelican.now.sh
* https://live-pelican.epsi.now.sh
* https://live-pelican-git-master.epsi.now.sh


이거는 모에요??


1. 다 다르게 구현한다. (생각이 다 다르다.) > 다 다르게 구현한다(생각이 다 다르다).

2. 코드리뷰에 갈증 나있는 사람들이 들으면 도움이 많이 될 것 같다. > 위의 표현과 겹치는데, 비슷한 다른 표현을 찾아보는게 어떨까요? 코드리뷰가 절실한 사람들이 들으면 도움이 많이 될 것 같다.


Successfully deployed to following URLs:

* https://dailylistgithubio-60a8wyx6o.now.sh
* https://dailylist.now.sh
* https://mark.now.sh
* https://index.now.sh
* https://dailylistgithubio.shenmark201401.now.sh
* https://dailylistgithubio-git-master.shenmark201401.now.sh


20200103 cw
created models/db.js with the code from the README.md file lines 27-56 + additions/modifications
created routes/db.js with the code from the README.md file lines 65-121, modifying the 'commenter' lines 105-108 to 'user'


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 017a9d8f07c826fe4e48e5ca803620e09bc4d92f.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


Fix is in Line 133, if `crop_img` is not empty then only we go onto `cv2.imwrite`. Here cropped image is empty have to investigate reason, why this is the case.


permissions change to 755 intentional?


Successfully deployed to following URLs:

* https://python-django-k4ptpe88o.now.sh
* https://python-django.refnode.now.sh
* https://python-django-git-master.refnode.now.sh


Successfully deployed to following URLs:

* https://tadao-vue-ajdgc9kz5.now.sh
* https://tadao-vue.now.sh
* https://tadao-vue.iigethr.now.sh
* https://tadao-vue-git-master.iigethr.now.sh


Successfully deployed to following URLs:

* https://pool-project-front-end-ktnr630md.now.sh
* https://pool-project-front-end.now.sh
* https://ladder.telfordpool.tv
* https://pool-project-front-end.mattlocklin.now.sh
* https://pool-project-front-end-git-master.mattlocklin.now.sh


Successfully deployed to following URLs:

* https://icd10-search-gm7yk2y6d.now.sh
* https://icd10-search.now.sh
* https://icd10-search.jordanchristie116.now.sh
* https://icd10-search-git-master.jordanchristie116.now.sh


Successfully deployed to following URLs:

* https://code2go-k0hakxdx9.now.sh
* https://*.code2go.dev
* https://code2go.dev
* https://code2go.medienwerk.now.sh
* https://code2go-git-master.medienwerk.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 944e10b2d08e6cf79c5f7090fcdf3faf1053a373.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


@textbook It took me the whole day, but finally i got it!!, very interesting approach to combine sorting and filtering in a single Observable.
The TS Documentation its good, but the examples seems to be very simple compared with your Generic Type Stuff.
You definitely got my star!

Sorry for that, because thats not the right place to drop it, thank you anyway!


Successfully deployed to following URLs:

* https://design-system-ihuo3gksa.now.sh
* https://components.undataforum.org
* https://design-system.undataforum.now.sh
* https://design-system-git-master.undataforum.now.sh


Successfully deployed to following URLs:

* https://itsuportegithubio-a31e0bg0e.now.sh
* https://itsuportegithubio.itsuporte.now.sh
* https://itsuportegithubio-git-master.itsuporte.now.sh


Successfully deployed to following URLs:

* https://interface-c6bi49syq.now.sh
* https://interface.avantgarde-finance.now.sh
* https://interface-git-master.avantgarde-finance.now.sh


Successfully deployed to following URLs:

* https://emoji-industries-7y45iap8j.now.sh
* https://emoji.industries
* https://emoji-industries.ianowhite.now.sh
* https://emoji-industries-git-master.ianowhite.now.sh