From b2a00e93734ce4fa9c23a96896a3ebdde416897e Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 17 Jul 2019 13:52:26 +0200
Subject: [PATCH 01/10] Enhanced calculators list entertaining capacity

---
 package-lock.json                               |   5 +++++
 package.json                                    |   3 ++-
 src/app/app.module.ts                           |   4 +++-
 .../calculator-list.component.html              |   2 +-
 .../calculator-list.component.ts                |   7 +++++++
 src/assets/images/themes/sp.jpg                 | Bin 0 -> 37907 bytes
 6 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 src/assets/images/themes/sp.jpg

diff --git a/package-lock.json b/package-lock.json
index 7e3b638dd..e43b61116 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9585,6 +9585,11 @@
       "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
       "dev": true
     },
+    "ngx-konami": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/ngx-konami/-/ngx-konami-1.6.0.tgz",
+      "integrity": "sha512-no/NocDjFnGw5XlNlj6LavP2YA3NxEg3eIHylU9dblkl5JgcfIEw3YntRs9/3OUSnVZGhZSNZkO35sY2AGtkoA=="
+    },
     "ngx-material-file-input": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ngx-material-file-input/-/ngx-material-file-input-1.1.1.tgz",
diff --git a/package.json b/package.json
index 158b1dc92..66b472b9d 100644
--- a/package.json
+++ b/package.json
@@ -58,6 +58,7 @@
     "jalhyd": "file:../jalhyd",
     "material-design-icons": "^3.0.1",
     "mathjax": "^2.7.5",
+    "ngx-konami": "^1.6.0",
     "ngx-material-file-input": "^1.1.1",
     "ngx-md": "^7.0.0",
     "ngx-webstorage-service": "^4.0.1",
@@ -106,4 +107,4 @@
       "android"
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index c9ec24010..19cc15e1e 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -28,6 +28,7 @@ import {
 import { MaterialFileInputModule } from "ngx-material-file-input";
 
 import {TableModule} from "primeng/components/table/table";
+import { KonamiModule } from "ngx-konami";
 
 import { FlexLayoutModule } from "@angular/flex-layout";
 import {
@@ -148,7 +149,8 @@ const appRoutes: Routes = [
       }
     ),
     StorageServiceModule,
-    TableModule
+    TableModule,
+    KonamiModule
   ],
   declarations: [ // composants, pipes et directives
     AppComponent,
diff --git a/src/app/components/calculator-list/calculator-list.component.html b/src/app/components/calculator-list/calculator-list.component.html
index 1f83baffb..65ea10765 100644
--- a/src/app/components/calculator-list/calculator-list.component.html
+++ b/src/app/components/calculator-list/calculator-list.component.html
@@ -1,4 +1,4 @@
-<div class="container" fxLayout="row wrap" fxLayoutAlign="space-evenly stretch">
+<div class="container" fxLayout="row wrap" fxLayoutAlign="space-evenly stretch" (konami)="onKC()">
 
     <mat-card class="welcome-card" *ngIf="nbOpenCalculators === 0">
 
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index c4acb05d6..d58d2758e 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -142,6 +142,13 @@ export class CalculatorListComponent implements OnInit {
         return ServiceFactory.instance.i18nService.localizeText("INFO_WELCOME_CONTENT");
     }
 
+    public onKC() {
+        for (const i of this.items) {
+            i.image.path = "assets/images/themes/sp.jpg";
+            i.image.credits = "lol";
+        }
+    }
+
     // interface Observer
 
     update(sender: any, data: any): void {
diff --git a/src/assets/images/themes/sp.jpg b/src/assets/images/themes/sp.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7591c7594f0ae476461fb9aa4831e5ae8a8b9b11
GIT binary patch
literal 37907
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

literal 0
HcmV?d00001

-- 
GitLab


From 4665ec2c06973a8198b56f9fcea96cebcf21fa9c Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 17 Jul 2019 15:39:39 +0200
Subject: [PATCH 02/10] Update to Angular 8

---
 browserslist                                  |   12 +
 package-lock.json                             | 3311 +++++++----------
 package.json                                  |   42 +-
 protractor.conf.js                            |    2 +-
 src/app/app.component.ts                      |    9 +-
 .../calculator-results.component.ts           |    8 +-
 src/app/components/canvas/canvas.component.ts |    2 +-
 .../dialog-confirm-close-calc.component.ts    |    2 +-
 .../dialog-confirm-empty-session.component.ts |    2 +-
 .../dialog-edit-param-computed.component.ts   |    2 +-
 .../dialog-load-session.component.ts          |    2 +-
 .../dialog-save-session.component.ts          |    2 +-
 .../field-set/field-set.component.ts          |    8 +-
 .../fixed-results.component.ts                |    3 +-
 .../fixedvar-results.component.ts             |   12 +-
 .../fixedvar-results/var-results.component.ts |    3 +-
 .../calculator.component.ts                   |   10 +-
 .../generic-input/generic-input.component.ts  |    3 +-
 .../pab-profile-graph.component.ts            |    2 +-
 .../pab-results-table.component.ts            |    3 +-
 .../pab-results/pab-results.component.ts      |   20 +-
 .../param-field-line.component.ts             |    9 +-
 .../remous-results.component.ts               |    4 +-
 .../results-graph/results-graph.component.ts  |    4 +-
 .../section-canvas.component.ts               |    2 +-
 .../section-results.component.ts              |    2 +-
 src/app/formulaire/fieldset.ts                |    2 +-
 src/app/formulaire/formulaire-element.ts      |    2 +-
 src/app/services/http/http.service.ts         |    1 -
 .../notifications/notifications.service.ts    |    2 +-
 src/tsconfig.app.json                         |    1 -
 src/tsconfig.spec.json                        |    1 -
 tsconfig.json                                 |    5 +-
 tslint.json                                   |    8 +-
 34 files changed, 1421 insertions(+), 2082 deletions(-)
 create mode 100644 browserslist

diff --git a/browserslist b/browserslist
new file mode 100644
index 000000000..80848532e
--- /dev/null
+++ b/browserslist
@@ -0,0 +1,12 @@
+# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+
+# You can see what browsers were selected by your queries by running:
+#   npx browserslist
+
+> 0.5%
+last 2 versions
+Firefox ESR
+not dead
+not IE 9-11 # For IE 9-11 support, remove 'not'.
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index c11f7aba2..40c3b2a78 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,19 +11,19 @@
       "dev": true
     },
     "@angular-devkit/architect": {
-      "version": "0.13.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.9.tgz",
-      "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==",
+      "version": "0.801.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.801.1.tgz",
+      "integrity": "sha512-Y+4kDpZeh+uIr179gbkpRcyeLizd94sC608TM8XQLM2+sgUB9PoW/KBotuED9Rjlvui4yURQm4UU8LnCsNqWSQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "7.3.9",
-        "rxjs": "6.3.3"
+        "@angular-devkit/core": "8.1.1",
+        "rxjs": "6.4.0"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -32,62 +32,65 @@
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.13.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.9.tgz",
-      "integrity": "sha512-onh07LhdxotDFjja0KKsDWNCwgpM/ymuRr5h0e+vT4AgklP2Uioz1CpzVOgxPIKkdVdGR9QgDinVsWAmY90J8g==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.13.9",
-        "@angular-devkit/build-optimizer": "0.13.9",
-        "@angular-devkit/build-webpack": "0.13.9",
-        "@angular-devkit/core": "7.3.9",
-        "@ngtools/webpack": "7.3.9",
-        "ajv": "6.9.1",
-        "autoprefixer": "9.4.6",
+      "version": "0.801.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.801.1.tgz",
+      "integrity": "sha512-t0A0KX++PX74xh113fiSb7g2Vo0P8aJQ0DODHANrgP3Tg21yskx8PhGeY7Lp/11irtfrk3LCDfQYLCgPAsNJFg==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.801.1",
+        "@angular-devkit/build-optimizer": "0.801.1",
+        "@angular-devkit/build-webpack": "0.801.1",
+        "@angular-devkit/core": "8.1.1",
+        "@ngtools/webpack": "8.1.1",
+        "ajv": "6.10.0",
+        "autoprefixer": "9.6.0",
+        "browserslist": "4.6.3",
+        "caniuse-lite": "1.0.30000979",
         "circular-dependency-plugin": "5.0.2",
         "clean-css": "4.2.1",
-        "copy-webpack-plugin": "4.6.0",
-        "file-loader": "3.0.1",
-        "glob": "7.1.3",
+        "copy-webpack-plugin": "5.0.3",
+        "core-js": "3.1.4",
+        "file-loader": "4.0.0",
+        "glob": "7.1.4",
         "istanbul-instrumenter-loader": "3.0.1",
-        "karma-source-map-support": "1.3.0",
+        "karma-source-map-support": "1.4.0",
         "less": "3.9.0",
-        "less-loader": "4.1.0",
-        "license-webpack-plugin": "2.1.0",
+        "less-loader": "5.0.0",
+        "license-webpack-plugin": "2.1.1",
         "loader-utils": "1.2.3",
-        "mini-css-extract-plugin": "0.5.0",
+        "mini-css-extract-plugin": "0.7.0",
         "minimatch": "3.0.4",
-        "node-sass": "4.12.0",
-        "open": "6.0.0",
+        "open": "6.4.0",
         "parse5": "4.0.0",
-        "postcss": "7.0.14",
+        "postcss": "7.0.17",
         "postcss-import": "12.0.1",
         "postcss-loader": "3.0.0",
         "raw-loader": "1.0.0",
-        "rxjs": "6.3.3",
+        "rxjs": "6.4.0",
+        "sass": "1.22.2",
         "sass-loader": "7.1.0",
-        "semver": "5.6.0",
+        "semver": "6.2.0",
         "source-map-loader": "0.2.4",
-        "source-map-support": "0.5.10",
+        "source-map-support": "0.5.12",
         "speed-measure-webpack-plugin": "1.3.1",
-        "stats-webpack-plugin": "0.7.0",
         "style-loader": "0.23.1",
         "stylus": "0.54.5",
         "stylus-loader": "3.0.2",
-        "terser-webpack-plugin": "1.2.2",
+        "terser-webpack-plugin": "1.3.0",
         "tree-kill": "1.2.1",
-        "webpack": "4.29.0",
-        "webpack-dev-middleware": "3.5.1",
-        "webpack-dev-server": "3.1.14",
+        "webpack": "4.35.2",
+        "webpack-dev-middleware": "3.7.0",
+        "webpack-dev-server": "3.7.2",
         "webpack-merge": "4.2.1",
         "webpack-sources": "1.3.0",
-        "webpack-subresource-integrity": "1.1.0-rc.6"
+        "webpack-subresource-integrity": "1.1.0-rc.6",
+        "worker-plugin": "3.1.0"
       },
       "dependencies": {
         "ajv": {
-          "version": "6.9.1",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
-          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "version": "6.10.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+          "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^2.0.1",
@@ -96,205 +99,39 @@
             "uri-js": "^4.2.2"
           }
         },
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-          "dev": true
-        },
-        "cliui": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0",
-            "wrap-ansi": "^2.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "decamelize": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
-          "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
-          "dev": true,
-          "requires": {
-            "xregexp": "4.0.0"
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "invert-kv": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
-          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "lcid": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
-          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
-          "dev": true,
-          "requires": {
-            "invert-kv": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "mime": {
-          "version": "2.4.4",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
-          "dev": true
-        },
-        "os-locale": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
-          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
-          "dev": true,
-          "requires": {
-            "execa": "^1.0.0",
-            "lcid": "^2.0.0",
-            "mem": "^4.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
-          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+        "core-js": {
+          "version": "3.1.4",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz",
+          "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==",
           "dev": true
         },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+        "glob": {
+          "version": "7.1.4",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+          "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
           "dev": true,
           "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
           }
         },
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
           }
         },
         "semver": {
-          "version": "5.6.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
+          "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
           "dev": true
         },
         "source-map": {
@@ -304,143 +141,26 @@
           "dev": true
         },
         "source-map-support": {
-          "version": "0.5.10",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz",
-          "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==",
+          "version": "0.5.12",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
+          "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
           "dev": true,
           "requires": {
             "buffer-from": "^1.0.0",
             "source-map": "^0.6.0"
           }
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        },
-        "webpack-dev-server": {
-          "version": "3.1.14",
-          "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz",
-          "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==",
-          "dev": true,
-          "requires": {
-            "ansi-html": "0.0.7",
-            "bonjour": "^3.5.0",
-            "chokidar": "^2.0.0",
-            "compression": "^1.5.2",
-            "connect-history-api-fallback": "^1.3.0",
-            "debug": "^3.1.0",
-            "del": "^3.0.0",
-            "express": "^4.16.2",
-            "html-entities": "^1.2.0",
-            "http-proxy-middleware": "~0.18.0",
-            "import-local": "^2.0.0",
-            "internal-ip": "^3.0.1",
-            "ip": "^1.1.5",
-            "killable": "^1.0.0",
-            "loglevel": "^1.4.1",
-            "opn": "^5.1.0",
-            "portfinder": "^1.0.9",
-            "schema-utils": "^1.0.0",
-            "selfsigned": "^1.9.1",
-            "semver": "^5.6.0",
-            "serve-index": "^1.7.2",
-            "sockjs": "0.3.19",
-            "sockjs-client": "1.3.0",
-            "spdy": "^4.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^5.1.0",
-            "url": "^0.11.0",
-            "webpack-dev-middleware": "3.4.0",
-            "webpack-log": "^2.0.0",
-            "yargs": "12.0.2"
-          },
-          "dependencies": {
-            "webpack-dev-middleware": {
-              "version": "3.4.0",
-              "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
-              "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
-              "dev": true,
-              "requires": {
-                "memory-fs": "~0.4.1",
-                "mime": "^2.3.1",
-                "range-parser": "^1.0.3",
-                "webpack-log": "^2.0.0"
-              }
-            }
-          }
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "12.0.2",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
-          "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
-          "dev": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^2.0.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^3.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1 || ^4.0.0",
-            "yargs-parser": "^10.1.0"
-          }
-        },
-        "yargs-parser": {
-          "version": "10.1.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
-          "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          }
         }
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.13.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.9.tgz",
-      "integrity": "sha512-GQtCntthQHSBv5l1ZY5p00JOECb/WcE1qUBo5kFjp84z0fszDkhOy52M1kcWCX4PFzJaY4DKk58hbUE/2UN0jw==",
+      "version": "0.801.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.801.1.tgz",
+      "integrity": "sha512-/pB1PMJO5K4qSpBsXSNOjol4LO1w64WWEeqOIGZUnva0OSLkPiLCvuLNtfMl8am2FkodbsRORDGuCKOzVP8j8Q==",
       "dev": true,
       "requires": {
         "loader-utils": "1.2.3",
         "source-map": "0.5.6",
-        "typescript": "3.2.4",
+        "typescript": "3.4.5",
         "webpack-sources": "1.3.0"
       },
       "dependencies": {
@@ -449,30 +169,25 @@
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
           "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
           "dev": true
-        },
-        "typescript": {
-          "version": "3.2.4",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
-          "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
-          "dev": true
         }
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.13.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.9.tgz",
-      "integrity": "sha512-6ypu6pzNmQxzATF4rTWEhGSl5hyGQ8a/3aCZF/ux+XGc3d4hi2HW+NWlDm1UEna6ZjNtgEPlgfP4q8BKrjRmfA==",
+      "version": "0.801.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.801.1.tgz",
+      "integrity": "sha512-3siH/wqWjvxciniggTu2QrrLLHj1yZ81HTnRx/t8W3Qk06MTq31F7WAB3XLAE4j0W2CJJBxQq08M39uKpsXzSA==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.13.9",
-        "@angular-devkit/core": "7.3.9",
-        "rxjs": "6.3.3"
+        "@angular-devkit/architect": "0.801.1",
+        "@angular-devkit/core": "8.1.1",
+        "rxjs": "6.4.0",
+        "webpack-merge": "4.2.1"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -481,22 +196,22 @@
       }
     },
     "@angular-devkit/core": {
-      "version": "7.3.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz",
-      "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.1.1.tgz",
+      "integrity": "sha512-Wq/6HOkT3gSOQRiSmHijzy/bzEqzI44Ho4S/NIZ192M/m28f46Neu2LV9juniQKnAAZ8RmHnXecxq3KjvCRkNg==",
       "dev": true,
       "requires": {
-        "ajv": "6.9.1",
-        "chokidar": "2.0.4",
+        "ajv": "6.10.0",
         "fast-json-stable-stringify": "2.0.0",
-        "rxjs": "6.3.3",
+        "magic-string": "0.25.3",
+        "rxjs": "6.4.0",
         "source-map": "0.7.3"
       },
       "dependencies": {
         "ajv": {
-          "version": "6.9.1",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
-          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "version": "6.10.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+          "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^2.0.1",
@@ -506,9 +221,9 @@
           }
         },
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -517,19 +232,19 @@
       }
     },
     "@angular-devkit/schematics": {
-      "version": "7.3.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.9.tgz",
-      "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.1.1.tgz",
+      "integrity": "sha512-Hzq3eFo33XsWe5q4tFq7kxDAE4ZbTeBySLsgqRd6m3gjGOjYUpAa5dlXdsPtZlOI5/LfR/1j1ALutf/6RG3ugw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "7.3.9",
-        "rxjs": "6.3.3"
+        "@angular-devkit/core": "8.1.1",
+        "rxjs": "6.4.0"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -538,17 +253,17 @@
       }
     },
     "@angular/animations": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.15.tgz",
-      "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.1.1.tgz",
+      "integrity": "sha512-9P9Yyf2/IUMs0MR4CfthBaMdizbTh8dDSLJHhMw1PjxPQ3c6mn74uY46NyxcJnCxII9oA2pnnV/O+10JFUFKMw==",
       "requires": {
         "tslib": "^1.9.0"
       }
     },
     "@angular/cdk": {
-      "version": "7.3.7",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.3.7.tgz",
-      "integrity": "sha512-xbXxhHHKGkVuW6K7pzPmvpJXIwpl0ykBnvA2g+/7Sgy5Pd35wCC+UtHD9RYczDM/mkygNxMQtagyCErwFnDtQA==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-8.1.1.tgz",
+      "integrity": "sha512-5hBmhrHf9+WjGVIT8gbhT0Nh37BAjgI2TGRkt1o4qX8cG+1B6gU2MxM+CDJ7PhxSJi9lW93lq2AMuWwnRSllyg==",
       "requires": {
         "parse5": "^5.0.0",
         "tslib": "^1.7.1"
@@ -563,54 +278,80 @@
       }
     },
     "@angular/cli": {
-      "version": "7.3.9",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.9.tgz",
-      "integrity": "sha512-7oJj7CKDlFUbQav1x1CV4xKKcbt0pnxY4unKcm7Q1tVXhu8bU2bc3cDA0aJnbofcYb6TJcd/C2qHgCt78q7edA==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.1.1.tgz",
+      "integrity": "sha512-7EXTjS7XXZyWhW4JMuGRRSLmdn8KSWK41xoAiod8P6csJkGgsmFGLs2QkZd/mvGnU9rOKaNkEjHPI9QO+iprxw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.13.9",
-        "@angular-devkit/core": "7.3.9",
-        "@angular-devkit/schematics": "7.3.9",
-        "@schematics/angular": "7.3.9",
-        "@schematics/update": "0.13.9",
+        "@angular-devkit/architect": "0.801.1",
+        "@angular-devkit/core": "8.1.1",
+        "@angular-devkit/schematics": "8.1.1",
+        "@schematics/angular": "8.1.1",
+        "@schematics/update": "0.801.1",
         "@yarnpkg/lockfile": "1.1.0",
+        "ansi-colors": "4.1.0",
+        "debug": "^4.1.1",
         "ini": "1.3.5",
-        "inquirer": "6.2.1",
+        "inquirer": "6.4.1",
         "npm-package-arg": "6.1.0",
-        "open": "6.0.0",
-        "pacote": "9.4.0",
-        "semver": "5.6.0",
-        "symbol-observable": "1.2.0"
+        "open": "6.4.0",
+        "pacote": "9.5.1",
+        "read-package-tree": "5.3.1",
+        "semver": "6.2.0",
+        "symbol-observable": "1.2.0",
+        "universal-analytics": "^0.4.20",
+        "uuid": "^3.3.2"
       },
       "dependencies": {
+        "ansi-colors": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.0.tgz",
+          "integrity": "sha512-3NkLpm6I6kEgC8J0I9EZ0fouXc/mm5J9zqJFCgA2jGqmsL0O64I7Uvi3AmUMnnRqc6u7uLgVVnY4pyBQ03nCiw==",
+          "dev": true
+        },
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        },
         "semver": {
-          "version": "5.6.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
+          "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
           "dev": true
         }
       }
     },
     "@angular/common": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.15.tgz",
-      "integrity": "sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.1.1.tgz",
+      "integrity": "sha512-kgLtexfPhAyNFlwJHKBkpwKyt/19pfULIJWJpUahFqXdYE3LkRNMJQqgfz7DCNpAQxG7B6u4ocq1j2Hx206kxw==",
       "requires": {
         "tslib": "^1.9.0"
       }
     },
     "@angular/compiler": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.15.tgz",
-      "integrity": "sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.1.1.tgz",
+      "integrity": "sha512-wz8Mc45EGax5RKRYYqgXI8lr1d0w+f9BDbHui7b3hQtKM5Mj1QxLXiSOYX0dt3lG4VzrxpO0Xku5tS3D4T1xxQ==",
       "requires": {
         "tslib": "^1.9.0"
       }
     },
     "@angular/compiler-cli": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz",
-      "integrity": "sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.1.1.tgz",
+      "integrity": "sha512-nGN+AqNgi4qsh+4c2Tmtg7/v/mG62sDkjPttra1pUPI6cJS9Y4bA+PBEIW1UsR5OcD85qvNK4vliw2YdLtaeuw==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
@@ -623,21 +364,9 @@
         "shelljs": "^0.8.1",
         "source-map": "^0.6.1",
         "tslib": "^1.9.0",
-        "yargs": "9.0.1"
+        "yargs": "13.1.0"
       },
       "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-          "dev": true
-        },
         "chokidar": {
           "version": "2.1.6",
           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
@@ -658,65 +387,6 @@
             "upath": "^1.1.1"
           }
         },
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
-          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "load-json-file": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
-          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "strip-bom": "^3.0.0"
-          }
-        },
-        "mem": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
-          "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
-          "dev": true,
-          "requires": {
-            "mimic-fn": "^1.0.0"
-          }
-        },
-        "mimic-fn": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-          "dev": true
-        },
         "minimist": {
           "version": "1.2.0",
           "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
@@ -729,138 +399,24 @@
           "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
           "dev": true
         },
-        "os-locale": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
-          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
-          "dev": true,
-          "requires": {
-            "execa": "^0.7.0",
-            "lcid": "^1.0.0",
-            "mem": "^1.1.0"
-          }
-        },
-        "path-type": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
-          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
-          "dev": true,
-          "requires": {
-            "pify": "^2.0.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "read-pkg": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
-          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^2.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^2.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
-          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
-          "dev": true,
-          "requires": {
-            "find-up": "^2.0.0",
-            "read-pkg": "^2.0.0"
-          }
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true
         },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        },
         "upath": {
           "version": "1.1.2",
           "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
           "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
           "dev": true
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "y18n": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "9.0.1",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
-          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0",
-            "cliui": "^3.2.0",
-            "decamelize": "^1.1.1",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^2.0.0",
-            "read-pkg-up": "^2.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^7.0.0"
-          }
-        },
-        "yargs-parser": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
-          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          }
         }
       }
     },
     "@angular/core": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.15.tgz",
-      "integrity": "sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.1.1.tgz",
+      "integrity": "sha512-B6x8IZeu0Qm2H13leEcNzsx0pGKHMvowziurvDnm7W97MaVrYrgbelNsnly4wNX91FzdBtSVXqbe3jijAD9kjA==",
       "requires": {
         "tslib": "^1.9.0"
       }
@@ -874,55 +430,47 @@
       }
     },
     "@angular/forms": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.15.tgz",
-      "integrity": "sha512-p0kcIQLtBBC1qeTA6M3nOuXf/k91E80FKquVM9zEsO2kDjI0oZJVfFYL2UMov5samlJOPN+t6lRHEIUa7ApPsw==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/http": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.15.tgz",
-      "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.1.1.tgz",
+      "integrity": "sha512-jz05UIiIY2Zz/nEveL4Pm9mVCAd5O6JwVDWTHKQ64nKYIN9Nepzgb0ASeOBEZA4qP82KTGJtUm2AN4L7fXN6Pw==",
       "requires": {
         "tslib": "^1.9.0"
       }
     },
     "@angular/language-service": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.15.tgz",
-      "integrity": "sha512-Ig5Jr7mnDelaZvSbUd9YhI5am3q1ku9xelAuwvtyDKvQJeKQj3BtTagcOgWrnQBfrJ/FsA/M5Zo48ncSsV0tqQ==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.1.1.tgz",
+      "integrity": "sha512-72ILJBDGhmXUsufxjDT1dzt0oOV7EHWUePgk4xv2s9/gg/xeB0XEDv+AH4LNcYKrbUWyZj7/z7wPzJe+K5PfKQ==",
       "dev": true
     },
     "@angular/material": {
-      "version": "7.3.7",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.3.7.tgz",
-      "integrity": "sha512-Eq+7frkeNGkLOfEtmkmJgR+AgoWajOipXZWWfCSamNfpCcPof82DwvGOpAmgGni9FuN2XFQdqP5MoaffQzIvUA==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-8.1.1.tgz",
+      "integrity": "sha512-45aaxKuLTrthzhAhG2+OY86wafuRBteZcRjDG7rKZ3Cc3KteUp5QwAi+QbhHzs4O3WXLWTAmuLYJelRqRqqw7g==",
       "requires": {
         "tslib": "^1.7.1"
       }
     },
     "@angular/platform-browser": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.15.tgz",
-      "integrity": "sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.1.1.tgz",
+      "integrity": "sha512-uP9UIhi9NYTEbfvNj4misBspXkItFopA2pRk083AhHEhOKs79WvMI15w5H5ziIFeH+4UiCvyKrSnPfcjP+Yrvg==",
       "requires": {
         "tslib": "^1.9.0"
       }
     },
     "@angular/platform-browser-dynamic": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz",
-      "integrity": "sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.1.1.tgz",
+      "integrity": "sha512-yUazvP4IBNgXjbzo+NKmu7lVYrrplAN3HSkgYszXwd9uvWLtk1CtXER5hSJE5ZE3Lawoh7PU5hOfMYbqtdAbwg==",
       "requires": {
         "tslib": "^1.9.0"
       }
     },
     "@angular/router": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.15.tgz",
-      "integrity": "sha512-qAubRJRQanguUqJQ76J9GSZ4JFtoyhJKRmX5P23ANZJXpB6YLzF2fJmOGi+E6cV8F0tKBMEq1pjxFTisx0MXwQ==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.1.1.tgz",
+      "integrity": "sha512-UTL/TjokRUd3hdePBrj1ITmBGq+EcVNz3D18lFi96461ZLQeXSbbf3vjQfL6SE53E4+hfKKR7/tOqQOgb5br7A==",
       "requires": {
         "tslib": "^1.9.0"
       }
@@ -1388,22 +936,22 @@
       }
     },
     "@ngtools/webpack": {
-      "version": "7.3.9",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.9.tgz",
-      "integrity": "sha512-+ROpqfCXLdQwfP+UNDLk4p959ZrocpStkdd2Iy9CeOJ8yDkityqpstTwQC3oHzzu/95BiyZ0hrHbM6AsPPIvJg==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.1.1.tgz",
+      "integrity": "sha512-BUIXvRr0Ra8nyQGgKGNhEjWpqvfcLfha5yY2OdgWe6Ogw7BDgpImiTaCFHf6Y8KmbgbbFA8vhcnfGWc5saA9Ig==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "7.3.9",
+        "@angular-devkit/core": "8.1.1",
         "enhanced-resolve": "4.1.0",
-        "rxjs": "6.3.3",
+        "rxjs": "6.4.0",
         "tree-kill": "1.2.1",
         "webpack-sources": "1.3.0"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -1418,53 +966,44 @@
       "dev": true
     },
     "@schematics/angular": {
-      "version": "7.3.9",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.3.9.tgz",
-      "integrity": "sha512-B3lytFtFeYNLfWdlrIzvy3ulFRccD2/zkoL0734J+DAGfUz7vbysJ50RwYL46sQUcKdZdvb48ktfu1S8yooP6Q==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.1.1.tgz",
+      "integrity": "sha512-3zyVLV/PbkRjaqBE3gOJbwFkpQ62TKKFDgxm41OPakyy0XeC9Zc+2i3UIWDDfOd6chs+NMJRXjDfvO+gkmp6FQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "7.3.9",
-        "@angular-devkit/schematics": "7.3.9",
-        "typescript": "3.2.4"
-      },
-      "dependencies": {
-        "typescript": {
-          "version": "3.2.4",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
-          "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
-          "dev": true
-        }
+        "@angular-devkit/core": "8.1.1",
+        "@angular-devkit/schematics": "8.1.1"
       }
     },
     "@schematics/update": {
-      "version": "0.13.9",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.13.9.tgz",
-      "integrity": "sha512-4MQcaKFxhMzZyE//+DknDh3h3duy3avg2oxSHxdwXlCZ8Q92+4lpegjJcSRiqlEwO4qeJ5XnrjrvzfIiaIZOmA==",
+      "version": "0.801.1",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.801.1.tgz",
+      "integrity": "sha512-bVIgNMt3vDYNmit7KUSmjUbTEcGNpARlKpyv6lHhlBhWLh8YeXNizD9yGJ0B6hxXVdwF+JKoaVMc1xADgDbT7w==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "7.3.9",
-        "@angular-devkit/schematics": "7.3.9",
+        "@angular-devkit/core": "8.1.1",
+        "@angular-devkit/schematics": "8.1.1",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
-        "pacote": "9.4.0",
-        "rxjs": "6.3.3",
-        "semver": "5.6.0",
+        "pacote": "9.5.1",
+        "rxjs": "6.4.0",
+        "semver": "6.2.0",
         "semver-intersect": "1.4.0"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "version": "6.4.0",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
+          "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
           }
         },
         "semver": {
-          "version": "5.6.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
+          "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
           "dev": true
         }
       }
@@ -1588,175 +1127,179 @@
       }
     },
     "@webassemblyjs/ast": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
-      "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
+      "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/helper-module-context": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/wast-parser": "1.7.11"
+        "@webassemblyjs/helper-module-context": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/wast-parser": "1.8.5"
       }
     },
     "@webassemblyjs/floating-point-hex-parser": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz",
-      "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz",
+      "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==",
       "dev": true
     },
     "@webassemblyjs/helper-api-error": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz",
-      "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
+      "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==",
       "dev": true
     },
     "@webassemblyjs/helper-buffer": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz",
-      "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz",
+      "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==",
       "dev": true
     },
     "@webassemblyjs/helper-code-frame": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz",
-      "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz",
+      "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/wast-printer": "1.7.11"
+        "@webassemblyjs/wast-printer": "1.8.5"
       }
     },
     "@webassemblyjs/helper-fsm": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz",
-      "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
+      "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==",
       "dev": true
     },
     "@webassemblyjs/helper-module-context": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz",
-      "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==",
-      "dev": true
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
+      "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "mamacro": "^0.0.3"
+      }
     },
     "@webassemblyjs/helper-wasm-bytecode": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz",
-      "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
+      "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==",
       "dev": true
     },
     "@webassemblyjs/helper-wasm-section": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz",
-      "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
+      "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-buffer": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/wasm-gen": "1.7.11"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-buffer": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/wasm-gen": "1.8.5"
       }
     },
     "@webassemblyjs/ieee754": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz",
-      "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
+      "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
       "dev": true,
       "requires": {
         "@xtuc/ieee754": "^1.2.0"
       }
     },
     "@webassemblyjs/leb128": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz",
-      "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
+      "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
       "dev": true,
       "requires": {
-        "@xtuc/long": "4.2.1"
+        "@xtuc/long": "4.2.2"
       }
     },
     "@webassemblyjs/utf8": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz",
-      "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
+      "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
       "dev": true
     },
     "@webassemblyjs/wasm-edit": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz",
-      "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
+      "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-buffer": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/helper-wasm-section": "1.7.11",
-        "@webassemblyjs/wasm-gen": "1.7.11",
-        "@webassemblyjs/wasm-opt": "1.7.11",
-        "@webassemblyjs/wasm-parser": "1.7.11",
-        "@webassemblyjs/wast-printer": "1.7.11"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-buffer": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/helper-wasm-section": "1.8.5",
+        "@webassemblyjs/wasm-gen": "1.8.5",
+        "@webassemblyjs/wasm-opt": "1.8.5",
+        "@webassemblyjs/wasm-parser": "1.8.5",
+        "@webassemblyjs/wast-printer": "1.8.5"
       }
     },
     "@webassemblyjs/wasm-gen": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz",
-      "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
+      "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/ieee754": "1.7.11",
-        "@webassemblyjs/leb128": "1.7.11",
-        "@webassemblyjs/utf8": "1.7.11"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/ieee754": "1.8.5",
+        "@webassemblyjs/leb128": "1.8.5",
+        "@webassemblyjs/utf8": "1.8.5"
       }
     },
     "@webassemblyjs/wasm-opt": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz",
-      "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
+      "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-buffer": "1.7.11",
-        "@webassemblyjs/wasm-gen": "1.7.11",
-        "@webassemblyjs/wasm-parser": "1.7.11"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-buffer": "1.8.5",
+        "@webassemblyjs/wasm-gen": "1.8.5",
+        "@webassemblyjs/wasm-parser": "1.8.5"
       }
     },
     "@webassemblyjs/wasm-parser": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz",
-      "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
+      "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-api-error": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/ieee754": "1.7.11",
-        "@webassemblyjs/leb128": "1.7.11",
-        "@webassemblyjs/utf8": "1.7.11"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-api-error": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/ieee754": "1.8.5",
+        "@webassemblyjs/leb128": "1.8.5",
+        "@webassemblyjs/utf8": "1.8.5"
       }
     },
     "@webassemblyjs/wast-parser": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz",
-      "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
+      "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/floating-point-hex-parser": "1.7.11",
-        "@webassemblyjs/helper-api-error": "1.7.11",
-        "@webassemblyjs/helper-code-frame": "1.7.11",
-        "@webassemblyjs/helper-fsm": "1.7.11",
-        "@xtuc/long": "4.2.1"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/floating-point-hex-parser": "1.8.5",
+        "@webassemblyjs/helper-api-error": "1.8.5",
+        "@webassemblyjs/helper-code-frame": "1.8.5",
+        "@webassemblyjs/helper-fsm": "1.8.5",
+        "@xtuc/long": "4.2.2"
       }
     },
     "@webassemblyjs/wast-printer": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz",
-      "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
+      "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/wast-parser": "1.7.11",
-        "@xtuc/long": "4.2.1"
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/wast-parser": "1.8.5",
+        "@xtuc/long": "4.2.2"
       }
     },
     "@xtuc/ieee754": {
@@ -1766,9 +1309,9 @@
       "dev": true
     },
     "@xtuc/long": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
-      "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
       "dev": true
     },
     "@yarnpkg/lockfile": {
@@ -2105,9 +1648,9 @@
       }
     },
     "app-root-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz",
-      "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz",
+      "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==",
       "dev": true
     },
     "append-transform": {
@@ -2125,17 +1668,6 @@
       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
       "dev": true
     },
-    "are-we-there-yet": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
-      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "delegates": "^1.0.0",
-        "readable-stream": "^2.0.6"
-      }
-    },
     "argparse": {
       "version": "1.0.10",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
@@ -2145,6 +1677,16 @@
         "sprintf-js": "~1.0.2"
       }
     },
+    "aria-query": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
+      "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
+      "dev": true,
+      "requires": {
+        "ast-types-flow": "0.0.7",
+        "commander": "^2.11.0"
+      }
+    },
     "arr-diff": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
@@ -2181,12 +1723,6 @@
       "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
       "dev": true
     },
-    "array-slice": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
-      "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
-      "dev": true
-    },
     "array-union": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@@ -2224,8 +1760,7 @@
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
       "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
-      "dev": true,
-      "optional": true
+      "dev": true
     },
     "asn1": {
       "version": "0.2.4",
@@ -2345,6 +1880,12 @@
       "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=",
       "dev": true
     },
+    "ast-types-flow": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+      "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+      "dev": true
+    },
     "async": {
       "version": "2.6.3",
       "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
@@ -2352,14 +1893,6 @@
       "dev": true,
       "requires": {
         "lodash": "^4.17.14"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.14",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
-          "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==",
-          "dev": true
-        }
       }
     },
     "async-each": {
@@ -2374,13 +1907,6 @@
       "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
       "dev": true
     },
-    "async-foreach": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
-      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
-      "dev": true,
-      "optional": true
-    },
     "async-limiter": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
@@ -2400,16 +1926,17 @@
       "dev": true
     },
     "autoprefixer": {
-      "version": "9.4.6",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
-      "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
+      "version": "9.6.0",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.0.tgz",
+      "integrity": "sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.4.1",
-        "caniuse-lite": "^1.0.30000929",
+        "browserslist": "^4.6.1",
+        "caniuse-lite": "^1.0.30000971",
+        "chalk": "^2.4.2",
         "normalize-range": "^0.1.2",
         "num2fraction": "^1.2.2",
-        "postcss": "^7.0.13",
+        "postcss": "^7.0.16",
         "postcss-value-parser": "^3.3.1"
       }
     },
@@ -2425,6 +1952,15 @@
       "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
       "dev": true
     },
+    "axobject-query": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
+      "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==",
+      "dev": true,
+      "requires": {
+        "ast-types-flow": "0.0.7"
+      }
+    },
     "babel-code-frame": {
       "version": "6.26.0",
       "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
@@ -2699,16 +2235,6 @@
       "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
       "dev": true
     },
-    "block-stream": {
-      "version": "0.0.9",
-      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
-      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "inherits": "~2.0.0"
-      }
-    },
     "blocking-proxy": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
@@ -2756,21 +2282,69 @@
       "dev": true
     },
     "body-parser": {
-      "version": "1.18.3",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
-      "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
+      "version": "1.19.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
       "dev": true,
       "requires": {
-        "bytes": "3.0.0",
+        "bytes": "3.1.0",
         "content-type": "~1.0.4",
         "debug": "2.6.9",
         "depd": "~1.1.2",
-        "http-errors": "~1.6.3",
-        "iconv-lite": "0.4.23",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
         "on-finished": "~2.3.0",
-        "qs": "6.5.2",
-        "raw-body": "2.3.3",
-        "type-is": "~1.6.16"
+        "qs": "6.7.0",
+        "raw-body": "2.4.0",
+        "type-is": "~1.6.17"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+          "dev": true
+        },
+        "http-errors": {
+          "version": "1.7.2",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+          "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.1",
+            "statuses": ">= 1.5.0 < 2",
+            "toidentifier": "1.0.0"
+          }
+        },
+        "iconv-lite": {
+          "version": "0.4.24",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        },
+        "setprototypeof": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+          "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+          "dev": true
+        },
+        "statuses": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+          "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+          "dev": true
+        }
       }
     },
     "bonjour": {
@@ -3022,14 +2596,14 @@
       }
     },
     "browserslist": {
-      "version": "4.6.6",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz",
-      "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==",
+      "version": "4.6.3",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz",
+      "integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==",
       "dev": true,
       "requires": {
-        "caniuse-lite": "^1.0.30000984",
-        "electron-to-chromium": "^1.3.191",
-        "node-releases": "^1.1.25"
+        "caniuse-lite": "^1.0.30000975",
+        "electron-to-chromium": "^1.3.164",
+        "node-releases": "^1.1.23"
       }
     },
     "browserstack": {
@@ -3212,24 +2786,62 @@
       "dev": true
     },
     "cacache": {
-      "version": "10.0.4",
-      "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
-      "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+      "version": "11.3.3",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
+      "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
       "dev": true,
       "requires": {
-        "bluebird": "^3.5.1",
-        "chownr": "^1.0.1",
-        "glob": "^7.1.2",
-        "graceful-fs": "^4.1.11",
-        "lru-cache": "^4.1.1",
-        "mississippi": "^2.0.0",
+        "bluebird": "^3.5.5",
+        "chownr": "^1.1.1",
+        "figgy-pudding": "^3.5.1",
+        "glob": "^7.1.4",
+        "graceful-fs": "^4.1.15",
+        "lru-cache": "^5.1.1",
+        "mississippi": "^3.0.0",
         "mkdirp": "^0.5.1",
         "move-concurrently": "^1.0.1",
         "promise-inflight": "^1.0.1",
-        "rimraf": "^2.6.2",
-        "ssri": "^5.2.4",
-        "unique-filename": "^1.1.0",
+        "rimraf": "^2.6.3",
+        "ssri": "^6.0.1",
+        "unique-filename": "^1.1.1",
         "y18n": "^4.0.0"
+      },
+      "dependencies": {
+        "bluebird": {
+          "version": "3.5.5",
+          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
+          "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
+          "dev": true
+        },
+        "glob": {
+          "version": "7.1.4",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+          "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
       }
     },
     "cache-base": {
@@ -3350,9 +2962,9 @@
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30000984",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000984.tgz",
-      "integrity": "sha512-n5tKOjMaZ1fksIpQbjERuqCyfgec/m9pferkFQbLmWtqLUdmt12hNhjSwsmPdqeiG2NkITOQhr1VYIwWSAceiA==",
+      "version": "1.0.30000979",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz",
+      "integrity": "sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==",
       "dev": true
     },
     "canonical-path": {
@@ -3529,12 +3141,6 @@
       "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==",
       "dev": true
     },
-    "circular-json": {
-      "version": "0.5.9",
-      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
-      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
-      "dev": true
-    },
     "class-utils": {
       "version": "0.3.6",
       "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
@@ -3608,14 +3214,47 @@
       }
     },
     "cliui": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
-      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+      "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
       "dev": true,
       "requires": {
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1",
+        "string-width": "^2.1.1",
+        "strip-ansi": "^4.0.0",
         "wrap-ansi": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        }
       }
     },
     "clone": {
@@ -3664,17 +3303,20 @@
       "dev": true
     },
     "codelyzer": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz",
-      "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==",
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.1.0.tgz",
+      "integrity": "sha512-QiyY2/oDQnYx4mAVEDqr+z9MwrOto18tQFjExiuRChXCy0yvngS5fQpWIxvAGpbOmZFiR1PRTRLbEI71u10maA==",
       "dev": true,
       "requires": {
-        "app-root-path": "^2.1.0",
-        "css-selector-tokenizer": "^0.7.0",
+        "app-root-path": "^2.2.1",
+        "aria-query": "^3.0.0",
+        "axobject-query": "^2.0.2",
+        "css-selector-tokenizer": "^0.7.1",
         "cssauron": "^1.4.0",
+        "damerau-levenshtein": "^1.0.4",
         "semver-dsl": "^1.0.1",
         "source-map": "^0.5.7",
-        "sprintf-js": "^1.1.1"
+        "sprintf-js": "^1.1.2"
       },
       "dependencies": {
         "source-map": {
@@ -3739,15 +3381,6 @@
       "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
       "dev": true
     },
-    "combine-lists": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
-      "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.5.0"
-      }
-    },
     "combined-stream": {
       "version": "1.0.7",
       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
@@ -3911,13 +3544,6 @@
         "date-now": "^0.1.4"
       }
     },
-    "console-control-strings": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
-      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
-      "dev": true,
-      "optional": true
-    },
     "constants-browserify": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -3981,19 +3607,40 @@
       "dev": true
     },
     "copy-webpack-plugin": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
-      "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==",
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.3.tgz",
+      "integrity": "sha512-PlZRs9CUMnAVylZq+vg2Juew662jWtwOXOqH4lbQD9ZFhRG9R7tVStOgHt21CBGVq7k5yIJaz8TXDLSjV+Lj8Q==",
       "dev": true,
       "requires": {
-        "cacache": "^10.0.4",
-        "find-cache-dir": "^1.0.0",
+        "cacache": "^11.3.2",
+        "find-cache-dir": "^2.1.0",
+        "glob-parent": "^3.1.0",
         "globby": "^7.1.1",
-        "is-glob": "^4.0.0",
-        "loader-utils": "^1.1.0",
+        "is-glob": "^4.0.1",
+        "loader-utils": "^1.2.3",
         "minimatch": "^3.0.4",
-        "p-limit": "^1.0.0",
-        "serialize-javascript": "^1.4.0"
+        "normalize-path": "^3.0.0",
+        "p-limit": "^2.2.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^1.7.0",
+        "webpack-log": "^2.0.0"
+      },
+      "dependencies": {
+        "is-glob": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+          "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^2.1.1"
+          }
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+          "dev": true
+        }
       }
     },
     "cordova-android": {
@@ -4167,13 +3814,15 @@
       }
     },
     "cross-spawn": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
-      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+      "version": "6.0.5",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
       "dev": true,
-      "optional": true,
       "requires": {
-        "lru-cache": "^4.0.1",
+        "nice-try": "^1.0.4",
+        "path-key": "^2.0.1",
+        "semver": "^5.5.0",
+        "shebang-command": "^1.2.0",
         "which": "^1.2.9"
       }
     },
@@ -4279,6 +3928,12 @@
       "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
       "dev": true
     },
+    "damerau-levenshtein": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz",
+      "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==",
+      "dev": true
+    },
     "dashdash": {
       "version": "1.14.1",
       "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -4289,9 +3944,9 @@
       }
     },
     "date-format": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
-      "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
+      "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
       "dev": true
     },
     "date-now": {
@@ -4309,6 +3964,12 @@
         "ms": "2.0.0"
       }
     },
+    "debuglog": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
+      "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
+      "dev": true
+    },
     "decamelize": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
@@ -4352,16 +4013,6 @@
       "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
       "dev": true
     },
-    "default-gateway": {
-      "version": "2.7.2",
-      "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
-      "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
-      "dev": true,
-      "requires": {
-        "execa": "^0.10.0",
-        "ip-regex": "^2.1.0"
-      }
-    },
     "default-require-extensions": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
@@ -4439,43 +4090,6 @@
       "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
       "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
     },
-    "del": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
-      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
-      "dev": true,
-      "requires": {
-        "globby": "^6.1.0",
-        "is-path-cwd": "^1.0.0",
-        "is-path-in-cwd": "^1.0.0",
-        "p-map": "^1.1.1",
-        "pify": "^3.0.0",
-        "rimraf": "^2.2.8"
-      },
-      "dependencies": {
-        "globby": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
-          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
-          "dev": true,
-          "requires": {
-            "array-union": "^1.0.1",
-            "glob": "^7.0.3",
-            "object-assign": "^4.0.1",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          },
-          "dependencies": {
-            "pify": {
-              "version": "2.3.0",
-              "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
     "delayed-stream": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -4488,13 +4102,6 @@
       "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
       "optional": true
     },
-    "delegates": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
-      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
-      "dev": true,
-      "optional": true
-    },
     "depd": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -4538,6 +4145,16 @@
       "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
       "dev": true
     },
+    "dezalgo": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
+      "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
+      "dev": true,
+      "requires": {
+        "asap": "^2.0.0",
+        "wrappy": "1"
+      }
+    },
     "dfa": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz",
@@ -5415,13 +5032,13 @@
       }
     },
     "execa": {
-      "version": "0.10.0",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-      "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
       "dev": true,
       "requires": {
         "cross-spawn": "^6.0.0",
-        "get-stream": "^3.0.0",
+        "get-stream": "^4.0.0",
         "is-stream": "^1.1.0",
         "npm-run-path": "^2.0.0",
         "p-finally": "^1.0.0",
@@ -5429,17 +5046,13 @@
         "strip-eof": "^1.0.0"
       },
       "dependencies": {
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
           "dev": true,
           "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
+            "pump": "^3.0.0"
           }
         }
       }
@@ -5455,56 +5068,6 @@
       "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
       "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
     },
-    "expand-braces": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
-      "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
-      "dev": true,
-      "requires": {
-        "array-slice": "^0.2.3",
-        "array-unique": "^0.2.1",
-        "braces": "^0.1.2"
-      },
-      "dependencies": {
-        "array-unique": {
-          "version": "0.2.1",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-          "dev": true
-        },
-        "braces": {
-          "version": "0.1.5",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
-          "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
-          "dev": true,
-          "requires": {
-            "expand-range": "^0.1.0"
-          }
-        },
-        "expand-range": {
-          "version": "0.1.1",
-          "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
-          "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
-          "dev": true,
-          "requires": {
-            "is-number": "^0.1.1",
-            "repeat-string": "^0.2.2"
-          }
-        },
-        "is-number": {
-          "version": "0.1.1",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
-          "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
-          "dev": true
-        },
-        "repeat-string": {
-          "version": "0.2.2",
-          "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
-          "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
-          "dev": true
-        }
-      }
-    },
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -5968,12 +5531,12 @@
       }
     },
     "file-loader": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz",
-      "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.0.0.tgz",
+      "integrity": "sha512-roAbL6IdSGczwfXxhMi6Zq+jD4IfUpL0jWHD7fvmjdOVb7xBfdRUHe4LpBgO23VtVK5AW1OlWZo0p34Jvx3iWg==",
       "dev": true,
       "requires": {
-        "loader-utils": "^1.0.2",
+        "loader-utils": "^1.2.2",
         "schema-utils": "^1.0.0"
       }
     },
@@ -6045,23 +5608,47 @@
       }
     },
     "find-cache-dir": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
-      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+      "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
       "dev": true,
       "requires": {
         "commondir": "^1.0.1",
-        "make-dir": "^1.0.0",
-        "pkg-dir": "^2.0.0"
+        "make-dir": "^2.0.0",
+        "pkg-dir": "^3.0.0"
+      },
+      "dependencies": {
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "semver": {
+          "version": "5.7.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+          "dev": true
+        }
       }
     },
     "find-up": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
-      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+      "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
       "dev": true,
       "requires": {
-        "locate-path": "^2.0.0"
+        "locate-path": "^3.0.0"
       }
     },
     "findit2": {
@@ -6071,9 +5658,9 @@
       "dev": true
     },
     "flatted": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
-      "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
+      "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
       "dev": true
     },
     "flush-write-stream": {
@@ -6843,51 +6430,11 @@
         }
       }
     },
-    "fstream": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
-      "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "inherits": "~2.0.0",
-        "mkdirp": ">=0.5 0",
-        "rimraf": "2"
-      }
-    },
     "function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
     },
-    "gauge": {
-      "version": "2.7.4",
-      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
-      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "aproba": "^1.0.3",
-        "console-control-strings": "^1.0.0",
-        "has-unicode": "^2.0.0",
-        "object-assign": "^4.1.0",
-        "signal-exit": "^3.0.0",
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1",
-        "wide-align": "^1.1.0"
-      }
-    },
-    "gaze": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
-      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "globule": "^1.0.0"
-      }
-    },
     "genfun": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
@@ -6996,18 +6543,6 @@
         "slash": "^1.0.0"
       }
     },
-    "globule": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
-      "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "~7.1.1",
-        "lodash": "~4.17.10",
-        "minimatch": "~3.0.2"
-      }
-    },
     "good-listener": {
       "version": "1.2.2",
       "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
@@ -7160,13 +6695,6 @@
       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
       "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
     },
-    "has-unicode": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
-      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
-      "dev": true,
-      "optional": true
-    },
     "has-value": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -7366,18 +6894,6 @@
         }
       }
     },
-    "http-proxy-middleware": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
-      "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
-      "dev": true,
-      "requires": {
-        "http-proxy": "^1.16.2",
-        "is-glob": "^4.0.0",
-        "lodash": "^4.17.5",
-        "micromatch": "^3.1.9"
-      }
-    },
     "http-signature": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -7593,13 +7109,6 @@
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
       "dev": true
     },
-    "in-publish": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
-      "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
-      "dev": true,
-      "optional": true
-    },
     "indent-string": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
@@ -7636,23 +7145,23 @@
       "dev": true
     },
     "inquirer": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
-      "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
+      "version": "6.4.1",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz",
+      "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==",
       "dev": true,
       "requires": {
-        "ansi-escapes": "^3.0.0",
-        "chalk": "^2.0.0",
+        "ansi-escapes": "^3.2.0",
+        "chalk": "^2.4.2",
         "cli-cursor": "^2.1.0",
         "cli-width": "^2.0.0",
-        "external-editor": "^3.0.0",
+        "external-editor": "^3.0.3",
         "figures": "^2.0.0",
-        "lodash": "^4.17.10",
+        "lodash": "^4.17.11",
         "mute-stream": "0.0.7",
         "run-async": "^2.2.0",
-        "rxjs": "^6.1.0",
+        "rxjs": "^6.4.0",
         "string-width": "^2.1.0",
-        "strip-ansi": "^5.0.0",
+        "strip-ansi": "^5.1.0",
         "through": "^2.3.6"
       },
       "dependencies": {
@@ -7714,16 +7223,6 @@
       "integrity": "sha1-20Xpk1c82z23C5gy6ChbrUZCR3A=",
       "dev": true
     },
-    "internal-ip": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
-      "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
-      "dev": true,
-      "requires": {
-        "default-gateway": "^2.6.0",
-        "ipaddr.js": "^1.5.2"
-      }
-    },
     "interpret": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
@@ -7740,9 +7239,9 @@
       }
     },
     "invert-kv": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
-      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+      "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
       "dev": true
     },
     "ip": {
@@ -7989,6 +7488,12 @@
         "path-is-inside": "^1.0.1"
       }
     },
+    "is-plain-obj": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+      "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+      "dev": true
+    },
     "is-plain-object": {
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -8431,13 +7936,6 @@
       "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
       "dev": true
     },
-    "js-base64": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
-      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
-      "dev": true,
-      "optional": true
-    },
     "js-tokens": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
@@ -8607,28 +8105,27 @@
       }
     },
     "karma": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmjs.org/karma/-/karma-3.1.4.tgz",
-      "integrity": "sha512-31Vo8Qr5glN+dZEVIpnPCxEGleqE0EY6CtC2X9TagRV3rRQ3SNrvfhddICkJgUK3AgqpeKSZau03QumTGhGoSw==",
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-4.2.0.tgz",
+      "integrity": "sha512-fmCuxN1rwJxTdZfOXK5LjlmS4Ana/OvzNMpkyLL/TLE8hmgSkpVpMYQ7RTVa8TNKRVQDZNl5W1oF5cfKfgIMlA==",
       "dev": true,
       "requires": {
         "bluebird": "^3.3.0",
         "body-parser": "^1.16.1",
-        "chokidar": "^2.0.3",
+        "braces": "^3.0.2",
+        "chokidar": "^3.0.0",
         "colors": "^1.1.0",
-        "combine-lists": "^1.0.0",
         "connect": "^3.6.0",
-        "core-js": "^2.2.0",
+        "core-js": "^3.1.3",
         "di": "^0.0.1",
         "dom-serialize": "^2.2.0",
-        "expand-braces": "^0.1.1",
         "flatted": "^2.0.0",
         "glob": "^7.1.1",
         "graceful-fs": "^4.1.2",
         "http-proxy": "^1.13.0",
         "isbinaryfile": "^3.0.0",
-        "lodash": "^4.17.5",
-        "log4js": "^3.0.0",
+        "lodash": "^4.17.11",
+        "log4js": "^4.0.0",
         "mime": "^2.3.1",
         "minimatch": "^3.0.2",
         "optimist": "^0.6.1",
@@ -8642,17 +8139,137 @@
         "useragent": "2.3.0"
       },
       "dependencies": {
+        "anymatch": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz",
+          "integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==",
+          "dev": true,
+          "requires": {
+            "normalize-path": "^3.0.0",
+            "picomatch": "^2.0.4"
+          }
+        },
+        "binary-extensions": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
+          "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
+          "dev": true
+        },
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "dev": true,
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "chokidar": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz",
+          "integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^3.0.1",
+            "braces": "^3.0.2",
+            "fsevents": "^2.0.6",
+            "glob-parent": "^5.0.0",
+            "is-binary-path": "^2.1.0",
+            "is-glob": "^4.0.1",
+            "normalize-path": "^3.0.0",
+            "readdirp": "^3.1.1"
+          }
+        },
+        "core-js": {
+          "version": "3.1.4",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz",
+          "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==",
+          "dev": true
+        },
+        "fill-range": {
+          "version": "7.0.1",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+          "dev": true,
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "fsevents": {
+          "version": "2.0.7",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz",
+          "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==",
+          "dev": true,
+          "optional": true
+        },
+        "glob-parent": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
+          "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
+          "dev": true,
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
+        "is-binary-path": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+          "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+          "dev": true,
+          "requires": {
+            "binary-extensions": "^2.0.0"
+          }
+        },
+        "is-glob": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+          "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^2.1.1"
+          }
+        },
+        "is-number": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+          "dev": true
+        },
         "mime": {
-          "version": "2.4.0",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
-          "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
+          "version": "2.4.4",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
           "dev": true
         },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+          "dev": true
+        },
+        "readdirp": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.1.tgz",
+          "integrity": "sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ==",
+          "dev": true,
+          "requires": {
+            "picomatch": "^2.0.4"
+          }
+        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true
+        },
+        "to-regex-range": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+          "dev": true,
+          "requires": {
+            "is-number": "^7.0.0"
+          }
         }
       }
     },
@@ -8712,9 +8329,9 @@
       "dev": true
     },
     "karma-source-map-support": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz",
-      "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
+      "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==",
       "dev": true,
       "requires": {
         "source-map-support": "^0.5.5"
@@ -8757,12 +8374,12 @@
       "dev": true
     },
     "lcid": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
-      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+      "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
       "dev": true,
       "requires": {
-        "invert-kv": "^1.0.0"
+        "invert-kv": "^2.0.0"
       }
     },
     "less": {
@@ -8792,14 +8409,22 @@
       }
     },
     "less-loader": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz",
-      "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz",
+      "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==",
       "dev": true,
       "requires": {
         "clone": "^2.1.1",
         "loader-utils": "^1.1.0",
-        "pify": "^3.0.0"
+        "pify": "^4.0.1"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        }
       }
     },
     "levn": {
@@ -8813,9 +8438,9 @@
       }
     },
     "license-webpack-plugin": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz",
-      "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.1.tgz",
+      "integrity": "sha512-TiarZIg5vkQ2rGdYJn2+5YxO/zqlqjpK5IVglr7OfmrN1sBCakS+PQrsP2uC5gtve1ZDb9WMSUMlmHDQ0FoW4w==",
       "dev": true,
       "requires": {
         "@types/webpack-sources": "^0.1.5",
@@ -9006,12 +8631,12 @@
       }
     },
     "locate-path": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
-      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+      "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
       "dev": true,
       "requires": {
-        "p-locate": "^2.0.0",
+        "p-locate": "^3.0.0",
         "path-exists": "^3.0.0"
       }
     },
@@ -9040,31 +8665,31 @@
       "dev": true
     },
     "log4js": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
-      "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==",
+      "version": "4.5.1",
+      "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz",
+      "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==",
       "dev": true,
       "requires": {
-        "circular-json": "^0.5.5",
-        "date-format": "^1.2.0",
-        "debug": "^3.1.0",
-        "rfdc": "^1.1.2",
-        "streamroller": "0.7.0"
+        "date-format": "^2.0.0",
+        "debug": "^4.1.1",
+        "flatted": "^2.0.0",
+        "rfdc": "^1.1.4",
+        "streamroller": "^1.0.6"
       },
       "dependencies": {
         "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
           "dev": true,
           "requires": {
             "ms": "^2.1.1"
           }
         },
         "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
           "dev": true
         }
       }
@@ -9153,60 +8778,18 @@
       "dev": true,
       "requires": {
         "agentkeepalive": "^3.4.1",
-        "cacache": "^11.3.3",
-        "http-cache-semantics": "^3.8.1",
-        "http-proxy-agent": "^2.1.0",
-        "https-proxy-agent": "^2.2.1",
-        "lru-cache": "^5.1.1",
-        "mississippi": "^3.0.0",
-        "node-fetch-npm": "^2.0.2",
-        "promise-retry": "^1.1.1",
-        "socks-proxy-agent": "^4.0.0",
-        "ssri": "^6.0.0"
-      },
-      "dependencies": {
-        "bluebird": {
-          "version": "3.5.5",
-          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
-          "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
-          "dev": true
-        },
-        "cacache": {
-          "version": "11.3.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
-          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
-          "dev": true,
-          "requires": {
-            "bluebird": "^3.5.5",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
-            "glob": "^7.1.4",
-            "graceful-fs": "^4.1.15",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.3",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.4",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
-          "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
+        "cacache": "^11.3.3",
+        "http-cache-semantics": "^3.8.1",
+        "http-proxy-agent": "^2.1.0",
+        "https-proxy-agent": "^2.2.1",
+        "lru-cache": "^5.1.1",
+        "mississippi": "^3.0.0",
+        "node-fetch-npm": "^2.0.2",
+        "promise-retry": "^1.1.1",
+        "socks-proxy-agent": "^4.0.0",
+        "ssri": "^6.0.0"
+      },
+      "dependencies": {
         "lru-cache": {
           "version": "5.1.1",
           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -9216,43 +8799,6 @@
             "yallist": "^3.0.2"
           }
         },
-        "mississippi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
-          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "ssri": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
-          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
-          "dev": true,
-          "requires": {
-            "figgy-pudding": "^3.5.1"
-          }
-        },
         "yallist": {
           "version": "3.0.3",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
@@ -9261,6 +8807,12 @@
         }
       }
     },
+    "mamacro": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+      "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+      "dev": true
+    },
     "map-age-cleaner": {
       "version": "0.1.3",
       "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
@@ -9298,9 +8850,9 @@
       }
     },
     "marked": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz",
-      "integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA=="
+      "version": "0.6.3",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz",
+      "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ=="
     },
     "material-design-icons": {
       "version": "3.0.1",
@@ -9476,14 +9028,35 @@
       "dev": true
     },
     "mini-css-extract-plugin": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz",
-      "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==",
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz",
+      "integrity": "sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.1.0",
+        "normalize-url": "1.9.1",
         "schema-utils": "^1.0.0",
         "webpack-sources": "^1.1.0"
+      },
+      "dependencies": {
+        "normalize-url": {
+          "version": "1.9.1",
+          "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+          "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+          "dev": true,
+          "requires": {
+            "object-assign": "^4.0.1",
+            "prepend-http": "^1.0.0",
+            "query-string": "^4.1.0",
+            "sort-keys": "^1.0.0"
+          }
+        },
+        "prepend-http": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+          "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+          "dev": true
+        }
       }
     },
     "minimalistic-assert": {
@@ -9540,9 +9113,9 @@
       }
     },
     "mississippi": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
-      "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+      "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
       "dev": true,
       "requires": {
         "concat-stream": "^1.5.0",
@@ -9551,7 +9124,7 @@
         "flush-write-stream": "^1.0.0",
         "from2": "^2.1.0",
         "parallel-transform": "^1.1.0",
-        "pump": "^2.0.1",
+        "pump": "^3.0.0",
         "pumpify": "^1.3.3",
         "stream-each": "^1.1.0",
         "through2": "^2.0.0"
@@ -9724,11 +9297,11 @@
       }
     },
     "ngx-md": {
-      "version": "7.1.3",
-      "resolved": "https://registry.npmjs.org/ngx-md/-/ngx-md-7.1.3.tgz",
-      "integrity": "sha512-sSIr1pwg4eOO4F1xk+DkofgBWShQm4cKYTwe3oYXRZxdrhHXzN+oUief+3IMSHi2syCSi791PinmrcQ8+HYy5w==",
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/ngx-md/-/ngx-md-8.0.0.tgz",
+      "integrity": "sha512-VLbdKnrHblK7UKDJpsKjiwZFujU075x/TLCzsiAuXtLWtj5IKG8XU5a6BZxHi71ScJtPs1qgjpwWown6okjjOg==",
       "requires": {
-        "marked": "^0.5.0",
+        "marked": "^0.6.2",
         "prismjs": "^1.15.0",
         "tslib": "^1.9.0"
       }
@@ -9763,36 +9336,6 @@
       "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
       "dev": true
     },
-    "node-gyp": {
-      "version": "3.8.0",
-      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
-      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "fstream": "^1.0.0",
-        "glob": "^7.0.3",
-        "graceful-fs": "^4.1.2",
-        "mkdirp": "^0.5.0",
-        "nopt": "2 || 3",
-        "npmlog": "0 || 1 || 2 || 3 || 4",
-        "osenv": "0",
-        "request": "^2.87.0",
-        "rimraf": "2",
-        "semver": "~5.3.0",
-        "tar": "^2.0.0",
-        "which": "1"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
-          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
     "node-libs-browser": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
@@ -9841,79 +9384,6 @@
         "semver": "^5.3.0"
       }
     },
-    "node-sass": {
-      "version": "4.12.0",
-      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
-      "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "async-foreach": "^0.1.3",
-        "chalk": "^1.1.1",
-        "cross-spawn": "^3.0.0",
-        "gaze": "^1.0.0",
-        "get-stdin": "^4.0.1",
-        "glob": "^7.0.3",
-        "in-publish": "^2.0.0",
-        "lodash": "^4.17.11",
-        "meow": "^3.7.0",
-        "mkdirp": "^0.5.1",
-        "nan": "^2.13.2",
-        "node-gyp": "^3.8.0",
-        "npmlog": "^4.0.0",
-        "request": "^2.88.0",
-        "sass-graph": "^2.2.4",
-        "stdout-stream": "^1.4.0",
-        "true-case-path": "^1.0.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true,
-          "optional": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "nan": {
-          "version": "2.14.0",
-          "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
-          "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
-          "dev": true,
-          "optional": true
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "nopt": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
-      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "abbrev": "1"
-      }
-    },
     "normalize-package-data": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -10026,19 +9496,6 @@
         "path-key": "^2.0.0"
       }
     },
-    "npmlog": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
-      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "are-we-there-yet": "~1.1.2",
-        "console-control-strings": "~1.1.0",
-        "gauge": "~2.7.3",
-        "set-blocking": "~2.0.0"
-      }
-    },
     "nth-check": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
@@ -10158,6 +9615,16 @@
         "isobject": "^3.0.0"
       }
     },
+    "object.getownpropertydescriptors": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+      "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2",
+        "es-abstract": "^1.5.1"
+      }
+    },
     "object.pick": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -10222,9 +9689,9 @@
       }
     },
     "open": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/open/-/open-6.0.0.tgz",
-      "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==",
+      "version": "6.4.0",
+      "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+      "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
       "dev": true,
       "requires": {
         "is-wsl": "^1.1.0"
@@ -10298,13 +9765,14 @@
       "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
     },
     "os-locale": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
-      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+      "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
       "dev": true,
-      "optional": true,
       "requires": {
-        "lcid": "^1.0.0"
+        "execa": "^1.0.0",
+        "lcid": "^2.0.0",
+        "mem": "^4.0.0"
       }
     },
     "os-name": {
@@ -10356,29 +9824,23 @@
       "dev": true
     },
     "p-limit": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
-      "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+      "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
       "dev": true,
       "requires": {
-        "p-try": "^1.0.0"
+        "p-try": "^2.0.0"
       }
     },
     "p-locate": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
-      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+      "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
       "dev": true,
       "requires": {
-        "p-limit": "^1.1.0"
+        "p-limit": "^2.0.0"
       }
     },
-    "p-map": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
-      "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
-      "dev": true
-    },
     "p-retry": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
@@ -10397,9 +9859,9 @@
       }
     },
     "p-try": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
-      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
       "dev": true
     },
     "package-json": {
@@ -10423,9 +9885,9 @@
       }
     },
     "pacote": {
-      "version": "9.4.0",
-      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.0.tgz",
-      "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==",
+      "version": "9.5.1",
+      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.1.tgz",
+      "integrity": "sha512-Zqvczvf/zZ7QNosdE9uTC7SRuvSs9tFqRkF6cJl+2HH7COBnx4BRAGpeXJlrbN+mM0CMHpbi620xdEHhCflghA==",
       "dev": true,
       "requires": {
         "bluebird": "^3.5.3",
@@ -10457,50 +9919,6 @@
         "which": "^1.3.1"
       },
       "dependencies": {
-        "cacache": {
-          "version": "11.3.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
-          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
-          "dev": true,
-          "requires": {
-            "bluebird": "^3.5.5",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
-            "glob": "^7.1.4",
-            "graceful-fs": "^4.1.15",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.3",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
-          },
-          "dependencies": {
-            "bluebird": {
-              "version": "3.5.5",
-              "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
-              "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
-              "dev": true
-            },
-            "glob": {
-              "version": "7.1.4",
-              "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
-              "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
-              "dev": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            }
-          }
-        },
         "get-stream": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -10519,64 +9937,12 @@
             "yallist": "^3.0.2"
           }
         },
-        "mississippi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
-          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
         "semver": {
           "version": "5.7.0",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
           "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
           "dev": true
         },
-        "ssri": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
-          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
-          "dev": true,
-          "requires": {
-            "figgy-pudding": "^3.5.1"
-          }
-        },
-        "tar": {
-          "version": "4.4.10",
-          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
-          "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
-          "dev": true,
-          "requires": {
-            "chownr": "^1.1.1",
-            "fs-minipass": "^1.2.5",
-            "minipass": "^2.3.5",
-            "minizlib": "^1.2.1",
-            "mkdirp": "^0.5.0",
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.3"
-          }
-        },
         "yallist": {
           "version": "3.0.3",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
@@ -10825,12 +10191,12 @@
       }
     },
     "pkg-dir": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
-      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+      "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
       "dev": true,
       "requires": {
-        "find-up": "^2.1.0"
+        "find-up": "^3.0.0"
       }
     },
     "plist": {
@@ -10875,9 +10241,9 @@
       "dev": true
     },
     "postcss": {
-      "version": "7.0.14",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz",
-      "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==",
+      "version": "7.0.17",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
+      "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
       "dev": true,
       "requires": {
         "chalk": "^2.4.2",
@@ -10966,9 +10332,9 @@
       "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
     },
     "prismjs": {
-      "version": "1.15.0",
-      "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.15.0.tgz",
-      "integrity": "sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA==",
+      "version": "1.16.0",
+      "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.16.0.tgz",
+      "integrity": "sha512-OA4MKxjFZHSvZcisLGe14THYsug/nF6O1f0pAJc0KN0wTyAcLqmsbE+lTGKSpyh+9pEW57+k6pg2AfYR+coyHA==",
       "requires": {
         "clipboard": "^2.0.0"
       }
@@ -11263,9 +10629,9 @@
       }
     },
     "pump": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
-      "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
       "dev": true,
       "requires": {
         "end-of-stream": "^1.1.0",
@@ -11281,6 +10647,18 @@
         "duplexify": "^3.6.0",
         "inherits": "^2.0.3",
         "pump": "^2.0.0"
+      },
+      "dependencies": {
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        }
       }
     },
     "punycode": {
@@ -11306,6 +10684,16 @@
       "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
       "dev": true
     },
+    "query-string": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+      "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.0",
+        "strict-uri-encode": "^1.0.0"
+      }
+    },
     "querystring": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
@@ -11363,21 +10751,63 @@
       }
     },
     "range-parser": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
-      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
       "dev": true
     },
     "raw-body": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
-      "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
       "dev": true,
       "requires": {
-        "bytes": "3.0.0",
-        "http-errors": "1.6.3",
-        "iconv-lite": "0.4.23",
+        "bytes": "3.1.0",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
         "unpipe": "1.0.0"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+          "dev": true
+        },
+        "http-errors": {
+          "version": "1.7.2",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+          "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.1",
+            "statuses": ">= 1.5.0 < 2",
+            "toidentifier": "1.0.0"
+          }
+        },
+        "iconv-lite": {
+          "version": "0.4.24",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "setprototypeof": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+          "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+          "dev": true
+        },
+        "statuses": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+          "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+          "dev": true
+        }
       }
     },
     "raw-loader": {
@@ -11483,6 +10913,30 @@
         }
       }
     },
+    "read-package-json": {
+      "version": "2.0.13",
+      "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz",
+      "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.1",
+        "graceful-fs": "^4.1.2",
+        "json-parse-better-errors": "^1.0.1",
+        "normalize-package-data": "^2.0.0",
+        "slash": "^1.0.0"
+      }
+    },
+    "read-package-tree": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz",
+      "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==",
+      "dev": true,
+      "requires": {
+        "read-package-json": "^2.0.0",
+        "readdir-scoped-modules": "^1.0.0",
+        "util-promisify": "^2.1.0"
+      }
+    },
     "read-pkg": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -11559,6 +11013,18 @@
         "util-deprecate": "~1.0.1"
       }
     },
+    "readdir-scoped-modules": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz",
+      "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==",
+      "dev": true,
+      "requires": {
+        "debuglog": "^1.0.1",
+        "dezalgo": "^1.0.0",
+        "graceful-fs": "^4.1.2",
+        "once": "^1.3.0"
+      }
+    },
     "readdirp": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
@@ -11822,9 +11288,9 @@
       "dev": true
     },
     "rfdc": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
-      "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==",
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
+      "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==",
       "dev": true
     },
     "rimraf": {
@@ -11877,11 +11343,6 @@
         "tslib": "^1.9.0"
       }
     },
-    "rxjs-compat": {
-      "version": "6.5.2",
-      "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.5.2.tgz",
-      "integrity": "sha512-TRMkTp4FgSxE2HtGvxmgRukh3JqdFM7ejAj1Ti/VdodbPGfWvZR5+KdLKRV9jVDFyu2SknM8RD+PR54KGnoLjg=="
-    },
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -11912,17 +11373,13 @@
         "truncate-utf8-bytes": "^1.0.0"
       }
     },
-    "sass-graph": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
-      "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+    "sass": {
+      "version": "1.22.2",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.2.tgz",
+      "integrity": "sha512-enuQuy/CbfrZLA2vOy9tB7CK7pP5bZllnMbr5nPGWCFelwt0EMUVGC11gsv9rybkWc8pp/NKVY/c5+AKyjbnXg==",
       "dev": true,
-      "optional": true,
       "requires": {
-        "glob": "^7.0.0",
-        "lodash": "^4.0.0",
-        "scss-tokenizer": "^0.2.3",
-        "yargs": "^7.0.0"
+        "chokidar": ">=2.0.0 <4.0.0"
       }
     },
     "sass-loader": {
@@ -11970,29 +11427,6 @@
       "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-4.2.0.tgz",
       "integrity": "sha512-qpyI9XbwuMJElWRP5vTgxkFAl4k7HpyhIqBFOZEwX9QBXn0MAuRSpn7LOc6/4CeSwoz61oBu1VPV+2fbIWC+5Q=="
     },
-    "scss-tokenizer": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
-      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "js-base64": "^2.1.8",
-        "source-map": "^0.4.2"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        }
-      }
-    },
     "select": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
@@ -12578,6 +12012,15 @@
         "socks": "~2.3.2"
       }
     },
+    "sort-keys": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+      "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+      "dev": true,
+      "requires": {
+        "is-plain-obj": "^1.0.0"
+      }
+    },
     "source-list-map": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
@@ -12812,12 +12255,12 @@
       }
     },
     "ssri": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
-      "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+      "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
       "dev": true,
       "requires": {
-        "safe-buffer": "^5.1.1"
+        "figgy-pudding": "^3.5.1"
       }
     },
     "stat-mode": {
@@ -12889,31 +12332,12 @@
         }
       }
     },
-    "stats-webpack-plugin": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz",
-      "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.4"
-      }
-    },
     "statuses": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
       "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
       "dev": true
     },
-    "stdout-stream": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
-      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "readable-stream": "^2.0.1"
-      }
-    },
     "stream-browserify": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
@@ -12963,15 +12387,16 @@
       "dev": true
     },
     "streamroller": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
-      "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==",
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz",
+      "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==",
       "dev": true,
       "requires": {
-        "date-format": "^1.2.0",
-        "debug": "^3.1.0",
-        "mkdirp": "^0.5.1",
-        "readable-stream": "^2.3.0"
+        "async": "^2.6.2",
+        "date-format": "^2.0.0",
+        "debug": "^3.2.6",
+        "fs-extra": "^7.0.1",
+        "lodash": "^4.17.14"
       },
       "dependencies": {
         "debug": {
@@ -12984,13 +12409,19 @@
           }
         },
         "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
           "dev": true
         }
       }
     },
+    "strict-uri-encode": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+      "dev": true
+    },
     "string-width": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -13209,15 +12640,26 @@
       }
     },
     "tar": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
-      "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+      "version": "4.4.10",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
+      "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
       "dev": true,
-      "optional": true,
       "requires": {
-        "block-stream": "*",
-        "fstream": "^1.0.12",
-        "inherits": "2"
+        "chownr": "^1.1.1",
+        "fs-minipass": "^1.2.5",
+        "minipass": "^2.3.5",
+        "minizlib": "^1.2.1",
+        "mkdirp": "^0.5.0",
+        "safe-buffer": "^5.1.2",
+        "yallist": "^3.0.3"
+      },
+      "dependencies": {
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
       }
     },
     "temp-file": {
@@ -13232,288 +12674,111 @@
       "dependencies": {
         "fs-extra": {
           "version": "8.1.0",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
-          "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.2.0",
-            "jsonfile": "^4.0.0",
-            "universalify": "^0.1.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
-          "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==",
-          "dev": true
-        }
-      }
-    },
-    "term-size": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
-      "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
-      "dev": true,
-      "requires": {
-        "execa": "^0.7.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
-          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        }
-      }
-    },
-    "terser": {
-      "version": "3.17.0",
-      "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
-      "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
-      "dev": true,
-      "requires": {
-        "commander": "^2.19.0",
-        "source-map": "~0.6.1",
-        "source-map-support": "~0.5.10"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.5.12",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
-          "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        }
-      }
-    },
-    "terser-webpack-plugin": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz",
-      "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==",
-      "dev": true,
-      "requires": {
-        "cacache": "^11.0.2",
-        "find-cache-dir": "^2.0.0",
-        "schema-utils": "^1.0.0",
-        "serialize-javascript": "^1.4.0",
-        "source-map": "^0.6.1",
-        "terser": "^3.16.1",
-        "webpack-sources": "^1.1.0",
-        "worker-farm": "^1.5.2"
-      },
-      "dependencies": {
-        "bluebird": {
-          "version": "3.5.5",
-          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
-          "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
-          "dev": true
-        },
-        "cacache": {
-          "version": "11.3.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
-          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
-          "dev": true,
-          "requires": {
-            "bluebird": "^3.5.5",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
-            "glob": "^7.1.4",
-            "graceful-fs": "^4.1.15",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.3",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
-          }
-        },
-        "find-cache-dir": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
-          "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
-          "dev": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "make-dir": "^2.0.0",
-            "pkg-dir": "^3.0.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.4",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
-          "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "lru-cache": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-          "dev": true,
-          "requires": {
-            "yallist": "^3.0.2"
-          }
-        },
-        "make-dir": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
-          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
-          "dev": true,
-          "requires": {
-            "pify": "^4.0.1",
-            "semver": "^5.6.0"
-          }
-        },
-        "mississippi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
-          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
-          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+          "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
           "dev": true,
           "requires": {
-            "p-limit": "^2.0.0"
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^4.0.0",
+            "universalify": "^0.1.0"
           }
         },
-        "p-try": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-          "dev": true
-        },
-        "pify": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+        "graceful-fs": {
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
+          "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==",
           "dev": true
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
-          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+        }
+      }
+    },
+    "term-size": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+      "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
+      "dev": true,
+      "requires": {
+        "execa": "^0.7.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
           "dev": true,
           "requires": {
-            "find-up": "^3.0.0"
+            "lru-cache": "^4.0.1",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
           }
         },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+        "execa": {
+          "version": "0.7.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
           "dev": true,
           "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
+            "cross-spawn": "^5.0.1",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
           }
-        },
-        "semver": {
-          "version": "5.7.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
-          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
-          "dev": true
-        },
+        }
+      }
+    },
+    "terser": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz",
+      "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==",
+      "dev": true,
+      "requires": {
+        "commander": "^2.20.0",
+        "source-map": "~0.6.1",
+        "source-map-support": "~0.5.12"
+      },
+      "dependencies": {
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true
         },
-        "ssri": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
-          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+        "source-map-support": {
+          "version": "0.5.12",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
+          "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
           "dev": true,
           "requires": {
-            "figgy-pudding": "^3.5.1"
+            "buffer-from": "^1.0.0",
+            "source-map": "^0.6.0"
           }
-        },
-        "yallist": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
-          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+        }
+      }
+    },
+    "terser-webpack-plugin": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz",
+      "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==",
+      "dev": true,
+      "requires": {
+        "cacache": "^11.3.2",
+        "find-cache-dir": "^2.0.0",
+        "is-wsl": "^1.1.0",
+        "loader-utils": "^1.2.3",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^1.7.0",
+        "source-map": "^0.6.1",
+        "terser": "^4.0.0",
+        "webpack-sources": "^1.3.0",
+        "worker-farm": "^1.7.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true
         }
       }
@@ -13695,16 +12960,6 @@
       "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
       "dev": true
     },
-    "true-case-path": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
-      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "^7.1.2"
-      }
-    },
     "truncate-utf8-bytes": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -13872,13 +13127,30 @@
       "dev": true
     },
     "type-is": {
-      "version": "1.6.16",
-      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
-      "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+      "version": "1.6.18",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
       "dev": true,
       "requires": {
         "media-typer": "0.3.0",
-        "mime-types": "~2.1.18"
+        "mime-types": "~2.1.24"
+      },
+      "dependencies": {
+        "mime-db": {
+          "version": "1.40.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+          "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+          "dev": true
+        },
+        "mime-types": {
+          "version": "2.1.24",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+          "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+          "dev": true,
+          "requires": {
+            "mime-db": "1.40.0"
+          }
+        }
       }
     },
     "typedarray": {
@@ -13888,9 +13160,9 @@
       "dev": true
     },
     "typescript": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz",
-      "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
+      "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==",
       "dev": true
     },
     "uglify-js": {
@@ -14022,6 +13294,34 @@
         "crypto-random-string": "^1.0.0"
       }
     },
+    "universal-analytics": {
+      "version": "0.4.20",
+      "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz",
+      "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.0.0",
+        "request": "^2.88.0",
+        "uuid": "^3.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
     "universalify": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -14194,6 +13494,15 @@
       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
       "dev": true
     },
+    "util-promisify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz",
+      "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=",
+      "dev": true,
+      "requires": {
+        "object.getownpropertydescriptors": "^2.0.3"
+      }
+    },
     "utils-merge": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -14297,15 +13606,15 @@
       }
     },
     "webpack": {
-      "version": "4.29.0",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz",
-      "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==",
+      "version": "4.35.2",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz",
+      "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-module-context": "1.7.11",
-        "@webassemblyjs/wasm-edit": "1.7.11",
-        "@webassemblyjs/wasm-parser": "1.7.11",
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-module-context": "1.8.5",
+        "@webassemblyjs/wasm-edit": "1.8.5",
+        "@webassemblyjs/wasm-parser": "1.8.5",
         "acorn": "^6.0.5",
         "acorn-dynamic-import": "^4.0.0",
         "ajv": "^6.1.0",
@@ -14321,23 +13630,11 @@
         "mkdirp": "~0.5.0",
         "neo-async": "^2.5.0",
         "node-libs-browser": "^2.0.0",
-        "schema-utils": "^0.4.4",
+        "schema-utils": "^1.0.0",
         "tapable": "^1.1.0",
         "terser-webpack-plugin": "^1.1.0",
         "watchpack": "^1.5.0",
         "webpack-sources": "^1.3.0"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
-          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        }
       }
     },
     "webpack-core": {
@@ -14368,14 +13665,14 @@
       }
     },
     "webpack-dev-middleware": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz",
-      "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==",
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz",
+      "integrity": "sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA==",
       "dev": true,
       "requires": {
-        "memory-fs": "~0.4.1",
-        "mime": "^2.3.1",
-        "range-parser": "^1.0.3",
+        "memory-fs": "^0.4.1",
+        "mime": "^2.4.2",
+        "range-parser": "^1.2.1",
         "webpack-log": "^2.0.0"
       },
       "dependencies": {
@@ -14384,6 +13681,12 @@
           "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
           "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
           "dev": true
+        },
+        "range-parser": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+          "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+          "dev": true
         }
       }
     },
@@ -14908,21 +14211,10 @@
       }
     },
     "which-module": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
-      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
-      "dev": true,
-      "optional": true
-    },
-    "wide-align": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
-      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "string-width": "^1.0.2 || 2"
-      }
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+      "dev": true
     },
     "widest-line": {
       "version": "2.0.1",
@@ -15039,6 +14331,15 @@
         "errno": "~0.1.7"
       }
     },
+    "worker-plugin": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.1.0.tgz",
+      "integrity": "sha512-iQ9KTTmmN5fhfc2KMR7CcDblvcrg1QQ4pXymqZ3cRZF8L0890YLBcEqlIsGPdxoFwghyN8RA1pCEhCKuTF4Lkw==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0"
+      }
+    },
     "wrap-ansi": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
@@ -15137,12 +14438,6 @@
       "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
       "dev": true
     },
-    "xregexp": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
-      "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
-      "dev": true
-    },
     "xtend": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -15162,59 +14457,85 @@
       "dev": true
     },
     "yargs": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
-      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+      "version": "13.1.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz",
+      "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==",
       "dev": true,
-      "optional": true,
       "requires": {
-        "camelcase": "^3.0.0",
-        "cliui": "^3.2.0",
-        "decamelize": "^1.1.1",
-        "get-caller-file": "^1.0.1",
-        "os-locale": "^1.4.0",
-        "read-pkg-up": "^1.0.1",
+        "cliui": "^4.0.0",
+        "find-up": "^3.0.0",
+        "get-caller-file": "^2.0.1",
+        "os-locale": "^3.1.0",
         "require-directory": "^2.1.1",
-        "require-main-filename": "^1.0.1",
+        "require-main-filename": "^2.0.0",
         "set-blocking": "^2.0.0",
-        "string-width": "^1.0.2",
-        "which-module": "^1.0.0",
-        "y18n": "^3.2.1",
-        "yargs-parser": "^5.0.0"
+        "string-width": "^3.0.0",
+        "which-module": "^2.0.0",
+        "y18n": "^4.0.0",
+        "yargs-parser": "^13.0.0"
       },
       "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+        "ansi-regex": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+          "dev": true
+        },
+        "get-caller-file": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+          "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "require-main-filename": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+          "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+          "dev": true
+        },
+        "string-width": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
           "dev": true,
-          "optional": true
+          "requires": {
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
+          }
         },
-        "y18n": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+        "strip-ansi": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
           "dev": true,
-          "optional": true
+          "requires": {
+            "ansi-regex": "^4.1.0"
+          }
         }
       }
     },
     "yargs-parser": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
-      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+      "version": "13.1.1",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+      "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
       "dev": true,
-      "optional": true,
       "requires": {
-        "camelcase": "^3.0.0"
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
       },
       "dependencies": {
         "camelcase": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true,
-          "optional": true
+          "version": "5.3.1",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+          "dev": true
         }
       }
     },
@@ -15240,9 +14561,9 @@
       "dev": true
     },
     "zone.js": {
-      "version": "0.8.29",
-      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz",
-      "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ=="
+      "version": "0.9.1",
+      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz",
+      "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag=="
     }
   }
 }
diff --git a/package.json b/package.json
index 06a58294d..1a469f1b3 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
     "release-linux": "npm run build && electron-builder",
     "release-windows": "rd /s /q release & ng build --prod --build-optimizer=false && npm run electron-builder",
     "release-android": "npm run build-cordova && cordova platform add android; rm dist/assets/docs-fr/sitemap.xml.gz && cordova build android && mv platforms/android/app/build/outputs/apk/debug/app-debug.apk release/cassiopee.apk",
-    "e2equick": "ng e2e --dev-server-target= --baseUrl=http://localhost:4200",
+    "e2equick": "ng e2e --dev-server-target=",
     "jalhyd": "rm -f node_modules/jalhyd && cd ../jalhyd && npm run build && cd ../nghyd && npm install ../jalhyd",
     "mathjax": "mkdir -p docs-fr/javascripts/mathjax && rsync -az --delete `cat rsync-mathjax-files` docs-fr/javascripts/mathjax",
     "mkdocs": "npm run mathjax && find docs-fr/javascripts/ -name '*.md' -type f -delete && python3 -m mkdocs build",
@@ -32,18 +32,17 @@
   },
   "private": true,
   "dependencies": {
-    "@angular/animations": "^7.2.15",
-    "@angular/cdk": "^7.3.7",
-    "@angular/common": "^7.2.15",
-    "@angular/compiler": "^7.2.15",
-    "@angular/core": "^7.2.15",
+    "@angular/animations": "^8.1.1",
+    "@angular/cdk": "^8.1.1",
+    "@angular/common": "^8.1.1",
+    "@angular/compiler": "^8.1.1",
+    "@angular/core": "^8.1.1",
     "@angular/flex-layout": "^7.0.0-beta.24",
-    "@angular/forms": "^7.2.15",
-    "@angular/http": "^7.2.15",
-    "@angular/material": "^7.3.7",
-    "@angular/platform-browser": "^7.2.15",
-    "@angular/platform-browser-dynamic": "^7.2.15",
-    "@angular/router": "^7.2.15",
+    "@angular/forms": "^8.1.1",
+    "@angular/material": "^8.1.1",
+    "@angular/platform-browser": "^8.1.1",
+    "@angular/platform-browser-dynamic": "^8.1.1",
+    "@angular/router": "^8.1.1",
     "@types/pako": "^1.0.1",
     "@types/sprintf-js": "^1.1.2",
     "angular2-chartjs": "^0.5.1",
@@ -59,34 +58,33 @@
     "material-design-icons": "^3.0.1",
     "mathjax": "^2.7.5",
     "ngx-material-file-input": "^1.1.1",
-    "ngx-md": "^7.0.0",
+    "ngx-md": "^8.0.0",
     "ngx-webstorage-service": "^4.0.1",
     "pako": "^1.0.10",
     "primeng": "^8.0.1",
     "roboto-fontface": "^0.10.0",
     "rxjs": "^6.5.2",
-    "rxjs-compat": "^6.5.2",
     "screenfull": "^4.2.0",
     "tslib": "^1.10.0",
     "xlsx": "^0.14.3",
-    "zone.js": "^0.8.28"
+    "zone.js": "~0.9.1"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "^0.13.9",
-    "@angular/cli": "^7.3.9",
-    "@angular/compiler-cli": "^7.2.15",
-    "@angular/language-service": "^7.2.15",
+    "@angular-devkit/build-angular": "~0.801.1",
+    "@angular/cli": "^8.1.1",
+    "@angular/compiler-cli": "^8.1.1",
+    "@angular/language-service": "^8.1.1",
     "@compodoc/compodoc": "^1.1.10",
     "@types/file-saver": "^2.0.1",
     "@types/jasmine": "^3.3.13",
     "@types/jasminewd2": "^2.0.6",
     "@types/node": "^8.10.50",
-    "codelyzer": "^4.5.0",
+    "codelyzer": "^5.0.1",
     "electron": "^5.0.7",
     "electron-builder": "^20.44.4",
     "jasmine-core": "~3.3.0",
     "jasmine-spec-reporter": "~4.2.1",
-    "karma": "^3.1.4",
+    "karma": "^4.2.0",
     "karma-chrome-launcher": "~2.2.0",
     "karma-cli": "~2.0.0",
     "karma-coverage-istanbul-reporter": "^2.0.5",
@@ -95,7 +93,7 @@
     "protractor": "^5.4.2",
     "ts-node": "~7.0.1",
     "tslint": "^5.18.0",
-    "typescript": "~3.1.1",
+    "typescript": "~3.4.5",
     "webpack-dev-server": "^3.7.2"
   },
   "cordova": {
diff --git a/protractor.conf.js b/protractor.conf.js
index a4cc5bdba..397f3e455 100644
--- a/protractor.conf.js
+++ b/protractor.conf.js
@@ -21,7 +21,7 @@ exports.config = {
     },
   },
   directConnect: true,
-  baseUrl: 'http://localhost:4201/',
+  baseUrl: 'http://localhost:4200/',
   framework: 'jasmine',
   jasmineNodeOpts: {
     showColors: true,
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 0624e3f47..d347f7efd 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,6 +1,9 @@
 import { Component, ApplicationRef, OnInit, OnDestroy, HostListener, ViewChild, ComponentRef } from "@angular/core";
 import { Router, Event, NavigationEnd, ActivationEnd, NavigationStart, NavigationCancel, NavigationError } from "@angular/router";
-import { MatSidenav, MatToolbar, MatDialog, MatIconRegistry } from "@angular/material";
+import { MatDialog } from "@angular/material/dialog";
+import { MatIconRegistry } from "@angular/material/icon";
+import { MatSidenav } from "@angular/material/sidenav";
+import { MatToolbar } from "@angular/material/toolbar";
 import { DomSanitizer } from "@angular/platform-browser";
 
 import { Observer, jalhydDateRev, jalhydVersion, CalculatorType, Session } from "jalhyd";
@@ -31,10 +34,10 @@ import * as pako from "pako";
 })
 export class AppComponent implements OnInit, OnDestroy, Observer {
 
-  @ViewChild("sidenav")
+  @ViewChild("sidenav", { static: false })
   public sidenav: MatSidenav;
 
-  @ViewChild("navbar")
+  @ViewChild("navbar", { static: false })
   public navbar: MatToolbar;
 
   /** current calculator, inferred from _currentFormId by setActiveCalc() (used for navbar menu) */
diff --git a/src/app/components/calculator-results/calculator-results.component.ts b/src/app/components/calculator-results/calculator-results.component.ts
index 514a86101..cf74d342c 100644
--- a/src/app/components/calculator-results/calculator-results.component.ts
+++ b/src/app/components/calculator-results/calculator-results.component.ts
@@ -16,25 +16,25 @@ export class CalculatorResultsComponent implements AfterViewChecked {
     /**
      * composant d'affichage des résultats de paramètres fixés/variables
      */
-    @ViewChild(FixedVarResultsComponent)
+    @ViewChild(FixedVarResultsComponent, { static: true })
     private fixedVarResultsComponent: FixedVarResultsComponent;
 
     /**
      * composant d'affichage des résultats des sections paramétrées
      */
-    @ViewChild(SectionResultsComponent)
+    @ViewChild(SectionResultsComponent, { static: true })
     private sectionResultsComponent: SectionResultsComponent;
 
     /**
      * composant d'affichage des résultats des courbes de remous
      */
-    @ViewChild(RemousResultsComponent)
+    @ViewChild(RemousResultsComponent, { static: true })
     private remousResultsComponent: RemousResultsComponent;
 
     /**
      * composant d'affichage des résultats des passes à bassins
      */
-    @ViewChild(PabResultsComponent)
+    @ViewChild(PabResultsComponent, { static: true })
     private pabResultsComponent: PabResultsComponent;
 
     /**
diff --git a/src/app/components/canvas/canvas.component.ts b/src/app/components/canvas/canvas.component.ts
index 87f03401c..99d70c53c 100644
--- a/src/app/components/canvas/canvas.component.ts
+++ b/src/app/components/canvas/canvas.component.ts
@@ -34,7 +34,7 @@ export class CalcCanvasComponent implements AfterViewInit {
 
     private _context2d: CanvasRenderingContext2D;
 
-    @ViewChild("canvas")
+    @ViewChild("canvas", { static: false })
     private _calcCanvas: ElementRef;
 
     ngAfterViewInit() { // wait for the view to init before using the element
diff --git a/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts b/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts
index 67418859a..500031bf7 100644
--- a/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts
+++ b/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.ts
@@ -1,4 +1,4 @@
-import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
+import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
 import { FormulaireService } from "../../services/formulaire/formulaire.service";
 import { I18nService } from "../../services/internationalisation/internationalisation.service";
diff --git a/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts b/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts
index baae6b5b0..ff13f443e 100644
--- a/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts
+++ b/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.ts
@@ -1,4 +1,4 @@
-import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
+import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
 import { I18nService } from "../../services/internationalisation/internationalisation.service";
 
diff --git a/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts b/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts
index 5321f476f..373ef709d 100644
--- a/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts
+++ b/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.ts
@@ -14,7 +14,7 @@ export class DialogEditParamComputedComponent implements OnInit {
     /** the related parameter to change the "fixed" value of */
     public param: NgParameter;
 
-    @ViewChild(NgParamInputComponent)
+    @ViewChild(NgParamInputComponent, { static: true })
     private _ngParamInputComponent: NgParamInputComponent;
 
     constructor(
diff --git a/src/app/components/dialog-load-session/dialog-load-session.component.ts b/src/app/components/dialog-load-session/dialog-load-session.component.ts
index 117444a1c..382e00cdb 100644
--- a/src/app/components/dialog-load-session/dialog-load-session.component.ts
+++ b/src/app/components/dialog-load-session/dialog-load-session.component.ts
@@ -1,4 +1,4 @@
-import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
+import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
 
 import { config } from "jalhyd";
diff --git a/src/app/components/dialog-save-session/dialog-save-session.component.ts b/src/app/components/dialog-save-session/dialog-save-session.component.ts
index 425c5f5ed..f29244bff 100644
--- a/src/app/components/dialog-save-session/dialog-save-session.component.ts
+++ b/src/app/components/dialog-save-session/dialog-save-session.component.ts
@@ -1,4 +1,4 @@
-import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
+import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
 import { Inject, Component } from "@angular/core";
 import { I18nService } from "../../services/internationalisation/internationalisation.service";
 
diff --git a/src/app/components/field-set/field-set.component.ts b/src/app/components/field-set/field-set.component.ts
index b377317bb..e12bb9d4c 100644
--- a/src/app/components/field-set/field-set.component.ts
+++ b/src/app/components/field-set/field-set.component.ts
@@ -228,7 +228,7 @@ export class FieldSetComponent implements DoCheck {
 
         if (this._paramComponents) {
             paramsAreValid = false;
-            paramsAreValid = this._paramComponents.reduce(
+            paramsAreValid = this._paramComponents.reduce<boolean>(
                 // callback
                 (
                     // accumulator (valeur précédente du résultat)
@@ -239,7 +239,7 @@ export class FieldSetComponent implements DoCheck {
                     currIndex,
                     // array (tableau parcouru)
                     array
-                ) => {
+                ): boolean => {
                     return acc && param.isValid;
                 }
                 // valeur initiale
@@ -248,7 +248,7 @@ export class FieldSetComponent implements DoCheck {
 
         if (this._selectModelComponents) {
             selectAreValid = false;
-            selectAreValid = this._selectModelComponents.reduce(
+            selectAreValid = this._selectModelComponents.reduce<boolean>(
                 // callback
                 (
                     // accumulator (valeur précédente du résultat)
@@ -259,7 +259,7 @@ export class FieldSetComponent implements DoCheck {
                     currIndex,
                     // array (tableau parcouru)
                     array
-                ) => {
+                ): boolean => {
                     return acc && select.isValid;
                 }
                 // valeur initiale
diff --git a/src/app/components/fixedvar-results/fixed-results.component.ts b/src/app/components/fixedvar-results/fixed-results.component.ts
index 61569300d..4a9534654 100644
--- a/src/app/components/fixedvar-results/fixed-results.component.ts
+++ b/src/app/components/fixedvar-results/fixed-results.component.ts
@@ -20,7 +20,8 @@ export class FixedResultsComponent {
     /** résultats non mis en forme */
     private _fixedResults: FixedResults;
 
-    @ViewChild("tableContainer") table: ElementRef;
+    @ViewChild("tableContainer", { static: false })
+    table: ElementRef;
 
     public tableColumns = [ "parametre", "valeur" ];
 
diff --git a/src/app/components/fixedvar-results/fixedvar-results.component.ts b/src/app/components/fixedvar-results/fixedvar-results.component.ts
index 8beb3a78d..d5d9c85cc 100644
--- a/src/app/components/fixedvar-results/fixedvar-results.component.ts
+++ b/src/app/components/fixedvar-results/fixedvar-results.component.ts
@@ -30,22 +30,22 @@ export class FixedVarResultsComponent implements DoCheck {
      */
     private _doUpdate = false;
 
-    @ViewChild(FixedResultsComponent)
+    @ViewChild(FixedResultsComponent, { static: false })
     private fixedResultsComponent: FixedResultsComponent;
 
-    @ViewChild(VarResultsComponent)
+    @ViewChild(VarResultsComponent, { static: false })
     private varResultsComponent: VarResultsComponent;
 
     /**
      * composant journal
      */
-    @ViewChild(LogComponent)
+    @ViewChild(LogComponent, { static: false })
     private logComponent: LogComponent;
 
     /**
      * graphique dans le cas d'un paramètre à varier
      */
-    @ViewChild(ResultsGraphComponent)
+    @ViewChild(ResultsGraphComponent, { static: false })
     private resultsGraphComponent: ResultsGraphComponent;
 
     constructor(
@@ -69,7 +69,9 @@ export class FixedVarResultsComponent implements DoCheck {
     }
 
     public updateView() {
-        this.logComponent.log = undefined;
+        if (this.logComponent) {
+            this.logComponent.log = undefined;
+        }
         if (this.fixedResultsComponent) {
             this.fixedResultsComponent.results = undefined;
         }
diff --git a/src/app/components/fixedvar-results/var-results.component.ts b/src/app/components/fixedvar-results/var-results.component.ts
index 6a1e67b47..44c695765 100644
--- a/src/app/components/fixedvar-results/var-results.component.ts
+++ b/src/app/components/fixedvar-results/var-results.component.ts
@@ -35,7 +35,8 @@ export class VarResultsComponent extends ResultsComponent {
     /** messages de log issus des résultats variés */
     protected _messages: Message[];
 
-    @ViewChild("tableContainer") table: ElementRef;
+    @ViewChild("tableContainer", { static: false })
+    table: ElementRef;
 
     constructor(
         protected appSetupService: ApplicationSetupService,
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 34a300783..faec11c44 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -44,19 +44,19 @@ export class GenericCalculatorComponent extends BaseComponent implements OnInit,
     /**
      * PabTableComponent if any
      */
-    @ViewChild(PabTableComponent)
+    @ViewChild(PabTableComponent, { static: false })
     private _pabTableComponent: PabTableComponent;
 
     /**
      * composant d'affichage des résultats
      */
-    @ViewChild(CalculatorResultsComponent)
+    @ViewChild(CalculatorResultsComponent, { static: true })
     private resultsComponent: CalculatorResultsComponent;
 
     /**
      * composant "nom du module de calcul"
      */
-    @ViewChild(CalculatorNameComponent)
+    @ViewChild(CalculatorNameComponent, { static: true })
     private _calculatorNameComponent: CalculatorNameComponent;
 
     /**
@@ -360,7 +360,7 @@ export class GenericCalculatorComponent extends BaseComponent implements OnInit,
         }
 
         if (this._fieldsetContainerComponents !== undefined) {
-            this._isUIValid = this._isUIValid && this._fieldsetContainerComponents.reduce(
+            this._isUIValid = this._isUIValid && this._fieldsetContainerComponents.reduce<boolean>(
                 // callback
                 (
                     // accumulator (valeur précédente du résultat)
@@ -371,7 +371,7 @@ export class GenericCalculatorComponent extends BaseComponent implements OnInit,
                     currIndex,
                     // array (tableau parcouru)
                     array
-                ) => {
+                ): boolean => {
                     return acc && fieldsetContainer.isValid;
                 }
                 // valeur initiale
diff --git a/src/app/components/generic-input/generic-input.component.ts b/src/app/components/generic-input/generic-input.component.ts
index 19232853b..3ed95a301 100644
--- a/src/app/components/generic-input/generic-input.component.ts
+++ b/src/app/components/generic-input/generic-input.component.ts
@@ -100,7 +100,8 @@ export abstract class GenericInputComponent extends BaseComponent implements OnC
      */
     private _errorMessageModel: string;
 
-    @ViewChild("inputControl") inputField: NgModel;
+    @ViewChild("inputControl", { static: true })
+    inputField: NgModel;
 
     constructor(private cdRef: ChangeDetectorRef, protected intlService: I18nService) {
         super();
diff --git a/src/app/components/pab-profile-graph/pab-profile-graph.component.ts b/src/app/components/pab-profile-graph/pab-profile-graph.component.ts
index a6689110f..f6cb671da 100644
--- a/src/app/components/pab-profile-graph/pab-profile-graph.component.ts
+++ b/src/app/components/pab-profile-graph/pab-profile-graph.component.ts
@@ -16,7 +16,7 @@ import { PabResults } from "../../results/pab-results";
 })
 export class PabProfileGraphComponent extends ResultsComponent {
 
-    @ViewChild(ChartComponent)
+    @ViewChild(ChartComponent, { static: false })
     private chartComponent;
 
     private _results: PabResults;
diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index cd7cba2d4..45360d96f 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -27,7 +27,8 @@ export class PabResultsTableComponent extends ResultsComponent {
     /** résultats mis en forme */
     private _dataSet: any[];
 
-    @ViewChild("tableContainer") table: ElementRef;
+    @ViewChild("tableContainer", { static: false })
+    table: ElementRef;
 
     constructor(
         protected appSetupService: ApplicationSetupService,
diff --git a/src/app/components/pab-results/pab-results.component.ts b/src/app/components/pab-results/pab-results.component.ts
index ff73e62cb..4c3418eab 100644
--- a/src/app/components/pab-results/pab-results.component.ts
+++ b/src/app/components/pab-results/pab-results.component.ts
@@ -33,22 +33,22 @@ export class PabResultsComponent implements DoCheck {
     /** true si les résultats doiventt être remis à jour */
     private _doUpdate = false;
 
-    @ViewChild(PabResultsTableComponent)
+    @ViewChild(PabResultsTableComponent, { static: false })
     private pabResultsTableComponent: PabResultsTableComponent;
 
-    @ViewChild(PabVariableResultsSelectorComponent)
+    @ViewChild(PabVariableResultsSelectorComponent, { static: false })
     private pabVariableResultsSelectorComponent: PabVariableResultsSelectorComponent;
 
-    @ViewChild("generalLog")
+    @ViewChild("generalLog", { static: false })
     private generalLogComponent: LogComponent;
 
-    @ViewChild("iterationLog")
+    @ViewChild("iterationLog", { static: false })
     private iterationLogComponent: LogComponent;
 
-    @ViewChild(ResultsGraphComponent)
+    @ViewChild(ResultsGraphComponent, { static: false })
     private resultsGraphComponent: ResultsGraphComponent;
 
-    @ViewChild(PabProfileGraphComponent)
+    @ViewChild(PabProfileGraphComponent, { static: false })
     private profileGraphComponent: PabProfileGraphComponent;
 
     constructor(
@@ -76,8 +76,12 @@ export class PabResultsComponent implements DoCheck {
     }
 
     public updateView() {
-        this.iterationLogComponent.log = undefined;
-        this.generalLogComponent.log = undefined;
+        if (this.iterationLogComponent) {
+            this.iterationLogComponent.log = undefined;
+        }
+        if (this.generalLogComponent) {
+            this.generalLogComponent.log = undefined;
+        }
         if (this.pabResultsTableComponent) {
             this.pabResultsTableComponent.results = undefined;
         }
diff --git a/src/app/components/param-field-line/param-field-line.component.ts b/src/app/components/param-field-line/param-field-line.component.ts
index 5b105c01f..ecbbbeb48 100644
--- a/src/app/components/param-field-line/param-field-line.component.ts
+++ b/src/app/components/param-field-line/param-field-line.component.ts
@@ -87,16 +87,13 @@ export class ParamFieldLineComponent implements OnChanges {
     @Input()
     public param: NgParameter;
 
-    @ViewChild(NgParamInputComponent)
+    @ViewChild(NgParamInputComponent, { static: true })
     private _ngParamInputComponent: NgParamInputComponent;
 
-    @ViewChild(ParamComputedComponent)
-    private _paramComputedComponent: ParamComputedComponent;
-
-    @ViewChild(ParamValuesComponent)
+    @ViewChild(ParamValuesComponent, { static: false })
     private _paramValuesComponent: ParamValuesComponent;
 
-    @ViewChild(ParamLinkComponent)
+    @ViewChild(ParamLinkComponent, { static: false })
     private _paramLinkComponent: ParamLinkComponent;
 
     @Output()
diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts
index 7c21d05d6..610dbbeeb 100644
--- a/src/app/components/remous-results/remous-results.component.ts
+++ b/src/app/components/remous-results/remous-results.component.ts
@@ -226,13 +226,13 @@ export class RemousResultsComponent extends ResultsComponent implements DoCheck
     /**
      * composant des résultats variables
      */
-    @ViewChild(VarResultsComponent)
+    @ViewChild(VarResultsComponent, { static: false })
     private varResultsComponent: VarResultsComponent;
 
     /**
      * composant journal
      */
-    @ViewChild(LogComponent)
+    @ViewChild(LogComponent, { static: false })
     private logComponent: LogComponent;
 
     constructor(
diff --git a/src/app/components/results-graph/results-graph.component.ts b/src/app/components/results-graph/results-graph.component.ts
index 0edf3e57c..6ea796e94 100644
--- a/src/app/components/results-graph/results-graph.component.ts
+++ b/src/app/components/results-graph/results-graph.component.ts
@@ -20,7 +20,7 @@ import { ResultsComponent } from "../fixedvar-results/results.component";
 })
 export class ResultsGraphComponent extends ResultsComponent implements AfterContentInit, Observer {
 
-    @ViewChild(ChartComponent)
+    @ViewChild(ChartComponent, { static: false })
     private chartComponent;
 
     private _results: PlottableData;
@@ -30,7 +30,7 @@ export class ResultsGraphComponent extends ResultsComponent implements AfterCont
 
     private _zoomWasChanged = false;
 
-    @ViewChild(GraphTypeSelectComponent)
+    @ViewChild(GraphTypeSelectComponent, { static: true }) // true, or else adding observer will fail in ngAfterContentInit()
     private _graphTypeComponent: GraphTypeSelectComponent;
 
     /*
diff --git a/src/app/components/section-canvas/section-canvas.component.ts b/src/app/components/section-canvas/section-canvas.component.ts
index 788528b8e..3b9230e3d 100644
--- a/src/app/components/section-canvas/section-canvas.component.ts
+++ b/src/app/components/section-canvas/section-canvas.component.ts
@@ -42,7 +42,7 @@ export class SectionCanvasComponent {
     // tirants
     private _levels: Object[] = [];
 
-    @ViewChild("calcCanvas")
+    @ViewChild("calcCanvas", { static: false })
     private _calcCanvas: CalcCanvasComponent;
 
     public set section(s: acSection) {
diff --git a/src/app/components/section-results/section-results.component.ts b/src/app/components/section-results/section-results.component.ts
index 47141eaf2..3b841f7cf 100644
--- a/src/app/components/section-results/section-results.component.ts
+++ b/src/app/components/section-results/section-results.component.ts
@@ -67,7 +67,7 @@ export class SectionResultsComponent extends ResultsComponent implements DoCheck
 
     private _doUpdate = false;
 
-    @ViewChild(SectionCanvasComponent)
+    @ViewChild(SectionCanvasComponent, { static: false })
     private _sectionCanvas: SectionCanvasComponent;
 
     public updateView() {
diff --git a/src/app/formulaire/fieldset.ts b/src/app/formulaire/fieldset.ts
index 8d8148776..4f08999cc 100644
--- a/src/app/formulaire/fieldset.ts
+++ b/src/app/formulaire/fieldset.ts
@@ -35,7 +35,7 @@ export class FieldSet extends FormulaireElement implements Observer {
     }
 
     get label(): string {
-        let label = super.label;
+        let label = this._label;
         if (this.parent instanceof FieldsetContainer) {
             label += " n°" + String(this.parent.getFieldsetPosition(this) + 1);
         }
diff --git a/src/app/formulaire/formulaire-element.ts b/src/app/formulaire/formulaire-element.ts
index 60ee03bda..1bd652334 100644
--- a/src/app/formulaire/formulaire-element.ts
+++ b/src/app/formulaire/formulaire-element.ts
@@ -20,7 +20,7 @@ export abstract class FormulaireElement extends FormulaireNode {
     /**
      * étiquette affichée dans l'UI
      */
-    private _label: string;
+    protected _label: string;
 
     /**
      * n° d'ordre ajouté à l'étiquette
diff --git a/src/app/services/http/http.service.ts b/src/app/services/http/http.service.ts
index 580ffee36..a103cc5a1 100644
--- a/src/app/services/http/http.service.ts
+++ b/src/app/services/http/http.service.ts
@@ -1,7 +1,6 @@
 import { Injectable } from "@angular/core";
 import { HttpClient, HttpHeaders } from "@angular/common/http";
 import { Observable, Subscription } from "rxjs";
-import "rxjs/add/operator/toPromise";
 
 @Injectable()
 export class HttpService {
diff --git a/src/app/services/notifications/notifications.service.ts b/src/app/services/notifications/notifications.service.ts
index bc330b479..5074844dd 100644
--- a/src/app/services/notifications/notifications.service.ts
+++ b/src/app/services/notifications/notifications.service.ts
@@ -1,5 +1,5 @@
 import { Injectable } from "@angular/core";
-import { MatSnackBar } from "@angular/material";
+import { MatSnackBar } from "@angular/material/snack-bar";
 
 import { ApplicationSetupService } from "../app-setup/app-setup.service";
 
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
index f0875f9b2..70806e6f1 100644
--- a/src/tsconfig.app.json
+++ b/src/tsconfig.app.json
@@ -3,7 +3,6 @@
   "compilerOptions": {
     "outDir": "../out-tsc/app",
     "baseUrl": "./",
-    "module": "es2015",
     "types": [ "node" ],
     "typeRoots": [ "../node_modules/@types" ]
   },
diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json
index 1a18e6d00..c89454bef 100644
--- a/src/tsconfig.spec.json
+++ b/src/tsconfig.spec.json
@@ -3,7 +3,6 @@
   "compilerOptions": {
     "outDir": "../out-tsc/spec",
     "baseUrl": "./",
-    "module": "commonjs",
     "types": [
       "jasmine",
       "node"
diff --git a/tsconfig.json b/tsconfig.json
index f6d913f28..c7818722c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,6 +1,7 @@
 {
   "compileOnSave": false,
   "compilerOptions": {
+    "downlevelIteration": true,
     "importHelpers": true,
     "outDir": "./dist/out-tsc",
     "sourceMap": true,
@@ -8,7 +9,7 @@
     "moduleResolution": "node",
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
-    "target": "es6",
+    "target": "es2015",
     "typeRoots": [
       "node_modules/@types"
     ],
@@ -16,7 +17,7 @@
       "es2017",
       "dom"
     ],
-    "module": "es2015",
+    "module": "esnext",
     "baseUrl": "./"
   },
   "include": [
diff --git a/tslint.json b/tslint.json
index 2da8f2207..4c9c262a2 100644
--- a/tslint.json
+++ b/tslint.json
@@ -126,12 +126,12 @@
     ],
     "angular-whitespace": [true, "check-interpolation"],
     "no-output-on-prefix": true,
-    "use-input-property-decorator": true,
-    "use-output-property-decorator": true,
-    "use-host-property-decorator": true,
+    "no-inputs-metadata-property": true,
+    "no-outputs-metadata-property": true,
+    "no-host-metadata-property": true,
     "no-input-rename": true,
     "no-output-rename": true,
-    "use-life-cycle-interface": true,
+    "use-lifecycle-interface": true,
     "use-pipe-transform-interface": true,
     "component-class-suffix": true,
     "directive-class-suffix": true
-- 
GitLab


From 9f38fbd75426924ef45483297095eff6c687cf45 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 17 Jul 2019 16:41:38 +0200
Subject: [PATCH 03/10] Update jalhyd_branch

---
 jalhyd_branch | 1 -
 1 file changed, 1 deletion(-)

diff --git a/jalhyd_branch b/jalhyd_branch
index 19c587308..e69de29bb 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +0,0 @@
-33-ajout-du-calcul-d-une-passe-a-bassin
-- 
GitLab


From 67b96b59388b11ba7ca11f2f6007550af92e05ca Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 17 Jul 2019 16:47:24 +0200
Subject: [PATCH 04/10] Update jalhyd_branch (2)

---
 jalhyd_branch | 1 +
 1 file changed, 1 insertion(+)

diff --git a/jalhyd_branch b/jalhyd_branch
index e69de29bb..1f7391f92 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -0,0 +1 @@
+master
-- 
GitLab


From 0632bed32318e1dfbb0b8a8a52354b08d48ebfec Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 17 Jul 2019 17:15:35 +0200
Subject: [PATCH 05/10] Fix #249

---
 angular.json | 1 -
 1 file changed, 1 deletion(-)

diff --git a/angular.json b/angular.json
index 5482a7544..329e6e9b7 100644
--- a/angular.json
+++ b/angular.json
@@ -33,7 +33,6 @@
               "node_modules/primeng/resources/themes/nova-light/theme.css"
             ],
             "scripts": [
-              "node_modules/chartjs-plugin-zoom/chartjs-plugin-zoom.min.js"
             ],
             "showCircularDependencies": false
           },
-- 
GitLab


From 98e9868732797534e6edbe5fb8cbd1d8eec6e1d4 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 18 Jul 2019 10:40:00 +0200
Subject: [PATCH 06/10] Fix #251

---
 src/app/formulaire/definition/form-definition.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 6569081e7..1e90fa201 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -136,7 +136,9 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
 
     protected parseOptions(json: {}) {
         const dnt = json["defaultNodeType"];
-        this._props["nodeType"] = dnt === undefined ? ComputeNodeType.None : ComputeNodeType[dnt];
+        if (dnt !== undefined) {
+            this._props["nodeType"] = ComputeNodeType[dnt];
+        }
         this.helpLink = json["help"];
     }
 
-- 
GitLab


From 4da857befd21e8004c1875b504a3e11bb008066c Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 18 Jul 2019 11:29:09 +0200
Subject: [PATCH 07/10] Fix #248 - added [title] tooltips on all mat-select
 options

---
 src/app/components/app-setup/app-setup.component.html     | 2 +-
 .../dialog-edit-pab/dialog-edit-pab.component.html        | 2 +-
 .../dialog-edit-param-values.component.html               | 2 +-
 .../generic-select/generic-select.component.html          | 2 +-
 .../pab-variable-results-selector.component.html          | 2 +-
 src/app/components/pab-table/pab-table.component.html     | 2 +-
 src/app/components/param-link/param-link.component.html   | 2 +-
 src/app/components/param-link/param-link.component.scss   | 8 ++++++++
 .../components/results-graph/results-graph.component.html | 4 ++--
 .../select-model-field-line.component.html                | 2 +-
 10 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/app/components/app-setup/app-setup.component.html b/src/app/components/app-setup/app-setup.component.html
index 78e9b85ef..a8bef4b4c 100644
--- a/src/app/components/app-setup/app-setup.component.html
+++ b/src/app/components/app-setup/app-setup.component.html
@@ -75,7 +75,7 @@
         <!-- langue -->
         <mat-form-field>
             <mat-select [placeholder]="uitextLanguage" [(value)]="currentLanguageCode" data-testid="language-select">
-                <mat-option *ngFor="let l of availableLanguages | keyvalue" [value]="l.key">
+                <mat-option *ngFor="let l of availableLanguages | keyvalue" [value]="l.key" [title]="l.value">
                     {{ l.value }}
                 </mat-option>
             </mat-select>
diff --git a/src/app/components/dialog-edit-pab/dialog-edit-pab.component.html b/src/app/components/dialog-edit-pab/dialog-edit-pab.component.html
index 8674eb361..c5658d7f4 100644
--- a/src/app/components/dialog-edit-pab/dialog-edit-pab.component.html
+++ b/src/app/components/dialog-edit-pab/dialog-edit-pab.component.html
@@ -12,7 +12,7 @@
     <!-- champ à modifier -->
     <mat-form-field class="select-form-field">
       <mat-select [placeholder]="uitextVariable" [(value)]="variable">
-          <mat-option *ngFor="let v of availableVariables" [value]="v.value">
+          <mat-option *ngFor="let v of availableVariables" [value]="v.value" [title]="v.label">
               {{ v.label }}
           </mat-option>
       </mat-select>
diff --git a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.html b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.html
index 011f1f7d6..6c6da31db 100644
--- a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.html
+++ b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.html
@@ -103,7 +103,7 @@
     <mat-form-field>
       <mat-select [placeholder]="uitextExtensionStrategy" [(value)]="selectedExtensionStrategy"
         data-testid="variable-extension-strategy-select">
-          <mat-option *ngFor="let e of extensionStrategies" [value]="e.value">
+          <mat-option *ngFor="let e of extensionStrategies" [value]="e.value" [title]="e.label">
               {{ e.label }}
           </mat-option>
       </mat-select>
diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index 005ac9427..f4200c534 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -1,6 +1,6 @@
 <mat-form-field>
     <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue">
-        <mat-option *ngFor="let e of entries" [value]="e">
+        <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
             {{ entryLabel(e) }}
         </mat-option>
     </mat-select>
diff --git a/src/app/components/pab-results/pab-variable-results-selector.component.html b/src/app/components/pab-results/pab-variable-results-selector.component.html
index a6cc6df24..c02043692 100644
--- a/src/app/components/pab-results/pab-variable-results-selector.component.html
+++ b/src/app/components/pab-results/pab-variable-results-selector.component.html
@@ -2,7 +2,7 @@
     <div fxFlex="1 1 100%">
         <mat-form-field>
             <mat-select id="pab-variating-element" [placeholder]="label" [(value)]="selectedValue">
-                <mat-option *ngFor="let e of entries" [value]="e">
+                <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
                     {{ entryLabel(e) }}
                 </mat-option>
             </mat-select>
diff --git a/src/app/components/pab-table/pab-table.component.html b/src/app/components/pab-table/pab-table.component.html
index cad53037f..d6d6d956b 100644
--- a/src/app/components/pab-table/pab-table.component.html
+++ b/src/app/components/pab-table/pab-table.component.html
@@ -89,7 +89,7 @@
                     <mat-select #selectWidget *ngIf="isSelect(cell)" [value]="cell.modelValue"
                       (selectionChange)="loiDebitSelected($event, cell)">
 
-                        <mat-option *ngFor="let opt of cell.options" [value]="opt.value">
+                        <mat-option *ngFor="let opt of cell.options" [value]="opt.value" [title]="opt.label">
                             {{ opt.label }}
                         </mat-option>
                     </mat-select>
diff --git a/src/app/components/param-link/param-link.component.html b/src/app/components/param-link/param-link.component.html
index aeba66357..eadf8016d 100644
--- a/src/app/components/param-link/param-link.component.html
+++ b/src/app/components/param-link/param-link.component.html
@@ -1,7 +1,7 @@
 <mat-form-field>
     <mat-select [id]="selectId" [name]="selectId" [placeholder]="param.title"
         [(ngModel)]="currentLinkedParam" required>
-        <mat-option *ngFor="let e of linkableParams" [value]="e">
+        <mat-option *ngFor="let e of linkableParams" [value]="e" [title]="selectItemLabel(e)">
             {{ selectItemLabel(e) }}
         </mat-option>
     </mat-select>
diff --git a/src/app/components/param-link/param-link.component.scss b/src/app/components/param-link/param-link.component.scss
index 412764067..6cbd9bf46 100644
--- a/src/app/components/param-link/param-link.component.scss
+++ b/src/app/components/param-link/param-link.component.scss
@@ -32,6 +32,14 @@
         }
     }
 
+    /* ::ng-deep .mat-select-panel mat-option.mat-option {
+        height: unset;
+    }
+      
+    ::ng-deep .mat-option-text.mat-option-text {
+        white-space: normal;
+    } */
+
     .status-icons-container {
         position: absolute;
         top: -8px;
diff --git a/src/app/components/results-graph/results-graph.component.html b/src/app/components/results-graph/results-graph.component.html
index 1c15bdcc2..8b48221a4 100644
--- a/src/app/components/results-graph/results-graph.component.html
+++ b/src/app/components/results-graph/results-graph.component.html
@@ -26,7 +26,7 @@
 <div class="select-x-y-axis" fxLayout="row wrap" fxLayoutAlign="space-between start">
     <mat-form-field fxFlex.gt-xs="1 0 auto" fxFlex.lt-sm="1 0 100%">
         <mat-select id="selectX" [placeholder]="uitextSelectX" [(value)]="chartX">
-            <mat-option *ngFor="let x of availableChartAxis" [value]="x">
+            <mat-option *ngFor="let x of availableChartAxis" [value]="x" [title]="getChartAxisLabel(x)">
                 {{ getChartAxisLabel(x) }}
             </mat-option>
         </mat-select>
@@ -35,7 +35,7 @@
     <div fxHide.xs fxFlex.gt-xs="0 0 16px"></div>
 
     <mat-form-field fxFlex.gt-xs="1 0 auto" fxFlex.lt-sm="1 0 100%">
-        <mat-select id="selectY" [placeholder]="uitextSelectY" [(value)]="chartY">
+        <mat-select id="selectY" [placeholder]="uitextSelectY" [(value)]="chartY" [title]="getChartAxisLabel(y)">
             <mat-option *ngFor="let y of availableChartAxis" [value]="y">
                 {{ getChartAxisLabel(y) }}
             </mat-option>
diff --git a/src/app/components/select-model-field-line/select-model-field-line.component.html b/src/app/components/select-model-field-line/select-model-field-line.component.html
index f9153337a..e85ced8af 100644
--- a/src/app/components/select-model-field-line/select-model-field-line.component.html
+++ b/src/app/components/select-model-field-line/select-model-field-line.component.html
@@ -5,7 +5,7 @@
         
         <mat-form-field>
             <mat-select [id]="selectId" [name]="selectId" [placeholder]="label" [(value)]="selectedValue" required>
-                <mat-option *ngFor="let e of entries" [value]="e">
+                <mat-option *ngFor="let e of entries" [value]="e" [title]="selectItemLabel(e)">
                     {{ selectItemLabel(e) }}
                 </mat-option>
             </mat-select>
-- 
GitLab


From 0282f4f3d5d52ae78f9eadc54f91574595e1ab66 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 18 Jul 2019 11:36:46 +0200
Subject: [PATCH 08/10] Fix #244 textarea padding in variable values editor

---
 .../dialog-edit-param-values.component.scss                      | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.scss b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.scss
index 0ffd355d6..05575407c 100644
--- a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.scss
+++ b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.scss
@@ -5,6 +5,7 @@ mat-form-field {
     textarea {
         font-size: .8em;
         max-height: 100px;
+        padding: 0;
     }
 
     mat-error {
-- 
GitLab


From efeb9bc76e0688c623e8a97eb60527aa5a8855df Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 18 Jul 2019 11:40:38 +0200
Subject: [PATCH 09/10] Fix bug related to #248

---
 src/app/components/param-link/param-link.component.scss   | 8 --------
 .../components/results-graph/results-graph.component.html | 4 ++--
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/app/components/param-link/param-link.component.scss b/src/app/components/param-link/param-link.component.scss
index 6cbd9bf46..412764067 100644
--- a/src/app/components/param-link/param-link.component.scss
+++ b/src/app/components/param-link/param-link.component.scss
@@ -32,14 +32,6 @@
         }
     }
 
-    /* ::ng-deep .mat-select-panel mat-option.mat-option {
-        height: unset;
-    }
-      
-    ::ng-deep .mat-option-text.mat-option-text {
-        white-space: normal;
-    } */
-
     .status-icons-container {
         position: absolute;
         top: -8px;
diff --git a/src/app/components/results-graph/results-graph.component.html b/src/app/components/results-graph/results-graph.component.html
index 8b48221a4..50024d806 100644
--- a/src/app/components/results-graph/results-graph.component.html
+++ b/src/app/components/results-graph/results-graph.component.html
@@ -35,8 +35,8 @@
     <div fxHide.xs fxFlex.gt-xs="0 0 16px"></div>
 
     <mat-form-field fxFlex.gt-xs="1 0 auto" fxFlex.lt-sm="1 0 100%">
-        <mat-select id="selectY" [placeholder]="uitextSelectY" [(value)]="chartY" [title]="getChartAxisLabel(y)">
-            <mat-option *ngFor="let y of availableChartAxis" [value]="y">
+        <mat-select id="selectY" [placeholder]="uitextSelectY" [(value)]="chartY">
+            <mat-option *ngFor="let y of availableChartAxis" [value]="y" [title]="getChartAxisLabel(y)">
                 {{ getChartAxisLabel(y) }}
             </mat-option>
         </mat-select>
-- 
GitLab


From 3bb2985e45dc8ee8176f4465bfa49c7b1c26eac4 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 18 Jul 2019 12:09:25 +0200
Subject: [PATCH 10/10] Fix #245 - PAB : add / copy multiple devices at a time

---
 .../pab-table/pab-table.component.ts          | 168 +++++++++++-------
 1 file changed, 100 insertions(+), 68 deletions(-)

diff --git a/src/app/components/pab-table/pab-table.component.ts b/src/app/components/pab-table/pab-table.component.ts
index 2981fb703..139505fd4 100644
--- a/src/app/components/pab-table/pab-table.component.ts
+++ b/src/app/components/pab-table/pab-table.component.ts
@@ -12,7 +12,8 @@ import {
     Structure,
     ParallelStructure,
     ParamDefinition,
-    round
+    round,
+    CloisonAval
  } from "jalhyd";
 
  import { sprintf } from "sprintf-js";
@@ -791,6 +792,28 @@ export class PabTableComponent implements AfterViewInit, OnInit {
         return ok;
     }
 
+    /**
+     * Returns true if there is at least one selected item,
+     * all selected items are devices, and belong to the same column
+     */
+    private onlyDevicesOfTheSameColumnAreSelected() {
+        let ok = false;
+        let columnIndex: number;
+        if (this.selectedItems.length > 0) {
+            ok = true;
+            for (const s of this.selectedItems) {
+                if (s instanceof Structure) {
+                    const ci = s.findPositionInParent();
+                    ok = ok && (columnIndex === undefined || columnIndex === ci);
+                    columnIndex = ci;
+                } else {
+                    ok = false;
+                }
+            }
+        }
+        return ok;
+    }
+
     /**
      * Returns true if there is at least one selected item,
      * and all selected items are walls
@@ -825,21 +848,22 @@ export class PabTableComponent implements AfterViewInit, OnInit {
 
     public get enableAddButton() {
         return (
-            this.selectedItems.length === 1
-            && this.selectedItem.parent // exclude downwall
+            this.onlyDevicesOfTheSameColumnAreSelected()
+            || (
+                this.selectedItems.length === 1
+                && ! (this.selectedItem instanceof CloisonAval) // exclude downwall
+            )
         );
     }
 
     public get enableCopyButton() {
-        return (
-            this.selectedItems.length === 1
-            && this.selectedItem.parent // exclude downwall
-        );
+        return this.enableAddButton;
     }
 
     public get enableUpButton() {
         return (
             this.selectedItems.length === 1
+            && ! (this.selectedItem instanceof CloisonAval) // exclude downwall
             && this.selectedItem.parent
             && this.selectedItem.findPositionInParent() !== 0
         );
@@ -848,6 +872,7 @@ export class PabTableComponent implements AfterViewInit, OnInit {
     public get enableDownButton() {
         return (
             this.selectedItems.length === 1
+            && ! (this.selectedItem instanceof CloisonAval) // exclude downwall
             && this.selectedItem.parent
             && this.selectedItem.findPositionInParent() < (this.selectedItem.parent.getChildren().length - 1)
         );
@@ -856,6 +881,7 @@ export class PabTableComponent implements AfterViewInit, OnInit {
     public get enableRemoveButton() {
         return (
             this.selectedItems.length === 1
+            && ! (this.selectedItem instanceof CloisonAval) // exclude downwall
             && this.selectedItem.parent
             && this.selectedItem.parent.getChildren().length > 1
         );
@@ -877,32 +903,34 @@ export class PabTableComponent implements AfterViewInit, OnInit {
     public onAddClick() {
         // add default item
         for (let i = 0; i < this.childrenToAdd; i++) {
-            if (this.selectedItem instanceof Structure) {
-                // add new default device for wall parent
-                const newDevice = Session.getInstance().createNub(
-                    new Props({
-                        calcType: CalculatorType.Structure,
-                        loiDebit: (this.selectedItem.parent as ParallelStructure).getDefaultLoiDebit()
-                    })
-                );
-                this.selectedItem.parent.addChild(newDevice, this.selectedItem.findPositionInParent());
+            for (const si of this.selectedItems) {
+                if (si instanceof Structure) {
+                    // add new default device for wall parent
+                    const newDevice = Session.getInstance().createNub(
+                        new Props({
+                            calcType: CalculatorType.Structure,
+                            loiDebit: (si.parent as ParallelStructure).getDefaultLoiDebit()
+                        })
+                    );
+                    si.parent.addChild(newDevice, si.findPositionInParent());
 
-            } else {
-                // add new default wall for PAB parent
-                const newWall = Session.getInstance().createNub(
-                    new Props({
-                        calcType: CalculatorType.Cloisons
-                    })
-                );
-                // add new default device for new wall
-                const newDevice = Session.getInstance().createNub(
-                    new Props({
-                        calcType: CalculatorType.Structure,
-                        loiDebit: (newWall as ParallelStructure).getDefaultLoiDebit()
-                    })
-                );
-                newWall.addChild(newDevice);
-                this.model.addChild(newWall, this.selectedItem.findPositionInParent());
+                } else {
+                    // add new default wall for PAB parent
+                    const newWall = Session.getInstance().createNub(
+                        new Props({
+                            calcType: CalculatorType.Cloisons
+                        })
+                    );
+                    // add new default device for new wall
+                    const newDevice = Session.getInstance().createNub(
+                        new Props({
+                            calcType: CalculatorType.Structure,
+                            loiDebit: (newWall as ParallelStructure).getDefaultLoiDebit()
+                        })
+                    );
+                    newWall.addChild(newDevice);
+                    this.model.addChild(newWall, si.findPositionInParent());
+                }
             }
         }
         this.refresh();
@@ -910,17 +938,18 @@ export class PabTableComponent implements AfterViewInit, OnInit {
         // notify
         const pos = this.selectedItem.findPositionInParent() + 1;
         let msg: string;
-        if (this.childrenToAdd === 1) {
+        if (this.childrenToAdd === 1 && this.selectedItems.length === 1) {
             if (this.selectedItem instanceof Structure) {
-                msg = sprintf(this.i18nService.localizeText("INFO_DEVICE_ADDED"), pos);
+                msg = this.i18nService.localizeText("INFO_DEVICE_ADDED");
             } else {
-                msg = sprintf(this.i18nService.localizeText("INFO_WALL_ADDED"), pos);
+                msg = this.i18nService.localizeText("INFO_WALL_ADDED");
             }
         } else {
+            const size = (this.childrenToAdd * this.selectedItems.length);
             if (this.selectedItem instanceof Structure) {
-                msg = sprintf(this.i18nService.localizeText("INFO_DEVICE_ADDED_N_TIMES"), this.childrenToAdd);
+                msg = sprintf(this.i18nService.localizeText("INFO_DEVICE_ADDED_N_TIMES"), size);
             } else {
-                msg = sprintf(this.i18nService.localizeText("INFO_WALL_ADDED_N_TIMES"), this.childrenToAdd);
+                msg = sprintf(this.i18nService.localizeText("INFO_WALL_ADDED_N_TIMES"), size);
             }
         }
         this.notifService.notify(msg);
@@ -931,54 +960,57 @@ export class PabTableComponent implements AfterViewInit, OnInit {
     public onCopyClick() {
         // cloned selected item
         for (let i = 0; i < this.childrenToAdd; i++) {
-            const newChild = Session.getInstance().createNub(
-                this.selectedItem.properties.clone(),
-                this.selectedItem.parent
-            );
-            // copy parameter values
-            for (const p of this.selectedItem.prms) {
-                newChild.getParameter(p.symbol).singleValue = p.singleValue;
-            }
-            // copy children
-            if (this.selectedItem instanceof ParallelStructure) {
-                for (const c of this.selectedItem.getChildren()) {
-                    const newGrandChild = Session.getInstance().createNub(
-                        c.properties.clone(),
-                        newChild
-                    );
-                    // copy children parameters values
-                    for (const p of c.prms) {
-                        newGrandChild.getParameter(p.symbol).singleValue = p.singleValue;
+            for (const si of this.selectedItems) {
+                const newChild = Session.getInstance().createNub(
+                    si.properties.clone(),
+                    si.parent
+                );
+                // copy parameter values
+                for (const p of si.prms) {
+                    newChild.getParameter(p.symbol).singleValue = p.singleValue;
+                }
+                // copy children
+                if (si instanceof ParallelStructure) {
+                    for (const c of si.getChildren()) {
+                        const newGrandChild = Session.getInstance().createNub(
+                            c.properties.clone(),
+                            newChild
+                        );
+                        // copy children parameters values
+                        for (const p of c.prms) {
+                            newGrandChild.getParameter(p.symbol).singleValue = p.singleValue;
+                        }
+                        // add to parent
+                        newChild.addChild(
+                            newGrandChild,
+                            c.findPositionInParent()
+                        );
                     }
-                    // add to parent
-                    newChild.addChild(
-                        newGrandChild,
-                        c.findPositionInParent()
-                    );
                 }
+                // add to parent
+                si.parent.addChild(
+                    newChild,
+                    si.findPositionInParent()
+                );
             }
-            // add to parent
-            this.selectedItem.parent.addChild(
-                newChild,
-                this.selectedItem.findPositionInParent()
-            );
         }
         this.refresh();
 
         // notify
         const pos = this.selectedItem.findPositionInParent() + 1;
         let msg: string;
-        if (this.childrenToAdd === 1) {
+        if (this.childrenToAdd === 1 && this.selectedItems.length === 1) {
             if (this.selectedItem instanceof Structure) {
                 msg = sprintf(this.i18nService.localizeText("INFO_DEVICE_COPIED"), pos);
             } else {
                 msg = sprintf(this.i18nService.localizeText("INFO_WALL_COPIED"), pos);
             }
         } else {
+            const size = (this.childrenToAdd * this.selectedItems.length);
             if (this.selectedItem instanceof Structure) {
-                msg = sprintf(this.i18nService.localizeText("INFO_DEVICE_COPIED_N_TIMES"), pos, this.childrenToAdd);
+                msg = sprintf(this.i18nService.localizeText("INFO_DEVICE_COPIED_N_TIMES"), pos, size);
             } else {
-                msg = sprintf(this.i18nService.localizeText("INFO_WALL_COPIED_N_TIMES"), pos, this.childrenToAdd);
+                msg = sprintf(this.i18nService.localizeText("INFO_WALL_COPIED_N_TIMES"), pos, size);
             }
         }
         this.notifService.notify(msg);
-- 
GitLab