From b871ad99f316c02fe6777df1c9b30a7226c1b77e Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 19 May 2020 14:48:58 +0200
Subject: [PATCH 001/101] Update jalhyd_branch

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

diff --git a/jalhyd_branch b/jalhyd_branch
index 1f7391f92..1e054d20c 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +1 @@
-master
+223-calage-d-une-par-remplacer-la-cote-de-deversement-par-la-charge
-- 
GitLab


From 1c949138f7ba522c4504ecd559cf9f17724d68f5 Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@irstea.fr>
Date: Mon, 4 May 2020 18:57:24 +0200
Subject: [PATCH 002/101] ci: forgot to specify the jalhyd branch

Refs #398
---
 jalhyd_branch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/jalhyd_branch b/jalhyd_branch
index 1e054d20c..d64531f13 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +1 @@
-223-calage-d-une-par-remplacer-la-cote-de-deversement-par-la-charge
+devel
-- 
GitLab


From 556eab2cce35b734fcdcee6b6ca8be59db59c26c Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 1 Apr 2020 16:01:48 +0200
Subject: [PATCH 003/101] Update jalhyd_branch

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

diff --git a/jalhyd_branch b/jalhyd_branch
index d64531f13..f95555f7a 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +1 @@
-devel
+204-ajout-de-la-fonctionnalite-respect-des-criteres-2
-- 
GitLab


From 269dab8bb904200ab2c94fb98e1e15f7643d70b6 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 1 Apr 2020 16:01:59 +0200
Subject: [PATCH 004/101] Configuration and translation for PAR Simulation : DH

---
 src/app/calculators/parsimulation/en.json | 3 ++-
 src/app/calculators/parsimulation/fr.json | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/app/calculators/parsimulation/en.json b/src/app/calculators/parsimulation/en.json
index 633c670b6..d7ff7f55e 100644
--- a/src/app/calculators/parsimulation/en.json
+++ b/src/app/calculators/parsimulation/en.json
@@ -64,5 +64,6 @@
     "UNIT_ZD2": "m",
     "UNIT_ZR2": "m",
     "UNIT_LPI": "m",
-    "UNIT_LPH": "m"
+    "UNIT_LPH": "m",
+    "UNIT_DH": "m"
 }
diff --git a/src/app/calculators/parsimulation/fr.json b/src/app/calculators/parsimulation/fr.json
index 50a84eff9..0c37ad399 100644
--- a/src/app/calculators/parsimulation/fr.json
+++ b/src/app/calculators/parsimulation/fr.json
@@ -60,5 +60,6 @@
     "UNIT_ZD2": "m",
     "UNIT_ZR2": "m",
     "UNIT_LPI": "m",
-    "UNIT_LPH": "m"
+    "UNIT_LPH": "m",
+    "UNIT_DH": "m"
 }
-- 
GitLab


From 0510dca40a7a4950e52727de739085790db75000 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Fri, 3 Apr 2020 14:58:21 +0200
Subject: [PATCH 005/101] Option in  calculator config to disable calculation
 permanently

---
 .../generic-calculator/calculator.component.ts         |  3 ++-
 src/app/formulaire/definition/form-definition.ts       | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 2850e8ce3..0e943341d 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -444,7 +444,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
      */
     private updateUIValidity() {
         this._isUIValid = false;
-
+        if (! this._formulaire.calculateDisabled) {
         if (this._fieldsetComponents !== undefined) {
             this._isUIValid = this._fieldsetComponents.reduce(
                 // callback
@@ -487,6 +487,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
             this._isUIValid = this._isUIValid && this._pabTableComponent.isValid;
         }
     }
+    }
 
     public getElementStyleDisplay(id: string) {
         const isDisplayed: boolean = this._formulaire.isDisplayed(id);
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 3cb94b538..1512cf77e 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -45,6 +45,9 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
     /** aide en ligne pour les résultats */
     protected _resultsHelpLinks: { [key: string]: string };
 
+    /** set to true to definitely gray-out Calculate button  */
+    protected _calculateDisabled = false;
+
     /** fichier de configuration */
     private _jsonConfig: {};
 
@@ -71,6 +74,10 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         }
     }
 
+    public get calculateDisabled(): boolean {
+        return this._calculateDisabled;
+    }
+
     public get specificLocalisation() {
         return this._specificLocalisation;
     }
@@ -160,6 +167,9 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         }
         this._helpLink = json["help"];
         this._resultsHelpLinks = json["resultsHelp"];
+        if (json["calculateDisabled"] !== undefined) {
+            this._calculateDisabled = json["calculateDisabled"];
+        }
     }
 
     /** called at the end of parseConfig() */
-- 
GitLab


From f670379e861c13cab732c3a3de72dd539166fff5 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Fri, 3 Apr 2020 14:59:22 +0200
Subject: [PATCH 006/101] Fix bug: Alt+Enter triggers calculation even if form
 is invalid

---
 .../calculator.component.ts                   | 83 ++++++++++---------
 1 file changed, 42 insertions(+), 41 deletions(-)

diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 0e943341d..23b0de141 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -445,49 +445,50 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
     private updateUIValidity() {
         this._isUIValid = false;
         if (! this._formulaire.calculateDisabled) {
-        if (this._fieldsetComponents !== undefined) {
-            this._isUIValid = this._fieldsetComponents.reduce(
-                // callback
-                (
-                    // accumulator (valeur précédente du résultat)
-                    acc,
-                    // currentValue (élément courant dans le tableau)
-                    fieldset,
-                    // currentIndex (indice courant dans le tableau)
-                    currIndex,
-                    // array (tableau parcouru)
-                    array
-                ) => {
-                    return acc && fieldset.isValid;
-                }
-                // valeur initiale
-                , this._fieldsetComponents.length > 0);
-        }
-
-        if (this._fieldsetContainerComponents !== undefined) {
-            this._isUIValid = this._isUIValid && this._fieldsetContainerComponents.reduce<boolean>(
-                // callback
-                (
-                    // accumulator (valeur précédente du résultat)
-                    acc,
-                    // currentValue (élément courant dans le tableau)
-                    fieldsetContainer,
-                    // currentIndex (indice courant dans le tableau)
-                    currIndex,
-                    // array (tableau parcouru)
-                    array
-                ): boolean => {
-                    return acc && fieldsetContainer.isValid;
-                }
-                // valeur initiale
-                , true);
-        }
-
-        if (this._pabTableComponent !== undefined) {
-            this._isUIValid = this._isUIValid && this._pabTableComponent.isValid;
+            // all fieldsets must be valid
+            if (this._fieldsetComponents !== undefined) {
+                this._isUIValid = this._fieldsetComponents.reduce(
+                    // callback
+                    (
+                        // accumulator (valeur précédente du résultat)
+                        acc,
+                        // currentValue (élément courant dans le tableau)
+                        fieldset,
+                        // currentIndex (indice courant dans le tableau)
+                        currIndex,
+                        // array (tableau parcouru)
+                        array
+                    ) => {
+                        return acc && fieldset.isValid;
+                    }
+                    // valeur initiale
+                    , this._fieldsetComponents.length > 0);
+            }
+            // all fieldset containers must be valid
+            if (this._fieldsetContainerComponents !== undefined) {
+                this._isUIValid = this._isUIValid && this._fieldsetContainerComponents.reduce<boolean>(
+                    // callback
+                    (
+                        // accumulator (valeur précédente du résultat)
+                        acc,
+                        // currentValue (élément courant dans le tableau)
+                        fieldsetContainer,
+                        // currentIndex (indice courant dans le tableau)
+                        currIndex,
+                        // array (tableau parcouru)
+                        array
+                    ): boolean => {
+                        return acc && fieldsetContainer.isValid;
+                    }
+                    // valeur initiale
+                    , true);
+            }
+            // special components must be valid
+            if (this._pabTableComponent !== undefined) {
+                this._isUIValid = this._isUIValid && this._pabTableComponent.isValid;
+            }
         }
     }
-    }
 
     public getElementStyleDisplay(id: string) {
         const isDisplayed: boolean = this._formulaire.isDisplayed(id);
-- 
GitLab


From 322483c7679de4e0d3772e82d6a20826935582a3 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Fri, 3 Apr 2020 15:05:42 +0200
Subject: [PATCH 007/101] Hide calculate button and results panel when form is
 not calculable

---
 .../components/generic-calculator/calculator.component.html   | 4 +++-
 src/app/components/generic-calculator/calculator.component.ts | 4 ++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/app/components/generic-calculator/calculator.component.html b/src/app/components/generic-calculator/calculator.component.html
index b1b3ec2b0..7b46d2c9e 100644
--- a/src/app/components/generic-calculator/calculator.component.html
+++ b/src/app/components/generic-calculator/calculator.component.html
@@ -76,7 +76,8 @@
 
                     <mat-card-actions>
                         <!-- bouton calculer -->
-                        <button type="submit" id="trigger-calculate" mat-raised-button color="accent" name="Calculer" (click)="doCompute()" [disabled]="isCalculateDisabled">
+                        <button type="submit" id="trigger-calculate" mat-raised-button color="accent" name="Calculer"
+                          (click)="doCompute()" [disabled]="isCalculateDisabled" [hidden]="calculateDisabledPermanently">
                             {{ uitextCalculer }}
                         </button>
                     </mat-card-actions>
@@ -84,6 +85,7 @@
 
                 <!-- résultats -->
                 <mat-card id="calc-card-results"
+                  [hidden]="calculateDisabledPermanently"
                   [class.pab-results]="isWide"
                   [fxFlex.gt-sm]="isWide ? '1 0 auto' : '1 0 400px'"
                   [fxFlex.lt-md]="isWide ? '1 0 auto' : '1 0 500px'"
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 23b0de141..d9d8f93ce 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -157,6 +157,10 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         return this._formulaire.kids as FormulaireElement[];
     }
 
+    public get calculateDisabledPermanently(): boolean {
+        return this._formulaire.calculateDisabled;
+    }
+
     /**
      * détermine si un FormulaireElement est du type FieldSet
      */
-- 
GitLab


From bb202610cc049bca5356da9c1c5131863bb79dd9 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Fri, 3 Apr 2020 15:06:09 +0200
Subject: [PATCH 008/101] New theme: Verification; new GUI for Espece

---
 src/app/calculators/espece/config.json       |  49 +++++++++++++++++++
 src/app/calculators/espece/en.json           |  23 +++++++++
 src/app/calculators/espece/fr.json           |  23 +++++++++
 src/app/calculators/verificateur/config.json |   0
 src/app/config.json                          |   8 +++
 src/assets/images/themes/verification.jpg    | Bin 0 -> 34221 bytes
 src/locale/messages.en.json                  |  45 +++++++++++++----
 src/locale/messages.fr.json                  |  29 ++++++++++-
 8 files changed, 167 insertions(+), 10 deletions(-)
 create mode 100644 src/app/calculators/espece/config.json
 create mode 100644 src/app/calculators/espece/en.json
 create mode 100644 src/app/calculators/espece/fr.json
 create mode 100644 src/app/calculators/verificateur/config.json
 create mode 100644 src/assets/images/themes/verification.jpg

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
new file mode 100644
index 000000000..d11f5f33e
--- /dev/null
+++ b/src/app/calculators/espece/config.json
@@ -0,0 +1,49 @@
+[
+    {
+        "id": "fs_param_species",
+        "type": "fieldset",
+        "fields": [
+            {
+                "id": "DHMax",
+                "allowEmpty": true
+            },
+            {
+                "id": "BMin",
+                "allowEmpty": true
+            },
+            {
+                "id": "PMin",
+                "allowEmpty": true
+            },
+            {
+                "id": "LMin",
+                "allowEmpty": true
+            },
+            {
+                "id": "HMin",
+                "allowEmpty": true
+            },
+            {
+                "id": "YMin",
+                "allowEmpty": true
+            },
+            {
+                "id": "VMax",
+                "allowEmpty": true
+            },
+            {
+                "id": "YMinSB",
+                "allowEmpty": true
+            },
+            {
+                "id": "YMinPB",
+                "allowEmpty": true
+            }
+        ]
+    },
+    {
+        "type": "options",
+        "help": "verification/espece.html",
+        "calculateDisabled": true
+    }
+]
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
new file mode 100644
index 000000000..2f28082b7
--- /dev/null
+++ b/src/app/calculators/espece/en.json
@@ -0,0 +1,23 @@
+{
+    "fs_param_species": "Species parameters",
+
+    "DHMax": "Maximal fall",
+    "BMin": "Minimal slot or weir width",
+    "PMin": "Minimal basin width",
+    "LMin": "Minimal basin length",
+    "HMin": "Minimal head on weir",
+    "YMin": "Minimal water level",
+    "VMax": "Maximal flow velocity",
+    "YMinSB": "Minimal water level on superactive baffles",
+    "YMinPB": "Minimal water level on plane baffles",
+
+    "UNIT_DHMax": "m",
+    "UNIT_BMin": "m",
+    "UNIT_PMin": "m",
+    "UNIT_LMin": "m",
+    "UNIT_HMin": "m",
+    "UNIT_YMin": "m",
+    "UNIT_VMax": "m/s",
+    "UNIT_YMinSB": "m",
+    "UNIT_YMinPB": "m"
+}
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
new file mode 100644
index 000000000..8100e4607
--- /dev/null
+++ b/src/app/calculators/espece/fr.json
@@ -0,0 +1,23 @@
+{
+    "fs_param_species": "Paramètres de l'espèce",
+
+    "DHMax": "Chute maximale",
+    "BMin": "Largeur minimale de fente ou échancrure latérale",
+    "PMin": "Profondeur minimale de bassin",
+    "LMin": "Longueur minimale de bassin",
+    "HMin": "Charge minimale sur l'échancrure",
+    "YMin": "Tirant d'eau minimal",
+    "VMax": "Vitesse d'écoulement maximale",
+    "YMinSB": "Tirant d'eau minimal sur les ralentisseurs suractifs de fond",
+    "YMinPB": "Tirant d'eau minimal sur les ralentisseurs plans",
+
+    "UNIT_DHMax": "m",
+    "UNIT_BMin": "m",
+    "UNIT_PMin": "m",
+    "UNIT_LMin": "m",
+    "UNIT_HMin": "m",
+    "UNIT_YMin": "m",
+    "UNIT_VMax": "m/s",
+    "UNIT_YMinSB": "m",
+    "UNIT_YMinPB": "m"
+}
diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/app/config.json b/src/app/config.json
index 81a0d953f..13f3cc083 100644
--- a/src/app/config.json
+++ b/src/app/config.json
@@ -33,6 +33,14 @@
             },
             "calculators": [ 11, 17, 27 ]
         },
+        {
+            "name": "VERIFICATION",
+            "image": {
+                "path": "verification.jpg",
+                "credits": "????"
+            },
+            "calculators": [ 31, 30 ]
+        },
         {
             "name": "DEVALAISON",
             "image": {
diff --git a/src/assets/images/themes/verification.jpg b/src/assets/images/themes/verification.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3cfe11de2b2ab17adb9a1f2eda7e2d92e79cf013
GIT binary patch
literal 34221
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
HDXIV2$;*b1

literal 0
HcmV?d00001

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index cba8bbdfb..88a4f2bc9 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -105,8 +105,8 @@
     "INFO_DIALOG_COMPUTED_VALUE_TITLE": "Edit initial value",
     "INFO_DIALOG_EDIT_PAB_INTERPOLATION_BOUNDS": "between %s and %s",
     "INFO_DIALOG_EDIT_PAB_N_DEVICES": "%s device(s)",
-    "INFO_DIALOG_EDIT_PAB_N_WALLS": "%s wall(s) : %s device(s)",
-    "INFO_DIALOG_EDIT_PAB_N_WALLS_P_DEVICES": "%s wall(s) + %s device(s) : %s devices",
+    "INFO_DIALOG_EDIT_PAB_N_WALLS": "%s wall(s): %s device(s)",
+    "INFO_DIALOG_EDIT_PAB_N_WALLS_P_DEVICES": "%s wall(s) + %s device(s): %s devices",
     "INFO_DIALOG_EDIT_PAB_OPTION_VARIABLE": "Variable to edit",
     "INFO_DIALOG_EDIT_PAB_OPTION_SET_VALUE": "Fixed value",
     "INFO_DIALOG_EDIT_PAB_OPTION_DELTA": "Delta",
@@ -236,7 +236,7 @@
     "INFO_LIB_CV": "Cv: Velocity coefficient",
     "INFO_LIB_CVQT": "CV.QT: Corrected discharge",
     "INFO_LIB_DH": "Fall",
-    "INFO_LIB_DHR": "DHR : Residual fall",
+    "INFO_LIB_DHR": "DHR: Residual fall",
     "INFO_LIB_DISTANCE_AMONT": "Distance from upstream (m)",
     "INFO_LIB_EC": "EC: Kinetic energy",
     "INFO_LIB_ENUM_MACRORUGOFLOWTYPE": "Flow type",
@@ -400,8 +400,8 @@
     "INFO_PABCHUTE_TITRE": "Fish ladder: fall",
     "INFO_PABDIMENSIONS_TITRE_COURT": "FL: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Fish ladder: dimensions",
-    "INFO_PABNOMBRE_TITRE_COURT": "FL : number",
-    "INFO_PABNOMBRE_TITRE": "Fish ladder : number of falls",
+    "INFO_PABNOMBRE_TITRE_COURT": "FL: number",
+    "INFO_PABNOMBRE_TITRE": "Fish ladder: number of falls",
     "INFO_PABPUISSANCE_TITRE_COURT": "FL: diss. power",
     "INFO_PABPUISSANCE_TITRE": "Fish ladder: dissipated power",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "// structures",
@@ -512,6 +512,8 @@
     "INFO_THEME_PASSE_A_RALENTISSEURS_DESCRIPTION": "Humpback fishway",
     "INFO_THEME_PASSE_NATURELLE_DESCRIPTION": "Tools for sizing a natural fish pass also called macroroughness pass or rock-ramp fish pass",
     "INFO_THEME_PASSE_NATURELLE_TITRE": "Natural pass",
+    "INFO_THEME_VERIFICATION_DESCRIPTION": "Tools for verifying fish passes crossing capabilities by different fish species",
+    "INFO_THEME_VERIFICATION_TITRE": "Fish passes verification",
     "INFO_TITREJOURNAL": "Calculation log",
     "INFO_TITREJOURNAL_GLOBAL": "Calculation log synthesis",
     "INFO_WELCOME_CONTENT": "<p>The Cassiopée software was developed by the ecohydraulic R&D pole gathering <a href=\"https://ofb.gouv.fr\" target=\"_blank\">OFB</a> (French Office for Biodiversity) and <a href=\"https://www.imft.fr\" target=\"_blank\">IMFT</a> (Fluids Mechanics Institute of Toulouse) and by <a href=\"http://g-eau.fr/index.php/en/\" target=\"_blank\">UMR G-EAU</a> (Joint Research Unit \"Water Management, Actors, Territories\").</p><p>It includes tools for designing fish crossing devices for upstream and downstream migrations, and hydraulic calculation tools useful for environmental and agricultural engineering.</p><p>For more information, consult <a href=\"assets/docs/en/mentions_legales.html\" target=\"_blank\">legal notice</a> and <a href=\"assets/docs/en/index.html\" target=\"_blank\">documentation</a>.</p>",
@@ -528,6 +530,10 @@
     "INFO_YAXB_TITRE_COURT": "Linear f.",
     "INFO_TRIGO_TITRE": "Trigonometric function",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
+    "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
+    "INFO_VERIFICATEUR_TITRE_COURT": "Verification",
+    "INFO_ESPECE_TITRE": "Fish species characteristics",
+    "INFO_ESPECE_TITRE_COURT": "Species",
     "WARNING_WARNINGS_ABSTRACT": "%nb% warnings occurred during calculation",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "There is no solution",
     "WARNING_DEVER_ZDV_INF_ZR": "Apron elevation of structure #%number% is below river bed elevation",
@@ -539,9 +545,9 @@
     "WARNING_STRUCTUREKIVI_PELLE_TROP_FAIBLE": "Threshold height should be greater than 0.1 m. Beta coefficient is forced to 0",
     "WARNING_VANLEV_ZDV_INF_MIN": "Regulated weir: minimum sill elevation reached",
     "WARNING_VANLEV_ZDV_SUP_MAX": "Regulated weir: maximum sill elevation reached",
-    "WARNING_GRILLE_ALPHA_GREATER_THAN_45": "Recommendation for fish guiding : α ≤ 45°",
-    "WARNING_GRILLE_BETA_GREATER_THAN_26": "Recommendation for fish guiding : β ≤ 26°",
-    "WARNING_GRILLE_VN_GREATER_THAN_05": "Recommendation to prevent fish getting stuck on grid plan (physical barrier) or prematurely passing through the grid (behavioural barrier) : VN ≤ 0.5 m/s.<br>Above average value calculated here, refer to the recommendations taken from experimental caracterisation of effective speed values.",
+    "WARNING_GRILLE_ALPHA_GREATER_THAN_45": "Recommendation for fish guiding: α ≤ 45°",
+    "WARNING_GRILLE_BETA_GREATER_THAN_26": "Recommendation for fish guiding: β ≤ 26°",
+    "WARNING_GRILLE_VN_GREATER_THAN_05": "Recommendation to prevent fish getting stuck on grid plan (physical barrier) or prematurely passing through the grid (behavioural barrier): VN ≤ 0.5 m/s.<br>Above average value calculated here, refer to the recommendations taken from experimental caracterisation of effective speed values.",
     "WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2": "This formula is discouraged for a speed that is not between 0.4 and 2 m/s",
     "WARNING_UPSTREAM_BOTTOM_HIGHER_THAN_WATER": "Upstream water elevation is lower or equal to bottom elevation",
     "WARNING_DOWNSTREAM_BOTTOM_HIGHER_THAN_WATER": "Downstream water elevation is lower or equal to bottom elevation",
@@ -570,5 +576,26 @@
     "WARNING_PAR_NOT_SUBMERGED": "Insufficient downstream submergence : fall at the last downstream baffle (%DH% m).",
     "ERROR_PAR_M_GREATER_THAN_2_N": "Number of longitudinal strips exceeds 2N = %max%",
     "INFO_PARENT_PREFIX": "%name% #%position%: ",
-    "INFO_PARENT_PREFIX_DOWNWALL": "downwall: "
+    "INFO_PARENT_PREFIX_DOWNWALL": "downwall: ",
+    "ERROR_VERIF_ERRORS_IN_PASS": "Pass to verify contains errors",
+    "ERROR_VERIF_MR_VMAX": "Maximum speed %V% too high (maximum: %maxV%)",
+    "ERROR_VERIF_MR_YMIN": "Water level %Y% too low (minimum: %minY%)",
+    "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "None of the aprons is crossable",
+    "ERROR_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
+    "ERROR_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
+    "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
+    "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "ERROR_VERIF_PAB_JETS": "Wall #%N%: at least one jet of type %required% is required, jets of type %forbidden% are forbidden",
+    "ERROR_VERIF_PAB_JETS_DW": "Downwall: at least one jet of type %required% is required, jets of type %forbidden% are forbidden",
+    "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum: %minLB%)",
+    "ERROR_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
+    "ERROR_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
+    "ERROR_VERIF_PAB_YMOY": "Wall #%N%: basin depth %PB% too low (minimum: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
+    "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
+    "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
+    "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type"
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 7825124eb..16b96dce0 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -513,6 +513,8 @@
     "INFO_THEME_PASSE_A_RALENTISSEURS_DESCRIPTION": "Passe à ralentisseurs",
     "INFO_THEME_PASSE_NATURELLE_DESCRIPTION": "Outils de dimensionnement d'une passe à poissons de type passe naturelle ou encore appelée passe à macro-rugosités",
     "INFO_THEME_PASSE_NATURELLE_TITRE": "Passe naturelle",
+    "INFO_THEME_VERIFICATION_DESCRIPTION": "Outils de vérification des capacités de franchissement des passes par les différentes espèces de poissons",
+    "INFO_THEME_VERIFICATION_TITRE": "Vérification de passes",
     "INFO_TITREJOURNAL": "Journal de calcul",
     "INFO_TITREJOURNAL_GLOBAL": "Synthèse du journal de calcul",
     "INFO_WELCOME_CONTENT": "<p>Le logiciel Cassiopée a été développé par le pôle R&D écohydraulique regroupant l'<a href=\"https://ofb.gouv.fr\" target=\"_blank\">OFB</a> (Office Français de la Biodiversité) et l’<a href=\"https://www.imft.fr\" target=\"_blank\">IMFT</a> (Institut de mécanique des fluides de Toulouse) et par l'<a href=\"http://g-eau.fr\" target=\"_blank\">UMR G-EAU</a> (UMR Gestion de l'Eau, Acteurs, Usages).</p><p>Il regroupe des outils d'aide à la conception des dispositifs de franchissement piscicoles pour la montaison et la dévalaison ainsi que des outils de calcul hydraulique utiles pour l'ingénierie en environnement et agriculture.</p><p>Pour plus d'informations, consulter les <a href=\"assets/docs/fr/mentions_legales.html\" target=\"_blank\">mentions légales</a> et la <a href=\"assets/docs/fr/index.html\" target=\"_blank\">documentation</a>.</p>",
@@ -529,6 +531,10 @@
     "INFO_YAXB_TITRE_COURT": "F. affine",
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
+    "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
+    "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
+    "INFO_ESPECE_TITRE": "Caractéristiques d'une espèce",
+    "INFO_ESPECE_TITRE_COURT": "Espèce",
     "WARNING_WARNINGS_ABSTRACT": "%nb% avertissements rencontrés lors du calcul",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "Il n'y a pas de solution",
     "WARNING_DEVER_ZDV_INF_ZR": "La cote de radier de l'ouvrage n°%number% est sous la cote de fond du lit",
@@ -571,5 +577,26 @@
     "WARNING_PAR_NOT_SUBMERGED": "Ennoiement par l'aval insuffisant : chute au niveau du dernier ralentisseur aval (%DH% m).",
     "ERROR_PAR_M_GREATER_THAN_2_N": "Le nombre de bandes dépasse 2N = %max%",
     "INFO_PARENT_PREFIX": "%name% n°%position% : ",
-    "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : "
+    "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : ",
+    "ERROR_VERIF_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs",
+    "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum: %maxV%)",
+    "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum: %minY%)",
+    "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
+    "ERROR_VERIF_MRC_VMAX_APRON_N": "Radier n°%N% : vitesse maximale %V% trop élevée (maximum: %maxV%)",
+    "ERROR_VERIF_MRC_YMIN_APRON_N": "Radier n°%N% : tirant d'eau %Y% insuffisant (minimum: %minY%)",
+    "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
+    "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N% : chute %DH% trop importante (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval : chute %DH% trop importante (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS% : largeur de l'échancrure ou de la fente %L% insuffisante (minimum: %minB%)",
+    "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS% : largeur de l'échancrure ou de la fente %L% insuffisante (minimum: %minB%)",
+    "ERROR_VERIF_PAB_JETS": "Cloison n°%N% : au moins un jet de type %required% requis, jets de type %forbidden% interdits",
+    "ERROR_VERIF_PAB_JETS_DW": "Cloison aval : au moins un jet de type %required% requis, jets de type %forbidden% interdits",
+    "ERROR_VERIF_PAB_LMIN": "Cloison n°%N% : longueur de bassin %LB% insuffisante (minimum: %minLB%)",
+    "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS% : charge sur l'échancrure %h1% insuffisante (minimum: %minH%)",
+    "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS% : charge sur l'échancrure %h1% insuffisante (minimum: %minH%)",
+    "ERROR_VERIF_PAB_YMOY": "Cloison n°%N% : profondeur de bassin %PB% insuffisante (minimum: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N% : profondeur de bassin %PB% inférieure à 2x la chute %DH%",
+    "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
+    "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum: %minY%)",
+    "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
 }
-- 
GitLab


From 8c68ce1c37a6b22de9321da354ffece8358d4fe8 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Fri, 3 Apr 2020 16:45:03 +0200
Subject: [PATCH 009/101] Work on GUI for Verificateur

began UI
updated dependencies
---
 package-lock.json                             | 4483 ++++++++++-------
 package.json                                  |   56 +-
 src/app/calculators/verificateur/config.json  |   40 +
 src/app/calculators/verificateur/en.json      |   13 +
 src/app/calculators/verificateur/fr.json      |   13 +
 .../generic-select.component.html             |    8 +-
 .../results-chart/chart-type.component.ts     |    4 +
 .../select-field-line.component.ts            |   24 +-
 .../select-model-field-line.component.ts      |    6 +-
 .../formulaire/definition/form-definition.ts  |   17 +-
 .../definition/form-verificateur.ts           |   91 +
 src/app/formulaire/elements/fieldset.ts       |   14 +-
 .../formulaire/elements/select-field-model.ts |    9 +-
 .../formulaire/elements/select-field-nub.ts   |   26 +-
 .../elements/select-field-reference.ts        |   15 +-
 src/app/formulaire/elements/select-field.ts   |   38 +-
 src/app/services/formulaire.service.ts        |    5 +
 src/locale/messages.en.json                   |    6 +-
 src/locale/messages.fr.json                   |    6 +-
 19 files changed, 2976 insertions(+), 1898 deletions(-)
 create mode 100644 src/app/calculators/verificateur/en.json
 create mode 100644 src/app/calculators/verificateur/fr.json
 create mode 100644 src/app/formulaire/definition/form-verificateur.ts

diff --git a/package-lock.json b/package-lock.json
index b25fc3b99..6187c822a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,19 +11,19 @@
       "dev": true
     },
     "@angular-devkit/architect": {
-      "version": "0.900.7",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.900.7.tgz",
-      "integrity": "sha512-hfiTVYc72kzbXrzK4tea6jnTDnSKpE1D+vEptBXN2tdXEVNEAQI5Qm5L1zVDtt16UdqoUTUypIgUc9jcNH1mUQ==",
+      "version": "0.901.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.1.tgz",
+      "integrity": "sha512-foWDAurMfBDYLAJxHpTFkJBub1c2A8+eWHbBjgqIHmT8xadnE7t8nSA9XDl+k/kIoWw/qFU+6IttPirudYc/vw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.7",
-        "rxjs": "6.5.3"
+        "@angular-devkit/core": "9.1.1",
+        "rxjs": "6.5.4"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -32,81 +32,90 @@
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.900.7",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.900.7.tgz",
-      "integrity": "sha512-Yv2y3OEaYEd0fE0pKvtqBpmkQYs9xJws7thHnJYCwIfYO55RfolYsXkJgAXke/4NPLrD3EsIDqoPxF7l+uw2/Q==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.900.7",
-        "@angular-devkit/build-optimizer": "0.900.7",
-        "@angular-devkit/build-webpack": "0.900.7",
-        "@angular-devkit/core": "9.0.7",
-        "@babel/core": "7.7.7",
-        "@babel/generator": "7.7.7",
-        "@babel/preset-env": "7.7.7",
-        "@ngtools/webpack": "9.0.7",
-        "ajv": "6.10.2",
-        "autoprefixer": "9.7.1",
+      "version": "0.901.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.1.tgz",
+      "integrity": "sha512-6uEvo5htsJoxQHBVwHOGmM6YWq5q6m9UWMv/ughlek0RtSLFfOt9TZQ/yQHgtGQsCQvscD/jBzVoD0zD5Ax/SQ==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.901.1",
+        "@angular-devkit/build-optimizer": "0.901.1",
+        "@angular-devkit/build-webpack": "0.901.1",
+        "@angular-devkit/core": "9.1.1",
+        "@babel/core": "7.9.0",
+        "@babel/generator": "7.9.3",
+        "@babel/preset-env": "7.9.0",
+        "@babel/template": "7.8.6",
+        "@jsdevtools/coverage-istanbul-loader": "3.0.3",
+        "@ngtools/webpack": "9.1.1",
+        "ajv": "6.12.0",
+        "autoprefixer": "9.7.4",
         "babel-loader": "8.0.6",
         "browserslist": "^4.9.1",
-        "cacache": "13.0.1",
+        "cacache": "15.0.0",
         "caniuse-lite": "^1.0.30001032",
         "circular-dependency-plugin": "5.2.0",
         "copy-webpack-plugin": "5.1.1",
         "core-js": "3.6.4",
-        "coverage-istanbul-loader": "2.0.3",
         "cssnano": "4.1.10",
-        "file-loader": "4.2.0",
-        "find-cache-dir": "3.0.0",
-        "glob": "7.1.5",
-        "jest-worker": "24.9.0",
+        "file-loader": "6.0.0",
+        "find-cache-dir": "3.3.1",
+        "glob": "7.1.6",
+        "jest-worker": "25.1.0",
         "karma-source-map-support": "1.4.0",
-        "less": "3.10.3",
+        "less": "3.11.1",
         "less-loader": "5.0.0",
-        "license-webpack-plugin": "2.1.3",
-        "loader-utils": "1.2.3",
-        "magic-string": "0.25.4",
-        "mini-css-extract-plugin": "0.8.0",
+        "license-webpack-plugin": "2.1.4",
+        "loader-utils": "2.0.0",
+        "mini-css-extract-plugin": "0.9.0",
         "minimatch": "3.0.4",
-        "open": "7.0.0",
+        "open": "7.0.3",
         "parse5": "4.0.0",
-        "postcss": "7.0.21",
+        "postcss": "7.0.27",
         "postcss-import": "12.0.1",
         "postcss-loader": "3.0.0",
-        "raw-loader": "3.1.0",
-        "regenerator-runtime": "0.13.3",
-        "rimraf": "3.0.0",
-        "rollup": "1.25.2",
-        "rxjs": "6.5.3",
-        "sass": "1.23.3",
-        "sass-loader": "8.0.0",
-        "semver": "6.3.0",
+        "raw-loader": "4.0.0",
+        "regenerator-runtime": "0.13.5",
+        "rimraf": "3.0.2",
+        "rollup": "2.1.0",
+        "rxjs": "6.5.4",
+        "sass": "1.26.3",
+        "sass-loader": "8.0.2",
+        "semver": "7.1.3",
         "source-map": "0.7.3",
         "source-map-loader": "0.2.4",
         "source-map-support": "0.5.16",
         "speed-measure-webpack-plugin": "1.3.1",
-        "style-loader": "1.0.0",
+        "style-loader": "1.1.3",
         "stylus": "0.54.7",
         "stylus-loader": "3.0.2",
-        "terser": "4.5.1",
-        "terser-webpack-plugin": "2.3.3",
+        "terser": "4.6.10",
+        "terser-webpack-plugin": "2.3.5",
         "tree-kill": "1.2.2",
-        "webpack": "4.41.2",
+        "webpack": "4.42.0",
         "webpack-dev-middleware": "3.7.2",
-        "webpack-dev-server": "3.9.0",
+        "webpack-dev-server": "3.10.3",
         "webpack-merge": "4.2.2",
         "webpack-sources": "1.4.3",
-        "webpack-subresource-integrity": "1.3.4",
-        "worker-plugin": "3.2.0"
+        "webpack-subresource-integrity": "1.4.0",
+        "worker-plugin": "4.0.2"
       },
       "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.8.3",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.8.3"
+          }
+        },
         "@babel/generator": {
-          "version": "7.7.7",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz",
-          "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==",
+          "version": "7.9.3",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz",
+          "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.7.4",
+            "@babel/types": "^7.9.0",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -120,62 +129,73 @@
             }
           }
         },
+        "@babel/highlight": {
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.8.6",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
+          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.8.3",
+            "@babel/parser": "^7.8.6",
+            "@babel/types": "^7.8.6"
+          }
+        },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
         },
         "ajv": {
-          "version": "6.10.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
-          "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
           "dev": true,
           "requires": {
-            "fast-deep-equal": "^2.0.1",
+            "fast-deep-equal": "^3.1.1",
             "fast-json-stable-stringify": "^2.0.0",
             "json-schema-traverse": "^0.4.1",
             "uri-js": "^4.2.2"
           }
         },
-        "chokidar": {
-          "version": "2.1.8",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
-          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.1",
-            "braces": "^2.3.2",
-            "fsevents": "^1.2.7",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.3",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "normalize-path": "^3.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.2.1",
-            "upath": "^1.1.1"
-          }
+        "core-js": {
+          "version": "3.6.4",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
+          "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
+          "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"
-          }
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
         },
         "glob": {
-          "version": "7.1.5",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
-          "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
           "dev": true,
           "requires": {
             "fs.realpath": "^1.0.0",
@@ -186,46 +206,34 @@
             "path-is-absolute": "^1.0.0"
           }
         },
-        "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
-        },
-        "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
-        },
         "regenerator-runtime": {
-          "version": "0.13.3",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
-          "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+          "version": "0.13.5",
+          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+          "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
           "dev": true
         },
         "rimraf": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
-          "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
           "dev": true,
           "requires": {
             "glob": "^7.1.3"
           }
         },
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
           }
         },
         "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
           "dev": true
         },
         "source-map-support": {
@@ -247,9 +255,9 @@
           }
         },
         "terser": {
-          "version": "4.5.1",
-          "resolved": "https://registry.npmjs.org/terser/-/terser-4.5.1.tgz",
-          "integrity": "sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ==",
+          "version": "4.6.10",
+          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz",
+          "integrity": "sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==",
           "dev": true,
           "requires": {
             "commander": "^2.20.0",
@@ -264,107 +272,45 @@
               "dev": true
             }
           }
-        },
-        "upath": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
-          "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
-          "dev": true
-        },
-        "webpack-dev-server": {
-          "version": "3.9.0",
-          "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz",
-          "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==",
-          "dev": true,
-          "requires": {
-            "ansi-html": "0.0.7",
-            "bonjour": "^3.5.0",
-            "chokidar": "^2.1.8",
-            "compression": "^1.7.4",
-            "connect-history-api-fallback": "^1.6.0",
-            "debug": "^4.1.1",
-            "del": "^4.1.1",
-            "express": "^4.17.1",
-            "html-entities": "^1.2.1",
-            "http-proxy-middleware": "0.19.1",
-            "import-local": "^2.0.0",
-            "internal-ip": "^4.3.0",
-            "ip": "^1.1.5",
-            "is-absolute-url": "^3.0.3",
-            "killable": "^1.0.1",
-            "loglevel": "^1.6.4",
-            "opn": "^5.5.0",
-            "p-retry": "^3.0.1",
-            "portfinder": "^1.0.25",
-            "schema-utils": "^1.0.0",
-            "selfsigned": "^1.10.7",
-            "semver": "^6.3.0",
-            "serve-index": "^1.9.1",
-            "sockjs": "0.3.19",
-            "sockjs-client": "1.4.0",
-            "spdy": "^4.0.1",
-            "strip-ansi": "^3.0.1",
-            "supports-color": "^6.1.0",
-            "url": "^0.11.0",
-            "webpack-dev-middleware": "^3.7.2",
-            "webpack-log": "^2.0.0",
-            "ws": "^6.2.1",
-            "yargs": "12.0.5"
-          }
-        },
-        "ws": {
-          "version": "6.2.1",
-          "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
-          "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
-          "dev": true,
-          "requires": {
-            "async-limiter": "~1.0.0"
-          }
         }
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.900.7",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.900.7.tgz",
-      "integrity": "sha512-gxin2oPNMN+PYo82At2JP1Q+uxnvwyDFWA1Wl+Ufuc5zHGhjKqxdQjkdMF7OT0ihtmkllN+t/NTB7rcx/Sx9Wg==",
+      "version": "0.901.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.1.tgz",
+      "integrity": "sha512-o0A9CcyDQSUnC5CQIKf92VH8amIYRYrMgLf2kdhSMcy0QV+rEJyN81dSvwX/Yxgnr9NbWEAQg7jnyKk06vfhOw==",
       "dev": true,
       "requires": {
-        "loader-utils": "1.2.3",
+        "loader-utils": "2.0.0",
         "source-map": "0.7.3",
-        "tslib": "1.10.0",
-        "typescript": "3.6.4",
+        "tslib": "1.11.1",
+        "typescript": "3.6.5",
         "webpack-sources": "1.4.3"
       },
       "dependencies": {
-        "tslib": {
-          "version": "1.10.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
-          "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
-          "dev": true
-        },
         "typescript": {
-          "version": "3.6.4",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz",
-          "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==",
+          "version": "3.6.5",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.5.tgz",
+          "integrity": "sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ==",
           "dev": true
         }
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.900.7",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.900.7.tgz",
-      "integrity": "sha512-Nwwqjo1ZpHFLavN+nXOmuBgGjhoMBZGelDCvHtiQlQ9N6i7k9cKnP7eU5pY7jbalBguS+gWg5wJIGnbqk1K9Rg==",
+      "version": "0.901.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.1.tgz",
+      "integrity": "sha512-9oNI+wPSk8yECy+f0EebfMx4PH3uDJRrifYZAxcr84IpzEbpfpRuYhE3ecwqd7k0zu2Kdjw1uUrGxBuH4/sbGg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.900.7",
-        "@angular-devkit/core": "9.0.7",
-        "rxjs": "6.5.3"
+        "@angular-devkit/architect": "0.901.1",
+        "@angular-devkit/core": "9.1.1",
+        "rxjs": "6.5.4"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -373,34 +319,55 @@
       }
     },
     "@angular-devkit/core": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.0.7.tgz",
-      "integrity": "sha512-tMrz36sM1xrwvFf9Qm59GwALscVlMP7rQBjtd0fIR/QbsiOAIX4AQbV+vN6Vtwnzo5NIRZY1IXJUhesWms+h5w==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
+      "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
       "dev": true,
       "requires": {
-        "ajv": "6.10.2",
-        "fast-json-stable-stringify": "2.0.0",
-        "magic-string": "0.25.4",
-        "rxjs": "6.5.3",
+        "ajv": "6.12.0",
+        "fast-json-stable-stringify": "2.1.0",
+        "magic-string": "0.25.7",
+        "rxjs": "6.5.4",
         "source-map": "0.7.3"
       },
       "dependencies": {
         "ajv": {
-          "version": "6.10.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
-          "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
           "dev": true,
           "requires": {
-            "fast-deep-equal": "^2.0.1",
+            "fast-deep-equal": "^3.1.1",
             "fast-json-stable-stringify": "^2.0.0",
             "json-schema-traverse": "^0.4.1",
             "uri-js": "^4.2.2"
           }
         },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "fast-json-stable-stringify": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+          "dev": true
+        },
+        "magic-string": {
+          "version": "0.25.7",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+          "dev": true,
+          "requires": {
+            "sourcemap-codec": "^1.4.4"
+          }
+        },
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -409,20 +376,66 @@
       }
     },
     "@angular-devkit/schematics": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.0.7.tgz",
-      "integrity": "sha512-ryPC+l24f3gX5DFMTLkDM/q2Kp6LPzBn6400k7j4qVdb1cIrZx+JUQd7F4iAksTTkX15EQPanptQXeztUrl9Ng==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.1.tgz",
+      "integrity": "sha512-6wx2HcvafHvEjEa1tjDzW2hXrOiSE8ALqJUArb3+NoO1BDM42aGcqyPo0ODzKtDk12CgSsFXdNKRpQ5AmpSPtw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.7",
-        "ora": "4.0.2",
-        "rxjs": "6.5.3"
+        "@angular-devkit/core": "9.1.1",
+        "ora": "4.0.3",
+        "rxjs": "6.5.4"
       },
       "dependencies": {
+        "@angular-devkit/core": {
+          "version": "9.1.1",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
+          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.12.0",
+            "fast-json-stable-stringify": "2.1.0",
+            "magic-string": "0.25.7",
+            "rxjs": "6.5.4",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "fast-json-stable-stringify": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+          "dev": true
+        },
+        "magic-string": {
+          "version": "0.25.7",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+          "dev": true,
+          "requires": {
+            "sourcemap-codec": "^1.4.4"
+          }
+        },
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -431,14 +444,14 @@
       }
     },
     "@angular/animations": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.0.7.tgz",
-      "integrity": "sha512-74gY7onajmmnksy5E0/32bFv3B9NuWxV64kqD15YjGrh8AWe1BHt5enQI+rJ2tO8m2DKnwZsctis6k0Kcy+YKQ=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.1.tgz",
+      "integrity": "sha512-IvKv8sV0ymbzDEX2ZLW+F6nOTQqDYallHexuzRVT9txvNE8TNHyySvLcyC5dTmX9fj9LA72NZ6nFyhxq0LFvtQ=="
     },
     "@angular/cdk": {
-      "version": "9.1.3",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.1.3.tgz",
-      "integrity": "sha512-K6XJzfqP+PE0ahyBUYrnoW+3ocwDpPN3dE9a+XRtZ0vM4P/FElweWj5zjNwWktb+uF9yal6oMPWXJNOAfonpPw==",
+      "version": "9.2.1",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.1.tgz",
+      "integrity": "sha512-aSG1UNPszkSnpNuDCNd7ZgT29oQ8vqHPmoqjvJI0JkEv3i6uEs5tRuhWl3TK39wDNuwdlq0AY47XTa/0Ppb5RQ==",
       "requires": {
         "parse5": "^5.0.0"
       },
@@ -452,33 +465,90 @@
       }
     },
     "@angular/cli": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.0.7.tgz",
-      "integrity": "sha512-/9CUNSSVyTtTNUADZ/VXJDEdhineMN/rfd35w6VsHiob49tKkeOTggaoiSne3RY4VCTqlo7GGf4KhhVXEMGnDQ==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.1.tgz",
+      "integrity": "sha512-sjRAV4UF8M5v+2gw+EwCYSgciBZDc05AbNxQt+uUdxdfR1QU9hifWq8WDxfOR6jdDP5YqMtQsNaFNwrUyjJJoQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.900.7",
-        "@angular-devkit/core": "9.0.7",
-        "@angular-devkit/schematics": "9.0.7",
-        "@schematics/angular": "9.0.7",
-        "@schematics/update": "0.900.7",
+        "@angular-devkit/architect": "0.901.1",
+        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/schematics": "9.1.1",
+        "@schematics/angular": "9.1.1",
+        "@schematics/update": "0.901.1",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
-        "debug": "^4.1.1",
+        "debug": "4.1.1",
         "ini": "1.3.5",
-        "inquirer": "7.0.0",
-        "npm-package-arg": "6.1.1",
-        "npm-pick-manifest": "3.0.2",
-        "open": "7.0.0",
-        "pacote": "9.5.8",
+        "inquirer": "7.1.0",
+        "npm-package-arg": "8.0.1",
+        "npm-pick-manifest": "6.0.0",
+        "open": "7.0.3",
+        "pacote": "9.5.12",
         "read-package-tree": "5.3.1",
-        "rimraf": "3.0.0",
-        "semver": "6.3.0",
+        "rimraf": "3.0.2",
+        "semver": "7.1.3",
         "symbol-observable": "1.2.0",
-        "universal-analytics": "^0.4.20",
-        "uuid": "^3.3.2"
+        "universal-analytics": "0.4.20",
+        "uuid": "7.0.2"
       },
       "dependencies": {
+        "@angular-devkit/architect": {
+          "version": "0.901.1",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.1.tgz",
+          "integrity": "sha512-foWDAurMfBDYLAJxHpTFkJBub1c2A8+eWHbBjgqIHmT8xadnE7t8nSA9XDl+k/kIoWw/qFU+6IttPirudYc/vw==",
+          "dev": true,
+          "requires": {
+            "@angular-devkit/core": "9.1.1",
+            "rxjs": "6.5.4"
+          },
+          "dependencies": {
+            "rxjs": {
+              "version": "6.5.4",
+              "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+              "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
+              "dev": true,
+              "requires": {
+                "tslib": "^1.9.0"
+              }
+            }
+          }
+        },
+        "@angular-devkit/core": {
+          "version": "9.1.1",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
+          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.12.0",
+            "fast-json-stable-stringify": "2.1.0",
+            "magic-string": "0.25.7",
+            "rxjs": "6.5.4",
+            "source-map": "0.7.3"
+          },
+          "dependencies": {
+            "rxjs": {
+              "version": "6.5.4",
+              "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+              "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
+              "dev": true,
+              "requires": {
+                "tslib": "^1.9.0"
+              }
+            }
+          }
+        },
+        "ajv": {
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
         "ansi-colors": {
           "version": "4.1.1",
           "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
@@ -500,6 +570,26 @@
           "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
         "cli-cursor": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@@ -509,6 +599,15 @@
             "restore-cursor": "^3.1.0"
           }
         },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
         "debug": {
           "version": "4.1.1",
           "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -518,6 +617,18 @@
             "ms": "^2.1.1"
           }
         },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "fast-json-stable-stringify": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+          "dev": true
+        },
         "figures": {
           "version": "3.2.0",
           "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
@@ -527,24 +638,39 @@
             "escape-string-regexp": "^1.0.5"
           }
         },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "hosted-git-info": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
+          "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^5.1.1"
+          }
+        },
         "inquirer": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz",
-          "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==",
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
+          "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
           "dev": true,
           "requires": {
             "ansi-escapes": "^4.2.1",
-            "chalk": "^2.4.2",
+            "chalk": "^3.0.0",
             "cli-cursor": "^3.1.0",
             "cli-width": "^2.0.0",
             "external-editor": "^3.0.3",
             "figures": "^3.0.0",
             "lodash": "^4.17.15",
             "mute-stream": "0.0.8",
-            "run-async": "^2.2.0",
-            "rxjs": "^6.4.0",
+            "run-async": "^2.4.0",
+            "rxjs": "^6.5.3",
             "string-width": "^4.1.0",
-            "strip-ansi": "^5.1.0",
+            "strip-ansi": "^6.0.0",
             "through": "^2.3.6"
           }
         },
@@ -554,12 +680,36 @@
           "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
           "dev": true
         },
+        "is-wsl": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
+          "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
+          "dev": true
+        },
         "lodash": {
           "version": "4.17.15",
           "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
           "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
           "dev": true
         },
+        "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"
+          }
+        },
+        "magic-string": {
+          "version": "0.25.7",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+          "dev": true,
+          "requires": {
+            "sourcemap-codec": "^1.4.4"
+          }
+        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -573,23 +723,14 @@
           "dev": true
         },
         "npm-package-arg": {
-          "version": "6.1.1",
-          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz",
-          "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==",
+          "version": "8.0.1",
+          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
+          "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==",
           "dev": true,
           "requires": {
-            "hosted-git-info": "^2.7.1",
-            "osenv": "^0.1.5",
-            "semver": "^5.6.0",
+            "hosted-git-info": "^3.0.2",
+            "semver": "^7.0.0",
             "validate-npm-package-name": "^3.0.0"
-          },
-          "dependencies": {
-            "semver": {
-              "version": "5.7.1",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-              "dev": true
-            }
           }
         },
         "onetime": {
@@ -601,6 +742,16 @@
             "mimic-fn": "^2.1.0"
           }
         },
+        "open": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
+          "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
+          "dev": true,
+          "requires": {
+            "is-docker": "^2.0.0",
+            "is-wsl": "^2.1.1"
+          }
+        },
         "restore-cursor": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@@ -612,18 +763,27 @@
           }
         },
         "rimraf": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
-          "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
           "dev": true,
           "requires": {
             "glob": "^7.1.3"
           }
         },
+        "run-async": {
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
+          "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
+          "dev": true,
+          "requires": {
+            "is-promise": "^2.1.0"
+          }
+        },
         "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
           "dev": true
         },
         "string-width": {
@@ -635,34 +795,24 @@
             "emoji-regex": "^8.0.0",
             "is-fullwidth-code-point": "^3.0.0",
             "strip-ansi": "^6.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "6.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-              "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^5.0.0"
-              }
-            }
           }
         },
         "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^4.1.0"
-          },
-          "dependencies": {
-            "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
-            }
+            "ansi-regex": "^5.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
           }
         },
         "type-fest": {
@@ -670,23 +820,35 @@
           "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
           "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
           "dev": true
+        },
+        "uuid": {
+          "version": "7.0.2",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz",
+          "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==",
+          "dev": true
+        },
+        "yallist": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "dev": true
         }
       }
     },
     "@angular/common": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.0.7.tgz",
-      "integrity": "sha512-B58YgxZva1DBaeayOBsaUOOkoyR+GRibuNC3gfOMm2vXeW9eCNX+jvDtw767GnKm2yGzIq8wB3x6GHojN00dPw=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.1.tgz",
+      "integrity": "sha512-bS13veMs7//YqYjYJ+JI78ylaCyVcdFKZKikd5SZa6+r6fajcyvLnSKqrKypG3O1BeJ8vOG/Pq54P5gWhbR6eA=="
     },
     "@angular/compiler": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.7.tgz",
-      "integrity": "sha512-hFpkuGpzxpK5h59LHHAjTFWsY6DCXZwgJFqvCuTPxWi/srvLGZRXrpC6Z1SlgHI9xxXaPfoa4uWw2VfA3BnqEg=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.1.tgz",
+      "integrity": "sha512-u1IP6IzUgK6lIzrG1cxp96umXgtThyhuFn/KPoyVt7wPxZ6vVR0ZxjM7zycEcrMGzk0nf0nyOKaksJk9sTXTbg=="
     },
     "@angular/compiler-cli": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.0.7.tgz",
-      "integrity": "sha512-+RXghex63v0Vi8vpQtDpWiqpAAnrTaN3bHT5fntRenq5+Ok5vL1MJ1mzbTmBXs2tuwTqNlwMm2AlZB7G/xcDMQ==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.1.tgz",
+      "integrity": "sha512-2jGp0ck2kkLNMzXUo/3iJkrQqJ7oGXE8h2tksxBsH2ptnhexRYTHZ626t7Np128tduY5JeC7J1Jxz7MUuYsJ2Q==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
@@ -700,69 +862,53 @@
         "semver": "^6.3.0",
         "source-map": "^0.6.1",
         "sourcemap-codec": "^1.4.8",
-        "yargs": "13.1.0"
+        "yargs": "15.3.0"
       },
       "dependencies": {
         "ansi-regex": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
-          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
           "dev": true
         },
-        "anymatch": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
-          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
           "dev": true,
           "requires": {
-            "normalize-path": "^3.0.0",
-            "picomatch": "^2.0.4"
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
           }
         },
-        "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==",
+        "cliui": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
           "dev": true,
           "requires": {
-            "fill-range": "^7.0.1"
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^6.2.0"
           }
         },
-        "chokidar": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
-          "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
           "dev": true,
           "requires": {
-            "anymatch": "~3.1.1",
-            "braces": "~3.0.2",
-            "fsevents": "~2.1.2",
-            "glob-parent": "~5.1.0",
-            "is-binary-path": "~2.1.0",
-            "is-glob": "~4.0.1",
-            "normalize-path": "~3.0.0",
-            "readdirp": "~3.3.0"
+            "color-name": "~1.1.4"
           }
         },
-        "emoji-regex": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
-          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
-          "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==",
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
           "dev": true,
           "requires": {
-            "to-regex-range": "^5.0.1"
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
           }
         },
         "fs-extra": {
@@ -776,73 +922,48 @@
             "universalify": "^0.1.0"
           }
         },
-        "fsevents": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
-          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
-          "dev": true,
-          "optional": 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
         },
-        "glob-parent": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
-          "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
-          "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-fullwidth-code-point": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+          "dev": true
         },
-        "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==",
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
           "dev": true,
           "requires": {
-            "is-extglob": "^2.1.1"
+            "p-locate": "^4.1.0"
           }
         },
-        "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
-        },
         "minimist": {
           "version": "1.2.5",
           "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
           "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
           "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.3.0",
-          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
-          "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
           "dev": true,
           "requires": {
-            "picomatch": "^2.0.7"
+            "p-limit": "^2.2.0"
           }
         },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        },
         "require-main-filename": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
@@ -862,57 +983,59 @@
           "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==",
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
           "dev": true,
           "requires": {
-            "emoji-regex": "^7.0.1",
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^5.1.0"
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.0"
           }
         },
         "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^4.1.0"
+            "ansi-regex": "^5.0.0"
           }
         },
-        "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==",
+        "wrap-ansi": {
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
           "dev": true,
           "requires": {
-            "is-number": "^7.0.0"
+            "ansi-styles": "^4.0.0",
+            "string-width": "^4.1.0",
+            "strip-ansi": "^6.0.0"
           }
         },
         "yargs": {
-          "version": "13.1.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz",
-          "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==",
+          "version": "15.3.0",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz",
+          "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==",
           "dev": true,
           "requires": {
-            "cliui": "^4.0.0",
-            "find-up": "^3.0.0",
+            "cliui": "^6.0.0",
+            "decamelize": "^1.2.0",
+            "find-up": "^4.1.0",
             "get-caller-file": "^2.0.1",
-            "os-locale": "^3.1.0",
             "require-directory": "^2.1.1",
             "require-main-filename": "^2.0.0",
             "set-blocking": "^2.0.0",
-            "string-width": "^3.0.0",
+            "string-width": "^4.2.0",
             "which-module": "^2.0.0",
             "y18n": "^4.0.0",
-            "yargs-parser": "^13.0.0"
+            "yargs-parser": "^18.1.0"
           }
         },
         "yargs-parser": {
-          "version": "13.1.2",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
-          "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+          "version": "18.1.2",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz",
+          "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
@@ -922,9 +1045,9 @@
       }
     },
     "@angular/core": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.7.tgz",
-      "integrity": "sha512-E9XZH5Dl+9MWG3MDC6wrKllhA8Rljpz66HOIeqKv2fHPed8kzuJZU3WJWLtbhDAXFwtGTyTZ4c82ZLSmqwTorg=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.1.tgz",
+      "integrity": "sha512-6lDlUlePafr/392hOvvTZZl6xPHT50U6658sHUAVIr0Un4mJ2MHNHKZtO45bpn3hM4gjFcYRQ7Rpd0umW74iTA=="
     },
     "@angular/flex-layout": {
       "version": "9.0.0-beta.29",
@@ -932,35 +1055,35 @@
       "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
     },
     "@angular/forms": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.0.7.tgz",
-      "integrity": "sha512-PaHAmjMJDtg/3aGCPuq5BCRC1eZ/DBCpva9f7NrA1kqk0LcLdebm0v2uHwTOBtiz/VEgPvxiS4tXC4rjvUtfEg=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.1.tgz",
+      "integrity": "sha512-NX+LuK8JFisiq3uHCOK6YoN/yIb2R9Ye5mwiOPkuZA3lZLKCnUXqCHZbM8VHy/WdjIxxeUaFMJc38yV8RVoabg=="
     },
     "@angular/language-service": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.0.7.tgz",
-      "integrity": "sha512-IZG1kvw48JyFRy7bfMHqBixWrEHZmXmkP5DWsi5Tw6KusaczkMghI20BevCkodPcajXWHAUHNKyp1tlE3OnH0w==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.1.tgz",
+      "integrity": "sha512-T+/0X2VnmgW/vzynqYTVv29qtebNvrCB/yJqtNIlqXvBjcB8XRRwZPDZvRyl5BiwEPSsJnjdRFNH9krQHxYp+g==",
       "dev": true
     },
     "@angular/material": {
-      "version": "9.1.3",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.1.3.tgz",
-      "integrity": "sha512-tRdd5+z9XwsbN+4WCuH3goyEjqw1Q6vKeURCdas8bh5AVOrCt8pcFlj3yA3P/u4fdhfTeFc67PJRz8Zm0n3moQ=="
+      "version": "9.2.1",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.1.tgz",
+      "integrity": "sha512-nqn/0Eg04DxwnkRGSM1xnmGgtfHYOBcEPbFeTu8c1qAbjFEozd6tpw4y6dQrCCL/JLNIRQPsxsUsVnKeWDF/4Q=="
     },
     "@angular/platform-browser": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.0.7.tgz",
-      "integrity": "sha512-Por8omrEiSV2U/K2mm/Kuv+2R2rJkbAZ3ctEM6CWj9Y4Gz2akjOCxmEgWhhBeqdigcC3T1v707f52osf9jWBkg=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.1.tgz",
+      "integrity": "sha512-tjALKhdAWPErj0euIIdvx/31AHEZ7is7ADsMu+nYn2NY2gcPUuiqq3RCUJVxBYJ2Cclq1nlF0i2rEDKh7TrBKg=="
     },
     "@angular/platform-browser-dynamic": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.7.tgz",
-      "integrity": "sha512-jwpyd93ofcRtchbayKD5v4GN4Lc7vbPe6dMUiwfnVnVAql0bOD/3YRI7w5qJ0Xx0sgQT+9Xo6jTXYnyUsZpEww=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.1.tgz",
+      "integrity": "sha512-kEox5UOwkRLjGKXLh5o5SYopoAylpKgrXtRrKRKTCMmZTpYSe1bLlXMjpwMAMZ9ZFSTvWp9iX94aT5bJDpLrRQ=="
     },
     "@angular/router": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.0.7.tgz",
-      "integrity": "sha512-uKru9F/Zju//gg6INl54abnlpLdEUUO/GpCfMk4zqu8LCZGNFta6OY7VT+9DK9Vdrh/XUD70oE9WoelcRwwTYA=="
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.1.tgz",
+      "integrity": "sha512-OQ5Ctd+swF7ZNlgUxrkGKk2B4yBFqJm0QCxkM86kFDCKQV/4OButZ+4HPy1HxeozBIAmm2pbQA+YjsAUs0VZcQ=="
     },
     "@babel/code-frame": {
       "version": "7.5.5",
@@ -971,49 +1094,71 @@
         "@babel/highlight": "^7.0.0"
       }
     },
+    "@babel/compat-data": {
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz",
+      "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.9.1",
+        "invariant": "^2.2.4",
+        "semver": "^5.5.0"
+      }
+    },
     "@babel/core": {
-      "version": "7.7.7",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz",
-      "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
+      "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
       "dev": true,
       "requires": {
-        "@babel/code-frame": "^7.5.5",
-        "@babel/generator": "^7.7.7",
-        "@babel/helpers": "^7.7.4",
-        "@babel/parser": "^7.7.7",
-        "@babel/template": "^7.7.4",
-        "@babel/traverse": "^7.7.4",
-        "@babel/types": "^7.7.4",
+        "@babel/code-frame": "^7.8.3",
+        "@babel/generator": "^7.9.0",
+        "@babel/helper-module-transforms": "^7.9.0",
+        "@babel/helpers": "^7.9.0",
+        "@babel/parser": "^7.9.0",
+        "@babel/template": "^7.8.6",
+        "@babel/traverse": "^7.9.0",
+        "@babel/types": "^7.9.0",
         "convert-source-map": "^1.7.0",
         "debug": "^4.1.0",
-        "json5": "^2.1.0",
+        "gensync": "^1.0.0-beta.1",
+        "json5": "^2.1.2",
         "lodash": "^4.17.13",
         "resolve": "^1.3.2",
         "semver": "^5.4.1",
         "source-map": "^0.5.0"
       },
       "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.8.3",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.8.3"
+          }
+        },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -1035,20 +1180,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -1060,54 +1205,32 @@
             "@babel/code-frame": "^7.8.3",
             "@babel/parser": "^7.8.6",
             "@babel/types": "^7.8.6"
-          },
-          "dependencies": {
-            "@babel/code-frame": {
-              "version": "7.8.3",
-              "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-              "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-              "dev": true,
-              "requires": {
-                "@babel/highlight": "^7.8.3"
-              }
-            }
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
-          },
-          "dependencies": {
-            "@babel/code-frame": {
-              "version": "7.8.3",
-              "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-              "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-              "dev": true,
-              "requires": {
-                "@babel/highlight": "^7.8.3"
-              }
-            }
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1130,21 +1253,6 @@
             "ms": "^2.1.1"
           }
         },
-        "json5": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
-          "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.5"
-          }
-        },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -1213,12 +1321,12 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1236,156 +1344,29 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
         }
       }
     },
-    "@babel/helper-call-delegate": {
+    "@babel/helper-compilation-targets": {
       "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz",
-      "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz",
+      "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==",
       "dev": true,
       "requires": {
-        "@babel/helper-hoist-variables": "^7.8.3",
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.7"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.7",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
+        "@babel/compat-data": "^7.8.6",
+        "browserslist": "^4.9.1",
+        "invariant": "^2.2.4",
+        "levenary": "^1.1.1",
+        "semver": "^5.5.0"
       }
     },
     "@babel/helper-create-regexp-features-plugin": {
@@ -1397,43 +1378,6 @@
         "@babel/helper-annotate-as-pure": "^7.8.3",
         "@babel/helper-regex": "^7.8.3",
         "regexpu-core": "^4.7.0"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
-          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-          "dev": true
-        },
-        "regexpu-core": {
-          "version": "4.7.0",
-          "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
-          "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
-          "dev": true,
-          "requires": {
-            "regenerate": "^1.4.0",
-            "regenerate-unicode-properties": "^8.2.0",
-            "regjsgen": "^0.5.1",
-            "regjsparser": "^0.6.4",
-            "unicode-match-property-ecmascript": "^1.0.4",
-            "unicode-match-property-value-ecmascript": "^1.2.0"
-          }
-        },
-        "regjsgen": {
-          "version": "0.5.1",
-          "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
-          "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
-          "dev": true
-        },
-        "regjsparser": {
-          "version": "0.6.4",
-          "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
-          "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
-          "dev": true,
-          "requires": {
-            "jsesc": "~0.5.0"
-          }
-        }
       }
     },
     "@babel/helper-define-map": {
@@ -1457,14 +1401,14 @@
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -1477,20 +1421,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -1505,12 +1449,12 @@
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1537,26 +1481,26 @@
           }
         },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -1578,20 +1522,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -1606,29 +1550,29 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1686,12 +1630,12 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1708,12 +1652,12 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1730,12 +1674,12 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1743,9 +1687,9 @@
       }
     },
     "@babel/helper-module-transforms": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz",
-      "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
+      "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
       "dev": true,
       "requires": {
         "@babel/helper-module-imports": "^7.8.3",
@@ -1753,7 +1697,7 @@
         "@babel/helper-simple-access": "^7.8.3",
         "@babel/helper-split-export-declaration": "^7.8.3",
         "@babel/template": "^7.8.6",
-        "@babel/types": "^7.8.6",
+        "@babel/types": "^7.9.0",
         "lodash": "^4.17.13"
       },
       "dependencies": {
@@ -1776,20 +1720,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -1804,12 +1748,12 @@
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1826,12 +1770,12 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -1876,26 +1820,26 @@
           }
         },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -1917,20 +1861,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -1945,29 +1889,29 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2017,26 +1961,26 @@
           }
         },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -2058,20 +2002,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -2086,29 +2030,29 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2156,20 +2100,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -2184,12 +2128,12 @@
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2205,6 +2149,12 @@
         "@babel/types": "^7.4.4"
       }
     },
+    "@babel/helper-validator-identifier": {
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
+      "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
+      "dev": true
+    },
     "@babel/helper-wrap-function": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
@@ -2227,26 +2177,26 @@
           }
         },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -2268,20 +2218,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -2296,29 +2246,29 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2347,14 +2297,14 @@
       }
     },
     "@babel/helpers": {
-      "version": "7.8.4",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz",
-      "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==",
+      "version": "7.9.2",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
+      "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
       "dev": true,
       "requires": {
         "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.8.4",
-        "@babel/types": "^7.8.3"
+        "@babel/traverse": "^7.9.0",
+        "@babel/types": "^7.9.0"
       },
       "dependencies": {
         "@babel/code-frame": {
@@ -2367,26 +2317,26 @@
           }
         },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -2408,20 +2358,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -2436,29 +2386,29 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2542,14 +2492,35 @@
         "@babel/plugin-syntax-json-strings": "^7.8.0"
       }
     },
-    "@babel/plugin-proposal-object-rest-spread": {
+    "@babel/plugin-proposal-nullish-coalescing-operator": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz",
+      "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-numeric-separator": {
       "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz",
-      "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz",
+      "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/plugin-syntax-numeric-separator": "^7.8.3"
+      }
+    },
+    "@babel/plugin-proposal-object-rest-spread": {
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz",
+      "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/plugin-syntax-object-rest-spread": "^7.8.0"
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+        "@babel/plugin-transform-parameters": "^7.9.5"
       }
     },
     "@babel/plugin-proposal-optional-catch-binding": {
@@ -2562,6 +2533,16 @@
         "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
       }
     },
+    "@babel/plugin-proposal-optional-chaining": {
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz",
+      "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+      }
+    },
     "@babel/plugin-proposal-unicode-property-regex": {
       "version": "7.8.8",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz",
@@ -2599,6 +2580,24 @@
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
+    "@babel/plugin-syntax-nullish-coalescing-operator": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+      "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-numeric-separator": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz",
+      "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3"
+      }
+    },
     "@babel/plugin-syntax-object-rest-spread": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
@@ -2617,6 +2616,15 @@
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
+    "@babel/plugin-syntax-optional-chaining": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+      "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
     "@babel/plugin-syntax-top-level-await": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz",
@@ -2666,14 +2674,14 @@
       }
     },
     "@babel/plugin-transform-classes": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz",
-      "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz",
+      "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==",
       "dev": true,
       "requires": {
         "@babel/helper-annotate-as-pure": "^7.8.3",
         "@babel/helper-define-map": "^7.8.3",
-        "@babel/helper-function-name": "^7.8.3",
+        "@babel/helper-function-name": "^7.9.5",
         "@babel/helper-optimise-call-expression": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-replace-supers": "^7.8.6",
@@ -2691,14 +2699,14 @@
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -2720,20 +2728,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -2748,12 +2756,12 @@
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2770,9 +2778,9 @@
       }
     },
     "@babel/plugin-transform-destructuring": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz",
-      "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz",
+      "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3"
@@ -2808,9 +2816,9 @@
       }
     },
     "@babel/plugin-transform-for-of": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz",
-      "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz",
+      "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3"
@@ -2836,14 +2844,14 @@
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -2856,20 +2864,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -2884,12 +2892,12 @@
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -2915,47 +2923,47 @@
       }
     },
     "@babel/plugin-transform-modules-amd": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz",
-      "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz",
+      "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "babel-plugin-dynamic-import-node": "^2.3.0"
       }
     },
     "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz",
-      "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz",
+      "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-simple-access": "^7.8.3",
         "babel-plugin-dynamic-import-node": "^2.3.0"
       }
     },
     "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz",
-      "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz",
+      "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==",
       "dev": true,
       "requires": {
         "@babel/helper-hoist-variables": "^7.8.3",
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "babel-plugin-dynamic-import-node": "^2.3.0"
       }
     },
     "@babel/plugin-transform-modules-umd": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz",
-      "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz",
+      "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3"
       }
     },
@@ -2988,12 +2996,11 @@
       }
     },
     "@babel/plugin-transform-parameters": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz",
-      "integrity": "sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz",
+      "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==",
       "dev": true,
       "requires": {
-        "@babel/helper-call-delegate": "^7.8.7",
         "@babel/helper-get-function-arity": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3"
       },
@@ -3008,12 +3015,12 @@
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -3105,77 +3112,99 @@
       }
     },
     "@babel/preset-env": {
-      "version": "7.7.7",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz",
-      "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz",
+      "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-imports": "^7.7.4",
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-proposal-async-generator-functions": "^7.7.4",
-        "@babel/plugin-proposal-dynamic-import": "^7.7.4",
-        "@babel/plugin-proposal-json-strings": "^7.7.4",
-        "@babel/plugin-proposal-object-rest-spread": "^7.7.7",
-        "@babel/plugin-proposal-optional-catch-binding": "^7.7.4",
-        "@babel/plugin-proposal-unicode-property-regex": "^7.7.7",
-        "@babel/plugin-syntax-async-generators": "^7.7.4",
-        "@babel/plugin-syntax-dynamic-import": "^7.7.4",
-        "@babel/plugin-syntax-json-strings": "^7.7.4",
-        "@babel/plugin-syntax-object-rest-spread": "^7.7.4",
-        "@babel/plugin-syntax-optional-catch-binding": "^7.7.4",
-        "@babel/plugin-syntax-top-level-await": "^7.7.4",
-        "@babel/plugin-transform-arrow-functions": "^7.7.4",
-        "@babel/plugin-transform-async-to-generator": "^7.7.4",
-        "@babel/plugin-transform-block-scoped-functions": "^7.7.4",
-        "@babel/plugin-transform-block-scoping": "^7.7.4",
-        "@babel/plugin-transform-classes": "^7.7.4",
-        "@babel/plugin-transform-computed-properties": "^7.7.4",
-        "@babel/plugin-transform-destructuring": "^7.7.4",
-        "@babel/plugin-transform-dotall-regex": "^7.7.7",
-        "@babel/plugin-transform-duplicate-keys": "^7.7.4",
-        "@babel/plugin-transform-exponentiation-operator": "^7.7.4",
-        "@babel/plugin-transform-for-of": "^7.7.4",
-        "@babel/plugin-transform-function-name": "^7.7.4",
-        "@babel/plugin-transform-literals": "^7.7.4",
-        "@babel/plugin-transform-member-expression-literals": "^7.7.4",
-        "@babel/plugin-transform-modules-amd": "^7.7.5",
-        "@babel/plugin-transform-modules-commonjs": "^7.7.5",
-        "@babel/plugin-transform-modules-systemjs": "^7.7.4",
-        "@babel/plugin-transform-modules-umd": "^7.7.4",
-        "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4",
-        "@babel/plugin-transform-new-target": "^7.7.4",
-        "@babel/plugin-transform-object-super": "^7.7.4",
-        "@babel/plugin-transform-parameters": "^7.7.7",
-        "@babel/plugin-transform-property-literals": "^7.7.4",
-        "@babel/plugin-transform-regenerator": "^7.7.5",
-        "@babel/plugin-transform-reserved-words": "^7.7.4",
-        "@babel/plugin-transform-shorthand-properties": "^7.7.4",
-        "@babel/plugin-transform-spread": "^7.7.4",
-        "@babel/plugin-transform-sticky-regex": "^7.7.4",
-        "@babel/plugin-transform-template-literals": "^7.7.4",
-        "@babel/plugin-transform-typeof-symbol": "^7.7.4",
-        "@babel/plugin-transform-unicode-regex": "^7.7.4",
-        "@babel/types": "^7.7.4",
-        "browserslist": "^4.6.0",
-        "core-js-compat": "^3.6.0",
+        "@babel/compat-data": "^7.9.0",
+        "@babel/helper-compilation-targets": "^7.8.7",
+        "@babel/helper-module-imports": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
+        "@babel/plugin-proposal-dynamic-import": "^7.8.3",
+        "@babel/plugin-proposal-json-strings": "^7.8.3",
+        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3",
+        "@babel/plugin-proposal-numeric-separator": "^7.8.3",
+        "@babel/plugin-proposal-object-rest-spread": "^7.9.0",
+        "@babel/plugin-proposal-optional-catch-binding": "^7.8.3",
+        "@babel/plugin-proposal-optional-chaining": "^7.9.0",
+        "@babel/plugin-proposal-unicode-property-regex": "^7.8.3",
+        "@babel/plugin-syntax-async-generators": "^7.8.0",
+        "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+        "@babel/plugin-syntax-json-strings": "^7.8.0",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+        "@babel/plugin-syntax-numeric-separator": "^7.8.0",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+        "@babel/plugin-syntax-top-level-await": "^7.8.3",
+        "@babel/plugin-transform-arrow-functions": "^7.8.3",
+        "@babel/plugin-transform-async-to-generator": "^7.8.3",
+        "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
+        "@babel/plugin-transform-block-scoping": "^7.8.3",
+        "@babel/plugin-transform-classes": "^7.9.0",
+        "@babel/plugin-transform-computed-properties": "^7.8.3",
+        "@babel/plugin-transform-destructuring": "^7.8.3",
+        "@babel/plugin-transform-dotall-regex": "^7.8.3",
+        "@babel/plugin-transform-duplicate-keys": "^7.8.3",
+        "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
+        "@babel/plugin-transform-for-of": "^7.9.0",
+        "@babel/plugin-transform-function-name": "^7.8.3",
+        "@babel/plugin-transform-literals": "^7.8.3",
+        "@babel/plugin-transform-member-expression-literals": "^7.8.3",
+        "@babel/plugin-transform-modules-amd": "^7.9.0",
+        "@babel/plugin-transform-modules-commonjs": "^7.9.0",
+        "@babel/plugin-transform-modules-systemjs": "^7.9.0",
+        "@babel/plugin-transform-modules-umd": "^7.9.0",
+        "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
+        "@babel/plugin-transform-new-target": "^7.8.3",
+        "@babel/plugin-transform-object-super": "^7.8.3",
+        "@babel/plugin-transform-parameters": "^7.8.7",
+        "@babel/plugin-transform-property-literals": "^7.8.3",
+        "@babel/plugin-transform-regenerator": "^7.8.7",
+        "@babel/plugin-transform-reserved-words": "^7.8.3",
+        "@babel/plugin-transform-shorthand-properties": "^7.8.3",
+        "@babel/plugin-transform-spread": "^7.8.3",
+        "@babel/plugin-transform-sticky-regex": "^7.8.3",
+        "@babel/plugin-transform-template-literals": "^7.8.3",
+        "@babel/plugin-transform-typeof-symbol": "^7.8.4",
+        "@babel/plugin-transform-unicode-regex": "^7.8.3",
+        "@babel/preset-modules": "^0.1.3",
+        "@babel/types": "^7.9.0",
+        "browserslist": "^4.9.1",
+        "core-js-compat": "^3.6.2",
         "invariant": "^2.2.2",
-        "js-levenshtein": "^1.1.3",
+        "levenary": "^1.1.1",
         "semver": "^5.5.0"
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
         }
       }
     },
+    "@babel/preset-modules": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
+      "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.0.0",
+        "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+        "@babel/plugin-transform-dotall-regex": "^7.4.4",
+        "@babel/types": "^7.4.4",
+        "esutils": "^2.0.2"
+      }
+    },
     "@babel/runtime": {
       "version": "7.8.4",
       "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
@@ -3376,6 +3405,17 @@
             "to-regex-range": "^5.0.1"
           }
         },
+        "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"
+          }
+        },
         "fsevents": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
@@ -3406,6 +3446,12 @@
             "is-glob": "^4.0.1"
           }
         },
+        "graceful-fs": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "is-binary-path": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -3569,9 +3615,9 @@
       }
     },
     "@electron/get": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.9.0.tgz",
-      "integrity": "sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==",
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.10.0.tgz",
+      "integrity": "sha512-hlueNXU51c3CwQjBw/i5fwt+VfQgSQVUTdicpCHkhEjNZaa4CXJ5W1GaxSwtLE2dvRmAHjpIjUMHTqJ53uojfg==",
       "dev": true,
       "requires": {
         "debug": "^4.1.1",
@@ -3600,6 +3646,23 @@
           "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==",
           "dev": true
         },
+        "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -3614,6 +3677,99 @@
       "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
       "dev": true
     },
+    "@jsdevtools/coverage-istanbul-loader": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.3.tgz",
+      "integrity": "sha512-TAdNkeGB5Fe4Og+ZkAr1Kvn9by2sfL44IAHFtxlh1BA1XJ5cLpO9iSNki5opWESv3l3vSHsZ9BNKuqFKbEbFaA==",
+      "dev": true,
+      "requires": {
+        "convert-source-map": "^1.7.0",
+        "istanbul-lib-instrument": "^4.0.1",
+        "loader-utils": "^1.4.0",
+        "merge-source-map": "^1.1.0",
+        "schema-utils": "^2.6.4"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "convert-source-map": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+          "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "~5.1.1"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "merge-source-map": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+          "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+          "dev": true,
+          "requires": {
+            "source-map": "^0.6.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "2.6.5",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
+          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.12.0",
+            "ajv-keywords": "^3.4.1"
+          }
+        },
+        "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
+        }
+      }
+    },
     "@mrmlnc/readdir-enhanced": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
@@ -3625,21 +3781,21 @@
       }
     },
     "@ngtools/webpack": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.0.7.tgz",
-      "integrity": "sha512-MvoMaErkjESefoIrbt8F2RpKDr9KavwvH4v3hwSAKooVNFdFKNsjJ7m3gCQehumEfsYFq2mrEK2sTW4/CpFlMQ==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.1.tgz",
+      "integrity": "sha512-4RPlk6aIlYhk9isTvXbMaA2G0LhxOzcZ+2iG7zV9Yj/Vm8+lrRexpQ/kC/Dh0GI/oCtKIkVpUzx5LTozYeTLdQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.7",
+        "@angular-devkit/core": "9.1.1",
         "enhanced-resolve": "4.1.1",
-        "rxjs": "6.5.3",
+        "rxjs": "6.5.4",
         "webpack-sources": "1.4.3"
       },
       "dependencies": {
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
@@ -3654,32 +3810,128 @@
       "dev": true
     },
     "@schematics/angular": {
-      "version": "9.0.7",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.0.7.tgz",
-      "integrity": "sha512-3UCeexYx/YVo3kboyPZ8KgqBTduMA18AAm3s2yrC0qj41fBFVVZAZLa74uouTf4RYVgy9kR7J3uv6VLxrJPOnQ==",
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.1.tgz",
+      "integrity": "sha512-V0DcDNgHQ2YR+PGZI6+pf/mUNNxt5SusShkZ1PbwIMk/HUQpzEGkLjm3v1Jw9eIZKiuDx615GNU1xDzQ/KyNRQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.7",
-        "@angular-devkit/schematics": "9.0.7"
+        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/schematics": "9.1.1"
+      },
+      "dependencies": {
+        "@angular-devkit/core": {
+          "version": "9.1.1",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
+          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.12.0",
+            "fast-json-stable-stringify": "2.1.0",
+            "magic-string": "0.25.7",
+            "rxjs": "6.5.4",
+            "source-map": "0.7.3"
+          },
+          "dependencies": {
+            "rxjs": {
+              "version": "6.5.4",
+              "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+              "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
+              "dev": true,
+              "requires": {
+                "tslib": "^1.9.0"
+              }
+            }
+          }
+        },
+        "ajv": {
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "fast-json-stable-stringify": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+          "dev": true
+        },
+        "magic-string": {
+          "version": "0.25.7",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+          "dev": true,
+          "requires": {
+            "sourcemap-codec": "^1.4.4"
+          }
+        }
       }
     },
     "@schematics/update": {
-      "version": "0.900.7",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.900.7.tgz",
-      "integrity": "sha512-e9tX2DGNYfj/k9mVICpQt2bWIYyD92dlsip7LzPeZGt+R9zCp5w19uBLa8Z00OgEGzFR1krhRvkQE5OxkkAnVw==",
+      "version": "0.901.1",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.1.tgz",
+      "integrity": "sha512-g5B8hjXKCbUNLKCkWQxc5r2D9lOQXRTLZJNIqva+l/ck0AML5MpelxkqQId9ZGLfQqfFk/XjdSHRWgcmUs1WnA==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.7",
-        "@angular-devkit/schematics": "9.0.7",
+        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/schematics": "9.1.1",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
-        "npm-package-arg": "^7.0.0",
-        "pacote": "9.5.8",
-        "rxjs": "6.5.3",
-        "semver": "6.3.0",
+        "npm-package-arg": "^8.0.0",
+        "pacote": "9.5.12",
+        "rxjs": "6.5.4",
+        "semver": "7.1.3",
         "semver-intersect": "1.4.0"
       },
       "dependencies": {
+        "@angular-devkit/core": {
+          "version": "9.1.1",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
+          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.12.0",
+            "fast-json-stable-stringify": "2.1.0",
+            "magic-string": "0.25.7",
+            "rxjs": "6.5.4",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "fast-json-stable-stringify": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+          "dev": true
+        },
         "hosted-git-info": {
           "version": "3.0.4",
           "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
@@ -3698,39 +3950,39 @@
             "yallist": "^3.0.2"
           }
         },
+        "magic-string": {
+          "version": "0.25.7",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+          "dev": true,
+          "requires": {
+            "sourcemap-codec": "^1.4.4"
+          }
+        },
         "npm-package-arg": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
-          "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==",
+          "version": "8.0.1",
+          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
+          "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==",
           "dev": true,
           "requires": {
             "hosted-git-info": "^3.0.2",
-            "osenv": "^0.1.5",
-            "semver": "^5.6.0",
+            "semver": "^7.0.0",
             "validate-npm-package-name": "^3.0.0"
-          },
-          "dependencies": {
-            "semver": {
-              "version": "5.7.1",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-              "dev": true
-            }
           }
         },
         "rxjs": {
-          "version": "6.5.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-          "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+          "version": "6.5.4",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
           "dev": true,
           "requires": {
             "tslib": "^1.9.0"
           }
         },
         "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
           "dev": true
         },
         "yallist": {
@@ -3768,12 +4020,6 @@
       "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==",
       "dev": true
     },
-    "@types/estree": {
-      "version": "0.0.43",
-      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.43.tgz",
-      "integrity": "sha512-WfOySUnBpyKXbkC9QuZguwOGhGnugDXT2f2P6X8EIis7qlnd5NI1Nr4kRi357NtguxezyizIcaFlQe0wx23XnA==",
-      "dev": true
-    },
     "@types/events": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
@@ -3807,9 +4053,9 @@
       }
     },
     "@types/jasmine": {
-      "version": "3.5.9",
-      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.9.tgz",
-      "integrity": "sha512-KNL2Fq6GRmty2j6+ZmueT/Z/dkctLNH+5DFoGHNDtcgt7yME9NZd8x2p81Yuea1Xux/qAryDd3zVLUoKpDz1TA==",
+      "version": "3.5.10",
+      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.10.tgz",
+      "integrity": "sha512-3F8qpwBAiVc5+HPJeXJpbrl+XjawGmciN5LgiO7Gv1pl1RHtjoMNqZpqEksaPJW05ViKe8snYInRs6xB25Xdew==",
       "dev": true
     },
     "@types/jasminewd2": {
@@ -3838,9 +4084,9 @@
       "integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew=="
     },
     "@types/node": {
-      "version": "13.9.2",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.2.tgz",
-      "integrity": "sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg==",
+      "version": "13.11.1",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz",
+      "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==",
       "dev": true
     },
     "@types/pako": {
@@ -3872,9 +4118,9 @@
       "integrity": "sha512-hkgzYF+qnIl8uTO8rmUSVSfQ8BIfMXC4yJAF4n8BE758YsKBZvFC4NumnAegj7KmylP0liEZNpb9RRGFMbFejA=="
     },
     "@types/webpack-sources": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz",
-      "integrity": "sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ==",
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz",
+      "integrity": "sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw==",
       "dev": true,
       "requires": {
         "@types/node": "*",
@@ -4125,9 +4371,9 @@
       }
     },
     "acorn": {
-      "version": "7.1.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
-      "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
+      "version": "6.4.1",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+      "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
       "dev": true
     },
     "acorn-node": {
@@ -4449,6 +4695,23 @@
             "ms": "^2.1.1"
           }
         },
+        "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "hosted-git-info": {
           "version": "3.0.4",
           "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
@@ -4776,6 +5039,12 @@
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
       "dev": true
     },
+    "at-least-node": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+      "dev": true
+    },
     "atob": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
@@ -4783,17 +5052,17 @@
       "dev": true
     },
     "autoprefixer": {
-      "version": "9.7.1",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.1.tgz",
-      "integrity": "sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw==",
+      "version": "9.7.4",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz",
+      "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.7.2",
-        "caniuse-lite": "^1.0.30001006",
+        "browserslist": "^4.8.3",
+        "caniuse-lite": "^1.0.30001020",
         "chalk": "^2.4.2",
         "normalize-range": "^0.1.2",
         "num2fraction": "^1.2.2",
-        "postcss": "^7.0.21",
+        "postcss": "^7.0.26",
         "postcss-value-parser": "^4.0.2"
       }
     },
@@ -4841,6 +5110,26 @@
             "pkg-dir": "^3.0.0"
           }
         },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
         "make-dir": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
@@ -4851,6 +5140,12 @@
             "semver": "^5.6.0"
           }
         },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -5441,26 +5736,15 @@
       }
     },
     "browserslist": {
-      "version": "4.10.0",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz",
-      "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==",
+      "version": "4.11.1",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz",
+      "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==",
       "dev": true,
       "requires": {
-        "caniuse-lite": "^1.0.30001035",
-        "electron-to-chromium": "^1.3.378",
-        "node-releases": "^1.1.52",
-        "pkg-up": "^3.1.0"
-      },
-      "dependencies": {
-        "pkg-up": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
-          "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        }
+        "caniuse-lite": "^1.0.30001038",
+        "electron-to-chromium": "^1.3.390",
+        "node-releases": "^1.1.53",
+        "pkg-up": "^2.0.0"
       }
     },
     "browserstack": {
@@ -5483,20 +5767,10 @@
         "isarray": "^1.0.0"
       }
     },
-    "buffer-alloc": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
-      "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
-      "dev": true,
-      "requires": {
-        "buffer-alloc-unsafe": "^1.1.0",
-        "buffer-fill": "^1.0.0"
-      }
-    },
-    "buffer-alloc-unsafe": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
-      "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+    "buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
       "dev": true
     },
     "buffer-equal": {
@@ -5505,12 +5779,6 @@
       "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=",
       "dev": true
     },
-    "buffer-fill": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
-      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
-      "dev": true
-    },
     "buffer-from": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -5588,6 +5856,23 @@
             "ms": "^2.1.1"
           }
         },
+        "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -5679,28 +5964,27 @@
       "dev": true
     },
     "cacache": {
-      "version": "13.0.1",
-      "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
-      "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz",
+      "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==",
       "dev": true,
       "requires": {
         "chownr": "^1.1.2",
-        "figgy-pudding": "^3.5.1",
         "fs-minipass": "^2.0.0",
         "glob": "^7.1.4",
-        "graceful-fs": "^4.2.2",
         "infer-owner": "^1.0.4",
         "lru-cache": "^5.1.1",
-        "minipass": "^3.0.0",
+        "minipass": "^3.1.1",
         "minipass-collect": "^1.0.2",
         "minipass-flush": "^1.0.5",
         "minipass-pipeline": "^1.2.2",
-        "mkdirp": "^0.5.1",
+        "mkdirp": "^1.0.3",
         "move-concurrently": "^1.0.1",
         "p-map": "^3.0.0",
         "promise-inflight": "^1.0.1",
         "rimraf": "^2.7.1",
-        "ssri": "^7.0.0",
+        "ssri": "^8.0.0",
+        "tar": "^6.0.1",
         "unique-filename": "^1.1.1"
       },
       "dependencies": {
@@ -5718,12 +6002,6 @@
             "path-is-absolute": "^1.0.0"
           }
         },
-        "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
         "lru-cache": {
           "version": "5.1.1",
           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -5733,6 +6011,30 @@
             "yallist": "^3.0.2"
           }
         },
+        "minizlib": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz",
+          "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==",
+          "dev": true,
+          "requires": {
+            "minipass": "^3.0.0",
+            "yallist": "^4.0.0"
+          },
+          "dependencies": {
+            "yallist": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+              "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+              "dev": true
+            }
+          }
+        },
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "dev": true
+        },
         "p-map": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
@@ -5742,6 +6044,28 @@
             "aggregate-error": "^3.0.0"
           }
         },
+        "tar": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz",
+          "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==",
+          "dev": true,
+          "requires": {
+            "chownr": "^1.1.3",
+            "fs-minipass": "^2.0.0",
+            "minipass": "^3.0.0",
+            "minizlib": "^2.1.0",
+            "mkdirp": "^1.0.3",
+            "yallist": "^4.0.0"
+          },
+          "dependencies": {
+            "yallist": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+              "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+              "dev": true
+            }
+          }
+        },
         "yallist": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -5875,9 +6199,9 @@
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30001035",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz",
-      "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==",
+      "version": "1.0.30001041",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz",
+      "integrity": "sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA==",
       "dev": true
     },
     "canonical-path": {
@@ -6215,9 +6539,9 @@
       }
     },
     "cli-spinners": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz",
-      "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz",
+      "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==",
       "dev": true
     },
     "cli-width": {
@@ -6339,9 +6663,9 @@
       "dev": true
     },
     "codelyzer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.1.tgz",
-      "integrity": "sha512-awBZXFcJUyC5HMYXiHzjr3D24tww2l1D1OqtfA9vUhEtYr32a65A+Gblm/OvsO+HuKLYzn8EDMw1inSM3VbxWA==",
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz",
+      "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==",
       "dev": true,
       "requires": {
         "app-root-path": "^2.2.1",
@@ -6449,9 +6773,9 @@
       "dev": true
     },
     "colors": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
-      "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+      "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
       "dev": true
     },
     "combined-stream": {
@@ -6734,9 +7058,9 @@
       },
       "dependencies": {
         "cacache": {
-          "version": "12.0.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
-          "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+          "version": "12.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+          "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.5",
@@ -6790,6 +7114,26 @@
             "is-extglob": "^2.1.1"
           }
         },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
         "lru-cache": {
           "version": "5.1.1",
           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -6809,6 +7153,12 @@
             "semver": "^5.6.0"
           }
         },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "normalize-path": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -7090,8 +7440,25 @@
             "strip-bom": "^3.0.0",
             "underscore": "^1.8.3",
             "which": "^1.3.0"
+          },
+          "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==",
+              "requires": {
+                "graceful-fs": "^4.2.0",
+                "jsonfile": "^4.0.0",
+                "universalify": "^0.1.0"
+              }
+            }
           }
         },
+        "graceful-fs": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+        },
         "q": {
           "version": "1.5.1",
           "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
@@ -7388,17 +7755,17 @@
       }
     },
     "core-js": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
-      "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw=="
+      "version": "3.6.5",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+      "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
     },
     "core-js-compat": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz",
-      "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==",
+      "version": "3.6.5",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
+      "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.8.3",
+        "browserslist": "^4.8.5",
         "semver": "7.0.0"
       },
       "dependencies": {
@@ -7415,105 +7782,38 @@
       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
       "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
       "dev": true
-    },
-    "cors": {
-      "version": "2.8.5",
-      "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
-      "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
-      "dev": true,
-      "requires": {
-        "object-assign": "^4",
-        "vary": "^1"
-      }
-    },
-    "cosmiconfig": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
-      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
-      "dev": true,
-      "requires": {
-        "import-fresh": "^2.0.0",
-        "is-directory": "^0.3.1",
-        "js-yaml": "^3.13.1",
-        "parse-json": "^4.0.0"
-      },
-      "dependencies": {
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        }
-      }
-    },
-    "coverage-istanbul-loader": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz",
-      "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==",
-      "dev": true,
-      "requires": {
-        "convert-source-map": "^1.7.0",
-        "istanbul-lib-instrument": "^4.0.0",
-        "loader-utils": "^1.2.3",
-        "merge-source-map": "^1.1.0",
-        "schema-utils": "^2.6.1"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "convert-source-map": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
-          "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
-          "dev": true,
-          "requires": {
-            "safe-buffer": "~5.1.1"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
-        "merge-source-map": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
-          "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
-          "dev": true,
-          "requires": {
-            "source-map": "^0.6.1"
-          }
-        },
-        "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+    },
+    "cors": {
+      "version": "2.8.5",
+      "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+      "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4",
+        "vary": "^1"
+      }
+    },
+    "cosmiconfig": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+      "dev": true,
+      "requires": {
+        "import-fresh": "^2.0.0",
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.13.1",
+        "parse-json": "^4.0.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
           "dev": true,
           "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1"
           }
-        },
-        "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
         }
       }
     },
@@ -7684,14 +7984,14 @@
       "dev": true
     },
     "css-selector-tokenizer": {
-      "version": "0.7.1",
-      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
-      "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz",
+      "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==",
       "dev": true,
       "requires": {
-        "cssesc": "^0.1.0",
-        "fastparse": "^1.1.1",
-        "regexpu-core": "^1.0.0"
+        "cssesc": "^3.0.0",
+        "fastparse": "^1.1.2",
+        "regexpu-core": "^4.6.0"
       }
     },
     "css-tree": {
@@ -7728,9 +8028,9 @@
       }
     },
     "cssesc": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
-      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
       "dev": true
     },
     "cssnano": {
@@ -7811,12 +8111,36 @@
       "dev": true
     },
     "csso": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz",
-      "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz",
+      "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==",
       "dev": true,
       "requires": {
-        "css-tree": "1.0.0-alpha.37"
+        "css-tree": "1.0.0-alpha.39"
+      },
+      "dependencies": {
+        "css-tree": {
+          "version": "1.0.0-alpha.39",
+          "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz",
+          "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==",
+          "dev": true,
+          "requires": {
+            "mdn-data": "2.0.6",
+            "source-map": "^0.6.1"
+          }
+        },
+        "mdn-data": {
+          "version": "2.0.6",
+          "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz",
+          "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==",
+          "dev": true
+        },
+        "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
+        }
       }
     },
     "currently-unhandled": {
@@ -7851,9 +8175,9 @@
       }
     },
     "d3": {
-      "version": "5.15.0",
-      "resolved": "https://registry.npmjs.org/d3/-/d3-5.15.0.tgz",
-      "integrity": "sha512-C+E80SL2nLLtmykZ6klwYj5rPqB5nlfN5LdWEAVdWPppqTD8taoJi2PxLZjPeYT8FFRR2yucXq+kBlOnnvZeLg==",
+      "version": "5.15.1",
+      "resolved": "https://registry.npmjs.org/d3/-/d3-5.15.1.tgz",
+      "integrity": "sha512-Xu9gT6Lm0jH3wWJJSRomFwqnGGi3YAfWIfxNFl4++YVgYOjo3F8V2idAG3nJBgpZOkD0/RHPZX6F4k6tzgOvYw==",
       "requires": {
         "d3-array": "1",
         "d3-axis": "1",
@@ -7986,9 +8310,9 @@
       }
     },
     "d3-format": {
-      "version": "1.4.3",
-      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.3.tgz",
-      "integrity": "sha512-mm/nE2Y9HgGyjP+rKIekeITVgBtX97o1nrvHCWX8F/yBYyevUTvu9vb5pUnKwrcSw7o7GuwMOWjS9gFDs4O+uQ=="
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz",
+      "integrity": "sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw=="
     },
     "d3-geo": {
       "version": "1.11.9",
@@ -8510,6 +8834,23 @@
         "sanitize-filename": "^1.6.3"
       },
       "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "iconv-lite": {
           "version": "0.5.1",
           "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
@@ -8688,9 +9029,9 @@
       "dev": true
     },
     "electron": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-8.1.1.tgz",
-      "integrity": "sha512-t+5zzFo7VOgckJc9YpImHJkpqeWxwpmEjywWbAa4IT5MULS7h1XU52H9gMswK/y8xc5lBNwxLhJSty/15+gi1A==",
+      "version": "8.2.2",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.2.tgz",
+      "integrity": "sha512-GH4RCbpuzEn3XpTmsf+wLaJ2KOPSOoBJvQ0s6ftTLs5+IQEgKZvkdYCj8TCBNXFhss31RT3BUqoEQQUyZErK0A==",
       "dev": true,
       "requires": {
         "@electron/get": "^1.0.1",
@@ -8699,9 +9040,9 @@
       },
       "dependencies": {
         "@types/node": {
-          "version": "12.12.29",
-          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.29.tgz",
-          "integrity": "sha512-yo8Qz0ygADGFptISDj3pOC9wXfln/5pQaN/ysDIzOaAWXt73cNHmtEC8zSO2Y+kse/txmwIAJzkYZ5fooaS5DQ==",
+          "version": "12.12.35",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.35.tgz",
+          "integrity": "sha512-ASYsaKecA7TUsDrqIGPNk3JeEox0z/0XR/WsJJ8BIX/9+SkMSImQXKWfU/yBrSyc7ZSE/NPqLu36Nur0miCFfQ==",
           "dev": true
         }
       }
@@ -8784,12 +9125,29 @@
             "path-exists": "^4.0.0"
           }
         },
+        "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"
+          }
+        },
         "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
         },
+        "graceful-fs": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8948,6 +9306,23 @@
             "color-name": "~1.1.4"
           }
         },
+        "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8972,9 +9347,9 @@
       }
     },
     "electron-to-chromium": {
-      "version": "1.3.379",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.379.tgz",
-      "integrity": "sha512-NK9DBBYEBb5f9D7zXI0hiE941gq3wkBeQmXs1ingigA/jnTg5mhwY2Z5egwA+ZI8OLGKCx0h1Cl8/xeuIBuLlg==",
+      "version": "1.3.404",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.404.tgz",
+      "integrity": "sha512-G7XYSpNXv/GhFLgjGyBJAs9LjLHBWhsvjf6VI/VbptG9KiABHSItETTgDe1LDjbHA5P/Rn2MMDKOvhewM+w2Cg==",
       "dev": true
     },
     "elementtree": {
@@ -9014,9 +9389,9 @@
       "dev": true
     },
     "emojis-list": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
-      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
       "dev": true
     },
     "encodeurl": {
@@ -9826,15 +10201,32 @@
       }
     },
     "extract-zip": {
-      "version": "1.6.7",
-      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
-      "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+      "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
       "dev": true,
       "requires": {
-        "concat-stream": "1.6.2",
-        "debug": "2.6.9",
-        "mkdirp": "0.5.1",
-        "yauzl": "2.4.1"
+        "concat-stream": "^1.6.2",
+        "debug": "^2.6.9",
+        "mkdirp": "^0.5.4",
+        "yauzl": "^2.10.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
+        "mkdirp": {
+          "version": "0.5.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+          "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.5"
+          }
+        }
       }
     },
     "extsprintf": {
@@ -9856,9 +10248,9 @@
       },
       "dependencies": {
         "acorn": {
-          "version": "5.7.3",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
-          "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+          "version": "5.7.4",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
+          "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
           "dev": true
         },
         "isarray": {
@@ -9934,9 +10326,9 @@
       }
     },
     "fd-slicer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
-      "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+      "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
       "dev": true,
       "requires": {
         "pend": "~1.2.0"
@@ -9958,13 +10350,13 @@
       }
     },
     "file-loader": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz",
-      "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz",
+      "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==",
       "dev": true,
       "requires": {
-        "loader-utils": "^1.2.3",
-        "schema-utils": "^2.0.0"
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^2.6.5"
       },
       "dependencies": {
         "ajv": {
@@ -10065,13 +10457,13 @@
       }
     },
     "find-cache-dir": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz",
-      "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==",
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
+      "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
       "dev": true,
       "requires": {
         "commondir": "^1.0.1",
-        "make-dir": "^3.0.0",
+        "make-dir": "^3.0.2",
         "pkg-dir": "^4.1.0"
       },
       "dependencies": {
@@ -10151,9 +10543,9 @@
       "dev": true
     },
     "flatted": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
-      "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+      "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
       "dev": true
     },
     "flush-write-stream": {
@@ -10358,19 +10750,38 @@
       }
     },
     "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==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+      "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+      "dev": true,
       "requires": {
+        "at-least-node": "^1.0.0",
         "graceful-fs": "^4.2.0",
-        "jsonfile": "^4.0.0",
-        "universalify": "^0.1.0"
+        "jsonfile": "^6.0.1",
+        "universalify": "^1.0.0"
       },
       "dependencies": {
         "graceful-fs": {
-          "version": "4.2.2",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
-          "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
+        "jsonfile": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+          "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.6",
+            "universalify": "^1.0.0"
+          }
+        },
+        "universalify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+          "dev": true
         }
       }
     },
@@ -10959,6 +11370,12 @@
       "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==",
       "dev": true
     },
+    "gensync": {
+      "version": "1.0.0-beta.1",
+      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+      "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
+      "dev": true
+    },
     "get-assigned-identifiers": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
@@ -11049,9 +11466,9 @@
       },
       "dependencies": {
         "semver": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
-          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
+          "version": "7.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.0.tgz",
+          "integrity": "sha512-uyvgU/igkrMgNHwLgXvlpD9jEADbJhB0+JXSywoO47JgJ6c16iau9F9cjtc/E5o0PoqRYTiTIAPRKaYe84z6eQ==",
           "dev": true,
           "optional": true
         }
@@ -11173,17 +11590,24 @@
       "dev": true
     },
     "handlebars": {
-      "version": "4.7.3",
-      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz",
-      "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==",
+      "version": "4.7.6",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
+      "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
       "dev": true,
       "requires": {
+        "minimist": "^1.2.5",
         "neo-async": "^2.6.0",
-        "optimist": "^0.6.1",
         "source-map": "^0.6.1",
-        "uglify-js": "^3.1.4"
+        "uglify-js": "^3.1.4",
+        "wordwrap": "^1.0.0"
       },
       "dependencies": {
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -12030,6 +12454,12 @@
       "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
       "dev": true
     },
+    "is-docker": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
+      "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==",
+      "dev": true
+    },
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -12400,26 +12830,26 @@
           }
         },
         "@babel/generator": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-          "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.8.7",
+            "@babel/types": "^7.9.5",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/helper-function-name": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-          "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
           "dev": true,
           "requires": {
             "@babel/helper-get-function-arity": "^7.8.3",
             "@babel/template": "^7.8.3",
-            "@babel/types": "^7.8.3"
+            "@babel/types": "^7.9.5"
           }
         },
         "@babel/helper-get-function-arity": {
@@ -12441,20 +12871,20 @@
           }
         },
         "@babel/highlight": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-          "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
           "dev": true,
           "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
             "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
             "js-tokens": "^4.0.0"
           }
         },
         "@babel/parser": {
-          "version": "7.8.8",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-          "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+          "version": "7.9.4",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
           "dev": true
         },
         "@babel/template": {
@@ -12469,29 +12899,29 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-          "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.8.6",
-            "@babel/helper-function-name": "^7.8.3",
+            "@babel/generator": "^7.9.5",
+            "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6",
+            "@babel/parser": "^7.9.0",
+            "@babel/types": "^7.9.5",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.8.7",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-          "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+          "version": "7.9.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
           "dev": true,
           "requires": {
-            "esutils": "^2.0.2",
+            "@babel/helper-validator-identifier": "^7.9.5",
             "lodash": "^4.17.13",
             "to-fast-properties": "^2.0.0"
           }
@@ -12684,18 +13114,18 @@
       "dev": true
     },
     "jasmine-spec-reporter": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz",
-      "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.1.tgz",
+      "integrity": "sha512-RrOZ+bSPnbk1/9KKs5lm0Nl0cqDCh/XXVlCmu3nkhEJH6HTDh4hoJZu3q8e9aq37C0eXEf/JEJnYy+t4m3arZQ==",
       "dev": true,
       "requires": {
-        "colors": "1.1.2"
+        "colors": "1.4.0"
       },
       "dependencies": {
         "colors": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
-          "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+          "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
           "dev": true
         }
       }
@@ -12707,21 +13137,32 @@
       "dev": true
     },
     "jest-worker": {
-      "version": "24.9.0",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
-      "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+      "version": "25.1.0",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz",
+      "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==",
       "dev": true,
       "requires": {
         "merge-stream": "^2.0.0",
-        "supports-color": "^6.1.0"
+        "supports-color": "^7.0.0"
+      },
+      "dependencies": {
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
       }
     },
-    "js-levenshtein": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
-      "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
-      "dev": true
-    },
     "js-tokens": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -12795,12 +13236,12 @@
       "dev": true
     },
     "json5": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+      "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
       "dev": true,
       "requires": {
-        "minimist": "^1.2.0"
+        "minimist": "^1.2.5"
       },
       "dependencies": {
         "minimist": {
@@ -12850,12 +13291,11 @@
       }
     },
     "karma": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/karma/-/karma-4.4.1.tgz",
-      "integrity": "sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.1.tgz",
+      "integrity": "sha512-xrDGtZ0mykEQjx1BUHOP1ITi39MDsCGocmSvLJWHxUQpxuKwxk3ZUrC6HI2VWh1plLC6+7cA3B19m12yzO/FRw==",
       "dev": true,
       "requires": {
-        "bluebird": "^3.3.0",
         "body-parser": "^1.16.1",
         "braces": "^3.0.2",
         "chokidar": "^3.0.0",
@@ -12867,38 +13307,37 @@
         "glob": "^7.1.1",
         "graceful-fs": "^4.1.2",
         "http-proxy": "^1.13.0",
-        "isbinaryfile": "^3.0.0",
+        "isbinaryfile": "^4.0.2",
         "lodash": "^4.17.14",
         "log4js": "^4.0.0",
         "mime": "^2.3.1",
         "minimatch": "^3.0.2",
-        "optimist": "^0.6.1",
         "qjobs": "^1.1.4",
         "range-parser": "^1.2.0",
         "rimraf": "^2.6.0",
-        "safe-buffer": "^5.0.1",
         "socket.io": "2.1.1",
         "source-map": "^0.6.1",
         "tmp": "0.0.33",
-        "useragent": "2.3.0"
+        "ua-parser-js": "0.7.21",
+        "yargs": "^15.3.1"
       },
       "dependencies": {
-        "anymatch": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
-          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+        "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
           "dev": true,
           "requires": {
-            "normalize-path": "^3.0.0",
-            "picomatch": "^2.0.4"
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
           }
         },
-        "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",
@@ -12908,78 +13347,70 @@
             "fill-range": "^7.0.1"
           }
         },
-        "chokidar": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
-          "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
-          "dev": true,
-          "requires": {
-            "anymatch": "~3.1.1",
-            "braces": "~3.0.2",
-            "fsevents": "~2.1.2",
-            "glob-parent": "~5.1.0",
-            "is-binary-path": "~2.1.0",
-            "is-glob": "~4.0.1",
-            "normalize-path": "~3.0.0",
-            "readdirp": "~3.3.0"
-          }
-        },
-        "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==",
+        "cliui": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
           "dev": true,
           "requires": {
-            "to-regex-range": "^5.0.1"
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^6.2.0"
           }
         },
-        "fsevents": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
-          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
-          "dev": true,
-          "optional": true
-        },
-        "glob-parent": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
-          "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
           "dev": true,
           "requires": {
-            "is-glob": "^4.0.1"
+            "color-name": "~1.1.4"
           }
         },
-        "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==",
+        "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": {
-            "binary-extensions": "^2.0.0"
+            "to-regex-range": "^5.0.1"
           }
         },
-        "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==",
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
           "dev": true,
           "requires": {
-            "is-extglob": "^2.1.1"
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
           }
         },
+        "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": "3.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+          "dev": true
+        },
         "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
         },
-        "isbinaryfile": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
-          "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
           "dev": true,
           "requires": {
-            "buffer-alloc": "^1.2.0"
+            "p-locate": "^4.1.0"
           }
         },
         "mime": {
@@ -12988,27 +13419,53 @@
           "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.3.0",
-          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
-          "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
           "dev": true,
           "requires": {
-            "picomatch": "^2.0.7"
+            "p-limit": "^2.2.0"
           }
         },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "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
+        },
         "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": "4.2.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^5.0.0"
+          }
+        },
         "to-regex-range": {
           "version": "5.0.1",
           "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -13017,6 +13474,46 @@
           "requires": {
             "is-number": "^7.0.0"
           }
+        },
+        "wrap-ansi": {
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.0.0",
+            "string-width": "^4.1.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "yargs": {
+          "version": "15.3.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+          "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+          "dev": true,
+          "requires": {
+            "cliui": "^6.0.0",
+            "decamelize": "^1.2.0",
+            "find-up": "^4.1.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^4.2.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^18.1.1"
+          }
+        },
+        "yargs-parser": {
+          "version": "18.1.2",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz",
+          "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==",
+          "dev": true,
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
         }
       }
     },
@@ -13069,9 +13566,9 @@
       }
     },
     "karma-jasmine-html-reporter": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.2.tgz",
-      "integrity": "sha512-ILBPsXqQ3eomq+oaQsM311/jxsypw5/d0LnZXj26XkfThwq7jZ55A2CFSKJVA5VekbbOGvMyv7d3juZj0SeTxA==",
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.3.tgz",
+      "integrity": "sha512-ci0VrjuCaFj+9d1tYlTE3KIPUCp0rz874zWWU3JgCMqGIyw5ke+BXWFPOAGAqUdCJcrMwneyvp1zFXA74MiPUA==",
       "dev": true
     },
     "karma-source-map-support": {
@@ -13137,9 +13634,9 @@
       }
     },
     "less": {
-      "version": "3.10.3",
-      "resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz",
-      "integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==",
+      "version": "3.11.1",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.11.1.tgz",
+      "integrity": "sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==",
       "dev": true,
       "requires": {
         "clone": "^2.1.2",
@@ -13150,7 +13647,8 @@
         "mkdirp": "^0.5.0",
         "promise": "^7.1.1",
         "request": "^2.83.0",
-        "source-map": "~0.6.0"
+        "source-map": "~0.6.0",
+        "tslib": "^1.10.0"
       },
       "dependencies": {
         "source-map": {
@@ -13173,6 +13671,32 @@
         "pify": "^4.0.1"
       },
       "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -13181,6 +13705,21 @@
         }
       }
     },
+    "leven": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+      "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+      "dev": true
+    },
+    "levenary": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
+      "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
+      "dev": true,
+      "requires": {
+        "leven": "^3.1.0"
+      }
+    },
     "levn": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -13192,9 +13731,9 @@
       }
     },
     "license-webpack-plugin": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.3.tgz",
-      "integrity": "sha512-vTSY5r9HOq4sxR2BIxdIXWKI+9n3b+DoQkhKHedB3TdSxTfXUDRxKXdAj5iejR+qNXprXsxvEu9W+zOhgGIkAw==",
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.4.tgz",
+      "integrity": "sha512-1Xq72fmPbTg5KofXs+yI5L4QqPFjQ6mZxoeI6D7gfiEDOtaEIk6PGrdLaej90bpDqKNHNxlQ/MW4tMAL6xMPJQ==",
       "dev": true,
       "requires": {
         "@types/webpack-sources": "^0.1.5",
@@ -13379,14 +13918,14 @@
       "dev": true
     },
     "loader-utils": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
-      "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+      "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
       "dev": true,
       "requires": {
         "big.js": "^5.2.2",
-        "emojis-list": "^2.0.0",
-        "json5": "^1.0.1"
+        "emojis-list": "^3.0.0",
+        "json5": "^2.1.2"
       }
     },
     "locate-path": {
@@ -13467,12 +14006,6 @@
         }
       }
     },
-    "loglevel": {
-      "version": "1.6.7",
-      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz",
-      "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==",
-      "dev": true
-    },
     "loglevel-plugin-prefix": {
       "version": "0.8.4",
       "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz",
@@ -13565,9 +14098,9 @@
       },
       "dependencies": {
         "cacache": {
-          "version": "12.0.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
-          "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+          "version": "12.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+          "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.5",
@@ -13694,9 +14227,9 @@
       "integrity": "sha1-mnHEh0chjrylHlGmbaaCA4zct78="
     },
     "mathjax": {
-      "version": "2.7.7",
-      "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.7.tgz",
-      "integrity": "sha512-OOl0B2/0tSJAtAZarXnQuLDBLgTNRqiI9VqHTQzPsxf4okT2iIpDrvaklK9x2QEMD1sDj4yRn11Ygci41DxMAQ=="
+      "version": "2.7.8",
+      "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.8.tgz",
+      "integrity": "sha512-n4xZJ+cw7o01YOSVhxxjyOmibqBPCi+XTDof4siq78QWMx7Fxjzgb/mxMUEElMzTDodMV7ENIMsjREOSldOQPw=="
     },
     "md5-file": {
       "version": "4.0.0",
@@ -13872,9 +14405,9 @@
       "dev": true
     },
     "mini-css-extract-plugin": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz",
-      "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==",
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
+      "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.1.0",
@@ -13883,6 +14416,32 @@
         "webpack-sources": "^1.1.0"
       },
       "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "normalize-url": {
           "version": "1.9.1",
           "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
@@ -14063,12 +14622,20 @@
       }
     },
     "mkdirp": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+      "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
       "dev": true,
       "requires": {
-        "minimist": "0.0.8"
+        "minimist": "^1.2.5"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        }
       }
     },
     "moment": {
@@ -14154,9 +14721,9 @@
       "dev": true
     },
     "nan": {
-      "version": "2.12.1",
-      "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
-      "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
+      "version": "2.14.0",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+      "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
       "dev": true,
       "optional": true
     },
@@ -14252,9 +14819,9 @@
       }
     },
     "node-fetch-npm": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz",
-      "integrity": "sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA==",
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz",
+      "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==",
       "dev": true,
       "requires": {
         "encoding": "^0.1.11",
@@ -14262,12 +14829,6 @@
         "safe-buffer": "^5.1.1"
       }
     },
-    "node-forge": {
-      "version": "0.9.0",
-      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
-      "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
-      "dev": true
-    },
     "node-libs-browser": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
@@ -14308,21 +14869,10 @@
       }
     },
     "node-releases": {
-      "version": "1.1.52",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz",
-      "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==",
-      "dev": true,
-      "requires": {
-        "semver": "^6.3.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        }
-      }
+      "version": "1.1.53",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz",
+      "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==",
+      "dev": true
     },
     "nopt": {
       "version": "4.0.1",
@@ -14386,6 +14936,23 @@
         "pify": "^3.0.0"
       }
     },
+    "npm-install-checks": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz",
+      "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==",
+      "dev": true,
+      "requires": {
+        "semver": "^7.1.1"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.0.tgz",
+          "integrity": "sha512-uyvgU/igkrMgNHwLgXvlpD9jEADbJhB0+JXSywoO47JgJ6c16iau9F9cjtc/E5o0PoqRYTiTIAPRKaYe84z6eQ==",
+          "dev": true
+        }
+      }
+    },
     "npm-normalize-package-bin": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
@@ -14416,14 +14983,57 @@
       }
     },
     "npm-pick-manifest": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz",
-      "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz",
+      "integrity": "sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg==",
       "dev": true,
       "requires": {
-        "figgy-pudding": "^3.5.1",
-        "npm-package-arg": "^6.0.0",
-        "semver": "^5.4.1"
+        "npm-install-checks": "^4.0.0",
+        "npm-package-arg": "^8.0.0",
+        "semver": "^7.0.0"
+      },
+      "dependencies": {
+        "hosted-git-info": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
+          "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^5.1.1"
+          }
+        },
+        "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"
+          }
+        },
+        "npm-package-arg": {
+          "version": "8.0.1",
+          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
+          "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==",
+          "dev": true,
+          "requires": {
+            "hosted-git-info": "^3.0.2",
+            "semver": "^7.0.0",
+            "validate-npm-package-name": "^3.0.0"
+          }
+        },
+        "semver": {
+          "version": "7.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.0.tgz",
+          "integrity": "sha512-uyvgU/igkrMgNHwLgXvlpD9jEADbJhB0+JXSywoO47JgJ6c16iau9F9cjtc/E5o0PoqRYTiTIAPRKaYe84z6eQ==",
+          "dev": true
+        },
+        "yallist": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "dev": true
+        }
       }
     },
     "npm-registry-fetch": {
@@ -14672,9 +15282,9 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.4",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
-          "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
@@ -14791,12 +15401,13 @@
       }
     },
     "open": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz",
-      "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==",
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
+      "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
       "dev": true,
       "requires": {
-        "is-wsl": "^2.1.0"
+        "is-docker": "^2.0.0",
+        "is-wsl": "^2.1.1"
       },
       "dependencies": {
         "is-wsl": {
@@ -14855,26 +15466,47 @@
       }
     },
     "ora": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.2.tgz",
-      "integrity": "sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz",
+      "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==",
       "dev": true,
       "requires": {
-        "chalk": "^2.4.2",
+        "chalk": "^3.0.0",
         "cli-cursor": "^3.1.0",
         "cli-spinners": "^2.2.0",
         "is-interactive": "^1.0.0",
         "log-symbols": "^3.0.0",
-        "strip-ansi": "^5.2.0",
+        "mute-stream": "0.0.8",
+        "strip-ansi": "^6.0.0",
         "wcwidth": "^1.0.1"
       },
       "dependencies": {
         "ansi-regex": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
-          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
         "cli-cursor": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@@ -14884,6 +15516,27 @@
             "restore-cursor": "^3.1.0"
           }
         },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "mute-stream": {
+          "version": "0.0.8",
+          "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+          "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+          "dev": true
+        },
         "onetime": {
           "version": "5.1.0",
           "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
@@ -14904,12 +15557,21 @@
           }
         },
         "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^4.1.0"
+            "ansi-regex": "^5.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
           }
         }
       }
@@ -15062,9 +15724,9 @@
       }
     },
     "pacote": {
-      "version": "9.5.8",
-      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.8.tgz",
-      "integrity": "sha512-0Tl8Oi/K0Lo4MZmH0/6IsT3gpGf9eEAznLXEQPKgPq7FscnbUOyopnVpwXlnQdIbCUaojWy1Wd7VMyqfVsRrIw==",
+      "version": "9.5.12",
+      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz",
+      "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==",
       "dev": true,
       "requires": {
         "bluebird": "^3.5.3",
@@ -15081,6 +15743,7 @@
         "mississippi": "^3.0.0",
         "mkdirp": "^0.5.1",
         "normalize-package-data": "^2.4.0",
+        "npm-normalize-package-bin": "^1.0.0",
         "npm-package-arg": "^6.1.0",
         "npm-packlist": "^1.1.12",
         "npm-pick-manifest": "^3.0.0",
@@ -15099,9 +15762,9 @@
       },
       "dependencies": {
         "cacache": {
-          "version": "12.0.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
-          "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+          "version": "12.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+          "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.5",
@@ -15165,6 +15828,17 @@
             "yallist": "^3.0.0"
           }
         },
+        "npm-pick-manifest": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz",
+          "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==",
+          "dev": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1",
+            "npm-package-arg": "^6.0.0",
+            "semver": "^5.4.1"
+          }
+        },
         "semver": {
           "version": "5.7.1",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -15514,34 +16188,6 @@
       "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==",
       "dev": true
     },
-    "portfinder": {
-      "version": "1.0.25",
-      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",
-      "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==",
-      "dev": true,
-      "requires": {
-        "async": "^2.6.2",
-        "debug": "^3.1.1",
-        "mkdirp": "^0.5.1"
-      },
-      "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
-        }
-      }
-    },
     "posix-character-classes": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@@ -15549,9 +16195,9 @@
       "dev": true
     },
     "postcss": {
-      "version": "7.0.21",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
-      "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+      "version": "7.0.27",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+      "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
       "dev": true,
       "requires": {
         "chalk": "^2.4.2",
@@ -15576,25 +16222,6 @@
         "postcss": "^7.0.27",
         "postcss-selector-parser": "^6.0.2",
         "postcss-value-parser": "^4.0.2"
-      },
-      "dependencies": {
-        "postcss": {
-          "version": "7.0.27",
-          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
-          "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.4.2",
-            "source-map": "^0.6.1",
-            "supports-color": "^6.1.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
-        }
       }
     },
     "postcss-colormin": {
@@ -15712,6 +16339,34 @@
         "postcss": "^7.0.0",
         "postcss-load-config": "^2.0.0",
         "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        }
       }
     },
     "postcss-merge-longhand": {
@@ -16105,14 +16760,6 @@
         "cssesc": "^3.0.0",
         "indexes-of": "^1.0.1",
         "uniq": "^1.0.1"
-      },
-      "dependencies": {
-        "cssesc": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
-          "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
-          "dev": true
-        }
       }
     },
     "postcss-svgo": {
@@ -16170,9 +16817,9 @@
       "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew=="
     },
     "primeng": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.0.1.tgz",
-      "integrity": "sha512-BmIq5F3+xUQ96G4fD4K2uR3azGitWCum++SVCXEgzzHI4zp55Xzyd96H8vHQg/IQxdT8ftlr/OpOHKACAFNgow=="
+      "version": "9.0.5",
+      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.0.5.tgz",
+      "integrity": "sha512-juugoXZaU7TyGyTSFx0PNjObqM+/RTY/arJ/LwyH/0KaIv0V+Oqfvnx8btJ96kLOZ+h0xLWXLuAbxsTXe9EX6w=="
     },
     "printj": {
       "version": "1.1.2",
@@ -16634,13 +17281,13 @@
       }
     },
     "raw-loader": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz",
-      "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.0.tgz",
+      "integrity": "sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q==",
       "dev": true,
       "requires": {
-        "loader-utils": "^1.1.0",
-        "schema-utils": "^2.0.1"
+        "loader-utils": "^1.2.3",
+        "schema-utils": "^2.5.0"
       },
       "dependencies": {
         "ajv": {
@@ -16661,6 +17308,32 @@
           "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
           "dev": true
         },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "schema-utils": {
           "version": "2.6.5",
           "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
@@ -16751,6 +17424,23 @@
         "lazy-val": "^1.0.4"
       },
       "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        },
         "json5": {
           "version": "2.1.1",
           "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
@@ -16878,14 +17568,17 @@
       }
     },
     "regexpu-core": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
-      "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
+      "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
       "dev": true,
       "requires": {
-        "regenerate": "^1.2.1",
-        "regjsgen": "^0.2.0",
-        "regjsparser": "^0.1.4"
+        "regenerate": "^1.4.0",
+        "regenerate-unicode-properties": "^8.2.0",
+        "regjsgen": "^0.5.1",
+        "regjsparser": "^0.6.4",
+        "unicode-match-property-ecmascript": "^1.0.4",
+        "unicode-match-property-value-ecmascript": "^1.2.0"
       }
     },
     "registry-auth-token": {
@@ -16908,15 +17601,15 @@
       }
     },
     "regjsgen": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
-      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
+      "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
       "dev": true
     },
     "regjsparser": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
-      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+      "version": "0.6.4",
+      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
+      "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
       "dev": true,
       "requires": {
         "jsesc": "~0.5.0"
@@ -17115,9 +17808,9 @@
       }
     },
     "roarr": {
-      "version": "2.15.2",
-      "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.2.tgz",
-      "integrity": "sha512-jmaDhK9CO4YbQAV8zzCnq9vjAqeO489MS5ehZ+rXmFiPFFE6B+S9KYO6prjmLJ5A0zY3QxVlQdrIya7E/azz/Q==",
+      "version": "2.15.3",
+      "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz",
+      "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==",
       "dev": true,
       "optional": true,
       "requires": {
@@ -17144,14 +17837,21 @@
       "integrity": "sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g=="
     },
     "rollup": {
-      "version": "1.25.2",
-      "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz",
-      "integrity": "sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.1.0.tgz",
+      "integrity": "sha512-gfE1455AEazVVTJoeQtcOq/U6GSxwoj4XPSWVsuWmgIxj7sBQNLDOSA82PbdMe+cP8ql8fR1jogPFe8Wg8g4SQ==",
       "dev": true,
       "requires": {
-        "@types/estree": "*",
-        "@types/node": "*",
-        "acorn": "^7.1.0"
+        "fsevents": "~2.1.2"
+      },
+      "dependencies": {
+        "fsevents": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
+          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+          "dev": true,
+          "optional": true
+        }
       }
     },
     "run-async": {
@@ -17178,9 +17878,9 @@
       "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
     },
     "rxjs": {
-      "version": "6.5.4",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-      "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
+      "version": "6.5.5",
+      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+      "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
       "requires": {
         "tslib": "^1.9.0"
       }
@@ -17215,24 +17915,24 @@
       }
     },
     "sass": {
-      "version": "1.23.3",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.23.3.tgz",
-      "integrity": "sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog==",
+      "version": "1.26.3",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.3.tgz",
+      "integrity": "sha512-5NMHI1+YFYw4sN3yfKjpLuV9B5l7MqQ6FlkTcC4FT+oHbBRUZoSjHrrt/mE0nFXJyY2kQtU9ou9HxvFVjLFuuw==",
       "dev": true,
       "requires": {
         "chokidar": ">=2.0.0 <4.0.0"
       }
     },
     "sass-loader": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz",
-      "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==",
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
+      "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
       "dev": true,
       "requires": {
         "clone-deep": "^4.0.1",
         "loader-utils": "^1.2.3",
         "neo-async": "^2.6.1",
-        "schema-utils": "^2.1.0",
+        "schema-utils": "^2.6.1",
         "semver": "^6.3.0"
       },
       "dependencies": {
@@ -17254,6 +17954,32 @@
           "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
           "dev": true
         },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "neo-async": {
           "version": "2.6.1",
           "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
@@ -17368,15 +18094,6 @@
         }
       }
     },
-    "selfsigned": {
-      "version": "1.10.7",
-      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
-      "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
-      "dev": true,
-      "requires": {
-        "node-forge": "0.9.0"
-      }
-    },
     "semver": {
       "version": "5.5.1",
       "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
@@ -17878,46 +18595,6 @@
         "uuid": "^3.0.1"
       }
     },
-    "sockjs-client": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
-      "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.5",
-        "eventsource": "^1.0.7",
-        "faye-websocket": "~0.11.1",
-        "inherits": "^2.0.3",
-        "json3": "^3.3.2",
-        "url-parse": "^1.4.3"
-      },
-      "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"
-          }
-        },
-        "faye-websocket": {
-          "version": "0.11.3",
-          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
-          "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
-          "dev": true,
-          "requires": {
-            "websocket-driver": ">=0.5.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
-        }
-      }
-    },
     "socks": {
       "version": "2.3.3",
       "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz",
@@ -17978,6 +18655,34 @@
       "requires": {
         "async": "^2.5.0",
         "loader-utils": "^1.1.0"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        }
       }
     },
     "source-map-resolve": {
@@ -18186,12 +18891,11 @@
       }
     },
     "ssri": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
-      "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==",
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz",
+      "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==",
       "dev": true,
       "requires": {
-        "figgy-pudding": "^3.5.1",
         "minipass": "^3.1.1"
       }
     },
@@ -18505,13 +19209,13 @@
       "dev": true
     },
     "style-loader": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz",
-      "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==",
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.1.3.tgz",
+      "integrity": "sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.2.3",
-        "schema-utils": "^2.0.1"
+        "schema-utils": "^2.6.4"
       },
       "dependencies": {
         "ajv": {
@@ -18532,6 +19236,32 @@
           "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
           "dev": true
         },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "schema-utils": {
           "version": "2.6.5",
           "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
@@ -18625,6 +19355,34 @@
         "loader-utils": "^1.0.2",
         "lodash.clonedeep": "^4.5.0",
         "when": "~3.6.x"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        }
       }
     },
     "sumchecker": {
@@ -18842,6 +19600,25 @@
       "requires": {
         "async-exit-hook": "^2.0.1",
         "fs-extra": "^8.1.0"
+      },
+      "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.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "dev": true
+        }
       }
     },
     "term-size": {
@@ -18908,9 +19685,9 @@
       }
     },
     "terser-webpack-plugin": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.3.tgz",
-      "integrity": "sha512-gWHkaGzGYjmDoYxksFZynWTzvXOAjQ5dd7xuTMYlv4zpWlLSb6v0QLSZjELzP5dMs1ox30O1BIPs9dgqlMHuLQ==",
+      "version": "2.3.5",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz",
+      "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==",
       "dev": true,
       "requires": {
         "cacache": "^13.0.1",
@@ -18936,98 +19713,83 @@
             "uri-js": "^4.2.2"
           }
         },
+        "cacache": {
+          "version": "13.0.1",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
+          "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
+          "dev": true,
+          "requires": {
+            "chownr": "^1.1.2",
+            "figgy-pudding": "^3.5.1",
+            "fs-minipass": "^2.0.0",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.2.2",
+            "infer-owner": "^1.0.4",
+            "lru-cache": "^5.1.1",
+            "minipass": "^3.0.0",
+            "minipass-collect": "^1.0.2",
+            "minipass-flush": "^1.0.5",
+            "minipass-pipeline": "^1.2.2",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "p-map": "^3.0.0",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.7.1",
+            "ssri": "^7.0.0",
+            "unique-filename": "^1.1.1"
+          }
+        },
         "fast-deep-equal": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
           "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
           "dev": true
         },
-        "find-cache-dir": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
-          "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
-          "dev": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "make-dir": "^3.0.2",
-            "pkg-dir": "^4.1.0"
-          }
-        },
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+        "glob": {
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
           "dev": true,
           "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
+            "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"
           }
         },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+        "graceful-fs": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
           "dev": true
         },
-        "jest-worker": {
-          "version": "25.1.0",
-          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz",
-          "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==",
-          "dev": true,
-          "requires": {
-            "merge-stream": "^2.0.0",
-            "supports-color": "^7.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
-        "make-dir": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
-          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
+        "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": {
-            "semver": "^6.0.0"
+            "yallist": "^3.0.2"
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           }
         },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.2.0"
-          }
-        },
-        "path-exists": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
-          "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+        "p-map": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+          "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
           "dev": true,
           "requires": {
-            "find-up": "^4.0.0"
+            "aggregate-error": "^3.0.0"
           }
         },
         "schema-utils": {
@@ -19040,12 +19802,6 @@
             "ajv-keywords": "^3.4.1"
           }
         },
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -19062,25 +19818,32 @@
             "source-map": "^0.6.0"
           }
         },
-        "supports-color": {
+        "ssri": {
           "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
+          "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==",
           "dev": true,
           "requires": {
-            "has-flag": "^4.0.0"
+            "figgy-pudding": "^3.5.1",
+            "minipass": "^3.1.1"
           }
         },
         "terser": {
-          "version": "4.6.7",
-          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz",
-          "integrity": "sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g==",
+          "version": "4.6.11",
+          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz",
+          "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==",
           "dev": true,
           "requires": {
             "commander": "^2.20.0",
             "source-map": "~0.6.1",
             "source-map-support": "~0.5.12"
           }
+        },
+        "yallist": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "dev": true
         }
       }
     },
@@ -19281,9 +20044,9 @@
       "integrity": "sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA=="
     },
     "ts-node": {
-      "version": "8.7.0",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.7.0.tgz",
-      "integrity": "sha512-s659CsHrsxaRVDEleuOkGvbsA0rWHtszUNEt1r0CgAFN5ZZTQtDzpsluS7W5pOGJIa1xZE8R/zK4dEs+ldFezg==",
+      "version": "8.8.2",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.8.2.tgz",
+      "integrity": "sha512-duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q==",
       "dev": true,
       "requires": {
         "arg": "^4.1.0",
@@ -19361,9 +20124,9 @@
       "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
     },
     "tslint": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.0.tgz",
-      "integrity": "sha512-fXjYd/61vU6da04E505OZQGb2VCN2Mq3doeWcOIryuG+eqdmFUXTYVwdhnbEu2k46LNLgUYt9bI5icQze/j0bQ==",
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.1.tgz",
+      "integrity": "sha512-kd6AQ/IgPRpLn6g5TozqzPdGNZ0q0jtXW4//hRcj10qLYBaa3mTUU2y2MCG+RXZm8Zx+KZi0eA+YCrMyNlF4UA==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -19374,11 +20137,28 @@
         "glob": "^7.1.1",
         "js-yaml": "^3.13.1",
         "minimatch": "^3.0.4",
-        "mkdirp": "^0.5.1",
+        "mkdirp": "^0.5.3",
         "resolve": "^1.3.2",
         "semver": "^5.3.0",
         "tslib": "^1.10.0",
         "tsutils": "^2.29.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
+        "mkdirp": {
+          "version": "0.5.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+          "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.5"
+          }
+        }
       }
     },
     "tsutils": {
@@ -19487,6 +20267,12 @@
       "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==",
       "dev": true
     },
+    "ua-parser-js": {
+      "version": "0.7.21",
+      "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz",
+      "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==",
+      "dev": true
+    },
     "uglify-js": {
       "version": "3.5.4",
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.4.tgz",
@@ -20002,16 +20788,6 @@
       "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
       "dev": true
     },
-    "useragent": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
-      "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
-      "dev": true,
-      "requires": {
-        "lru-cache": "4.1.x",
-        "tmp": "0.0.x"
-      }
-    },
     "utf8-byte-length": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
@@ -20055,9 +20831,9 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.4",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
-          "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
@@ -20204,12 +20980,12 @@
       "dev": true
     },
     "watchpack": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
-      "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz",
+      "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==",
       "dev": true,
       "requires": {
-        "chokidar": "^2.0.2",
+        "chokidar": "^2.1.8",
         "graceful-fs": "^4.1.2",
         "neo-async": "^2.5.0"
       },
@@ -20271,9 +21047,9 @@
       }
     },
     "webpack": {
-      "version": "4.41.2",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz",
-      "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==",
+      "version": "4.42.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz",
+      "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==",
       "dev": true,
       "requires": {
         "@webassemblyjs/ast": "1.8.5",
@@ -20296,17 +21072,11 @@
         "node-libs-browser": "^2.2.1",
         "schema-utils": "^1.0.0",
         "tapable": "^1.1.3",
-        "terser-webpack-plugin": "^1.4.1",
+        "terser-webpack-plugin": "^1.4.3",
         "watchpack": "^1.6.0",
         "webpack-sources": "^1.4.1"
       },
       "dependencies": {
-        "acorn": {
-          "version": "6.4.1",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
-          "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
-          "dev": true
-        },
         "ajv": {
           "version": "6.12.0",
           "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
@@ -20320,9 +21090,9 @@
           }
         },
         "cacache": {
-          "version": "12.0.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
-          "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+          "version": "12.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+          "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.5",
@@ -20373,6 +21143,26 @@
             "path-is-absolute": "^1.0.0"
           }
         },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
         "lru-cache": {
           "version": "5.1.1",
           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -20392,6 +21182,12 @@
             "semver": "^5.6.0"
           }
         },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        },
         "neo-async": {
           "version": "2.6.1",
           "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
@@ -20718,9 +21514,9 @@
       }
     },
     "webpack-subresource-integrity": {
-      "version": "1.3.4",
-      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.3.4.tgz",
-      "integrity": "sha512-6XbGYzjh30cGQT/NsC+9IAkJP8IL7/t47sbwR5DLSsamiD56Rwv4/+hsgEHsviPvrEFZ0JRAQtCRN3UsR2Pw9g==",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.0.tgz",
+      "integrity": "sha512-GB1kB/LwAWC3CxwcedGhMkxGpNZxSheCe1q+KJP1bakuieAdX/rGHEcf5zsEzhKXpqsGqokgsDoD9dIkr61VDQ==",
       "dev": true,
       "requires": {
         "webpack-sources": "^1.3.0"
@@ -20893,6 +21689,12 @@
       "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
       "dev": true
     },
+    "wordwrap": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+      "dev": true
+    },
     "worker-farm": {
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
@@ -20903,12 +21705,40 @@
       }
     },
     "worker-plugin": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz",
-      "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==",
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-4.0.2.tgz",
+      "integrity": "sha512-V+1zSZMOOKk+uBzKyNIODLQLsx59zSIOaI75J1EMS0iR1qy+KQR3y/pQ3T0vIhvPfDFapGRMsoMvQNEL3okqSA==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.1.0"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "minimist": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+          "dev": true
+        }
       }
     },
     "wrap-ansi": {
@@ -21087,12 +21917,13 @@
       }
     },
     "yauzl": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
-      "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+      "version": "2.10.0",
+      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+      "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
       "dev": true,
       "requires": {
-        "fd-slicer": "~1.0.1"
+        "buffer-crc32": "~0.2.3",
+        "fd-slicer": "~1.1.0"
       }
     },
     "yeast": {
diff --git a/package.json b/package.json
index aced423ae..b6d5d0023 100644
--- a/package.json
+++ b/package.json
@@ -36,17 +36,17 @@
   },
   "private": true,
   "dependencies": {
-    "@angular/animations": "^9.0.7",
-    "@angular/cdk": "^9.1.3",
-    "@angular/common": "^9.0.7",
-    "@angular/compiler": "^9.0.7",
-    "@angular/core": "^9.0.7",
+    "@angular/animations": "^9.1.1",
+    "@angular/cdk": "^9.2.1",
+    "@angular/common": "^9.1.1",
+    "@angular/compiler": "^9.1.1",
+    "@angular/core": "^9.1.1",
     "@angular/flex-layout": "^9.0.0-beta.29",
-    "@angular/forms": "^9.0.7",
-    "@angular/material": "^9.1.3",
-    "@angular/platform-browser": "^9.0.7",
-    "@angular/platform-browser-dynamic": "^9.0.7",
-    "@angular/router": "^9.0.7",
+    "@angular/forms": "^9.1.1",
+    "@angular/material": "^9.2.1",
+    "@angular/platform-browser": "^9.1.1",
+    "@angular/platform-browser-dynamic": "^9.1.1",
+    "@angular/router": "^9.1.1",
     "@types/pako": "^1.0.1",
     "@types/sprintf-js": "^1.1.2",
     "angular2-chartjs": "^0.5.1",
@@ -61,12 +61,12 @@
     "cordova-plugin-file-opener2": "^3.0.0",
     "cordova-plugin-local-notification": "^0.9.0-beta.2",
     "cordova-plugin-whitelist": "^1.3.4",
-    "core-js": "^3.6.4",
+    "core-js": "^3.6.5",
     "file-saver": "^2.0.2",
     "he": "^1.2.0",
     "jalhyd": "file:../jalhyd",
     "material-design-icons": "^3.0.1",
-    "mathjax": "^2.7.7",
+    "mathjax": "^2.7.8",
     "mermaid": "~8.3.1",
     "ngx-konami": "^1.7.1",
     "ngx-markdown": "^9.0.0",
@@ -74,9 +74,9 @@
     "ngx-matomo": "^0.1.4",
     "ngx-webstorage-service": "^4.1.0",
     "pako": "^1.0.11",
-    "primeng": "^9.0.1",
+    "primeng": "^9.0.5",
     "roboto-fontface": "^0.10.0",
-    "rxjs": "^6.5.4",
+    "rxjs": "^6.5.5",
     "screenfull": "^5.0.2",
     "svg-pan-zoom": "^3.6.1",
     "tslib": "^1.11.1",
@@ -84,31 +84,31 @@
     "zone.js": "^0.10.3"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "^0.900.7",
-    "@angular/cli": "^9.0.7",
-    "@angular/compiler-cli": "^9.0.7",
-    "@angular/language-service": "^9.0.7",
+    "@angular-devkit/build-angular": "^0.901.1",
+    "@angular/cli": "^9.1.1",
+    "@angular/compiler-cli": "^9.1.1",
+    "@angular/language-service": "^9.1.1",
     "@compodoc/compodoc": "^1.1.11",
     "@types/file-saver": "^2.0.1",
-    "@types/jasmine": "^3.5.9",
+    "@types/jasmine": "^3.5.10",
     "@types/jasminewd2": "^2.0.8",
-    "@types/node": "^13.9.2",
-    "codelyzer": "^5.1.2",
+    "@types/node": "^13.11.1",
+    "codelyzer": "^5.2.2",
     "cordova": "^9.0.0",
-    "electron": "^8.1.1",
+    "electron": "^8.2.2",
     "electron-builder": "^22.4.1",
-    "fs-extra": "^8.1.0",
+    "fs-extra": "^9.0.0",
     "jasmine-core": "^3.5.0",
-    "jasmine-spec-reporter": "~4.2.1",
-    "karma": "^4.4.1",
+    "jasmine-spec-reporter": "^5.0.1",
+    "karma": "^5.0.1",
     "karma-chrome-launcher": "^3.1.0",
     "karma-cli": "~2.0.0",
     "karma-coverage-istanbul-reporter": "^2.1.1",
     "karma-jasmine": "^3.1.1",
-    "karma-jasmine-html-reporter": "^1.5.2",
+    "karma-jasmine-html-reporter": "^1.5.3",
     "protractor": "^5.4.3",
-    "ts-node": "^8.7.0",
-    "tslint": "^6.1.0",
+    "ts-node": "^8.8.2",
+    "tslint": "^6.1.1",
     "typescript": "~3.7.5",
     "webpack-dev-server": "^3.10.3"
   },
diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
index e69de29bb..204203e1f 100644
--- a/src/app/calculators/verificateur/config.json
+++ b/src/app/calculators/verificateur/config.json
@@ -0,0 +1,40 @@
+[
+    {
+        "id": "fs_pass",
+        "type": "fieldset",
+        "fields": [
+            {
+                "id": "select_target_pass",
+                "type": "select_reference",
+                "reference": "nub",
+                "source": "verificateur_target"
+            },
+            {
+                "type": "select",
+                "id": "select_pab_jet_type",
+                "property": "pabJetType",
+                "default": "SURFACE"
+            }
+        ]
+    },
+    {
+        "id": "fs_species",
+        "type": "fieldset",
+        "fields": [
+            {
+                "type": "select",
+                "id": "select_species_list",
+                "default": "SPECIES_1",
+                "source": "verificateur_species",
+                "multiple": true
+            }
+        ]
+    },
+    {
+        "type": "options",
+        "selectIds": [ "select_pab_jet_type" ],
+        "targetPassSelectId": "select_target_pass",
+        "speciesListSelectId": "select_species_list",
+        "help": "verification/verificateur.html"
+    }
+]
diff --git a/src/app/calculators/verificateur/en.json b/src/app/calculators/verificateur/en.json
new file mode 100644
index 000000000..eb48e9835
--- /dev/null
+++ b/src/app/calculators/verificateur/en.json
@@ -0,0 +1,13 @@
+{
+    "fs_pass": "Fish pass parameters",
+
+    "select_target_pass": "Fish pass to verify",
+
+    "select_pab_jet_type": "Jet type (PAB)",
+    "select_pab_jet_type_0": "Diving",
+    "select_pab_jet_type_1": "Surface",
+
+    "fs_species": "Species parameters",
+
+    "select_species_list": "Species groups"
+}
diff --git a/src/app/calculators/verificateur/fr.json b/src/app/calculators/verificateur/fr.json
new file mode 100644
index 000000000..13b6430de
--- /dev/null
+++ b/src/app/calculators/verificateur/fr.json
@@ -0,0 +1,13 @@
+{
+    "fs_pass": "Paramètres de la passe",
+
+    "select_target_pass": "Passe à vérifier",
+
+    "select_pab_jet_type": "Type de jet (PAB)",
+    "select_pab_jet_type_0": "Plongeant",
+    "select_pab_jet_type_1": "Surface",
+
+    "fs_species": "Paramètres des espèces",
+
+    "select_species_list": "Groupes d'espèces"
+}
diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index 4df1d3741..dd35d4673 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -1,5 +1,11 @@
 <mat-form-field>
-    <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue">
+    <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple">
+        <mat-select-trigger *ngIf="isMultiple">
+          {{ selectedValue && selectedValue[0] ? selectedValue[0].label : '' }}
+          <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
+            (+ {{selectedValue.length - 1}} {{selectedValue?.length === 2 ? 'other' : 'others'}})
+          </span>
+        </mat-select-trigger>
         <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
             {{ entryLabel(e) }}
         </mat-option>
diff --git a/src/app/components/results-chart/chart-type.component.ts b/src/app/components/results-chart/chart-type.component.ts
index f3ed66b5a..b136874f6 100644
--- a/src/app/components/results-chart/chart-type.component.ts
+++ b/src/app/components/results-chart/chart-type.component.ts
@@ -53,6 +53,10 @@ export class ChartTypeSelectComponent implements IObservable {
         }
     }
 
+    public get isMultiple(): boolean {
+        return false;
+    }
+
     public get label() {
         return this.intlService.localizeText("INFO_PARAMFIELD_CHART_TYPE");
     }
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index 97ba41d40..b660c875c 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -30,6 +30,10 @@ export class SelectFieldLineComponent implements OnInit {
         return this._select.id;
     }
 
+    public get isMultiple(): boolean {
+        return this._select.multiple;
+    }
+
     public get entries(): SelectEntry[] {
         if (! this._select) {
             return [];
@@ -41,7 +45,7 @@ export class SelectFieldLineComponent implements OnInit {
         return entry.label;
     }
 
-    public get selectedValue(): SelectEntry {
+    public get selectedValue(): SelectEntry | SelectEntry[] {
         return this._select.getValue();
     }
 
@@ -49,7 +53,7 @@ export class SelectFieldLineComponent implements OnInit {
         return (this._select.getValue() !== undefined);
     }
 
-    public set selectedValue(v: SelectEntry) {
+    public set selectedValue(v: SelectEntry | SelectEntry[]) {
         this._select.setValue(v);
     }
 
@@ -66,9 +70,11 @@ export class SelectFieldLineComponent implements OnInit {
         if (typeof this._select.helpLink === "string") {
             link = this._select.helpLink;
         } else { // object
-            const cv = this._select.getValue();
-            const entryId = cv.id.substring(this._select.entriesBaseId.length);
-            link = this._select.helpLink[entryId];
+            if (! this.isMultiple) { // @TODO manage multiple selections ?
+                const cv = this._select.getValue() as SelectEntry;
+                const entryId = cv.id.substring(this._select.entriesBaseId.length);
+                link = this._select.helpLink[entryId];
+            }
         }
         window.open("assets/docs/" + this.appSetupService.language + "/calculators/" + link, "_blank");
         $event.preventDefault();
@@ -81,9 +87,11 @@ export class SelectFieldLineComponent implements OnInit {
             if (typeof this._select.helpLink === "string") {
                 return true;
             } else { // object
-                const cv = this._select.getValue();
-                const entryId = cv.id.substring(this._select.entriesBaseId.length);
-                return Object.keys(this._select.helpLink).includes(entryId);
+                if (! this.isMultiple) { // @TODO manage multiple selections ?
+                    const cv = this._select.getValue() as SelectEntry;
+                    const entryId = cv.id.substring(this._select.entriesBaseId.length);
+                    return Object.keys(this._select.helpLink).includes(entryId);
+                }
             }
         }
         return false;
diff --git a/src/app/components/select-model-field-line/select-model-field-line.component.ts b/src/app/components/select-model-field-line/select-model-field-line.component.ts
index 592e3032e..31082006e 100644
--- a/src/app/components/select-model-field-line/select-model-field-line.component.ts
+++ b/src/app/components/select-model-field-line/select-model-field-line.component.ts
@@ -34,7 +34,7 @@ export class SelectModelFieldLineComponent implements OnInit {
     }
 
     public get modelUid() {
-        return this.selectedValue ? this.selectedValue.id : "";
+        return this.selectedValue && ! Array.isArray(this.selectedValue) ? this.selectedValue.id : "";
     }
 
     public get isValid(): boolean {
@@ -57,11 +57,11 @@ export class SelectModelFieldLineComponent implements OnInit {
         }
     }
 
-    public get selectedValue(): SelectEntry {
+    public get selectedValue(): SelectEntry | SelectEntry[] {
         return this._select.getValue();
     }
 
-    public set selectedValue(v: SelectEntry) {
+    public set selectedValue(v: SelectEntry | SelectEntry[]) {
         this._select.setValue(v);
     }
 
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 1512cf77e..d3333d8d6 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -24,6 +24,7 @@ import { TopFormulaireElementIterator } from "../form-iterator/top-element-itera
 import { CalculatorResults } from "../../results/calculator-results";
 import { ServiceFactory } from "../../services/service-factory";
 import { PabTable } from "../elements/pab-table";
+import { SelectEntry } from '../elements/select-entry';
 
 /**
  * classe de base pour tous les formulaires
@@ -400,7 +401,12 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
      */
     public getSelectedValue(selectFieldId: string): any {
         const select: SelectField = <SelectField>this.getFieldById(selectFieldId);
-        return select.getValue().value;
+        if (select.multiple) {
+            const values: string[] = (select.getValue() as SelectEntry[]).map((se) => se.value);
+            return values;
+        } else {
+            return (select.getValue() as SelectEntry).value;
+        }
     }
 
     /**
@@ -408,9 +414,14 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
      * @param selectFieldId id du SelectField
      * @returns label courant du select
      */
-    public getSelectedLabel(selectFieldId: string): string {
+    public getSelectedLabel(selectFieldId: string): any {
         const select: SelectField = <SelectField>this.getFieldById(selectFieldId);
-        return select.getValue().label;
+        if (select.multiple) {
+            const labels: string[] = (select.getValue() as SelectEntry[]).map((se) => se.label);
+            return labels;
+        } else {
+            return (select.getValue() as SelectEntry).label;
+        }
     }
 
     public updateLocalisation(localisation: StringMap, lang: string) {
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
new file mode 100644
index 000000000..50560319a
--- /dev/null
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -0,0 +1,91 @@
+import { IObservable, Nub } from "jalhyd";
+
+import { SelectFieldNub } from "../elements/select-field-nub";
+import { FormulaireFixedVar } from "./form-fixedvar";
+
+/**
+ * Formulaire pour les Vérificateurs
+ */
+export class FormulaireVerificateur extends FormulaireFixedVar {
+
+    /** id of select configuring target pass Nub */
+    private _targetPassSelectId: string;
+
+    /** id of select configuring list of species */
+    private _speciesListSelectId: string;
+
+    protected parseOptions(json: {}) {
+        super.parseOptions(json);
+        this._targetPassSelectId = this.getOption(json, "targetPassSelectI");
+        this._speciesListSelectId = this.getOption(json, "speciesListSelectId");
+    }
+
+    protected completeParse(json: {}, firstNotif: boolean = true) {
+        super.completeParse(json);
+        if (this._targetPassSelectId) {
+            const sel = this.getFormulaireNodeById(this._targetPassSelectId);
+            if (sel) {
+                sel.addObserver(this);
+                if (firstNotif) {
+                    // force 1st observation
+                    (sel as SelectFieldNub).notifySelectValueChanged();
+                }
+            }
+        }
+        if (this._speciesListSelectId) {
+            const sel = this.getFormulaireNodeById(this._speciesListSelectId);
+            /* if (sel) {
+                sel.addObserver(this);
+                if (firstNotif) {
+                    // force 1st observation
+                    (sel as SelectFieldNub).notifySelectValueChanged();
+                }
+            } */
+        }
+
+    }
+
+    // interface Observer
+
+    public update(sender: IObservable, data: any) {
+        // copied from FormDefinition, to avoid calling super.update()
+        if (sender instanceof Nub) {
+            switch (data.action) {
+                case "resultUpdated":
+                    // forward Nub results update notification to FormCompute objects
+                    this.reaffectResultComponents();
+                    break;
+            }
+        }
+        // copied from FormFixedVar, to avoid calling super.update()
+        if (data.action === "propertyChange") {
+            this.reset();
+        }
+
+        if (sender instanceof SelectFieldNub) {
+            if (data.action === "select") {
+                // update Verificateur property: Pass to check
+                this._currentNub.properties.setPropValue("nubToVerify", data.value.value);
+                // @TODO refresh jet type selector
+            }
+        }/*  else if (sender instanceof SelectField) {
+            if (sender.id === "select_target_result") {
+                // refresh parameters selector
+                this.refreshParameterEntries();
+            }
+        } */
+    }
+
+    /**
+     * Re-populate searched parameter selector with fresh entries
+     */
+    /* private refreshParameterEntries() {
+        const pSel = this.getFormulaireNodeById(this._speciesListSelectId) as SelectFieldParameter;
+        if (pSel) {
+            pSel.updateEntries();
+            // reflect changes in GUI
+            const inputYtarget = this.getFormulaireNodeById("Ytarget") as NgParameter;
+            inputYtarget.notifyValueModified(this);
+        }
+    } */
+}
diff --git a/src/app/formulaire/elements/fieldset.ts b/src/app/formulaire/elements/fieldset.ts
index 338328bed..3e3b2714d 100644
--- a/src/app/formulaire/elements/fieldset.ts
+++ b/src/app/formulaire/elements/fieldset.ts
@@ -16,6 +16,7 @@ import { FieldsetContainer } from "./fieldset-container";
 import { SelectFieldNub } from "./select-field-nub";
 import { SelectFieldParameter } from "./select-field-parameter";
 import { FormulaireFixedVar } from "../definition/form-fixedvar";
+import { SelectEntry } from './select-entry';
 
 export class FieldSet extends FormulaireElement implements Observer {
 
@@ -344,11 +345,18 @@ export class FieldSet extends FormulaireElement implements Observer {
      * @param selectFieldId id du SelectField
      * @returns valeur courante du select sans le préfixe
      */
-    public getSelectedValue(selectFieldId: string): string {
+    public getSelectedValue(selectFieldId: string): string | string[] {
         for (const p of this.kids) {
             if (p instanceof SelectField && p.isDisplayed && p.id === selectFieldId) {
-                const value: string = p.getValue().value;
-                return FormulaireElement.removePrefix(value, selectFieldId + "_");
+                if (! p.multiple) {
+                    const value: string = (p.getValue() as SelectEntry).value;
+                    return FormulaireElement.removePrefix(value, selectFieldId + "_");
+                } else {
+                    const values: string[] = (p.getValue() as SelectEntry[]).map((se) => {
+                        return FormulaireElement.removePrefix(se.value, selectFieldId + "_");
+                    });
+                    return values;
+                }
             }
         }
     }
diff --git a/src/app/formulaire/elements/select-field-model.ts b/src/app/formulaire/elements/select-field-model.ts
index aa4147022..322ae965d 100644
--- a/src/app/formulaire/elements/select-field-model.ts
+++ b/src/app/formulaire/elements/select-field-model.ts
@@ -37,7 +37,7 @@ export abstract class SelectFieldModel extends SelectField {
         // populate
         this.populate();
         // keep previously selected entry if possible
-        if (pse && pse.id) {
+        if (pse && ! Array.isArray(pse) && pse.id) { // @TODO manage multiple values
             this.setValueFromId(pse.id);
         }
         // if no entry is available anymore, unset value
@@ -50,12 +50,15 @@ export abstract class SelectFieldModel extends SelectField {
      * Updates selectedValue; notifies observers only if
      * value.id has changed
      */
-    public setValue(v: SelectEntry) {
+    public setValue(v: SelectEntry | SelectEntry[]) {
         const previousSelectedEntry = this._selectedEntry;
         this._selectedEntry = v;
         if (
             ! previousSelectedEntry
-            || (previousSelectedEntry.id !== v.id)
+            || ( // @TODO manage multiple values
+                ! Array.isArray(previousSelectedEntry)
+                && previousSelectedEntry.id !== (v as SelectEntry).id
+            )
         ) {
             this.notifyObservers({
                 "action": "select",
diff --git a/src/app/formulaire/elements/select-field-nub.ts b/src/app/formulaire/elements/select-field-nub.ts
index 3cbcf0720..9942f160f 100644
--- a/src/app/formulaire/elements/select-field-nub.ts
+++ b/src/app/formulaire/elements/select-field-nub.ts
@@ -3,7 +3,7 @@ import { SelectEntry } from "./select-entry";
 import { ServiceFactory } from "../../services/service-factory";
 import { decodeHtml } from "../../util";
 
-import { Session, Solveur } from "jalhyd";
+import { Session, Solveur, FishPass, CalculatorType } from "jalhyd";
 
 /**
  * A select field that populates itself with references to Nubs
@@ -24,11 +24,12 @@ export class SelectFieldNub extends SelectFieldReference {
      * Populates entries with available references
      */
     protected populate() {
+        const fs = ServiceFactory.instance.formulaireService;
+        let candidateNubs: any[];
         switch (this._source) {
             case "solveur_target": // Solveur, module cible (à calculer)
                 // find all Nubs having at least one link to another Nub's result
-                const fs = ServiceFactory.instance.formulaireService;
-                const candidateNubs =
+                candidateNubs =
                     Session.getInstance().getDownstreamNubs().concat(
                         Session.getInstance().getUpstreamNubsHavingExtraResults()
                     ).filter(
@@ -50,6 +51,25 @@ export class SelectFieldNub extends SelectFieldReference {
                     }
                 }
                 break;
+
+            case "verificateur_target": // Vérificateur, passe cible (à vérifier)
+                // find all Nubs of type FishPass
+                candidateNubs = Session.getInstance().getAllNubs().filter((element) => {
+                    return (
+                        (element instanceof FishPass)
+                        && element.calcType !== CalculatorType.Par // ParSimulation extends Par @TODO find something better
+                    );
+                });
+                for (const cn of candidateNubs) {
+                    const nub = fs.getFormulaireFromId(cn.uid);
+                    if (nub) {
+                        const label = nub.calculatorName + " (" + fs.getLocalisedTitleFromCalculatorType(nub.calculatorType) + ")";
+                        this.addEntry(new SelectEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(label)));
+                    } else {
+                        // silent fail, this Verificateur nub was probably loaded before all the candidate nubs are done loading
+                    }
+                }
+                break;
         }
     }
 
diff --git a/src/app/formulaire/elements/select-field-reference.ts b/src/app/formulaire/elements/select-field-reference.ts
index 4cbe101ed..924d1a869 100644
--- a/src/app/formulaire/elements/select-field-reference.ts
+++ b/src/app/formulaire/elements/select-field-reference.ts
@@ -45,10 +45,14 @@ export abstract class SelectFieldReference extends SelectField {
         this.populate();
         // if no entry is available anymore, unset value
         if (this.entries.length === 0) {
-            super.setValue(undefined);
+            if (this.multiple) {
+                super.setValue([ undefined ]);
+            } else {
+                super.setValue(undefined);
+            }
         } else {
-            // keep previously selected entry if possible
-            if (pse && pse.id) {
+            // keep previously selected entry if possible @TODO manage multiple values
+            if (pse && ! Array.isArray(pse) && pse.id) {
                 this.setValueFromId(pse.id);
             } else {
                 this.setDefaultValue();
@@ -65,7 +69,10 @@ export abstract class SelectFieldReference extends SelectField {
         this._selectedEntry = v;
         if (
             ! previousSelectedEntry
-            || (previousSelectedEntry.id !== v.id)
+            || ( // @TODO manage multiple values
+                ! Array.isArray(previousSelectedEntry)
+                && previousSelectedEntry.id !== v.id
+            )
         ) {
             this.notifySelectValueChanged();
         }
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 220fc7e2d..5fdf96889 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -5,7 +5,8 @@ import {
     StructureType,
     LoiDebit,
     Session,
-    Solveur
+    Solveur,
+    CalculatorType
  } from "jalhyd";
 
 import { Field } from "./field";
@@ -14,6 +15,7 @@ import { StringMap } from "../../stringmap";
 import { FormulaireNode } from "./formulaire-node";
 import { FormulaireDefinition } from "../definition/form-definition";
 import { ServiceFactory } from "../../services/service-factory";
+import { FishSpecies } from 'jalhyd/build/verification/fish_species';
 
 export class SelectField extends Field {
 
@@ -22,7 +24,7 @@ export class SelectField extends Field {
 
     protected _entries: SelectEntry[];
 
-    protected _selectedEntry: SelectEntry;
+    protected _selectedEntry: SelectEntry | SelectEntry[];
 
     /** name of the Nub property associated to this field, if any */
     protected _associatedProperty: string;
@@ -30,6 +32,9 @@ export class SelectField extends Field {
     /** default value for this field */
     protected _defaultValue: string;
 
+    /** if true, user can select multiple values */
+    protected _multiple = false;
+
     constructor(parent: FormulaireNode) {
         super(parent);
         this.clearEntries();
@@ -51,6 +56,10 @@ export class SelectField extends Field {
         return this._defaultValue;
     }
 
+    public get multiple(): boolean {
+        return this._multiple;
+    }
+
     public clearEntries() {
         this._entries = [];
     }
@@ -99,11 +108,11 @@ export class SelectField extends Field {
         }
     }
 
-    public getValue() {
+    public getValue(): SelectEntry | SelectEntry[] {
         return this._selectedEntry;
     }
 
-    public setValue(v: SelectEntry) {
+    public setValue(v: SelectEntry | SelectEntry[]) {
         if (this._selectedEntry !== v) {
             this._selectedEntry = v;
             this.notifyValueChanged();
@@ -117,12 +126,6 @@ export class SelectField extends Field {
         }, this);
     }
 
-    public getLabel() {
-        if (this._selectedEntry) {
-            return this._selectedEntry.label;
-        }
-    }
-
     public updateLocalisation(loc: StringMap) {
         super.updateLocalisation(loc);
         for (const e of this._entries) {
@@ -140,6 +143,9 @@ export class SelectField extends Field {
         this._helpLink = field["help"];
         this._associatedProperty = field["property"];
         this._defaultValue = field["default"];
+        if (field["multiple"] !== undefined) {
+            this._multiple = field["multiple"];
+        }
         const source = field["source"];
 
         const nub: Nub = (this.parentForm as FormulaireDefinition).currentNub;
@@ -201,6 +207,18 @@ export class SelectField extends Field {
                 }
                 break;
 
+            case "verificateur_species":
+                // add UIDs of all Espece type Nubs in the session
+                const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
+                for (const en of especeNubs) {
+                    this.addEntry(new SelectEntry(en.uid, en.uid, "Espèce personnalisée : " + en.uid));
+                }
+                // add all FishSpecies
+                for (let j = 0; j < Object.keys(FishSpecies).length / 2; j++) {
+                    this.addEntry(new SelectEntry(this._entriesBaseId + j, j, "Groupe d'espèces " + j));
+                }
+                break;
+
             // general case : property values taken from an enum
             default:
                 // find enum associated to property
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index cd8b20b3f..dac713d05 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -41,6 +41,7 @@ import { FormulaireSPP } from "../formulaire/definition/form-spp";
 import { FormulaireFixedVar } from "../formulaire/definition/form-fixedvar";
 import { FormulaireSection } from "../formulaire/definition/form-section";
 import { FormulairePAR } from "../formulaire/definition/form-par";
+import { FormulaireVerificateur } from "../formulaire/definition/form-verificateur";
 
 @Injectable()
 export class FormulaireService extends Observable {
@@ -313,6 +314,10 @@ export class FormulaireService extends Observable {
                 f = new FormulaireSPP();
                 break;
 
+            case CalculatorType.Verificateur:
+                f = new FormulaireVerificateur();
+                break;
+
             default:
                 f = new FormulaireFixedVar();
         }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 88a4f2bc9..ade6d6943 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -146,9 +146,9 @@
     "INFO_ENUM_STRUCTUREFLOWREGIME_1": "Partially submerged",
     "INFO_ENUM_STRUCTUREFLOWREGIME_2": "Submerged",
     "INFO_ENUM_STRUCTUREFLOWREGIME_3": "Zero flow",
-    "INFO_ENUM_STRUCTUREJETTYPE_0": "Not applicable",
-    "INFO_ENUM_STRUCTUREJETTYPE_1": "Diving",
-    "INFO_ENUM_STRUCTUREJETTYPE_2": "Surface",
+    "INFO_ENUM_STRUCTUREJETTYPE_0": "Diving",
+    "INFO_ENUM_STRUCTUREJETTYPE_1": "Surface",
+    "INFO_ENUM_STRUCTUREJETTYPE_2": "Not applicable",
     "INFO_CHART_BUTTON_TITLE_RESET_ZOOM": "Restore default zoom",
     "INFO_CHART_BUTTON_TITLE_EXPORT_IMAGE": "Save picture",
     "INFO_CHART_BUTTON_TITLE_ENTER_FS": "Display fullscreen",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 16b96dce0..021a098f1 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -146,9 +146,9 @@
     "INFO_ENUM_STRUCTUREFLOWREGIME_1": "Partiellement noyé",
     "INFO_ENUM_STRUCTUREFLOWREGIME_2": "Noyé",
     "INFO_ENUM_STRUCTUREFLOWREGIME_3": "Débit nul",
-    "INFO_ENUM_STRUCTUREJETTYPE_0": "Sans objet",
-    "INFO_ENUM_STRUCTUREJETTYPE_1": "Plongeant",
-    "INFO_ENUM_STRUCTUREJETTYPE_2": "De surface",
+    "INFO_ENUM_STRUCTUREJETTYPE_0": "Plongeant",
+    "INFO_ENUM_STRUCTUREJETTYPE_1": "De surface",
+    "INFO_ENUM_STRUCTUREJETTYPE_2": "Sans objet",
     "INFO_CHART_BUTTON_TITLE_RESET_ZOOM": "Réinitialiser le zoom",
     "INFO_CHART_BUTTON_TITLE_EXPORT_IMAGE": "Enregistrer l'image",
     "INFO_CHART_BUTTON_TITLE_ENTER_FS": "Afficher en plein écran",
-- 
GitLab


From 5d855bdb1a2f61e8f1260efcceec44b8aaff849c Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 16 Apr 2020 09:49:31 +0200
Subject: [PATCH 010/101] Removed unused component

---
 src/app/app.module.ts                         |  2 -
 .../select-model-field-line.component.html    | 24 -----
 .../select-model-field-line.component.scss    | 12 ---
 .../select-model-field-line.component.ts      | 94 ------------------
 .../formulaire/elements/select-field-model.ts | 95 -------------------
 5 files changed, 227 deletions(-)
 delete mode 100644 src/app/components/select-model-field-line/select-model-field-line.component.html
 delete mode 100644 src/app/components/select-model-field-line/select-model-field-line.component.scss
 delete mode 100644 src/app/components/select-model-field-line/select-model-field-line.component.ts
 delete mode 100644 src/app/formulaire/elements/select-field-model.ts

diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 15ede0e09..6e9d00408 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -82,7 +82,6 @@ import { FixedResultsComponent } from "./components/fixedvar-results/fixed-resul
 import { VarResultsComponent } from "./components/fixedvar-results/var-results.component";
 import { LogEntryComponent } from "./components/log-entry/log-entry.component";
 import { ParamLinkComponent } from "./components/param-link/param-link.component";
-import { SelectModelFieldLineComponent } from "./components/select-model-field-line/select-model-field-line.component";
 import { PabProfileChartComponent } from "./components/pab-profile-chart/pab-profile-chart.component";
 import { PabTableComponent } from "./components/pab-table/pab-table.component";
 import { VariableResultsSelectorComponent } from "./components/variable-results-selector/variable-results-selector.component";
@@ -231,7 +230,6 @@ const appRoutes: Routes = [
     SectionCanvasComponent,
     SectionResultsComponent,
     SelectFieldLineComponent,
-    SelectModelFieldLineComponent,
     SessionPropertiesComponent,
     VarResultsComponent
   ],
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
deleted file mode 100644
index e85ced8af..000000000
--- a/src/app/components/select-model-field-line/select-model-field-line.component.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<div class="container" fxLayout="row wrap" fxLayoutAlign="space-between start">
-
-    <!-- input de saisie de la valeur -->
-    <div fxFlex="1 0 120px">
-        
-        <mat-form-field>
-            <mat-select [id]="selectId" [name]="selectId" [placeholder]="label" [(value)]="selectedValue" required>
-                <mat-option *ngFor="let e of entries" [value]="e" [title]="selectItemLabel(e)">
-                    {{ selectItemLabel(e) }}
-                </mat-option>
-            </mat-select>
-        </mat-form-field>
-    </div>
-
-    <div class="button-container" fxFlex="0 0 auto">
-        <button type="button" mat-icon-button *ngIf="selectedValue" [routerLink]="['/calculator/', modelUid]">
-            <mat-icon>edit</mat-icon>
-        </button>
-        <button type="button" mat-icon-button *ngIf="entries.length === 0" (click)="createModel()" id="create-model">
-            <mat-icon>add</mat-icon>
-        </button>
-    </div>
-
-</div>
\ No newline at end of file
diff --git a/src/app/components/select-model-field-line/select-model-field-line.component.scss b/src/app/components/select-model-field-line/select-model-field-line.component.scss
deleted file mode 100644
index a7a72dfa5..000000000
--- a/src/app/components/select-model-field-line/select-model-field-line.component.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-mat-form-field {
-    width: calc(100% - 8px);
-    margin-right: 8px;
-}
-
-.button-container {
-    text-align: right;
-
-    button {
-        margin-top: 4px;
-    }
-}
diff --git a/src/app/components/select-model-field-line/select-model-field-line.component.ts b/src/app/components/select-model-field-line/select-model-field-line.component.ts
deleted file mode 100644
index 31082006e..000000000
--- a/src/app/components/select-model-field-line/select-model-field-line.component.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import { Component, Input, OnInit } from "@angular/core";
-import { Router } from "@angular/router";
-
-import { SelectEntry } from "../../formulaire/elements/select-entry";
-import { FormulaireService } from "../../services/formulaire.service";
-import { FieldsetContainer } from "../../formulaire/elements/fieldset-container";
-import { SelectFieldModel } from "../../formulaire/elements/select-field-model";
-
-@Component({
-    selector: "select-model-field-line",
-    templateUrl: "./select-model-field-line.component.html",
-    styleUrls: [
-        "./select-model-field-line.component.scss"
-    ]
-})
-export class SelectModelFieldLineComponent implements OnInit {
-    @Input()
-    private _select: SelectFieldModel;
-
-    public constructor(
-        private _formService: FormulaireService,
-        private router: Router
-    ) {}
-
-    public get selectId() {
-        return this._select.id;
-    }
-
-    public get entries(): SelectEntry[] {
-        if (! this._select) {
-            return [];
-        }
-        return this._select.entries;
-    }
-
-    public get modelUid() {
-        return this.selectedValue && ! Array.isArray(this.selectedValue) ? this.selectedValue.id : "";
-    }
-
-    public get isValid(): boolean {
-        return (this._select.getValue() !== undefined);
-    }
-
-    // called every time we navigate to the module
-    ngOnInit(): void {
-        this._select.updateEntries();
-    }
-
-    /**
-     * Label d'une entrée du select des modèles de cloisons
-     */
-    public selectItemLabel(entry: SelectEntry): string {
-        if (entry && entry.id) {
-            const cloisonsForm = this._formService.getFormulaireFromNubId(entry.id);
-            const name = cloisonsForm.calculatorName;
-            return name;
-        }
-    }
-
-    public get selectedValue(): SelectEntry | SelectEntry[] {
-        return this._select.getValue();
-    }
-
-    public set selectedValue(v: SelectEntry | SelectEntry[]) {
-        this._select.setValue(v);
-    }
-
-    public get label() {
-        if (this._select) {
-            return this._select.label;
-        } else {
-            return "";
-        }
-    }
-
-    /**
-     * Creates a new Nub of type _select.calcType, to be used as a model
-     * when no other is available
-     */
-    public createModel() {
-        this._formService.createFormulaire(this._select.calcType).then(f => {
-            this.router.navigate(["/calculator", f.uid]);
-            return f;
-        }).then(f => {
-            // on ajoute un ouvrage aux modulex de type "parallèle"
-            for (const e of f.allFormElements) {
-                if (e instanceof FieldsetContainer) {
-                    e.addFromTemplate(0);
-                    break;
-                }
-            }
-        });
-    }
-}
diff --git a/src/app/formulaire/elements/select-field-model.ts b/src/app/formulaire/elements/select-field-model.ts
deleted file mode 100644
index 322ae965d..000000000
--- a/src/app/formulaire/elements/select-field-model.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import { SelectField } from "./select-field";
-import { SelectEntry } from "./select-entry";
-import { FormulaireNode } from "./formulaire-node";
-import { CalculatorType } from "jalhyd";
-
-/**
- * A select field that populates itself with references to
- * available modules
- */
-export abstract class SelectFieldModel extends SelectField {
-
-    /** type of the targetted models; used by enclosing component to create new model */
-    public calcType: CalculatorType;
-
-    constructor(parent: FormulaireNode, calcType: CalculatorType) {
-        super(parent);
-        this.calcType = calcType;
-        this.initSelectedValue();
-    }
-
-    protected abstract initSelectedValue();
-
-    /**
-     * Populates entries with available models
-     */
-    protected abstract populate();
-
-    /**
-     * Reloads available entries, trying to keep the current selected
-     * value; does not notify observers if value did not change
-     */
-    public updateEntries() {
-        // store previous selected entry
-        const pse = this._selectedEntry;
-        // empty
-        this.clearEntries();
-        // populate
-        this.populate();
-        // keep previously selected entry if possible
-        if (pse && ! Array.isArray(pse) && pse.id) { // @TODO manage multiple values
-            this.setValueFromId(pse.id);
-        }
-        // if no entry is available anymore, unset value
-        if (this.entries.length === 0) {
-            super.setValue(undefined);
-        }
-    }
-
-    /**
-     * Updates selectedValue; notifies observers only if
-     * value.id has changed
-     */
-    public setValue(v: SelectEntry | SelectEntry[]) {
-        const previousSelectedEntry = this._selectedEntry;
-        this._selectedEntry = v;
-        if (
-            ! previousSelectedEntry
-            || ( // @TODO manage multiple values
-                ! Array.isArray(previousSelectedEntry)
-                && previousSelectedEntry.id !== (v as SelectEntry).id
-            )
-        ) {
-            this.notifyObservers({
-                "action": "select",
-                "value": v
-            }, this);
-        }
-    }
-
-    /**
-     * Sets value from given ID; if it was not found, sets the
-     * first available entry as selectedValue
-     */
-    public setValueFromId(id: string) {
-        let found = false;
-        for (const e of this._entries) {
-            if (e.id === id) {
-                found = true;
-                this.setValue(e);
-            }
-        }
-        if (! found) {
-            // default to first available entry if any
-            if (this._entries.length > 0) {
-                this.setValue(this._entries[0]);
-            } else {
-                // notify observers that no value is selected anymore
-                this.notifyObservers({
-                    "action": "select",
-                    "value": undefined
-                }, this);
-            }
-        }
-    }
-}
-- 
GitLab


From ae13ededfda26d80c2a8bb61468e9e0d31928ae9 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 16 Apr 2020 13:22:16 +0200
Subject: [PATCH 011/101] Work on GUI for Verificateur

---
 src/app/calculators/verificateur/config.json  |  1 -
 .../generic-select.component.html             |  6 +++-
 .../results-chart/chart-type.component.ts     |  4 +++
 .../select-field-line.component.ts            | 14 ++++++++
 .../elements/select-field-reference.ts        | 32 +++++++++++++++----
 src/app/formulaire/elements/select-field.ts   |  8 ++++-
 src/app/util.ts                               | 22 +++++++++++++
 src/locale/messages.en.json                   |  2 ++
 src/locale/messages.fr.json                   |  2 ++
 9 files changed, 81 insertions(+), 10 deletions(-)

diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
index 204203e1f..5b03751ed 100644
--- a/src/app/calculators/verificateur/config.json
+++ b/src/app/calculators/verificateur/config.json
@@ -24,7 +24,6 @@
             {
                 "type": "select",
                 "id": "select_species_list",
-                "default": "SPECIES_1",
                 "source": "verificateur_species",
                 "multiple": true
             }
diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index dd35d4673..4d420c820 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -3,13 +3,17 @@
         <mat-select-trigger *ngIf="isMultiple">
           {{ selectedValue && selectedValue[0] ? selectedValue[0].label : '' }}
           <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
-            (+ {{selectedValue.length - 1}} {{selectedValue?.length === 2 ? 'other' : 'others'}})
+            (+ {{ selectedValue.length - 1 }} {{ selectedValue?.length === 2 ? uitextAndOther : uitextAndOthers }})
           </span>
         </mat-select-trigger>
         <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
             {{ entryLabel(e) }}
         </mat-option>
     </mat-select>
+    <button mat-button *ngIf="showClearButton" matSuffix mat-icon-button 
+        aria-label="Clear" (click)="selectedValue=[]; $event.stopPropagation()">
+        <mat-icon>close</mat-icon>
+    </button>
     <div *ngIf="enableHelpButton" class="overlap-select">
         <mat-icon id="help-select" (click)="openHelp($event)" [title]="uitextOpenHelp" color="accent">
             help
diff --git a/src/app/components/results-chart/chart-type.component.ts b/src/app/components/results-chart/chart-type.component.ts
index b136874f6..7b24c7098 100644
--- a/src/app/components/results-chart/chart-type.component.ts
+++ b/src/app/components/results-chart/chart-type.component.ts
@@ -57,6 +57,10 @@ export class ChartTypeSelectComponent implements IObservable {
         return false;
     }
 
+    public get showClearButton(): boolean {
+        return false;
+    }
+
     public get label() {
         return this.intlService.localizeText("INFO_PARAMFIELD_CHART_TYPE");
     }
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index b660c875c..f2c43341d 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -97,13 +97,27 @@ export class SelectFieldLineComponent implements OnInit {
         return false;
     }
 
+    public get showClearButton(): boolean {
+        return this.isMultiple && this.selectedValue && ! (Array.isArray(this.selectedValue) && this.selectedValue.length === 0);
+    }
+
     public get uitextOpenHelp() {
         return this.i18nService.localizeText("INFO_CALCULATOR_OPEN_HELP");
     }
 
+    public get uitextAndOther() {
+        return this.i18nService.localizeText("INFO_SELECT_MULTIPLE_AND_OTHER");
+    }
+
+    public get uitextAndOthers() {
+        return this.i18nService.localizeText("INFO_SELECT_MULTIPLE_AND_OTHERS");
+    }
+
     // called every time we navigate to the module
     ngOnInit(): void {
+        console.log("> ngOnInit()", this.selectId);
         if (this._select instanceof SelectFieldReference) {
+            console.log(">> updateEntries() !", this.selectId);
             this._select.updateEntries();
         }
     }
diff --git a/src/app/formulaire/elements/select-field-reference.ts b/src/app/formulaire/elements/select-field-reference.ts
index 924d1a869..c4024feea 100644
--- a/src/app/formulaire/elements/select-field-reference.ts
+++ b/src/app/formulaire/elements/select-field-reference.ts
@@ -2,6 +2,8 @@ import { SelectField } from "./select-field";
 import { SelectEntry } from "./select-entry";
 import { FormulaireNode } from "./formulaire-node";
 
+import { arraysAreEqual } from "../../util";
+
 /**
  * A select field that populates itself with references to
  * available objects (for ex. Nub or ParamDefinition)
@@ -46,7 +48,7 @@ export abstract class SelectFieldReference extends SelectField {
         // if no entry is available anymore, unset value
         if (this.entries.length === 0) {
             if (this.multiple) {
-                super.setValue([ undefined ]);
+                super.setValue([]);
             } else {
                 super.setValue(undefined);
             }
@@ -64,16 +66,24 @@ export abstract class SelectFieldReference extends SelectField {
      * Updates selectedValue; notifies observers only if
      * value.id has changed
      */
-    public setValue(v: SelectEntry) {
+    public setValue(v: SelectEntry | SelectEntry[]) {
         const previousSelectedEntry = this._selectedEntry;
         this._selectedEntry = v;
-        if (
+        // if value changed
+        let valueChanged = (
             ! previousSelectedEntry
-            || ( // @TODO manage multiple values
+            || (
                 ! Array.isArray(previousSelectedEntry)
+                && ! Array.isArray(v)
                 && previousSelectedEntry.id !== v.id
             )
-        ) {
+            || (
+                Array.isArray(previousSelectedEntry)
+                && Array.isArray(v)
+                && arraysAreEqual(previousSelectedEntry, v, "id", true)
+            )
+        );
+        if (valueChanged) {
             this.notifySelectValueChanged();
         }
     }
@@ -94,7 +104,11 @@ export abstract class SelectFieldReference extends SelectField {
         for (const e of this._entries) {
             if (e.id === id) {
                 found = true;
-                this.setValue(e);
+                if (this._multiple) {
+                    this.setValue([ e ]);
+                } else {
+                    this.setValue(e);
+                }
             }
         }
         if (! found) {
@@ -105,7 +119,11 @@ export abstract class SelectFieldReference extends SelectField {
     protected setDefaultValue() {
         // default to first available entry if any
         if (this._entries.length > 0) {
-            this.setValue(this._entries[0]);
+            if (this._multiple) {
+                this.setValue([ this._entries[0] ]);
+            } else {
+                this.setValue(this._entries[0]);
+            }
         } else {
             // notify observers that no value is selected anymore
             this.notifySelectValueChanged();
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 5fdf96889..4818e5709 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -67,7 +67,11 @@ export class SelectField extends Field {
     public addEntry(e: SelectEntry) {
         this._entries.push(e);
         if (! this._selectedEntry) {
-            this.setValue(e);
+            if (this._multiple) {
+                this.setValue([ e ]);
+            } else {
+                this.setValue(e);
+            }
         }
     }
 
@@ -207,9 +211,11 @@ export class SelectField extends Field {
                 }
                 break;
 
+            // possible values depend on Session
             case "verificateur_species":
                 // add UIDs of all Espece type Nubs in the session
                 const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
+                console.log("especeNubs", especeNubs);
                 for (const en of especeNubs) {
                     this.addEntry(new SelectEntry(en.uid, en.uid, "Espèce personnalisée : " + en.uid));
                 }
diff --git a/src/app/util.ts b/src/app/util.ts
index 6f5719bc5..cfc9ca3af 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -161,3 +161,25 @@ export function generateValuesCombination(
         return formula(nub, vals);
     }
 }
+
+export function arraysAreEqual(arrayA: any[], arrayB: any[], property?: string, sort = false): boolean {
+    if (sort) {
+        arrayA.sort((a, b) => a-b);
+        arrayB.sort((a, b) => a-b);
+    }
+    let equal = true;
+    if (arrayA.length === arrayB.length) {
+        for (let i=0; i < arrayA.length; i++) {
+            const eA = arrayA[i];
+            const eB = arrayB[i];
+            if (property === undefined) {
+                equal = equal && (eA === eB);
+            } else {
+                equal = equal && (eA[property] === eB[property]);
+            }
+        }
+    } else {
+        equal = false;
+    }
+    return equal;
+}
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index ade6d6943..fb4e4605e 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -472,6 +472,8 @@
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Export as XLSX",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Param. section",
     "INFO_SECTIONPARAMETREE_TITRE": "Parametric section",
+    "INFO_SELECT_MULTIPLE_AND_OTHER": "other",
+    "INFO_SELECT_MULTIPLE_AND_OTHERS": "others",
     "INFO_SETUP_ENABLE_HOTKEYS": "Enable keyboard shortcuts",
     "INFO_SETUP_ENABLE_EMPTY_FIELDS": "Create new calculators with empty fields (no default values)",
     "INFO_SETUP_ENABLE_NOTIFICATIONS": "Enable on-screen notifications",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 021a098f1..da9489786 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -473,6 +473,8 @@
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Exporter en XLSX",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Sec. param.",
     "INFO_SECTIONPARAMETREE_TITRE": "Section paramétrée",
+    "INFO_SELECT_MULTIPLE_AND_OTHER": "autre",
+    "INFO_SELECT_MULTIPLE_AND_OTHERS": "autres",
     "INFO_SETUP_ENABLE_HOTKEYS": "Activer les raccourcis clavier",
     "INFO_SETUP_ENABLE_EMPTY_FIELDS": "Créer les nouveaux modules avec des champs vides (aucune valeur par défaut)",
     "INFO_SETUP_ENABLE_NOTIFICATIONS": "Activer les notifications à l'écran",
-- 
GitLab


From 5e2bd1c00f97e9747b22f4179820f4814cd6a715 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 20 Apr 2020 15:20:07 +0200
Subject: [PATCH 012/101] Reorganize Select classes, update Verificateur GUI

---
 DEVELOPERS.md                                 |   4 +-
 e2e/check-translations.e2e-spec.ts            |   6 +-
 src/app/calculators/solveur/config.json       |   6 +-
 src/app/calculators/verificateur/config.json  |   6 +-
 .../select-field-line.component.ts            |   6 +-
 src/app/formulaire/definition/form-solveur.ts |  17 +-
 .../definition/form-verificateur.ts           |  56 ++---
 src/app/formulaire/elements/fieldset.ts       |  31 +--
 .../elements/select-field-custom.ts           | 216 ++++++++++++++++++
 .../formulaire/elements/select-field-nub.ts   |  76 ------
 .../elements/select-field-parameter.ts        |  50 ----
 .../elements/select-field-reference.ts        | 132 -----------
 src/app/formulaire/elements/select-field.ts   |  60 +++--
 src/locale/messages.en.json                   |   1 +
 src/locale/messages.fr.json                   |   1 +
 15 files changed, 299 insertions(+), 369 deletions(-)
 create mode 100644 src/app/formulaire/elements/select-field-custom.ts
 delete mode 100644 src/app/formulaire/elements/select-field-nub.ts
 delete mode 100644 src/app/formulaire/elements/select-field-parameter.ts
 delete mode 100644 src/app/formulaire/elements/select-field-reference.ts

diff --git a/DEVELOPERS.md b/DEVELOPERS.md
index d5d7cb3a7..207e7687e 100644
--- a/DEVELOPERS.md
+++ b/DEVELOPERS.md
@@ -270,7 +270,7 @@ case CalculatorType.MacroRugoCompound:
 
 Les listes déroulantes sont toujours associées à des **propriétés** du Nub.
 
-En général les valeurs autorisées sont tirées de l'**enum** correspondant, d'après le tableau `Session.enumFromProperty` de JaLHyd. Pour les autres cas, voir "si la liste n'est pas associée à un enum" ci-dessous.
+En général les valeurs autorisées sont tirées de l'**enum** correspondant, d'après le tableau `Session.enumFromProperty` de JaLHyd. Pour les autres cas, voir les paragraphes "si la liste est associée à…" ci-dessous.
 
 #### configuration
 
@@ -309,7 +309,7 @@ Dans le fichier de configuration du module, ajouter la définition des listes d
  
 Une liste déroulante peut être associée à une **source**, qui détermine quels sont les choix possibles.
 
-Pour ajouter une source, modifier la méthode `parseConfig()` de la classe `SelectField`, dans le fichier `src/app/formulaire/elements/select-field.ts`.
+Pour ajouter une source, modifier la méthode `loadEntriesFromSource()` de la classe `SelectField`, dans le fichier `src/app/formulaire/elements/select-field.ts`.
 
 Exemple pour la source "remous_target" associée à la propriété "varCalc", dans le module CourbeRemous :
 
diff --git a/e2e/check-translations.e2e-spec.ts b/e2e/check-translations.e2e-spec.ts
index ddcd763d3..e74d7f210 100644
--- a/e2e/check-translations.e2e-spec.ts
+++ b/e2e/check-translations.e2e-spec.ts
@@ -77,11 +77,7 @@ describe("ngHyd − check translation of all calculators", () => {
           }
 
           // check absence of "*** message not found" in whole DOM
-          const ps = await browser.getPageSource();
-          expect(ps).not.toContain("*** message not found");
-          /* const pos = ps.indexOf("*** message not found");
-          const bout = ps.substring(pos - 50, pos + 50);
-          console.log("------------ BOUT ---------------", bout); */
+          expect(await browser.getPageSource()).not.toContain("*** message not found", "missing translations found");
 
           // empty session
           await navBar.clickMenuButton();
diff --git a/src/app/calculators/solveur/config.json b/src/app/calculators/solveur/config.json
index fa1da444f..03262ac7d 100644
--- a/src/app/calculators/solveur/config.json
+++ b/src/app/calculators/solveur/config.json
@@ -5,8 +5,7 @@
         "fields": [
             {
                 "id": "select_target_nub",
-                "type": "select_reference",
-                "reference": "nub",
+                "type": "select_custom",
                 "source": "solveur_target"
             },
             {
@@ -25,8 +24,7 @@
         "fields": [
             {
                 "id": "select_searched_param",
-                "type": "select_reference",
-                "reference": "parameter",
+                "type": "select_custom",
                 "source": "solveur_searched"
             },
             "Xinit"
diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
index 5b03751ed..8ec8d41ca 100644
--- a/src/app/calculators/verificateur/config.json
+++ b/src/app/calculators/verificateur/config.json
@@ -5,8 +5,7 @@
         "fields": [
             {
                 "id": "select_target_pass",
-                "type": "select_reference",
-                "reference": "nub",
+                "type": "select_custom",
                 "source": "verificateur_target"
             },
             {
@@ -24,6 +23,7 @@
             {
                 "type": "select",
                 "id": "select_species_list",
+                "property": "speciesList",
                 "source": "verificateur_species",
                 "multiple": true
             }
@@ -31,7 +31,7 @@
     },
     {
         "type": "options",
-        "selectIds": [ "select_pab_jet_type" ],
+        "selectIds": [ "select_pab_jet_type", "select_species_list" ],
         "targetPassSelectId": "select_target_pass",
         "speciesListSelectId": "select_species_list",
         "help": "verification/verificateur.html"
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index f2c43341d..c432c19e7 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -3,8 +3,8 @@ import { Component, Input, OnInit } from "@angular/core";
 import { SelectField } from "../../formulaire/elements/select-field";
 import { SelectEntry } from "../../formulaire/elements/select-entry";
 import { I18nService } from "../../services/internationalisation.service";
-import { SelectFieldReference } from "../../formulaire/elements/select-field-reference";
 import { ApplicationSetupService } from "../../services/app-setup.service";
+import { SelectFieldCustom } from "../../formulaire/elements/select-field-custom";
 
 @Component({
     selector: "select-field-line",
@@ -115,9 +115,7 @@ export class SelectFieldLineComponent implements OnInit {
 
     // called every time we navigate to the module
     ngOnInit(): void {
-        console.log("> ngOnInit()", this.selectId);
-        if (this._select instanceof SelectFieldReference) {
-            console.log(">> updateEntries() !", this.selectId);
+        if (this._select instanceof SelectFieldCustom) {
             this._select.updateEntries();
         }
     }
diff --git a/src/app/formulaire/definition/form-solveur.ts b/src/app/formulaire/definition/form-solveur.ts
index b6987a5d5..fad442e85 100644
--- a/src/app/formulaire/definition/form-solveur.ts
+++ b/src/app/formulaire/definition/form-solveur.ts
@@ -1,7 +1,6 @@
 import { IObservable, ParamDefinition, Nub } from "jalhyd";
 
-import { SelectFieldNub } from "../elements/select-field-nub";
-import { SelectFieldParameter } from "../elements/select-field-parameter";
+import { SelectFieldCustom } from "../elements/select-field-custom";
 import { NgParameter } from "../elements/ngparam";
 import { FormulaireFixedVar } from "./form-fixedvar";
 import { SelectField } from "../elements/select-field";
@@ -36,7 +35,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
                 sel.addObserver(this);
                 if (firstNotif) {
                     // force 1st observation
-                    (sel as SelectFieldNub).notifySelectValueChanged();
+                    (sel as SelectFieldCustom).notifyValueChanged();
                 }
             }
         }
@@ -56,7 +55,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
                 sel.addObserver(this);
                 if (firstNotif) {
                     // force 1st observation
-                    (sel as SelectFieldNub).notifySelectValueChanged();
+                    (sel as SelectFieldCustom).notifyValueChanged();
                 }
             }
         }
@@ -80,8 +79,8 @@ export class FormulaireSolveur extends FormulaireFixedVar {
             this.reset();
         }
 
-        if (sender instanceof SelectFieldNub) {
-            if (data.action === "select") {
+        if (sender instanceof SelectFieldCustom) {
+            if (sender.id === "select_target_nub" && data.action === "select") {
                 // update Solveur property: Nub to calculate
                 try {
                     // if searchedParam is set to a value that won't be available anymore
@@ -98,9 +97,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
                 }
                 // refresh parameters selector
                 this.refreshParameterEntries();
-            }
-        } else if (sender instanceof SelectFieldParameter) {
-            if (data.action === "select") {
+            } else if (sender.id === "select_searched_param" && data.action === "select") {
                 // update Solveur property: searched Parameter
                 try {
                     const p: ParamDefinition = data.value.value;
@@ -125,7 +122,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
      * Re-populate searched parameter selector with fresh entries
      */
     private refreshParameterEntries() {
-        const pSel = this.getFormulaireNodeById(this._searchedParamSelectId) as SelectFieldParameter;
+        const pSel = this.getFormulaireNodeById(this._searchedParamSelectId) as SelectFieldCustom;
         if (pSel) {
             pSel.updateEntries();
             // reflect changes in GUI
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 50560319a..b72538822 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -1,7 +1,8 @@
-import { IObservable, Nub } from "jalhyd";
+import { IObservable, Nub, Verificateur } from "jalhyd";
 
-import { SelectFieldNub } from "../elements/select-field-nub";
+import { SelectFieldCustom } from "../elements/select-field-custom";
 import { FormulaireFixedVar } from "./form-fixedvar";
+import { SelectField } from '../elements/select-field';
 
 /**
  * Formulaire pour les Vérificateurs
@@ -16,7 +17,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
 
     protected parseOptions(json: {}) {
         super.parseOptions(json);
-        this._targetPassSelectId = this.getOption(json, "targetPassSelectI");
+        this._targetPassSelectId = this.getOption(json, "targetPassSelectId");
         this._speciesListSelectId = this.getOption(json, "speciesListSelectId");
     }
 
@@ -28,21 +29,10 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
                 sel.addObserver(this);
                 if (firstNotif) {
                     // force 1st observation
-                    (sel as SelectFieldNub).notifySelectValueChanged();
+                    (sel as SelectFieldCustom).notifyValueChanged();
                 }
             }
         }
-        if (this._speciesListSelectId) {
-            const sel = this.getFormulaireNodeById(this._speciesListSelectId);
-            /* if (sel) {
-                sel.addObserver(this);
-                if (firstNotif) {
-                    // force 1st observation
-                    (sel as SelectFieldNub).notifySelectValueChanged();
-                }
-            } */
-        }
-
     }
 
     // interface Observer
@@ -62,30 +52,30 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
             this.reset();
         }
 
-        if (sender instanceof SelectFieldNub) {
+        console.log("> update", data, sender.constructor.name);
+
+        if (sender instanceof SelectFieldCustom) {
             if (data.action === "select") {
                 // update Verificateur property: Pass to check
-                this._currentNub.properties.setPropValue("nubToVerify", data.value.value);
+                let v = undefined;
+                if (data && data.value && data.value.value) {
+                    v = data.value.value;
+                }
+                this._currentNub.properties.setPropValue("nubToVerify", data.value);
                 // @TODO refresh jet type selector
             }
-        }/*  else if (sender instanceof SelectField) {
-            if (sender.id === "select_target_result") {
-                // refresh parameters selector
-                this.refreshParameterEntries();
-            }
-        } */
+        }
     }
 
-    /**
-     * Re-populate searched parameter selector with fresh entries
-     */
-    /* private refreshParameterEntries() {
-        const pSel = this.getFormulaireNodeById(this._speciesListSelectId) as SelectFieldParameter;
+    public onCalculatorInit() {
+        // refresh species list selector on each display, because Session might have gained new Espece nubs
+        console.log(">>>> speciesList avant rafraîchissement :", (this.currentNub as Verificateur).speciesList);
+        const pSel = this.getFormulaireNodeById(this._speciesListSelectId) as SelectField;
         if (pSel) {
-            pSel.updateEntries();
-            // reflect changes in GUI
-            const inputYtarget = this.getFormulaireNodeById("Ytarget") as NgParameter;
-            inputYtarget.notifyValueModified(this);
+            /* pSel.clearEntries();
+            pSel.parseConfig(); */
+            // (pSel.parent as FieldSet).updateFields()
         }
-    } */
+    }
+
 }
diff --git a/src/app/formulaire/elements/fieldset.ts b/src/app/formulaire/elements/fieldset.ts
index 3e3b2714d..13ee41a8d 100644
--- a/src/app/formulaire/elements/fieldset.ts
+++ b/src/app/formulaire/elements/fieldset.ts
@@ -13,8 +13,7 @@ import { SelectField } from "./select-field";
 import { NgParameter, ParamRadioConfig } from "./ngparam";
 import { StringMap } from "../../stringmap";
 import { FieldsetContainer } from "./fieldset-container";
-import { SelectFieldNub } from "./select-field-nub";
-import { SelectFieldParameter } from "./select-field-parameter";
+import { SelectFieldCustom } from "./select-field-custom";
 import { FormulaireFixedVar } from "../definition/form-fixedvar";
 import { SelectEntry } from './select-entry';
 
@@ -84,23 +83,12 @@ export class FieldSet extends FormulaireElement implements Observer {
         return res;
     }
 
-    private parse_select_reference(json: {}): SelectField {
-        const refType = json["reference"];
+    private parse_select_custom(json: {}): SelectField {
         const source = json["source"];
-        let res: SelectField;
         if (source === undefined || source === "") {
-            throw new Error(`Fieldset.parse_select_reference(): "source" must not be empty`);
-        }
-        switch (refType) {
-            case "nub": // @TODO upstreamNub / downstreamNub ?
-                res = new SelectFieldNub(this, source);
-                break;
-            case "parameter":
-                res = new SelectFieldParameter(this, source);
-                break;
-            default:
-                throw new Error(`Fieldset.parse_select_reference(): unknown reference type ${refType}`);
+            throw new Error(`Fieldset.parse_select_custom(): "source" must not be empty`);
         }
+        const res: SelectField = new SelectFieldCustom(this);
         res.parseConfig(json);
         res.addObserver(this);
         return res;
@@ -198,8 +186,8 @@ export class FieldSet extends FormulaireElement implements Observer {
                     this.addField(param);
                     break;
 
-                case "select_reference":
-                    param = this.parse_select_reference(field);
+                case "select_custom":
+                    param = this.parse_select_custom(field);
                     this.addField(param);
                     break;
 
@@ -391,7 +379,12 @@ export class FieldSet extends FormulaireElement implements Observer {
                                     const fe = this.parentForm.getFieldById(sId);
                                     if (fe && data.value !== undefined) {
                                         const prop = (fe as SelectField).associatedProperty;
-                                        this.setPropValue(prop, data.value.value);
+                                        // for multiple select
+                                        if (Array.isArray(data.value)) {
+                                            this.setPropValue(prop, data.value.map((v: any) => v.value));
+                                        } else {
+                                            this.setPropValue(prop, data.value.value);
+                                        }
                                     }
                                 }
                             }
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
new file mode 100644
index 000000000..6c57eba10
--- /dev/null
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -0,0 +1,216 @@
+import { SelectEntry } from "./select-entry";
+import { ServiceFactory } from "../../services/service-factory";
+import { decodeHtml, arraysAreEqual } from "../../util";
+
+import { Session, Solveur, FishPass, CalculatorType, Verificateur, Nub } from "jalhyd";
+import { SelectField } from './select-field';
+
+/**
+ * A select field that populates itself with custom stuff (ex: references to Nubs, Parameters…)
+ */
+export class SelectFieldCustom extends SelectField {
+
+    /**
+     * Loads UI with the value held by the model
+     */
+    protected initSelectedValue() {
+        const nub = this.parentForm.currentNub;
+        console.log("[X] I S V", nub.constructor.name, this.source);
+        switch (this.source) {
+
+            case "solveur_target": // Solveur, module cible (à calculer)
+                const ntc = (nub as Solveur).nubToCalculate;
+                if (ntc !== undefined) {
+                    this.setValueFromId(this._entriesBaseId + ntc.uid);
+                }
+                break;
+
+            case "solveur_searched": // Solveur, paramètre recherché (à faire varier)
+                const sp = (nub as Solveur).searchedParameter;
+                if (sp !== undefined) {
+                    this.setValueFromId(this._entriesBaseId + sp.nubUid + "_" + sp.symbol);
+                }
+                break;
+
+            case "verificateur_target": // Vérificateur, passe cible (à vérifier)
+                const ntv = (nub as Verificateur).nubToVerify;
+                if (ntv !== undefined) {
+                    this.setValueFromId(this._entriesBaseId + ntv.uid);
+                }
+                break;
+        }
+    }
+
+    /**
+     * Populates entries with available options
+     */
+    protected populate() {
+        const fs = ServiceFactory.instance.formulaireService;
+        let candidateNubs: any[];
+        switch (this.source) {
+
+            case "solveur_target": // Solveur, module cible (à calculer)
+                // find all Nubs having at least one link to another Nub's result
+                candidateNubs =
+                    Session.getInstance().getDownstreamNubs().concat(
+                        Session.getInstance().getUpstreamNubsHavingExtraResults()
+                    ).filter(
+                        (element, index, self) => self.findIndex((e) => e.uid === element.uid) === index
+                    );
+                for (const cn of candidateNubs) {
+                    const nub = fs.getFormulaireFromId(cn.uid);
+                    if (nub) {
+                        const calc = nub.calculatorName;
+                        let label = calc;
+                        // calculated param
+                        if (cn.calculatedParam !== undefined) {
+                            const varName = fs.expandVariableName(cn.calcType, cn.calculatedParam.symbol);
+                            label += ` / ${varName} (${cn.calculatedParam.symbol})`;
+                        }
+                        this.addEntry(new SelectEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(label)));
+                    } else {
+                        // silent fail, this Solveur nub was probably loaded before all the candidate nubs are done loading
+                    }
+                }
+                break;
+
+            case "solveur_searched": // Solveur, paramètre recherché (à faire varier)
+                // find all non-calculated, non-linked parameters of all Nubs that
+                // the current "target" Nub depends on (if any)
+                const solv = this.parentForm.currentNub as Solveur;
+                const ntc: Nub = solv.nubToCalculate;
+                const searchableParams = Solveur.getDependingNubsSearchableParams(
+                    ntc,
+                    solv.targettedResult !== undefined && solv.targettedResult !== ""
+                );
+                for (const p of searchableParams) {
+                    if (p.visible) {
+                        const calc = fs.getFormulaireFromId(p.originNub.uid).calculatorName;
+                        const varName = fs.expandVariableName(p.originNub.calcType, p.symbol);
+                        const label = `${p.symbol} - ${varName} (${calc})`;
+                        this.addEntry(new SelectEntry(this._entriesBaseId + p.originNub.uid + "_" + p.symbol, p, decodeHtml(label)));
+                    }
+                }
+                break;
+
+            case "verificateur_target": // Vérificateur, passe cible (à vérifier)
+                // find all Nubs of type FishPass
+                candidateNubs = Session.getInstance().getAllNubs().filter((element) => {
+                    return (
+                        (element instanceof FishPass)
+                        && element.calcType !== CalculatorType.Par // ParSimulation extends Par @TODO find something better
+                    );
+                });
+                for (const cn of candidateNubs) {
+                    const nub = fs.getFormulaireFromId(cn.uid);
+                    if (nub) {
+                        const label = nub.calculatorName + " (" + fs.getLocalisedTitleFromCalculatorType(nub.calculatorType) + ")";
+                        this.addEntry(new SelectEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(label)));
+                    } else {
+                        // silent fail, this Verificateur nub was probably loaded before all the candidate nubs are done loading
+                    }
+                }
+                break;
+
+        }
+    }
+
+    protected setDefaultValue() {
+        // default to first available entry if any
+        if (this._entries.length > 0) {
+            if (this._multiple) {
+                this.setValue([ this._entries[0] ]);
+            } else {
+                this.setValue(this._entries[0]);
+            }
+        } else {
+            // notify observers that no value is selected anymore
+            this.notifyValueChanged();
+        }
+    }
+
+    /**
+     * Once config is parsed, init original value from model
+     * (needs config, for this._entriesBaseId to be set)
+     */
+    protected afterParseConfig() {
+        this.populate();
+        this.initSelectedValue();
+    }
+
+    /**
+     * Reloads available entries, trying to keep the current selected
+     * value; does not notify observers if value did not change
+     */
+    public updateEntries() {
+        // store previous selected entry
+        const pse = this._selectedEntry;
+        // empty
+        this.clearEntries();
+        // populate
+        this.populate();
+        // if no entry is available anymore, unset value
+        if (this.entries.length === 0) {
+            if (this.multiple) {
+                super.setValue([]);
+            } else {
+                super.setValue(undefined);
+            }
+        } else {
+            // keep previously selected entry if possible @TODO manage multiple values
+            if (pse && ! Array.isArray(pse) && pse.id) {
+                this.setValueFromId(pse.id);
+            } else {
+                this.setDefaultValue();
+            }
+        }
+    }
+
+    /**
+     * Updates selectedValue; notifies observers only if
+     * value.id has changed
+     */
+    public setValue(v: SelectEntry | SelectEntry[]) {
+        const previousSelectedEntry = this._selectedEntry;
+        this._selectedEntry = v;
+        // if value changed
+        let valueChanged = (
+            ! previousSelectedEntry
+            || (
+                ! Array.isArray(previousSelectedEntry)
+                && ! Array.isArray(v)
+                && previousSelectedEntry.id !== v.id
+            )
+            || (
+                Array.isArray(previousSelectedEntry)
+                && Array.isArray(v)
+                && arraysAreEqual(previousSelectedEntry, v, "id", true)
+            )
+        );
+        if (valueChanged) {
+            this.notifyValueChanged();
+        }
+    }
+
+    /**
+     * Sets value from given ID; if it was not found, sets the
+     * first available entry as selectedValue
+     */
+    public setValueFromId(id: string) {
+        let found = false;
+        for (const e of this._entries) {
+            if (e.id === id) {
+                found = true;
+                if (this._multiple) {
+                    this.setValue([ e ]);
+                } else {
+                    this.setValue(e);
+                }
+            }
+        }
+        if (! found) {
+            this.setDefaultValue();
+        }
+    }
+
+}
diff --git a/src/app/formulaire/elements/select-field-nub.ts b/src/app/formulaire/elements/select-field-nub.ts
deleted file mode 100644
index 9942f160f..000000000
--- a/src/app/formulaire/elements/select-field-nub.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-import { SelectFieldReference } from "./select-field-reference";
-import { SelectEntry } from "./select-entry";
-import { ServiceFactory } from "../../services/service-factory";
-import { decodeHtml } from "../../util";
-
-import { Session, Solveur, FishPass, CalculatorType } from "jalhyd";
-
-/**
- * A select field that populates itself with references to Nubs
- */
-export class SelectFieldNub extends SelectFieldReference {
-
-    protected initSelectedValue() {
-        const nub = this.parentForm.currentNub;
-        if (nub instanceof Solveur) {
-            const ntc = nub.nubToCalculate;
-            if (ntc !== undefined) {
-                this.setValueFromId(this._entriesBaseId + ntc.uid);
-            }
-        }
-    }
-
-    /**
-     * Populates entries with available references
-     */
-    protected populate() {
-        const fs = ServiceFactory.instance.formulaireService;
-        let candidateNubs: any[];
-        switch (this._source) {
-            case "solveur_target": // Solveur, module cible (à calculer)
-                // find all Nubs having at least one link to another Nub's result
-                candidateNubs =
-                    Session.getInstance().getDownstreamNubs().concat(
-                        Session.getInstance().getUpstreamNubsHavingExtraResults()
-                    ).filter(
-                        (element, index, self) => self.findIndex((e) => e.uid === element.uid) === index
-                    );
-                for (const cn of candidateNubs) {
-                    const nub = fs.getFormulaireFromId(cn.uid);
-                    if (nub) {
-                        const calc = nub.calculatorName;
-                        let label = calc;
-                        // calculated param
-                        if (cn.calculatedParam !== undefined) {
-                            const varName = fs.expandVariableName(cn.calcType, cn.calculatedParam.symbol);
-                            label += ` / ${varName} (${cn.calculatedParam.symbol})`;
-                        }
-                        this.addEntry(new SelectEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(label)));
-                    } else {
-                        // silent fail, this Solveur nub was probably loaded before all the candidate nubs are done loading
-                    }
-                }
-                break;
-
-            case "verificateur_target": // Vérificateur, passe cible (à vérifier)
-                // find all Nubs of type FishPass
-                candidateNubs = Session.getInstance().getAllNubs().filter((element) => {
-                    return (
-                        (element instanceof FishPass)
-                        && element.calcType !== CalculatorType.Par // ParSimulation extends Par @TODO find something better
-                    );
-                });
-                for (const cn of candidateNubs) {
-                    const nub = fs.getFormulaireFromId(cn.uid);
-                    if (nub) {
-                        const label = nub.calculatorName + " (" + fs.getLocalisedTitleFromCalculatorType(nub.calculatorType) + ")";
-                        this.addEntry(new SelectEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(label)));
-                    } else {
-                        // silent fail, this Verificateur nub was probably loaded before all the candidate nubs are done loading
-                    }
-                }
-                break;
-        }
-    }
-
-}
diff --git a/src/app/formulaire/elements/select-field-parameter.ts b/src/app/formulaire/elements/select-field-parameter.ts
deleted file mode 100644
index c5a9d7291..000000000
--- a/src/app/formulaire/elements/select-field-parameter.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { SelectFieldReference } from "./select-field-reference";
-import { SelectEntry } from "./select-entry";
-import { decodeHtml } from "../../util";
-import { ServiceFactory } from "../../services/service-factory";
-
-import { Nub, Solveur } from "jalhyd";
-
-/**
- * A select field that populates itself with references to ParamDefinitions
- */
-export class SelectFieldParameter extends SelectFieldReference {
-
-    protected initSelectedValue() {
-        const nub = this.parentForm.currentNub;
-        if (nub instanceof Solveur) {
-            const sp = nub.searchedParameter;
-            if (sp !== undefined) {
-                this.setValueFromId(this._entriesBaseId + sp.nubUid + "_" + sp.symbol);
-            }
-        }
-    }
-
-    /**
-     * Populates entries with available references
-     */
-    protected populate() {
-        switch (this._source) {
-            case "solveur_searched": // Solveur, paramètre recherché (à faire varier)
-                // find all non-calculated, non-linked parameters of all Nubs that
-                // the current "target" Nub depends on (if any)
-                const fs = ServiceFactory.instance.formulaireService;
-                const solv = this.parentForm.currentNub as Solveur;
-                const ntc: Nub = solv.nubToCalculate;
-                const searchableParams = Solveur.getDependingNubsSearchableParams(
-                    ntc,
-                    solv.targettedResult !== undefined && solv.targettedResult !== ""
-                );
-                for (const p of searchableParams) {
-                    if (p.visible) {
-                        const calc = fs.getFormulaireFromId(p.originNub.uid).calculatorName;
-                        const varName = fs.expandVariableName(p.originNub.calcType, p.symbol);
-                        const label = `${p.symbol} - ${varName} (${calc})`;
-                        this.addEntry(new SelectEntry(this._entriesBaseId + p.originNub.uid + "_" + p.symbol, p, decodeHtml(label)));
-                    }
-                }
-                break;
-        }
-    }
-
-}
diff --git a/src/app/formulaire/elements/select-field-reference.ts b/src/app/formulaire/elements/select-field-reference.ts
deleted file mode 100644
index c4024feea..000000000
--- a/src/app/formulaire/elements/select-field-reference.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-import { SelectField } from "./select-field";
-import { SelectEntry } from "./select-entry";
-import { FormulaireNode } from "./formulaire-node";
-
-import { arraysAreEqual } from "../../util";
-
-/**
- * A select field that populates itself with references to
- * available objects (for ex. Nub or ParamDefinition)
- */
-export abstract class SelectFieldReference extends SelectField {
-
-    /** source identifier for populate() method */
-    protected _source: string;
-
-    constructor(parent: FormulaireNode, source: string) {
-        super(parent);
-        this._source = source;
-    }
-
-    protected abstract initSelectedValue();
-
-    /**
-     * Populates entries with available references
-     */
-    protected abstract populate();
-
-    /**
-     * Once config is parsed, init original value from model
-     * (needs config, for this._entriesBaseId to be set)
-     */
-    protected afterParseConfig() {
-        this.populate();
-        this.initSelectedValue();
-    }
-
-    /**
-     * Reloads available entries, trying to keep the current selected
-     * value; does not notify observers if value did not change
-     */
-    public updateEntries() {
-        // store previous selected entry
-        const pse = this._selectedEntry;
-        // empty
-        this.clearEntries();
-        // populate
-        this.populate();
-        // if no entry is available anymore, unset value
-        if (this.entries.length === 0) {
-            if (this.multiple) {
-                super.setValue([]);
-            } else {
-                super.setValue(undefined);
-            }
-        } else {
-            // keep previously selected entry if possible @TODO manage multiple values
-            if (pse && ! Array.isArray(pse) && pse.id) {
-                this.setValueFromId(pse.id);
-            } else {
-                this.setDefaultValue();
-            }
-        }
-    }
-
-    /**
-     * Updates selectedValue; notifies observers only if
-     * value.id has changed
-     */
-    public setValue(v: SelectEntry | SelectEntry[]) {
-        const previousSelectedEntry = this._selectedEntry;
-        this._selectedEntry = v;
-        // if value changed
-        let valueChanged = (
-            ! previousSelectedEntry
-            || (
-                ! Array.isArray(previousSelectedEntry)
-                && ! Array.isArray(v)
-                && previousSelectedEntry.id !== v.id
-            )
-            || (
-                Array.isArray(previousSelectedEntry)
-                && Array.isArray(v)
-                && arraysAreEqual(previousSelectedEntry, v, "id", true)
-            )
-        );
-        if (valueChanged) {
-            this.notifySelectValueChanged();
-        }
-    }
-
-    public notifySelectValueChanged() {
-        this.notifyObservers({
-            "action": "select",
-            "value": this._selectedEntry
-        }, this);
-    }
-
-    /**
-     * Sets value from given ID; if it was not found, sets the
-     * first available entry as selectedValue
-     */
-    public setValueFromId(id: string) {
-        let found = false;
-        for (const e of this._entries) {
-            if (e.id === id) {
-                found = true;
-                if (this._multiple) {
-                    this.setValue([ e ]);
-                } else {
-                    this.setValue(e);
-                }
-            }
-        }
-        if (! found) {
-            this.setDefaultValue();
-        }
-    }
-
-    protected setDefaultValue() {
-        // default to first available entry if any
-        if (this._entries.length > 0) {
-            if (this._multiple) {
-                this.setValue([ this._entries[0] ]);
-            } else {
-                this.setValue(this._entries[0]);
-            }
-        } else {
-            // notify observers that no value is selected anymore
-            this.notifySelectValueChanged();
-        }
-    }
-}
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 4818e5709..4b10ec0b7 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -16,6 +16,7 @@ import { FormulaireNode } from "./formulaire-node";
 import { FormulaireDefinition } from "../definition/form-definition";
 import { ServiceFactory } from "../../services/service-factory";
 import { FishSpecies } from 'jalhyd/build/verification/fish_species';
+import { sprintf } from 'sprintf-js';
 
 export class SelectField extends Field {
 
@@ -35,6 +36,9 @@ export class SelectField extends Field {
     /** if true, user can select multiple values */
     protected _multiple = false;
 
+    /** soruce identifier for populating with available values */
+    protected source: string;
+
     constructor(parent: FormulaireNode) {
         super(parent);
         this.clearEntries();
@@ -75,30 +79,6 @@ export class SelectField extends Field {
         }
     }
 
-    /**
-     * Reloads available entries, trying to keep the current selected
-     * value; should not notify observers if value did not change
-     */
-    public updateEntries() {
-        // store previous selected entry
-        const pse = this._selectedEntry;
-        this._selectedEntry = undefined;
-        // empty
-        this.clearEntries();
-        // populate
-        this.populate();
-        // keep previously selected entry if possible
-        if (pse) {
-            this.setValue(pse);
-        }
-    }
-
-    /**
-     * Empties then refills entries list with available entries; does
-     * nothing by default (to be overloaded)
-     */
-    protected populate() { }
-
     /**
      * Triggered at the end of parseConfig()
      */
@@ -124,6 +104,7 @@ export class SelectField extends Field {
     }
 
     public notifyValueChanged() {
+        console.log("NOT VAL CHA", this.id, this._selectedEntry)
         this.notifyObservers({
             "action": "select",
             "value": this._selectedEntry
@@ -150,11 +131,20 @@ export class SelectField extends Field {
         if (field["multiple"] !== undefined) {
             this._multiple = field["multiple"];
         }
-        const source = field["source"];
+        this.source = field["source"];
 
+        this.loadEntriesFromSource();
+
+        this.afterParseConfig();
+    }
+
+    /**
+     * Adds available entries to the selector, depending on the "source" identifier
+     */
+    protected loadEntriesFromSource() {
         const nub: Nub = (this.parentForm as FormulaireDefinition).currentNub;
         // ad-hoc cases
-        switch (source) {
+        switch (this.source) {
             // driven by string[], not enum (easier for variable names)
             case "remous_target":
                 this.addEntry(new SelectEntry(this._entriesBaseId + "none", ""));
@@ -211,13 +201,22 @@ export class SelectField extends Field {
                 }
                 break;
 
-            // possible values depend on Session
+            // possible values depend on Session @TODO does not work, because not refreshed when Session gets new Espece nubs
             case "verificateur_species":
+                console.log("[i] loading verif species");
                 // add UIDs of all Espece type Nubs in the session
                 const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
-                console.log("especeNubs", especeNubs);
                 for (const en of especeNubs) {
-                    this.addEntry(new SelectEntry(en.uid, en.uid, "Espèce personnalisée : " + en.uid));
+                    this.addEntry(
+                        new SelectEntry(
+                            en.uid,
+                            en.uid,
+                            sprintf(
+                                ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
+                                ServiceFactory.instance.formulaireService.getFormulaireFromNubId(en.uid).calculatorName
+                            )
+                        )
+                    );
                 }
                 // add all FishSpecies
                 for (let j = 0; j < Object.keys(FishSpecies).length / 2; j++) {
@@ -236,7 +235,6 @@ export class SelectField extends Field {
                     }
                 }
         }
-
-        this.afterParseConfig();
     }
+
 }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index fb4e4605e..88ab30d87 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -532,6 +532,7 @@
     "INFO_YAXB_TITRE_COURT": "Linear f.",
     "INFO_TRIGO_TITRE": "Trigonometric function",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
+    "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
     "INFO_VERIFICATEUR_TITRE_COURT": "Verification",
     "INFO_ESPECE_TITRE": "Fish species characteristics",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index da9489786..97e80ba3f 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -533,6 +533,7 @@
     "INFO_YAXB_TITRE_COURT": "F. affine",
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
+    "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée : %s",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
     "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
     "INFO_ESPECE_TITRE": "Caractéristiques d'une espèce",
-- 
GitLab


From 737fd67fe015b21194c7badce25f3258b93ef134 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 20 Apr 2020 17:12:40 +0200
Subject: [PATCH 013/101] Fix bug in refreshing fieldsets after compute

---
 src/app/formulaire/definition/form-definition.ts  |  4 ++--
 src/app/formulaire/definition/form-fixedvar.ts    |  1 +
 .../definition/form-macrorugo-compound.ts         | 15 +++++----------
 .../definition/form-parallel-structures.ts        |  2 +-
 src/app/formulaire/definition/form-solveur.ts     |  6 +++---
 .../formulaire/definition/form-verificateur.ts    |  4 ++--
 6 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index d3333d8d6..026ffdba4 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -174,7 +174,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
     }
 
     /** called at the end of parseConfig() */
-    protected completeParse(json: {}) {
+    protected completeParse(firstNotif: boolean = true) {
         this.helpLinks = this._resultsHelpLinks;
     }
 
@@ -294,7 +294,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
             }
         }
 
-        this.completeParse(this._jsonConfig);
+        this.completeParse();
     }
 
     public hasParameter(symbol: string): boolean {
diff --git a/src/app/formulaire/definition/form-fixedvar.ts b/src/app/formulaire/definition/form-fixedvar.ts
index 20314b520..4d553ef88 100644
--- a/src/app/formulaire/definition/form-fixedvar.ts
+++ b/src/app/formulaire/definition/form-fixedvar.ts
@@ -125,6 +125,7 @@ export class FormulaireFixedVar extends FormulaireDefinition {
         for (const fs of this.allFieldsets) {
             fs.updateFields();
         }
+        this.completeParse(false); // re-add observers that were destroyed by updateFields()
     }
 
     // interface Observer
diff --git a/src/app/formulaire/definition/form-macrorugo-compound.ts b/src/app/formulaire/definition/form-macrorugo-compound.ts
index c94dad30a..2fb689c5b 100644
--- a/src/app/formulaire/definition/form-macrorugo-compound.ts
+++ b/src/app/formulaire/definition/form-macrorugo-compound.ts
@@ -51,9 +51,11 @@ export class FormulaireMacrorugoCompound extends FormulaireRepeatableFieldset {
         }
     }
 
-    protected completeParse(json: {}) {
-        this.subscribeFieldsetContainer();
-        this.updateApronState(this.currentNub.properties.getPropValue("inclinedApron"));
+    protected completeParse(firstNotif: boolean = true) {
+        this.fieldsetContainer.addObserver(this);
+        if (firstNotif) {
+            this.updateApronState(this.currentNub.properties.getPropValue("inclinedApron"));
+        }
         this.helpLinks = this._resultsHelpLinks;
     }
 
@@ -65,13 +67,6 @@ export class FormulaireMacrorugoCompound extends FormulaireRepeatableFieldset {
         return n as FieldsetContainer;
     }
 
-    /**
-     * abonnement en tant qu'observateur du FieldsetContainer
-     */
-    private subscribeFieldsetContainer() {
-        this.fieldsetContainer.addObserver(this);
-    }
-
     /**
      * abonnement en tant qu'observateur des NgParameter des FieldSet contenus dans le FieldsetContainer
      */
diff --git a/src/app/formulaire/definition/form-parallel-structures.ts b/src/app/formulaire/definition/form-parallel-structures.ts
index 6e238dd76..6a097c297 100644
--- a/src/app/formulaire/definition/form-parallel-structures.ts
+++ b/src/app/formulaire/definition/form-parallel-structures.ts
@@ -92,7 +92,7 @@ export class FormulaireParallelStructure extends FormulaireRepeatableFieldset {
         return newStructure;
     }
 
-    protected completeParse(json: {}) {
+    protected completeParse(firstNotif: boolean = true) {
         this.subscribeFieldsetContainer();
         this.helpLinks = this._resultsHelpLinks;
     }
diff --git a/src/app/formulaire/definition/form-solveur.ts b/src/app/formulaire/definition/form-solveur.ts
index fad442e85..1e2664d9f 100644
--- a/src/app/formulaire/definition/form-solveur.ts
+++ b/src/app/formulaire/definition/form-solveur.ts
@@ -27,8 +27,8 @@ export class FormulaireSolveur extends FormulaireFixedVar {
         this._searchedParamSelectId = this.getOption(json, "searchedParamSelectId");
     }
 
-    protected completeParse(json: {}, firstNotif: boolean = true) {
-        super.completeParse(json);
+    protected completeParse(firstNotif: boolean = true) {
+        super.completeParse();
         if (this._targetNubSelectId) {
             const sel = this.getFormulaireNodeById(this._targetNubSelectId);
             if (sel) {
@@ -93,7 +93,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
                 if (trSel) {
                     (trSel.parent as FieldSet).updateFields();
                     // trick to re-set observers
-                    this.completeParse({}, false);
+                    this.completeParse(false);
                 }
                 // refresh parameters selector
                 this.refreshParameterEntries();
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index b72538822..732a659a5 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -21,8 +21,8 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         this._speciesListSelectId = this.getOption(json, "speciesListSelectId");
     }
 
-    protected completeParse(json: {}, firstNotif: boolean = true) {
-        super.completeParse(json);
+    protected completeParse(firstNotif: boolean = true) {
+        super.completeParse();
         if (this._targetPassSelectId) {
             const sel = this.getFormulaireNodeById(this._targetPassSelectId);
             if (sel) {
-- 
GitLab


From 13c4c7c60312ccdf19c73a38f2abc02bdc24cdc8 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 20 Apr 2020 17:42:51 +0200
Subject: [PATCH 014/101] Add e2e test for Solveur selectors interdependence

---
 e2e/solveur.e2e-spec.ts | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/e2e/solveur.e2e-spec.ts b/e2e/solveur.e2e-spec.ts
index 93adaae77..90d60c1d0 100644
--- a/e2e/solveur.e2e-spec.ts
+++ b/e2e/solveur.e2e-spec.ts
@@ -52,6 +52,10 @@ describe("Solveur - ", () => {
     const ntc = calcPage.getSelectById("select_target_nub");
     const ntcV = await calcPage.getSelectValueText(ntc);
     expect(ntcV).toContain("PAB : puissance / Puissance dissipée (PV)");
+    // check targetted result
+    const ntt = calcPage.getSelectById("select_target_result");
+    const nttV = await calcPage.getSelectValueText(ntt);
+    expect(nttV).toContain("Puissance dissipée (PV)");
     // check searched Parameter
     const sp = calcPage.getSelectById("select_searched_param");
     const spV = await calcPage.getSelectValueText(sp);
@@ -66,6 +70,11 @@ describe("Solveur - ", () => {
     // check that result is not empty
     const hasResults = await calcPage.hasResults();
     expect(hasResults).toBe(true);
+
+    // change targetted Nub, check that targetted result changes too
+    await calcPage.changeSelectValue(ntc, 0);
+    const nttV2 = await calcPage.getSelectValueText(ntt);
+    expect(nttV2).not.toContain("Puissance dissipée (PV)");
   });
 
   it("create > feed > calculate > clone > calculate clone", async () => {
-- 
GitLab


From 3470983727f9f41d4807b65b2c98444bf4ae5198 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 21 Apr 2020 10:44:07 +0200
Subject: [PATCH 015/101] Simplified custom select process

---
 src/app/calculators/solveur/config.json       |  3 +-
 src/app/calculators/verificateur/config.json  |  3 +-
 .../formulaire/definition/form-fixedvar.ts    | 25 ++++++++++++-
 .../definition/form-macrorugo-compound.ts     |  1 +
 .../definition/form-parallel-structures.ts    | 10 +----
 src/app/formulaire/definition/form-solveur.ts | 37 +++----------------
 .../definition/form-verificateur.ts           | 35 ++----------------
 7 files changed, 38 insertions(+), 76 deletions(-)

diff --git a/src/app/calculators/solveur/config.json b/src/app/calculators/solveur/config.json
index 03262ac7d..f04658c8d 100644
--- a/src/app/calculators/solveur/config.json
+++ b/src/app/calculators/solveur/config.json
@@ -33,9 +33,8 @@
     {
         "type": "options",
         "selectIds": [ "select_target_result" ],
-        "targetNubSelectId": "select_target_nub",
+        "customSelectIds": [ "select_target_nub", "select_searched_param" ],
         "targettedResultSelectId": "select_target_result",
-        "searchedParamSelectId": "select_searched_param",
         "_help": "solveur.html"
     }
 ]
\ No newline at end of file
diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
index 8ec8d41ca..95ad28bb6 100644
--- a/src/app/calculators/verificateur/config.json
+++ b/src/app/calculators/verificateur/config.json
@@ -32,8 +32,7 @@
     {
         "type": "options",
         "selectIds": [ "select_pab_jet_type", "select_species_list" ],
-        "targetPassSelectId": "select_target_pass",
-        "speciesListSelectId": "select_species_list",
+        "customSelectIds": [ "select_target_pass" ],
         "help": "verification/verificateur.html"
     }
 ]
diff --git a/src/app/formulaire/definition/form-fixedvar.ts b/src/app/formulaire/definition/form-fixedvar.ts
index 4d553ef88..c9835398c 100644
--- a/src/app/formulaire/definition/form-fixedvar.ts
+++ b/src/app/formulaire/definition/form-fixedvar.ts
@@ -7,6 +7,7 @@ import { ParamRadioConfig, NgParameter } from "../elements/ngparam";
 import { FieldSet } from "../elements/fieldset";
 
 import { Nub, IObservable } from "jalhyd";
+import { SelectFieldCustom } from '../elements/select-field-custom';
 
 export class FormulaireFixedVar extends FormulaireDefinition {
 
@@ -16,6 +17,9 @@ export class FormulaireFixedVar extends FormulaireDefinition {
     /** ids of select fields */
     private _selectIds: string[] = [];
 
+    /** ids of "custom" select fields */
+    private _customSelectIds: string[] = [];
+
     constructor() {
         super();
         this._fixedResults = new FixedResults();
@@ -70,21 +74,40 @@ export class FormulaireFixedVar extends FormulaireDefinition {
     }
 
     public afterParseFieldset(fs: FieldSet) {
-        // observe all select fields @see this.update()
+        // observe all Select fields @see this.update()
         if (this._selectIds.length > 0) {
             for (const sId of this._selectIds) {
                 const sel = fs.getFormulaireNodeById(sId);
                 if (sel) {
+                    // Formulaire is listening to FieldSet properties (@TODO why not directly Select ?)
                     fs.properties.addObserver(this);
                 }
             }
         }
     }
 
+    protected completeParse(firstNotif: boolean = true) {
+        super.completeParse(firstNotif);
+        // observe all CustomSelect fields @TODO move to afterParseFieldset ?
+        if (this._customSelectIds.length > 0) {
+            for (const csId of this._customSelectIds) {
+                const sel = this.getFormulaireNodeById(csId);
+                // Formulaire is listening to Select value
+                sel.addObserver(this);
+                if (firstNotif) {
+                    // force 1st observation
+                    (sel as SelectFieldCustom).notifyValueChanged();
+                }
+            }
+        }
+    }
+
     protected parseOptions(json: {}) {
         super.parseOptions(json);
         // get ids of all select fields
         this._selectIds = this.getOption(json, "selectIds") || [];
+        // get ids of all "custom" select fields
+        this._customSelectIds = this.getOption(json, "customSelectIds") || [];
     }
 
     protected compute() {
diff --git a/src/app/formulaire/definition/form-macrorugo-compound.ts b/src/app/formulaire/definition/form-macrorugo-compound.ts
index 2fb689c5b..9ab7b18dd 100644
--- a/src/app/formulaire/definition/form-macrorugo-compound.ts
+++ b/src/app/formulaire/definition/form-macrorugo-compound.ts
@@ -52,6 +52,7 @@ export class FormulaireMacrorugoCompound extends FormulaireRepeatableFieldset {
     }
 
     protected completeParse(firstNotif: boolean = true) {
+        super.completeParse(firstNotif);
         this.fieldsetContainer.addObserver(this);
         if (firstNotif) {
             this.updateApronState(this.currentNub.properties.getPropValue("inclinedApron"));
diff --git a/src/app/formulaire/definition/form-parallel-structures.ts b/src/app/formulaire/definition/form-parallel-structures.ts
index 6a097c297..87b347930 100644
--- a/src/app/formulaire/definition/form-parallel-structures.ts
+++ b/src/app/formulaire/definition/form-parallel-structures.ts
@@ -93,7 +93,8 @@ export class FormulaireParallelStructure extends FormulaireRepeatableFieldset {
     }
 
     protected completeParse(firstNotif: boolean = true) {
-        this.subscribeFieldsetContainer();
+        super.completeParse(firstNotif);
+        this.fieldsetContainer.addObserver(this);
         this.helpLinks = this._resultsHelpLinks;
     }
 
@@ -128,13 +129,6 @@ export class FormulaireParallelStructure extends FormulaireRepeatableFieldset {
         }
     }
 
-    /**
-     * abonnement en tant qu'observateur du FieldsetContainer
-     */
-    private subscribeFieldsetContainer() {
-        this.fieldsetContainer.addObserver(this);
-    }
-
     /**
      * abonnement en tant qu'observateur des NgParameter des FieldSet contenus dans le FieldsetContainer
      */
diff --git a/src/app/formulaire/definition/form-solveur.ts b/src/app/formulaire/definition/form-solveur.ts
index 1e2664d9f..db1b2ef45 100644
--- a/src/app/formulaire/definition/form-solveur.ts
+++ b/src/app/formulaire/definition/form-solveur.ts
@@ -11,34 +11,18 @@ import { FieldSet } from "../elements/fieldset";
  */
 export class FormulaireSolveur extends FormulaireFixedVar {
 
-    /** id of select configuring target Nub */
-    private _targetNubSelectId: string;
-
     /** id of select configuring targetted result */
     private _targettedResultSelectId: string;
 
-    /** id of select configuring searched param */
-    private _searchedParamSelectId: string;
-
     protected parseOptions(json: {}) {
         super.parseOptions(json);
-        this._targetNubSelectId = this.getOption(json, "targetNubSelectId");
         this._targettedResultSelectId = this.getOption(json, "targettedResultSelectId");
-        this._searchedParamSelectId = this.getOption(json, "searchedParamSelectId");
     }
 
     protected completeParse(firstNotif: boolean = true) {
-        super.completeParse();
-        if (this._targetNubSelectId) {
-            const sel = this.getFormulaireNodeById(this._targetNubSelectId);
-            if (sel) {
-                sel.addObserver(this);
-                if (firstNotif) {
-                    // force 1st observation
-                    (sel as SelectFieldCustom).notifyValueChanged();
-                }
-            }
-        }
+        super.completeParse(firstNotif);
+        // even though this._targettedResultSelectId is a regular select, an extra action
+        // is needed: refresh searched parameter selector
         if (this._targettedResultSelectId) {
             const sel = this.getFormulaireNodeById(this._targettedResultSelectId);
             if (sel) {
@@ -49,17 +33,6 @@ export class FormulaireSolveur extends FormulaireFixedVar {
                 }
             }
         }
-        if (this._searchedParamSelectId) {
-            const sel = this.getFormulaireNodeById(this._searchedParamSelectId);
-            if (sel) {
-                sel.addObserver(this);
-                if (firstNotif) {
-                    // force 1st observation
-                    (sel as SelectFieldCustom).notifyValueChanged();
-                }
-            }
-        }
-
     }
 
     // interface Observer
@@ -111,7 +84,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
                 inputXinit.notifyValueModified(this);
             }
         } else if (sender instanceof SelectField) {
-            if (sender.id === "select_target_result") {
+            if (sender.id === this._targettedResultSelectId) {
                 // refresh parameters selector
                 this.refreshParameterEntries();
             }
@@ -122,7 +95,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
      * Re-populate searched parameter selector with fresh entries
      */
     private refreshParameterEntries() {
-        const pSel = this.getFormulaireNodeById(this._searchedParamSelectId) as SelectFieldCustom;
+        const pSel = this.getFormulaireNodeById("select_searched_param") as SelectFieldCustom;
         if (pSel) {
             pSel.updateEntries();
             // reflect changes in GUI
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 732a659a5..2e5569599 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -2,39 +2,12 @@ import { IObservable, Nub, Verificateur } from "jalhyd";
 
 import { SelectFieldCustom } from "../elements/select-field-custom";
 import { FormulaireFixedVar } from "./form-fixedvar";
-import { SelectField } from '../elements/select-field';
 
 /**
  * Formulaire pour les Vérificateurs
  */
 export class FormulaireVerificateur extends FormulaireFixedVar {
 
-    /** id of select configuring target pass Nub */
-    private _targetPassSelectId: string;
-
-    /** id of select configuring list of species */
-    private _speciesListSelectId: string;
-
-    protected parseOptions(json: {}) {
-        super.parseOptions(json);
-        this._targetPassSelectId = this.getOption(json, "targetPassSelectId");
-        this._speciesListSelectId = this.getOption(json, "speciesListSelectId");
-    }
-
-    protected completeParse(firstNotif: boolean = true) {
-        super.completeParse();
-        if (this._targetPassSelectId) {
-            const sel = this.getFormulaireNodeById(this._targetPassSelectId);
-            if (sel) {
-                sel.addObserver(this);
-                if (firstNotif) {
-                    // force 1st observation
-                    (sel as SelectFieldCustom).notifyValueChanged();
-                }
-            }
-        }
-    }
-
     // interface Observer
 
     public update(sender: IObservable, data: any) {
@@ -70,12 +43,12 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
     public onCalculatorInit() {
         // refresh species list selector on each display, because Session might have gained new Espece nubs
         console.log(">>>> speciesList avant rafraîchissement :", (this.currentNub as Verificateur).speciesList);
-        const pSel = this.getFormulaireNodeById(this._speciesListSelectId) as SelectField;
+        /* const pSel = this.getFormulaireNodeById(this._speciesListSelectId) as SelectField;
         if (pSel) {
-            /* pSel.clearEntries();
-            pSel.parseConfig(); */
+            pSel.clearEntries();
+            pSel.parseConfig();
             // (pSel.parent as FieldSet).updateFields()
-        }
+        } */
     }
 
 }
-- 
GitLab


From e460adc9eb382cd3c5ea381ac8eba649a5a39735 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 21 Apr 2020 12:23:29 +0200
Subject: [PATCH 016/101] Fix methods visibility

---
 src/app/app.component.ts                                      | 2 +-
 .../components/calculator-list/calculator-list.component.ts   | 4 ++--
 src/app/formulaire/definition/form-section.ts                 | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 435edb999..c7bd6a30d 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -447,7 +447,7 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
 
   // interface Observer
 
-  update(sender: any, data: any): void {
+  public update(sender: any, data: any): void {
     if (sender instanceof FormulaireService) {
       switch (data["action"]) {
         case "createForm":
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index f014d75c8..de8820b9d 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -236,14 +236,14 @@ export class CalculatorListComponent implements OnInit {
 
     // interface Observer
 
-    update(sender: any, data: any): void {
+    public update(sender: any, data: any): void {
         if (sender instanceof I18nService) {
             // reload themes if language changed
             this.loadCalculatorsThemes();
         }
     }
 
-    ngOnInit() {
+    public ngOnInit() {
         this.loadCalculatorsThemes();
     }
 }
diff --git a/src/app/formulaire/definition/form-section.ts b/src/app/formulaire/definition/form-section.ts
index 77669213a..30cdd2c40 100644
--- a/src/app/formulaire/definition/form-section.ts
+++ b/src/app/formulaire/definition/form-section.ts
@@ -6,7 +6,7 @@ import { IObservable, Session, SectionNub } from "jalhyd";
 
 export class FormulaireSection extends FormulaireFixedVar {
 
-    update(sender: IObservable, data: any) {
+    public update(sender: IObservable, data: any) {
         super.update(sender, data);
         // changement de propriété du FieldSet contenant le select de choix du type de section
         if (sender instanceof FieldSet && sender.id === "fs_section" && data.action === "propertyChange") {
-- 
GitLab


From 2e2bd75ef653fda43803f3be5a342fbbd28e701b Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 21 Apr 2020 12:26:07 +0200
Subject: [PATCH 017/101] Verificateur: made Species List a CustomSelect

---
 src/app/calculators/verificateur/config.json  |  7 +-
 .../definition/form-verificateur.ts           | 20 +----
 .../elements/select-field-custom.ts           | 75 +++++++++++++++----
 src/app/formulaire/elements/select-field.ts   | 28 +------
 4 files changed, 69 insertions(+), 61 deletions(-)

diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
index 95ad28bb6..fb1779508 100644
--- a/src/app/calculators/verificateur/config.json
+++ b/src/app/calculators/verificateur/config.json
@@ -21,9 +21,8 @@
         "type": "fieldset",
         "fields": [
             {
-                "type": "select",
+                "type": "select_custom",
                 "id": "select_species_list",
-                "property": "speciesList",
                 "source": "verificateur_species",
                 "multiple": true
             }
@@ -31,8 +30,8 @@
     },
     {
         "type": "options",
-        "selectIds": [ "select_pab_jet_type", "select_species_list" ],
-        "customSelectIds": [ "select_target_pass" ],
+        "selectIds": [ "select_pab_jet_type" ],
+        "customSelectIds": [ "select_target_pass", "select_species_list" ],
         "help": "verification/verificateur.html"
     }
 ]
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 2e5569599..7546562ae 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -28,27 +28,15 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         console.log("> update", data, sender.constructor.name);
 
         if (sender instanceof SelectFieldCustom) {
-            if (data.action === "select") {
+            if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
-                let v = undefined;
-                if (data && data.value && data.value.value) {
-                    v = data.value.value;
-                }
                 this._currentNub.properties.setPropValue("nubToVerify", data.value);
                 // @TODO refresh jet type selector
+            } else if (sender.id === "select_species_list" && data.action === "select") {
+                // update Verificateur property: Species list (string[])
+                this._currentNub.properties.setPropValue("speciesList", data.value.map((v: any) => v.value));
             }
         }
     }
 
-    public onCalculatorInit() {
-        // refresh species list selector on each display, because Session might have gained new Espece nubs
-        console.log(">>>> speciesList avant rafraîchissement :", (this.currentNub as Verificateur).speciesList);
-        /* const pSel = this.getFormulaireNodeById(this._speciesListSelectId) as SelectField;
-        if (pSel) {
-            pSel.clearEntries();
-            pSel.parseConfig();
-            // (pSel.parent as FieldSet).updateFields()
-        } */
-    }
-
 }
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 6c57eba10..de7436625 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -1,9 +1,11 @@
 import { SelectEntry } from "./select-entry";
 import { ServiceFactory } from "../../services/service-factory";
+import { SelectField } from './select-field';
 import { decodeHtml, arraysAreEqual } from "../../util";
 
-import { Session, Solveur, FishPass, CalculatorType, Verificateur, Nub } from "jalhyd";
-import { SelectField } from './select-field';
+import { FishSpecies, Session, Solveur, FishPass, CalculatorType, Verificateur, Nub } from "jalhyd";
+
+import { sprintf } from 'sprintf-js';
 
 /**
  * A select field that populates itself with custom stuff (ex: references to Nubs, Parameters…)
@@ -38,6 +40,13 @@ export class SelectFieldCustom extends SelectField {
                     this.setValueFromId(this._entriesBaseId + ntv.uid);
                 }
                 break;
+
+            case "verificateur_species": // Vérificateur, liste d'espèces (choix multiple)
+                const sl = (nub as Verificateur).speciesList;
+                if (sl !== undefined) {
+                    this.setValueFromId(sl.map((s) => this._entriesBaseId + s ));
+                }
+                break;
         }
     }
 
@@ -112,6 +121,27 @@ export class SelectFieldCustom extends SelectField {
                 }
                 break;
 
+            case "verificateur_species":
+                console.log("[i] loading verif species");
+                // add UIDs of all Espece type Nubs in the session
+                const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
+                for (const en of especeNubs) {
+                    this.addEntry(
+                        new SelectEntry(
+                            en.uid,
+                            en.uid,
+                            sprintf(
+                                ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
+                                ServiceFactory.instance.formulaireService.getFormulaireFromNubId(en.uid).calculatorName
+                            )
+                        )
+                    );
+                }
+                // add all FishSpecies
+                for (let j = 0; j < Object.keys(FishSpecies).length / 2; j++) {
+                    this.addEntry(new SelectEntry(this._entriesBaseId + j, String(j), "Groupe d'espèces " + j));
+                }
+                break;
         }
     }
 
@@ -157,9 +187,15 @@ export class SelectFieldCustom extends SelectField {
                 super.setValue(undefined);
             }
         } else {
-            // keep previously selected entry if possible @TODO manage multiple values
-            if (pse && ! Array.isArray(pse) && pse.id) {
-                this.setValueFromId(pse.id);
+            // keep previously selected entry(ies) if possible
+            if (pse) {
+                if (! Array.isArray(pse) && pse.id) {
+                    this.setValueFromId(pse.id);
+                } else if (Array.isArray(pse) && pse.length > 0) {
+                    this.setValueFromId(pse.map((e) => e.id ));
+                } else {
+                    this.setDefaultValue();
+                }
             } else {
                 this.setDefaultValue();
             }
@@ -172,6 +208,10 @@ export class SelectFieldCustom extends SelectField {
      */
     public setValue(v: SelectEntry | SelectEntry[]) {
         const previousSelectedEntry = this._selectedEntry;
+        /* if (Array.isArray(v)) {
+            // keep selection ordered
+            v.sort((a,b) => (a.value > b.value) ? -1 : ((b.value > a.value) ? 1 : 0));
+        } */
         this._selectedEntry = v;
         // if value changed
         let valueChanged = (
@@ -184,7 +224,7 @@ export class SelectFieldCustom extends SelectField {
             || (
                 Array.isArray(previousSelectedEntry)
                 && Array.isArray(v)
-                && arraysAreEqual(previousSelectedEntry, v, "id", true)
+                && ! arraysAreEqual(previousSelectedEntry, v, "id", true)
             )
         );
         if (valueChanged) {
@@ -193,17 +233,24 @@ export class SelectFieldCustom extends SelectField {
     }
 
     /**
-     * Sets value from given ID; if it was not found, sets the
+     * Sets value from given ID(s); if it was not found, sets the
      * first available entry as selectedValue
      */
-    public setValueFromId(id: string) {
+    public setValueFromId(id: string | string[]) {
         let found = false;
-        for (const e of this._entries) {
-            if (e.id === id) {
-                found = true;
-                if (this._multiple) {
-                    this.setValue([ e ]);
-                } else {
+        let entries = [];
+        if (this._multiple && Array.isArray(id)) {
+            for (const e of this._entries) {
+                if (id.includes(e.id)) {
+                    entries.push(e);
+                    found = true;
+                }
+            }
+            this.setValue(entries);
+        } else {
+            for (const e of this._entries) {
+                if (e.id === id) {
+                    found = true;
                     this.setValue(e);
                 }
             }
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 4b10ec0b7..4d04e9a9a 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -5,8 +5,7 @@ import {
     StructureType,
     LoiDebit,
     Session,
-    Solveur,
-    CalculatorType
+    Solveur
  } from "jalhyd";
 
 import { Field } from "./field";
@@ -15,8 +14,6 @@ import { StringMap } from "../../stringmap";
 import { FormulaireNode } from "./formulaire-node";
 import { FormulaireDefinition } from "../definition/form-definition";
 import { ServiceFactory } from "../../services/service-factory";
-import { FishSpecies } from 'jalhyd/build/verification/fish_species';
-import { sprintf } from 'sprintf-js';
 
 export class SelectField extends Field {
 
@@ -201,29 +198,6 @@ export class SelectField extends Field {
                 }
                 break;
 
-            // possible values depend on Session @TODO does not work, because not refreshed when Session gets new Espece nubs
-            case "verificateur_species":
-                console.log("[i] loading verif species");
-                // add UIDs of all Espece type Nubs in the session
-                const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
-                for (const en of especeNubs) {
-                    this.addEntry(
-                        new SelectEntry(
-                            en.uid,
-                            en.uid,
-                            sprintf(
-                                ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
-                                ServiceFactory.instance.formulaireService.getFormulaireFromNubId(en.uid).calculatorName
-                            )
-                        )
-                    );
-                }
-                // add all FishSpecies
-                for (let j = 0; j < Object.keys(FishSpecies).length / 2; j++) {
-                    this.addEntry(new SelectEntry(this._entriesBaseId + j, j, "Groupe d'espèces " + j));
-                }
-                break;
-
             // general case : property values taken from an enum
             default:
                 // find enum associated to property
-- 
GitLab


From a28181dc82196c525f86be7d97028dc9e3d82996 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 21 Apr 2020 15:30:23 +0200
Subject: [PATCH 018/101] Verificateur

PAB jet type is disabled when target pass is not a PAB
Species list selection is ordered
---
 .../generic-select.component.html             |  4 +--
 .../results-chart/chart-type.component.ts     |  4 +++
 .../select-field-line.component.ts            | 31 +++++++++++++++++++
 src/app/formulaire/definition/form-solveur.ts |  2 +-
 .../definition/form-verificateur.ts           | 14 +++++----
 .../elements/select-field-custom.ts           |  5 ---
 src/app/formulaire/elements/select-field.ts   |  4 ++-
 7 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index 4d420c820..ba4971cc0 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -1,7 +1,7 @@
 <mat-form-field>
-    <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple">
+    <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple" [disabled]="isDisabled">
         <mat-select-trigger *ngIf="isMultiple">
-          {{ selectedValue && selectedValue[0] ? selectedValue[0].label : '' }}
+          {{ sortedSelectedValues && sortedSelectedValues[0] ? sortedSelectedValues[0].label : '' }}
           <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
             (+ {{ selectedValue.length - 1 }} {{ selectedValue?.length === 2 ? uitextAndOther : uitextAndOthers }})
           </span>
diff --git a/src/app/components/results-chart/chart-type.component.ts b/src/app/components/results-chart/chart-type.component.ts
index 7b24c7098..a7be551c1 100644
--- a/src/app/components/results-chart/chart-type.component.ts
+++ b/src/app/components/results-chart/chart-type.component.ts
@@ -57,6 +57,10 @@ export class ChartTypeSelectComponent implements IObservable {
         return false;
     }
 
+    public get isDisabled(): boolean {
+        return false;
+    }
+
     public get showClearButton(): boolean {
         return false;
     }
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index c432c19e7..a8f76d36d 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -34,6 +34,10 @@ export class SelectFieldLineComponent implements OnInit {
         return this._select.multiple;
     }
 
+    public get isDisabled(): boolean {
+        return this._select.disabled;
+    }
+
     public get entries(): SelectEntry[] {
         if (! this._select) {
             return [];
@@ -49,6 +53,33 @@ export class SelectFieldLineComponent implements OnInit {
         return this._select.getValue();
     }
 
+    /**
+     * Present selected values in a meaningful order, for multiple select box label (… + n others)
+     */
+    public get sortedSelectedValues(): SelectEntry[] {
+        let ssv: any[] = undefined;
+        if (Array.isArray(this.selectedValue)) {
+            ssv = JSON.parse(JSON.stringify(this.selectedValue)); // array copy
+            ssv.sort((a, b) => {
+                // numbers ?
+                if (! isNaN(Number(a._value)) && ! isNaN(Number(b._value))) {
+                    return (Number(a._value) > Number(b._value)) ? 1 : ((Number(b._value) > Number(a._value)) ? -1 : 0)
+                } else {
+                    // numbers after strings @TODO convenient for Verificateur/SpeciesList, but elsewhere ?
+                    if (! isNaN(Number(a._value))) {
+                        return 1;
+                    } else if (! isNaN(Number(b._value))) {
+                        return -1;
+                    } else {
+                        // keep original order
+                        return 0;
+                    }
+                }
+            });
+        }
+        return ssv;
+    }
+
     public get isValid(): boolean {
         return (this._select.getValue() !== undefined);
     }
diff --git a/src/app/formulaire/definition/form-solveur.ts b/src/app/formulaire/definition/form-solveur.ts
index db1b2ef45..481ea5f6d 100644
--- a/src/app/formulaire/definition/form-solveur.ts
+++ b/src/app/formulaire/definition/form-solveur.ts
@@ -38,7 +38,7 @@ export class FormulaireSolveur extends FormulaireFixedVar {
     // interface Observer
 
     public update(sender: IObservable, data: any) {
-        // copied from FormDefinition, to avoid calling super.update()
+        // copied from FormDefinition, to avoid calling super.update() that would trigger an unwanted this.refreshFieldsets();
         if (sender instanceof Nub) {
             switch (data.action) {
                 case "resultUpdated":
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 7546562ae..586daaafa 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -1,6 +1,7 @@
-import { IObservable, Nub, Verificateur } from "jalhyd";
+import { IObservable, Nub, Verificateur, CalculatorType } from "jalhyd";
 
 import { SelectFieldCustom } from "../elements/select-field-custom";
+import { SelectField } from '../elements/select-field';
 import { FormulaireFixedVar } from "./form-fixedvar";
 
 /**
@@ -11,7 +12,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
     // interface Observer
 
     public update(sender: IObservable, data: any) {
-        // copied from FormDefinition, to avoid calling super.update()
+        // copied from FormDefinition, to avoid calling super.update() that would trigger an unwanted this.refreshFieldsets();
         if (sender instanceof Nub) {
             switch (data.action) {
                 case "resultUpdated":
@@ -25,13 +26,14 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
             this.reset();
         }
 
-        console.log("> update", data, sender.constructor.name);
-
         if (sender instanceof SelectFieldCustom) {
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
-                this._currentNub.properties.setPropValue("nubToVerify", data.value);
-                // @TODO refresh jet type selector
+                this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
+                // refresh jet type selector
+                const ntv = (this._currentNub as Verificateur).nubToVerify;
+                (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
+
             } else if (sender.id === "select_species_list" && data.action === "select") {
                 // update Verificateur property: Species list (string[])
                 this._currentNub.properties.setPropValue("speciesList", data.value.map((v: any) => v.value));
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index de7436625..8a7fdfeed 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -122,7 +122,6 @@ export class SelectFieldCustom extends SelectField {
                 break;
 
             case "verificateur_species":
-                console.log("[i] loading verif species");
                 // add UIDs of all Espece type Nubs in the session
                 const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
                 for (const en of especeNubs) {
@@ -208,10 +207,6 @@ export class SelectFieldCustom extends SelectField {
      */
     public setValue(v: SelectEntry | SelectEntry[]) {
         const previousSelectedEntry = this._selectedEntry;
-        /* if (Array.isArray(v)) {
-            // keep selection ordered
-            v.sort((a,b) => (a.value > b.value) ? -1 : ((b.value > a.value) ? 1 : 0));
-        } */
         this._selectedEntry = v;
         // if value changed
         let valueChanged = (
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 4d04e9a9a..70d1bf2d1 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -33,6 +33,9 @@ export class SelectField extends Field {
     /** if true, user can select multiple values */
     protected _multiple = false;
 
+    /** if true, select box is grayed out */
+    public disabled = false;
+
     /** soruce identifier for populating with available values */
     protected source: string;
 
@@ -101,7 +104,6 @@ export class SelectField extends Field {
     }
 
     public notifyValueChanged() {
-        console.log("NOT VAL CHA", this.id, this._selectedEntry)
         this.notifyObservers({
             "action": "select",
             "value": this._selectedEntry
-- 
GitLab


From cec42253d709f9684a3079e4af6eb45f38b779a5 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 10:30:13 +0200
Subject: [PATCH 019/101] Fix arraysAreEqual()

---
 src/app/util.ts | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/app/util.ts b/src/app/util.ts
index cfc9ca3af..704320407 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -163,15 +163,17 @@ export function generateValuesCombination(
 }
 
 export function arraysAreEqual(arrayA: any[], arrayB: any[], property?: string, sort = false): boolean {
+    let aA: any[] = JSON.parse(JSON.stringify(arrayA)); // array copy
+    let aB: any[] = JSON.parse(JSON.stringify(arrayB)); // array copy
     if (sort) {
-        arrayA.sort((a, b) => a-b);
-        arrayB.sort((a, b) => a-b);
+        aA.sort((a, b) => a-b);
+        aB.sort((a, b) => a-b);
     }
     let equal = true;
-    if (arrayA.length === arrayB.length) {
-        for (let i=0; i < arrayA.length; i++) {
-            const eA = arrayA[i];
-            const eB = arrayB[i];
+    if (aA.length === aB.length) {
+        for (let i=0; i < aA.length; i++) {
+            const eA = aA[i];
+            const eB = aB[i];
             if (property === undefined) {
                 equal = equal && (eA === eB);
             } else {
-- 
GitLab


From 108fdbee4260d4d39e8bb5194dbcb7e306aa71ea Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 10:31:55 +0200
Subject: [PATCH 020/101] Fix species_list select assignation and sorting

---
 .../generic-select.component.html             |  2 +-
 .../select-field-line.component.ts            | 27 -------------------
 .../definition/form-verificateur.ts           |  6 +++--
 .../elements/select-field-custom.ts           | 13 ++++++---
 src/locale/messages.en.json                   |  1 +
 src/locale/messages.fr.json                   |  1 +
 6 files changed, 17 insertions(+), 33 deletions(-)

diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index ba4971cc0..8c352a2cf 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -1,7 +1,7 @@
 <mat-form-field>
     <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple" [disabled]="isDisabled">
         <mat-select-trigger *ngIf="isMultiple">
-          {{ sortedSelectedValues && sortedSelectedValues[0] ? sortedSelectedValues[0].label : '' }}
+          {{ selectedValue && selectedValue[0] ? selectedValue[0].label : '' }}
           <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
             (+ {{ selectedValue.length - 1 }} {{ selectedValue?.length === 2 ? uitextAndOther : uitextAndOthers }})
           </span>
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index a8f76d36d..09d05640b 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -53,33 +53,6 @@ export class SelectFieldLineComponent implements OnInit {
         return this._select.getValue();
     }
 
-    /**
-     * Present selected values in a meaningful order, for multiple select box label (… + n others)
-     */
-    public get sortedSelectedValues(): SelectEntry[] {
-        let ssv: any[] = undefined;
-        if (Array.isArray(this.selectedValue)) {
-            ssv = JSON.parse(JSON.stringify(this.selectedValue)); // array copy
-            ssv.sort((a, b) => {
-                // numbers ?
-                if (! isNaN(Number(a._value)) && ! isNaN(Number(b._value))) {
-                    return (Number(a._value) > Number(b._value)) ? 1 : ((Number(b._value) > Number(a._value)) ? -1 : 0)
-                } else {
-                    // numbers after strings @TODO convenient for Verificateur/SpeciesList, but elsewhere ?
-                    if (! isNaN(Number(a._value))) {
-                        return 1;
-                    } else if (! isNaN(Number(b._value))) {
-                        return -1;
-                    } else {
-                        // keep original order
-                        return 0;
-                    }
-                }
-            });
-        }
-        return ssv;
-    }
-
     public get isValid(): boolean {
         return (this._select.getValue() !== undefined);
     }
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 586daaafa..0c7db5328 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -29,14 +29,16 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         if (sender instanceof SelectFieldCustom) {
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
-                this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
+                (this._currentNub as Verificateur).nubToVerify = data.value ? data.value.value : undefined;
                 // refresh jet type selector
                 const ntv = (this._currentNub as Verificateur).nubToVerify;
                 (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
 
             } else if (sender.id === "select_species_list" && data.action === "select") {
                 // update Verificateur property: Species list (string[])
-                this._currentNub.properties.setPropValue("speciesList", data.value.map((v: any) => v.value));
+                const caca = data.value.map((v: any) => v.value);
+                console.log("FormVerificateur.update species_list", caca);
+                (this._currentNub as Verificateur).speciesList = caca;
             }
         }
     }
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 8a7fdfeed..7b5584a50 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -17,7 +17,7 @@ export class SelectFieldCustom extends SelectField {
      */
     protected initSelectedValue() {
         const nub = this.parentForm.currentNub;
-        console.log("[X] I S V", nub.constructor.name, this.source);
+
         switch (this.source) {
 
             case "solveur_target": // Solveur, module cible (à calculer)
@@ -137,8 +137,15 @@ export class SelectFieldCustom extends SelectField {
                     );
                 }
                 // add all FishSpecies
-                for (let j = 0; j < Object.keys(FishSpecies).length / 2; j++) {
-                    this.addEntry(new SelectEntry(this._entriesBaseId + j, String(j), "Groupe d'espèces " + j));
+                for (let j = 1; j < Object.keys(FishSpecies).length / 2; j++) { // exclude "0" (SPECIES_CUSTOM)
+                    const spgId = FishSpecies[j].substring(FishSpecies[j].lastIndexOf("_") + 1);
+                    this.addEntry(
+                        new SelectEntry(
+                            this._entriesBaseId + spgId,
+                            FishSpecies[j],
+                            ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_SPECIES_GROUP") + " " + spgId
+                        )
+                    );
                 }
                 break;
         }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 88ab30d87..ee758e7d0 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -533,6 +533,7 @@
     "INFO_TRIGO_TITRE": "Trigonometric function",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
+    "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
     "INFO_VERIFICATEUR_TITRE_COURT": "Verification",
     "INFO_ESPECE_TITRE": "Fish species characteristics",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 97e80ba3f..f0a1a4d71 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -534,6 +534,7 @@
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée : %s",
+    "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
     "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
     "INFO_ESPECE_TITRE": "Caractéristiques d'une espèce",
-- 
GitLab


From 7af18d4f3a2de74dd564d137ae1d1f3fd288b361 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 10:45:38 +0200
Subject: [PATCH 021/101] Fix again

---
 src/app/formulaire/definition/form-verificateur.ts | 2 +-
 src/app/formulaire/elements/select-field-custom.ts | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 0c7db5328..92d538c98 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -29,7 +29,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         if (sender instanceof SelectFieldCustom) {
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
-                (this._currentNub as Verificateur).nubToVerify = data.value ? data.value.value : undefined;
+                this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
                 // refresh jet type selector
                 const ntv = (this._currentNub as Verificateur).nubToVerify;
                 (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 7b5584a50..393d5a0bb 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -44,7 +44,10 @@ export class SelectFieldCustom extends SelectField {
             case "verificateur_species": // Vérificateur, liste d'espèces (choix multiple)
                 const sl = (nub as Verificateur).speciesList;
                 if (sl !== undefined) {
-                    this.setValueFromId(sl.map((s) => this._entriesBaseId + s ));
+                    this.setValueFromId(sl.map((s) => {
+                        const spgId = s.substring(s.lastIndexOf("_") + 1);
+                        return this._entriesBaseId + spgId;
+                    }));
                 }
                 break;
         }
-- 
GitLab


From 508c3bbedab7e34e7cdaa14a0b2e1ffac7e6078b Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 11:14:41 +0200
Subject: [PATCH 022/101] Verificateur: make jet type selector's disabled state
 persist after calculation

---
 .../formulaire/definition/form-verificateur.ts | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 92d538c98..6c07e62c5 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -30,9 +30,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
                 this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
-                // refresh jet type selector
-                const ntv = (this._currentNub as Verificateur).nubToVerify;
-                (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
+                this.refreshJetTypeSelector();
 
             } else if (sender.id === "select_species_list" && data.action === "select") {
                 // update Verificateur property: Species list (string[])
@@ -43,4 +41,18 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         }
     }
 
+    protected compute() {
+        this.runNubCalc(this.currentNub);
+        this.reaffectResultComponents();
+        // do not refreshFieldsets() (useless here) or jet type selector's disabled state will be reset
+    }
+
+    /**
+     * Disables Jet Type selector if target pass is not a Pab
+     */
+    protected refreshJetTypeSelector() {
+        const ntv = (this._currentNub as Verificateur).nubToVerify;
+        (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
+    }
+
 }
-- 
GitLab


From 918668437b5ebaa6f3eefc76a1cfa6d5ca308afe Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 11:45:08 +0200
Subject: [PATCH 023/101] Remove debug message

---
 src/app/formulaire/definition/form-verificateur.ts | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 6c07e62c5..64651ced6 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -34,9 +34,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
 
             } else if (sender.id === "select_species_list" && data.action === "select") {
                 // update Verificateur property: Species list (string[])
-                const caca = data.value.map((v: any) => v.value);
-                console.log("FormVerificateur.update species_list", caca);
-                (this._currentNub as Verificateur).speciesList = caca;
+                (this._currentNub as Verificateur).speciesList = data.value.map((v: any) => v.value);
             }
         }
     }
-- 
GitLab


From cd147f2513312730a5642e88c589c491288092ba Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 15:21:18 +0200
Subject: [PATCH 024/101] Verificateur: translation of species groups names

---
 .../elements/select-field-custom.ts           |  2 +-
 src/locale/messages.en.json                   | 20 +++++++++++++++++++
 src/locale/messages.fr.json                   | 20 +++++++++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 393d5a0bb..86d32757d 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -146,7 +146,7 @@ export class SelectFieldCustom extends SelectField {
                         new SelectEntry(
                             this._entriesBaseId + spgId,
                             FishSpecies[j],
-                            ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_SPECIES_GROUP") + " " + spgId
+                            ServiceFactory.instance.i18nService.localizeText("INFO_ENUM_" + FishSpecies[j]) + " (" + spgId + ")"
                         )
                     );
                 }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index ee758e7d0..009d6aa43 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -139,6 +139,26 @@
     "INFO_ENUM_OUVRAGE_Q_REGIME_3": "Zero flow",
     "INFO_ENUM_PARFLOWREGIME_0": "Free",
     "INFO_ENUM_PARFLOWREGIME_1": "Submerged",
+    "INFO_ENUM_SPECIES_1": "Salmon, trout [50-100]",
+    "INFO_ENUM_SPECIES_2": "Mules",
+    "INFO_ENUM_SPECIES_3a": "Great Shad",
+    "INFO_ENUM_SPECIES_3b": "Shad shad",
+    "INFO_ENUM_SPECIES_3c": "Sea lamprey",
+    "INFO_ENUM_SPECIES_4a": "Trout [25-55]",
+    "INFO_ENUM_SPECIES_4b": "River trout [15-30]",
+    "INFO_ENUM_SPECIES_5": "Aspe, pike",
+    "INFO_ENUM_SPECIES_6": "Common Shadow",
+    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu",
+    "INFO_ENUM_SPECIES_7b": "River Lamprey",
+    "INFO_ENUM_SPECIES_8a": "Common Carp",
+    "INFO_ENUM_SPECIES_8b": "Common bream, pike-perch",
+    "INFO_ENUM_SPECIES_8c": "Brim bream, ide, monkfish, perch, tench",
+    "INFO_ENUM_SPECIES_8d": "Vandoises",
+    "INFO_ENUM_SPECIES_9a": "Ablette, cockle, carrassin, roach...",
+    "INFO_ENUM_SPECIES_9b": "Apron, sculpins, bolts, loche...",
+    "INFO_ENUM_SPECIES_10": "Able, cowherd, stickleback, minnows",
+    "INFO_ENUM_SPECIES_11a": "European eel [yellow]",
+    "INFO_ENUM_SPECIES_11b": "European Eel [glass eel]",
     "INFO_ENUM_STRUCTUREFLOWMODE_0": "Weir",
     "INFO_ENUM_STRUCTUREFLOWMODE_1": "Orifice",
     "INFO_ENUM_STRUCTUREFLOWMODE_2": "Zero flow",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index f0a1a4d71..9279c70ed 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -139,6 +139,26 @@
     "INFO_ENUM_OUVRAGE_Q_REGIME_3": "Débit nul",
     "INFO_ENUM_PARFLOWREGIME_0": "Dénoyé",
     "INFO_ENUM_PARFLOWREGIME_1": "Noyé",
+    "INFO_ENUM_SPECIES_1": "Saumon, truite [50-100]",
+    "INFO_ENUM_SPECIES_2": "Mulets",
+    "INFO_ENUM_SPECIES_3a": "Grande Alose",
+    "INFO_ENUM_SPECIES_3b": "Alose feinte",
+    "INFO_ENUM_SPECIES_3c": "Lamproie marine",
+    "INFO_ENUM_SPECIES_4a": "Truite [25-55]",
+    "INFO_ENUM_SPECIES_4b": "Truite de rivière [15-30]",
+    "INFO_ENUM_SPECIES_5": "Aspe, brochet",
+    "INFO_ENUM_SPECIES_6": "Ombre commun",
+    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu",
+    "INFO_ENUM_SPECIES_7b": "Lamproie fluviatile",
+    "INFO_ENUM_SPECIES_8a": "Carpe commune",
+    "INFO_ENUM_SPECIES_8b": "Brème commune, sandre",
+    "INFO_ENUM_SPECIES_8c": "Brème bordelière, ide, lotte, perche, tanche",
+    "INFO_ENUM_SPECIES_8d": "Vandoises",
+    "INFO_ENUM_SPECIES_9a": "Ablette, blageon, carrassin, gardon...",
+    "INFO_ENUM_SPECIES_9b": "Apron, chabots, goujons, loche...",
+    "INFO_ENUM_SPECIES_10": "Able, bouvière, épinoche(tte), vairons",
+    "INFO_ENUM_SPECIES_11a": "Anguille européenne [jaune]",
+    "INFO_ENUM_SPECIES_11b": "Anguille européenne [civelle]",
     "INFO_ENUM_STRUCTUREFLOWMODE_0": "Surface libre",
     "INFO_ENUM_STRUCTUREFLOWMODE_1": "En charge",
     "INFO_ENUM_STRUCTUREFLOWMODE_2": "Débit nul",
-- 
GitLab


From 3a2b73b9de838bbfe34bf3ae6d165875726ad0a0 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 15:38:52 +0200
Subject: [PATCH 025/101] Translation for verificateur success message

---
 src/locale/messages.en.json | 1 +
 src/locale/messages.fr.json | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 009d6aa43..cb4d578b0 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -552,6 +552,7 @@
     "INFO_YAXB_TITRE_COURT": "Linear f.",
     "INFO_TRIGO_TITRE": "Trigonometric function",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
+    "INFO_VERIF_OK": "Crossing criteria are met for all species",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 9279c70ed..48087a03a 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -553,6 +553,7 @@
     "INFO_YAXB_TITRE_COURT": "F. affine",
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
+    "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée : %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
-- 
GitLab


From 416512b91842dca78a30e6f24a54eaec8b69dcff Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 23 Apr 2020 11:47:21 +0200
Subject: [PATCH 026/101] Update translation

---
 src/locale/messages.en.json | 4 ++--
 src/locale/messages.fr.json | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index cb4d578b0..7087d4297 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -606,8 +606,8 @@
     "ERROR_VERIF_MR_VMAX": "Maximum speed %V% too high (maximum: %maxV%)",
     "ERROR_VERIF_MR_YMIN": "Water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "None of the aprons is crossable",
-    "ERROR_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
-    "ERROR_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
+    "WARNING_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
+    "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
     "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum: %maxDH%)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 48087a03a..1d5f56c7f 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -607,8 +607,8 @@
     "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum: %maxV%)",
     "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
-    "ERROR_VERIF_MRC_VMAX_APRON_N": "Radier n°%N% : vitesse maximale %V% trop élevée (maximum: %maxV%)",
-    "ERROR_VERIF_MRC_YMIN_APRON_N": "Radier n°%N% : tirant d'eau %Y% insuffisant (minimum: %minY%)",
+    "WARNING_VERIF_MRC_VMAX_APRON_N": "Radier n°%N% : vitesse maximale %V% trop élevée (maximum: %maxV%)",
+    "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N% : tirant d'eau %Y% insuffisant (minimum: %minY%)",
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
     "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N% : chute %DH% trop importante (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval : chute %DH% trop importante (maximum: %maxDH%)",
-- 
GitLab


From 6e9360b2b61ffab37fc87a7e6a4caa99aeaa9f77 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 23 Apr 2020 15:46:10 +0200
Subject: [PATCH 027/101] Espece: split parameters into 3 fieldsets

---
 src/app/calculators/espece/config.json | 18 +++++++++++++++---
 src/app/calculators/espece/en.json     |  4 +++-
 src/app/calculators/espece/fr.json     |  4 +++-
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index d11f5f33e..963ce4147 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -1,6 +1,6 @@
 [
     {
-        "id": "fs_param_species",
+        "id": "fs_param_pab",
         "type": "fieldset",
         "fields": [
             {
@@ -22,7 +22,13 @@
             {
                 "id": "HMin",
                 "allowEmpty": true
-            },
+            }
+        ]
+    },
+    {
+        "id": "fs_param_pam",
+        "type": "fieldset",
+        "fields": [
             {
                 "id": "YMin",
                 "allowEmpty": true
@@ -30,7 +36,13 @@
             {
                 "id": "VMax",
                 "allowEmpty": true
-            },
+            }
+        ]
+    },
+    {
+        "id": "fs_param_par",
+        "type": "fieldset",
+        "fields": [
             {
                 "id": "YMinSB",
                 "allowEmpty": true
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index 2f28082b7..b98d29c43 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -1,5 +1,7 @@
 {
-    "fs_param_species": "Species parameters",
+    "fs_param_pab": "Fish ladders",
+    "fs_param_pam": "Rock-ramp fishpasses",
+    "fs_param_par": "Humpback fishways",
 
     "DHMax": "Maximal fall",
     "BMin": "Minimal slot or weir width",
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index 8100e4607..bb190a2ff 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -1,5 +1,7 @@
 {
-    "fs_param_species": "Paramètres de l'espèce",
+    "fs_param_pab": "Passes à bassins",
+    "fs_param_pam": "Passes à macrorugosités",
+    "fs_param_par": "Passes à ralentisseurs",
 
     "DHMax": "Chute maximale",
     "BMin": "Largeur minimale de fente ou échancrure latérale",
-- 
GitLab


From ed527d7252aa45290f1d40acabf9deb1c40ffa8b Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 27 Apr 2020 11:10:17 +0200
Subject: [PATCH 028/101] Update translation for Verificateur

---
 src/locale/messages.en.json | 6 ++++--
 src/locale/messages.fr.json | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 7087d4297..f42c1c58a 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -613,8 +613,8 @@
     "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "ERROR_VERIF_PAB_JETS": "Wall #%N%: at least one jet of type %required% is required, jets of type %forbidden% are forbidden",
-    "ERROR_VERIF_PAB_JETS_DW": "Downwall: at least one jet of type %required% is required, jets of type %forbidden% are forbidden",
+    "ERROR_VERIF_PAB_JETS": "Wall #%N%: at least one jet of type %required% is required",
+    "ERROR_VERIF_PAB_JETS_DW": "Downwall: at least one jet of type %required% is required",
     "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
@@ -622,5 +622,7 @@
     "ERROR_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
+    "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
+    "ERROR_VERIF_SPECIES_KO": "Crossability criteria are not met for species group %speciesGroup%",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type"
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 1d5f56c7f..00ff6492e 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -614,8 +614,8 @@
     "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval : chute %DH% trop importante (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS% : largeur de l'échancrure ou de la fente %L% insuffisante (minimum: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS% : largeur de l'échancrure ou de la fente %L% insuffisante (minimum: %minB%)",
-    "ERROR_VERIF_PAB_JETS": "Cloison n°%N% : au moins un jet de type %required% requis, jets de type %forbidden% interdits",
-    "ERROR_VERIF_PAB_JETS_DW": "Cloison aval : au moins un jet de type %required% requis, jets de type %forbidden% interdits",
+    "ERROR_VERIF_PAB_JETS": "Cloison n°%N% : au moins un jet de type %required% requis",
+    "ERROR_VERIF_PAB_JETS_DW": "Cloison aval : au moins un jet de type %required% requis",
     "ERROR_VERIF_PAB_LMIN": "Cloison n°%N% : longueur de bassin %LB% insuffisante (minimum: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS% : charge sur l'échancrure %h1% insuffisante (minimum: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS% : charge sur l'échancrure %h1% insuffisante (minimum: %minH%)",
@@ -623,5 +623,7 @@
     "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N% : profondeur de bassin %PB% inférieure à 2x la chute %DH%",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum: %minY%)",
+    "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
+    "ERROR_VERIF_SPECIES_KO": "Le franchissement est impossible pour le groupe d'espèces %speciesGroup%",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
 }
-- 
GitLab


From 86583ec722624bb50b884ec4c4d38b98dd0ee007 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 28 Apr 2020 18:17:16 +0200
Subject: [PATCH 029/101] Verificateur: reorganize Espece fields, translations

---
 src/app/calculators/espece/config.json        | 26 +++++-
 src/app/calculators/espece/en.json            | 21 +++--
 src/app/calculators/espece/fr.json            | 21 +++--
 src/app/calculators/verificateur/config.json  |  6 --
 .../definition/form-verificateur.ts           |  9 --
 src/locale/messages.en.json                   | 11 ++-
 src/locale/messages.fr.json                   | 89 ++++++++++---------
 7 files changed, 103 insertions(+), 80 deletions(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index 963ce4147..096e616f0 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -1,10 +1,10 @@
 [
     {
-        "id": "fs_param_pab",
+        "id": "fs_param_pab_s",
         "type": "fieldset",
         "fields": [
             {
-                "id": "DHMax",
+                "id": "DHMaxS",
                 "allowEmpty": true
             },
             {
@@ -12,11 +12,29 @@
                 "allowEmpty": true
             },
             {
-                "id": "PMin",
+                "id": "PMinS",
                 "allowEmpty": true
             },
             {
-                "id": "LMin",
+                "id": "LMinS",
+                "allowEmpty": true
+            }
+        ]
+    },
+    {
+        "id": "fs_param_pab_p",
+        "type": "fieldset",
+        "fields": [
+            {
+                "id": "DHMaxP",
+                "allowEmpty": true
+            },
+            {
+                "id": "PMinP",
+                "allowEmpty": true
+            },
+            {
+                "id": "LMinP",
                 "allowEmpty": true
             },
             {
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index b98d29c43..11f45ce1a 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -1,22 +1,29 @@
 {
-    "fs_param_pab": "Fish ladders",
+    "fs_param_pab_s": "Fish ladders, surface jets or orifices",
+    "fs_param_pab_p": "Fish ladders, diving jets",
     "fs_param_pam": "Rock-ramp fishpasses",
     "fs_param_par": "Humpback fishways",
 
-    "DHMax": "Maximal fall",
+    "DHMaxS": "Maximal fall",
+    "DHMaxP": "Maximal fall",
     "BMin": "Minimal slot or weir width",
-    "PMin": "Minimal basin width",
-    "LMin": "Minimal basin length",
+    "PMinS": "Minimal basin width",
+    "PMinP": "Minimal basin width",
+    "LMinS": "Minimal basin length",
+    "LMinP": "Minimal basin length",
     "HMin": "Minimal head on weir",
     "YMin": "Minimal water level",
     "VMax": "Maximal flow velocity",
     "YMinSB": "Minimal water level on superactive baffles",
     "YMinPB": "Minimal water level on plane baffles",
 
-    "UNIT_DHMax": "m",
+    "UNIT_DHMaxS": "m",
+    "UNIT_DHMaxP": "m",
     "UNIT_BMin": "m",
-    "UNIT_PMin": "m",
-    "UNIT_LMin": "m",
+    "UNIT_PMinS": "m",
+    "UNIT_PMinP": "m",
+    "UNIT_LMinS": "m",
+    "UNIT_LMinP": "m",
     "UNIT_HMin": "m",
     "UNIT_YMin": "m",
     "UNIT_VMax": "m/s",
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index bb190a2ff..2c2ae4107 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -1,22 +1,29 @@
 {
-    "fs_param_pab": "Passes à bassins",
+    "fs_param_pab_s": "Passes à bassins, jets de surface et orifices",
+    "fs_param_pab_p": "Passes à bassins, jets plongeants",
     "fs_param_pam": "Passes à macrorugosités",
     "fs_param_par": "Passes à ralentisseurs",
 
-    "DHMax": "Chute maximale",
+    "DHMaxS": "Chute maximale",
+    "DHMaxP": "Chute maximale",
     "BMin": "Largeur minimale de fente ou échancrure latérale",
-    "PMin": "Profondeur minimale de bassin",
-    "LMin": "Longueur minimale de bassin",
+    "PMinS": "Profondeur minimale de bassin",
+    "PMinP": "Profondeur minimale de bassin",
+    "LMinS": "Longueur minimale de bassin",
+    "LMinP": "Longueur minimale de bassin",
     "HMin": "Charge minimale sur l'échancrure",
     "YMin": "Tirant d'eau minimal",
     "VMax": "Vitesse d'écoulement maximale",
     "YMinSB": "Tirant d'eau minimal sur les ralentisseurs suractifs de fond",
     "YMinPB": "Tirant d'eau minimal sur les ralentisseurs plans",
 
-    "UNIT_DHMax": "m",
+    "UNIT_DHMaxS": "m",
+    "UNIT_DHMaxP": "m",
     "UNIT_BMin": "m",
-    "UNIT_PMin": "m",
-    "UNIT_LMin": "m",
+    "UNIT_PMinS": "m",
+    "UNIT_PMinP": "m",
+    "UNIT_LMinS": "m",
+    "UNIT_LMinP": "m",
     "UNIT_HMin": "m",
     "UNIT_YMin": "m",
     "UNIT_VMax": "m/s",
diff --git a/src/app/calculators/verificateur/config.json b/src/app/calculators/verificateur/config.json
index fb1779508..f3a9a7a2a 100644
--- a/src/app/calculators/verificateur/config.json
+++ b/src/app/calculators/verificateur/config.json
@@ -7,12 +7,6 @@
                 "id": "select_target_pass",
                 "type": "select_custom",
                 "source": "verificateur_target"
-            },
-            {
-                "type": "select",
-                "id": "select_pab_jet_type",
-                "property": "pabJetType",
-                "default": "SURFACE"
             }
         ]
     },
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 64651ced6..413343c32 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -30,7 +30,6 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
                 this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
-                this.refreshJetTypeSelector();
 
             } else if (sender.id === "select_species_list" && data.action === "select") {
                 // update Verificateur property: Species list (string[])
@@ -45,12 +44,4 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         // do not refreshFieldsets() (useless here) or jet type selector's disabled state will be reset
     }
 
-    /**
-     * Disables Jet Type selector if target pass is not a Pab
-     */
-    protected refreshJetTypeSelector() {
-        const ntv = (this._currentNub as Verificateur).nubToVerify;
-        (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
-    }
-
 }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index f42c1c58a..c4d501706 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -609,12 +609,14 @@
     "WARNING_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
-    "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet&nbsp;: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet&nbsp;: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Downwall: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Downwall: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "ERROR_VERIF_PAB_JETS": "Wall #%N%: at least one jet of type %required% is required",
-    "ERROR_VERIF_PAB_JETS_DW": "Downwall: at least one jet of type %required% is required",
     "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
@@ -624,5 +626,6 @@
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_SPECIES_KO": "Crossability criteria are not met for species group %speciesGroup%",
+    "INFO_VERIF_SPECIES_OK": "Crossability criteria are met for species group %speciesGroup%",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type"
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 00ff6492e..56eddf83d 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -10,7 +10,7 @@
     "WARNING_ERRORS_ABSTRACT": "%nb% erreurs rencontrées lors du calcul",
     "ERROR_BIEF_Z1_CALC_FAILED": "Impossible de calculer la cote amont (calcul interrompu avant l'amont)",
     "ERROR_BIEF_Z2_CALC_FAILED": "Impossible de calculer la cote aval (calcul interrompu avant l'aval)",
-    "ERROR_DICHO_CONVERGE": "La dichotomie n'a pas pu converger. Dernière approximation: %lastApproximation%",
+    "ERROR_DICHO_CONVERGE": "La dichotomie n'a pas pu converger. Dernière approximation&nbsp;: %lastApproximation%",
     "ERROR_DICHO_FUNCTION_VARIATION": "Dichotomie&nbsp;: impossible de determiner le sens de  variation de la fonction",
     "ERROR_DICHO_INIT_DOMAIN": "Dichotomie&nbsp;: la valeur cible %targetSymbol%=%targetValue% n'existe pas pour la variable %variableSymbol% prise dans l'intervalle %variableInterval%",
     "ERROR_DICHO_INVALID_STEP_GROWTH": "Dichotomie&nbsp;: l'augmentation du pas pour la recherche de l'intervalle de départ est incorrecte (=0)",
@@ -23,7 +23,7 @@
     "WARNING_ERROR_IN_CALC_CHAIN_STEPS": "Des erreurs sont survenues durant le calcul en chaîne",
     "ERROR_INTERVAL_OUTSIDE": "Intervalle&nbsp;: la valeur %value% est hors de l'intervalle %interval%",
     "ERROR_INTERVAL_UNDEF": "Interval&nbsp;: valeur 'undefined' incorrecte",
-    "ERROR_INVALID_AT_POSITION": "Position %s :",
+    "ERROR_INVALID_AT_POSITION": "Position %s&nbsp;:",
     "ERROR_LOADING_SESSION": "Impossible de charger la session",
     "ERROR_MINMAXSTEP_MAX": "La valeur n'est pas dans ]%s,%s]",
     "ERROR_MINMAXSTEP_MIN": "La valeur n'est pas dans [%s,%s[",
@@ -62,10 +62,10 @@
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCOR": "Non convergence du calcul de la hauteur correspondante (Méthode de Newton)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HNORMALE": "Non convergence du calcul de la hauteur normale (Méthode de Newton)",
     "ERROR_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "La pente est négative ou nulle, la hauteur normale est infinie",
-    "ERROR_SECTION_SURFACE_NULLE": "Section : calcul impossible à cause d'une surface nulle",
+    "ERROR_SECTION_SURFACE_NULLE": "Section&nbsp;: calcul impossible à cause d'une surface nulle",
     "ERROR_SOMETHING_FAILED_IN_CHILD": "Le calcul du module enfant n°%number% a échoué",
     "ERROR_SOLVEUR_NO_VARIATED_PARAMS_ALLOWED": "Le solveur ne peut pas être utilisé avec une chaîne de modules contenant des paramètres variés",
-    "ERROR_STRUCTURE_Q_TROP_ELEVE": "Le débit passant par les autres ouvrages est trop élevé: le paramètre demandé n'est pas calculable.",
+    "ERROR_STRUCTURE_Q_TROP_ELEVE": "Le débit passant par les autres ouvrages est trop élevé&nbsp;: le paramètre demandé n'est pas calculable.",
     "INFO_CALCULATOR_CALC_NAME": "Nom du module de calcul",
     "INFO_CALCULATOR_CALCULER": "Calculer",
     "INFO_CALCULATOR_CLONE": "Dupliquer",
@@ -85,7 +85,7 @@
     "INFO_BIEF_TITRE": "Cotes amont/aval d'un bief",
     "INFO_CLOISONS_TITRE_COURT": "Cloisons",
     "INFO_CLOISONS_TITRE": "Passe à bassins&nbsp;: Cloisons",
-    "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "Les modules suivants dépendent de celui que vous êtes en train de fermer :",
+    "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "Les modules suivants dépendent de celui que vous êtes en train de fermer&nbsp;:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Attention&nbsp;! Les paramètres et résultats du module de calcul seront perdus.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Fermeture du module de calcul",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Concentration de blocs",
@@ -105,8 +105,8 @@
     "INFO_DIALOG_COMPUTED_VALUE_TITLE": "Modifier la valeur initiale",
     "INFO_DIALOG_EDIT_PAB_INTERPOLATION_BOUNDS": "entre %s et %s",
     "INFO_DIALOG_EDIT_PAB_N_DEVICES": "%s ouvrage(s)",
-    "INFO_DIALOG_EDIT_PAB_N_WALLS": "%s cloison(s) : %s ouvrage(s)",
-    "INFO_DIALOG_EDIT_PAB_N_WALLS_P_DEVICES": "%s cloison(s) + %s ouvrage(s) : %s ouvrages",
+    "INFO_DIALOG_EDIT_PAB_N_WALLS": "%s cloison(s)&nbsp;: %s ouvrage(s)",
+    "INFO_DIALOG_EDIT_PAB_N_WALLS_P_DEVICES": "%s cloison(s) + %s ouvrage(s)&nbsp;: %s ouvrages",
     "INFO_DIALOG_EDIT_PAB_OPTION_VARIABLE": "Variable à modifier",
     "INFO_DIALOG_EDIT_PAB_OPTION_SET_VALUE": "Valeur fixe",
     "INFO_DIALOG_EDIT_PAB_OPTION_DELTA": "Delta",
@@ -116,7 +116,7 @@
     "INFO_DIALOG_ERROR_LOADING_FILE": "La syntaxe du fichier semble incorrecte",
     "INFO_DIALOG_FILE_IS_EMPTY": "Le fichier ne contient aucun module",
     "INFO_DIALOG_FIX_MISSING_DEPENDENCIES": "Résoudre les dépendances",
-    "INFO_DIALOG_FORMAT_VERSIONS_MISMATCH": "Mauvaise version du format de fichier (fichier: %s, jalhyd: %s)",
+    "INFO_DIALOG_FORMAT_VERSIONS_MISMATCH": "Mauvaise version du format de fichier (fichier&nbsp;: %s, jalhyd&nbsp;: %s)",
     "INFO_DIALOG_LOAD_SESSION_FILENAME": "Choisir un fichier",
     "INFO_DIALOG_LOAD_SESSION_TITLE": "Charger des modules de calcul",
     "INFO_DIALOG_PAB_NB": "Nombre de chutes",
@@ -254,12 +254,12 @@
     "INFO_LIB_CLOISON": "Cloison n°",
     "INFO_LIB_COTE": "Cote (m)",
     "INFO_LIB_COTE_VANNE_LEVANTE": "Cote vanne levante",
-    "INFO_LIB_CV": "Cv: Coefficient de vitesse d'approche",
-    "INFO_LIB_CVQT": "CV.QT: Débit corrigé",
+    "INFO_LIB_CV": "Cv&nbsp;: Coefficient de vitesse d'approche",
+    "INFO_LIB_CVQT": "CV.QT&nbsp;: Débit corrigé",
     "INFO_LIB_DH": "Chute",
-    "INFO_LIB_DHR": "DHR: Chute résiduelle",
+    "INFO_LIB_DHR": "DHR&nbsp;: Chute résiduelle",
     "INFO_LIB_DISTANCE_AMONT": "Distance depuis l'amont (m)",
-    "INFO_LIB_EC": "EC: Énergie cinétique",
+    "INFO_LIB_EC": "EC&nbsp;: Énergie cinétique",
     "INFO_LIB_ENUM_MACRORUGOFLOWTYPE": "Type d'écoulement",
     "INFO_LIB_ENUM_PARFLOWREGIME": "Régime",
     "INFO_LIB_FLU": "Ligne d'eau fluviale",
@@ -451,16 +451,16 @@
     "INFO_PARAMFIELD_PARAMVARIER_EXT_STRATEGY_REPEAT_LAST": "Répéter la dernière valeur",
     "INFO_PARAMFIELD_PARAMVARIER_EXT_STRATEGY_RECYCLE": "Réutiliser les valeurs",
     "INFO_PARAMFIELD_PARAMVARIER_IMPORT_FICHIER": "Importer un fichier",
-    "INFO_PARAMFIELD_PARAMVARIER_MINMAXSTEP": "min : %s, max : %s, pas : %s",
+    "INFO_PARAMFIELD_PARAMVARIER_MINMAXSTEP": "min&nbsp;: %s, max&nbsp;: %s, pas&nbsp;: %s",
     "INFO_PARAMFIELD_PARAMVARIER_MODE": "Mode",
     "INFO_PARAMFIELD_PARAMVARIER_SEPARATEUR_DECIMAL": "Séparateur décimal",
     "INFO_PARAMFIELD_PARAMVARIER_SEPARATEUR_POINT": ". (point)",
     "INFO_PARAMFIELD_PARAMVARIER_SEPARATEUR_VIRGULE": ", (virgule)",
     "INFO_PARAMFIELD_PARAMVARIER_SHOW_CHART": "Afficher le graphique des valeurs",
     "INFO_PARAMFIELD_PARAMVARIER_TITLE": "Valeurs multiples",
-    "INFO_PARAMFIELD_PARAMVARIER_VALUES_FORMAT_ERROR": "Format incorrect; séparateurs acceptés: %s",
+    "INFO_PARAMFIELD_PARAMVARIER_VALUES_FORMAT_ERROR": "Format incorrect; séparateurs acceptés&nbsp;: %s",
     "INFO_PARAMFIELD_PARAMVARIER_VALUES_FORMAT": "Liste de valeurs",
-    "INFO_PARAMFIELD_PARAMVARIER_VALUES": "Valeurs :",
+    "INFO_PARAMFIELD_PARAMVARIER_VALUES": "Valeurs&nbsp;:",
     "INFO_PARAMFIELD_PARAMVARIER": "varier",
     "INFO_PARAMFIELD_PASVARIATION": "Avec un pas de",
     "INFO_PARAMFIELD_VALEURMAXI": "À la valeur maximum",
@@ -471,7 +471,7 @@
     "INFO_QUICKNAV_CHARTS": "graphiques",
     "INFO_QUICKNAV_INPUT": "données",
     "INFO_QUICKNAV_RESULTS": "résultats",
-    "WARNING_PROBLEMS_ENCOUNTERED": "Des problèmes sont survenus durant le calcul (info: %info%, avertissement: %warning%, erreur: %error%)",
+    "WARNING_PROBLEMS_ENCOUNTERED": "Des problèmes sont survenus durant le calcul (info&nbsp;: %info%, avertissement&nbsp;: %warning%, erreur&nbsp;: %error%)",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "R. uniforme",
     "INFO_REGIMEUNIFORME_TITRE": "Régime uniforme",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Condition limite aval >= Hauteur critique&nbsp;: calcul de la partie fluviale à partir de l'aval",
@@ -487,7 +487,7 @@
     "INFO_REMOUSRESULTS_TIRANT": "Tirant d'eau (m)",
     "INFO_REMOUSRESULTS_TIRANTCRITIQUE": "Tirant d'eau critique",
     "INFO_REMOUSRESULTS_TIRANTNORMAL": "Tirant d'eau normal",
-    "INFO_REPORT_BUG_BODY": "Ceci est un rapport d'erreur.\n\nMerci de décrire rapidement ci-dessous le problème rencontré, et les étapes qui vous y ont mené :\n\n\n\n\n--- État de la session en cours - ne pas modifier le texte ci-dessous ---\n--------------------------------------------------------------------------------------------\n\n",
+    "INFO_REPORT_BUG_BODY": "Ceci est un rapport d'erreur.\n\nMerci de décrire rapidement ci-dessous le problème rencontré, et les étapes qui vous y ont mené&nbsp;:\n\n\n\n\n--- État de la session en cours - ne pas modifier le texte ci-dessous ---\n--------------------------------------------------------------------------------------------\n\n",
     "INFO_REPORT_BUG_SUBJECT": "Rapport d'erreur",
     "INFO_REQUIRES": "dépend de",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Exporter en XLSX",
@@ -499,7 +499,7 @@
     "INFO_SETUP_ENABLE_EMPTY_FIELDS": "Créer les nouveaux modules avec des champs vides (aucune valeur par défaut)",
     "INFO_SETUP_ENABLE_NOTIFICATIONS": "Activer les notifications à l'écran",
     "INFO_SETUP_LANGUAGE": "Langue",
-    "INFO_SETUP_NEWTON_MAX_ITER": "Solveur : nombre d'itérations maximum",
+    "INFO_SETUP_NEWTON_MAX_ITER": "Solveur&nbsp;: nombre d'itérations maximum",
     "INFO_SETUP_PRECISION_AFFICHAGE": "Nombre de décimales affichées",
     "INFO_SETUP_PRECISION_CALCUL": "Précision de calcul",
     "INFO_SETUP_RESTORE_DEFAULT_VALUES": "Restaurer les valeurs par défaut",
@@ -539,7 +539,7 @@
     "INFO_THEME_VERIFICATION_TITRE": "Vérification de passes",
     "INFO_TITREJOURNAL": "Journal de calcul",
     "INFO_TITREJOURNAL_GLOBAL": "Synthèse du journal de calcul",
-    "INFO_WELCOME_CONTENT": "<p>Le logiciel Cassiopée a été développé par le pôle R&D écohydraulique regroupant l'<a href=\"https://ofb.gouv.fr\" target=\"_blank\">OFB</a> (Office Français de la Biodiversité) et l’<a href=\"https://www.imft.fr\" target=\"_blank\">IMFT</a> (Institut de mécanique des fluides de Toulouse) et par l'<a href=\"http://g-eau.fr\" target=\"_blank\">UMR G-EAU</a> (UMR Gestion de l'Eau, Acteurs, Usages).</p><p>Il regroupe des outils d'aide à la conception des dispositifs de franchissement piscicoles pour la montaison et la dévalaison ainsi que des outils de calcul hydraulique utiles pour l'ingénierie en environnement et agriculture.</p><p>Pour plus d'informations, consulter les <a href=\"assets/docs/fr/mentions_legales.html\" target=\"_blank\">mentions légales</a> et la <a href=\"assets/docs/fr/index.html\" target=\"_blank\">documentation</a>.</p>",
+    "INFO_WELCOME_CONTENT": "<p>Le logiciel Cassiopée a été développé par le pôle R&D écohydraulique regroupant l'<a href=\"https&nbsp;://ofb.gouv.fr\" target=\"_blank\">OFB</a> (Office Français de la Biodiversité) et l’<a href=\"https&nbsp;://www.imft.fr\" target=\"_blank\">IMFT</a> (Institut de mécanique des fluides de Toulouse) et par l'<a href=\"http&nbsp;://g-eau.fr\" target=\"_blank\">UMR G-EAU</a> (UMR Gestion de l'Eau, Acteurs, Usages).</p><p>Il regroupe des outils d'aide à la conception des dispositifs de franchissement piscicoles pour la montaison et la dévalaison ainsi que des outils de calcul hydraulique utiles pour l'ingénierie en environnement et agriculture.</p><p>Pour plus d'informations, consulter les <a href=\"assets/docs/fr/mentions_legales.html\" target=\"_blank\">mentions légales</a> et la <a href=\"assets/docs/fr/index.html\" target=\"_blank\">documentation</a>.</p>",
     "INFO_WELCOME_SUBTITLE": "Modules de calcul d'hydraulique",
     "INFO_EXAMPLE_LABEL_CHANNEL_FLOW": "Débit d'un chenal avec ouvrages",
     "INFO_EXAMPLE_LABEL_PAB_COMPLETE": "Passe à bassins type",
@@ -554,7 +554,7 @@
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
-    "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée : %s",
+    "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée&nbsp;: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
     "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
@@ -571,19 +571,19 @@
     "WARNING_STRUCTUREKIVI_PELLE_TROP_FAIBLE": "La pelle du seuil doit mesurer au moins 0,1 m. Le coefficient béta est forcé à 0",
     "WARNING_VANLEV_ZDV_INF_MIN": "Seuil régulé&nbsp;: cote minimale de seuil atteinte",
     "WARNING_VANLEV_ZDV_SUP_MAX": "Seuil régulé&nbsp;: cote maximale de seuil atteinte",
-    "WARNING_GRILLE_ALPHA_GREATER_THAN_45": "Préconisation pour le guidage des poissons : α ≤ 45°",
-    "WARNING_GRILLE_BETA_GREATER_THAN_26": "Préconisation pour le guidage des poissons : β ≤ 26°",
-    "WARNING_GRILLE_VN_GREATER_THAN_05": "Préconisation pour éviter le placage des poissons sur le plan de grille (barrière physique) ou leur passage prématuré au travers (barrière comportementale) : VN ≤ 0.5 m/s.<br>Au-delà de la valeur moyenne calculée ici, se reporter aux préconisations tirées de la caractérisation expérimentale des valeurs effectives de vitesses.",
+    "WARNING_GRILLE_ALPHA_GREATER_THAN_45": "Préconisation pour le guidage des poissons&nbsp;: α ≤ 45°",
+    "WARNING_GRILLE_BETA_GREATER_THAN_26": "Préconisation pour le guidage des poissons&nbsp;: β ≤ 26°",
+    "WARNING_GRILLE_VN_GREATER_THAN_05": "Préconisation pour éviter le placage des poissons sur le plan de grille (barrière physique) ou leur passage prématuré au travers (barrière comportementale)&nbsp;: VN ≤ 0.5 m/s.<br>Au-delà de la valeur moyenne calculée ici, se reporter aux préconisations tirées de la caractérisation expérimentale des valeurs effectives de vitesses.",
     "WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2": "Cette formule n'est pas conseillée pour une vitesse non comprise entre 0.4 et 2 m/s",
     "WARNING_UPSTREAM_BOTTOM_HIGHER_THAN_WATER": "La cote de l'eau à l'amont est plus basse ou égale à la cote de fond",
     "WARNING_DOWNSTREAM_BOTTOM_HIGHER_THAN_WATER": "La cote de l'eau à l'aval est plus basse ou égale à la cote de fond",
     "WARNING_NEGATIVE_SILL": "La pelle du seuil devrait être positive",
     "WARNING_RAMP_WIDTH_LOWER_THAN_PATTERN_WIDTH": "La largeur de la rampe devrait comprendre au moins un motif de plot (%pattern%m)",
     "WARNING_RAMP_WIDTH_NOT_MULTIPLE_OF_HALF_PATTERN_WIDTH": "La largeur de la rampe devrait être un multiple d'un demi motif (%halfPattern%m). Les valeurs voisines sont %lower% et %higher%",
-    "WARNING_YN_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "Hauteur normale: pente négative ou nulle, hauteur normale infinie",
-    "WARNING_YN_SECTION_NON_CONVERGENCE_NEWTON_HNORMALE": "Hauteur normale: non convergence du calcul (méthode de Newton)",
-    "WARNING_SECTION_OVERFLOW": "Débordement: la cote de l'eau dépasse la cote de berge",
-    "WARNING_SECTION_OVERFLOW_ABSC": "Débordement: la cote de l'eau dépasse la cote de berge entre les abscisses %xa% et %xb%",
+    "WARNING_YN_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "Hauteur normale&nbsp;: pente négative ou nulle, hauteur normale infinie",
+    "WARNING_YN_SECTION_NON_CONVERGENCE_NEWTON_HNORMALE": "Hauteur normale&nbsp;: non convergence du calcul (méthode de Newton)",
+    "WARNING_SECTION_OVERFLOW": "Débordement&nbsp;: la cote de l'eau dépasse la cote de berge",
+    "WARNING_SECTION_OVERFLOW_ABSC": "Débordement&nbsp;: la cote de l'eau dépasse la cote de berge entre les abscisses %xa% et %xb%",
     "WARNING_SESSION_LOAD_NOTES_MERGED": "Les notes ont été fusionnées",
     "WARNING_VALUE_ROUNDED_TO_INTEGER": "La valeur de %symbol% a été arrondie à %rounded%",
     "WARNING_VARIATED_LENGTH_LIMITED_BY_LINKED_RESULT": "Le nombre de résultats est limité par le résultat lié %symbol%",
@@ -604,26 +604,29 @@
     "INFO_PARENT_PREFIX": "%name% n°%position% : ",
     "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : ",
     "ERROR_VERIF_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs",
-    "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum: %maxV%)",
-    "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum: %minY%)",
+    "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
+    "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
-    "WARNING_VERIF_MRC_VMAX_APRON_N": "Radier n°%N% : vitesse maximale %V% trop élevée (maximum: %maxV%)",
-    "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N% : tirant d'eau %Y% insuffisant (minimum: %minY%)",
+    "WARNING_VERIF_MRC_VMAX_APRON_N": "Radier n°%N%&nbsp;: vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
+    "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N%&nbsp;: tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
-    "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N% : chute %DH% trop importante (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval : chute %DH% trop importante (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS% : largeur de l'échancrure ou de la fente %L% insuffisante (minimum: %minB%)",
-    "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS% : largeur de l'échancrure ou de la fente %L% insuffisante (minimum: %minB%)",
-    "ERROR_VERIF_PAB_JETS": "Cloison n°%N% : au moins un jet de type %required% requis",
-    "ERROR_VERIF_PAB_JETS_DW": "Cloison aval : au moins un jet de type %required% requis",
-    "ERROR_VERIF_PAB_LMIN": "Cloison n°%N% : longueur de bassin %LB% insuffisante (minimum: %minLB%)",
-    "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS% : charge sur l'échancrure %h1% insuffisante (minimum: %minH%)",
-    "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS% : charge sur l'échancrure %h1% insuffisante (minimum: %minH%)",
-    "ERROR_VERIF_PAB_YMOY": "Cloison n°%N% : profondeur de bassin %PB% insuffisante (minimum: %minPB%)",
-    "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N% : profondeur de bassin %PB% inférieure à 2x la chute %DH%",
+    "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N%&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Cloison aval&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Cloison aval&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
+    "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum&nbsp;: %minLB%)",
+    "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum&nbsp;: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
-    "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum: %minY%)",
+    "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
     "ERROR_VERIF_SPECIES_KO": "Le franchissement est impossible pour le groupe d'espèces %speciesGroup%",
+    "INFO_VERIF_SPECIES_OK": "Le franchissement est possible pour le groupe d'espèces %speciesGroup%",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
 }
-- 
GitLab


From 79ac9b114db288cb3f99c2aa8d4f962349afb072 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 29 Apr 2020 17:22:45 +0200
Subject: [PATCH 030/101] Update translation for Verificateur

---
 src/app/formulaire/definition/form-verificateur.ts |  3 +--
 src/locale/messages.en.json                        | 10 ++++++++++
 src/locale/messages.fr.json                        | 10 ++++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 413343c32..5da57ecf1 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -1,7 +1,6 @@
-import { IObservable, Nub, Verificateur, CalculatorType } from "jalhyd";
+import { IObservable, Nub, Verificateur } from "jalhyd";
 
 import { SelectFieldCustom } from "../elements/select-field-custom";
-import { SelectField } from '../elements/select-field';
 import { FormulaireFixedVar } from "./form-fixedvar";
 
 /**
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index c4d501706..96f93168e 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -617,9 +617,17 @@
     "WARNING_VERIF_PAB_DHMAX_JET_DW": "Downwall: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "WARNING_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "WARNING_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
+    "WARNING_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
+    "WARNING_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
+    "ERROR_VERIF_PAB_SMIN": "Wall #%NC%, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "ERROR_VERIF_PAB_SMIN_DW": "Downwall, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Wall #%NC%, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN_DW": "Downwall, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
     "ERROR_VERIF_PAB_YMOY": "Wall #%N%: basin depth %PB% too low (minimum: %minPB%)",
     "ERROR_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
@@ -627,5 +635,7 @@
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_SPECIES_KO": "Crossability criteria are not met for species group %speciesGroup%",
     "INFO_VERIF_SPECIES_OK": "Crossability criteria are met for species group %speciesGroup%",
+    "ERROR_VERIF_PAB_WALL_NOT_CROSSABLE": "Wall #%N% is not crossable",
+    "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "Downwall is not crossable",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type"
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 56eddf83d..cbea22c5c 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -618,9 +618,17 @@
     "WARNING_VERIF_PAB_DHMAX_JET_DW": "Cloison aval&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "WARNING_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "WARNING_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
     "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum&nbsp;: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "WARNING_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
+    "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
     "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum&nbsp;: %minPB%)",
     "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
@@ -628,5 +636,7 @@
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
     "ERROR_VERIF_SPECIES_KO": "Le franchissement est impossible pour le groupe d'espèces %speciesGroup%",
     "INFO_VERIF_SPECIES_OK": "Le franchissement est possible pour le groupe d'espèces %speciesGroup%",
+    "ERROR_VERIF_PAB_WALLS_NOT_CROSSABLE": "La cloison n°%N% n'est pas franchissable",
+    "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "La cloison aval n'est pas franchissable",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
 }
-- 
GitLab


From 422316c3c2f7ad367affb4ea7273a1ece93a3305 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 30 Apr 2020 10:31:01 +0200
Subject: [PATCH 031/101] Improve HTML entities decoding, and fix wrong &nbsp;

---
 src/app/app.component.ts                            | 13 ++++---------
 .../generic-select/generic-select.component.html    |  2 +-
 .../select-field-line.component.ts                  |  3 ++-
 src/locale/messages.fr.json                         |  4 ++--
 4 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index c7bd6a30d..92170a313 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -24,6 +24,8 @@ import { DialogSaveSessionComponent } from "./components/dialog-save-session/dia
 import { QuicknavComponent } from "./components/quicknav/quicknav.component";
 import { NotificationsService } from "./services/notifications.service";
 
+import { decodeHtml } from './util';
+
 import { HotkeysService, Hotkey } from "angular2-hotkeys";
 
 import { MatomoInjector, MatomoTracker } from "ngx-matomo";
@@ -268,13 +270,6 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
     }
   }
 
-  /** clodo trick @see https://www.julesgaston.fr/encoder-decoder-entites-html-entities-javascript/ */
-  public static decodeHTMLEntities(text: string): string {
-    const textArea = document.createElement("textarea");
-    textArea.innerHTML = text;
-    return textArea.value;
-  }
-
   /**
    * Triggered at app startup.
    * Preferences are loaded by app setup service
@@ -338,11 +333,11 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
   }
 
   public getCalculatorLabel(t: CalculatorType) {
-    return AppComponent.decodeHTMLEntities(this.formulaireService.getLocalisedTitleFromCalculatorType(t));
+    return decodeHtml(this.formulaireService.getLocalisedTitleFromCalculatorType(t));
   }
 
   public getFullCalculatorTitle(calc: { title: string, type: CalculatorType, active?: boolean }): string {
-    return AppComponent.decodeHTMLEntities(calc.title + " (" + this.getCalculatorLabel(calc.type) + ")");
+    return decodeHtml(calc.title + " (" + this.getCalculatorLabel(calc.type) + ")");
   }
 
   public get calculators() {
diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index 8c352a2cf..7ce468d11 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -1,7 +1,7 @@
 <mat-form-field>
     <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple" [disabled]="isDisabled">
         <mat-select-trigger *ngIf="isMultiple">
-          {{ selectedValue && selectedValue[0] ? selectedValue[0].label : '' }}
+          {{ selectedValue && selectedValue[0] ? entryLabel(selectedValue[0]) : '' }}
           <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
             (+ {{ selectedValue.length - 1 }} {{ selectedValue?.length === 2 ? uitextAndOther : uitextAndOthers }})
           </span>
diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts
index 09d05640b..b438c0256 100644
--- a/src/app/components/select-field-line/select-field-line.component.ts
+++ b/src/app/components/select-field-line/select-field-line.component.ts
@@ -5,6 +5,7 @@ import { SelectEntry } from "../../formulaire/elements/select-entry";
 import { I18nService } from "../../services/internationalisation.service";
 import { ApplicationSetupService } from "../../services/app-setup.service";
 import { SelectFieldCustom } from "../../formulaire/elements/select-field-custom";
+import { decodeHtml } from "../../util";
 
 @Component({
     selector: "select-field-line",
@@ -46,7 +47,7 @@ export class SelectFieldLineComponent implements OnInit {
     }
 
     protected entryLabel(entry: SelectEntry): string {
-        return entry.label;
+        return decodeHtml(entry.label);
     }
 
     public get selectedValue(): SelectEntry | SelectEntry[] {
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index cbea22c5c..fe6856a2e 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -487,7 +487,7 @@
     "INFO_REMOUSRESULTS_TIRANT": "Tirant d'eau (m)",
     "INFO_REMOUSRESULTS_TIRANTCRITIQUE": "Tirant d'eau critique",
     "INFO_REMOUSRESULTS_TIRANTNORMAL": "Tirant d'eau normal",
-    "INFO_REPORT_BUG_BODY": "Ceci est un rapport d'erreur.\n\nMerci de décrire rapidement ci-dessous le problème rencontré, et les étapes qui vous y ont mené&nbsp;:\n\n\n\n\n--- État de la session en cours - ne pas modifier le texte ci-dessous ---\n--------------------------------------------------------------------------------------------\n\n",
+    "INFO_REPORT_BUG_BODY": "Ceci est un rapport d'erreur.\n\nMerci de décrire rapidement ci-dessous le problème rencontré, et les étapes qui vous y ont mené:\n\n\n\n\n--- État de la session en cours - ne pas modifier le texte ci-dessous ---\n--------------------------------------------------------------------------------------------\n\n",
     "INFO_REPORT_BUG_SUBJECT": "Rapport d'erreur",
     "INFO_REQUIRES": "dépend de",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Exporter en XLSX",
@@ -539,7 +539,7 @@
     "INFO_THEME_VERIFICATION_TITRE": "Vérification de passes",
     "INFO_TITREJOURNAL": "Journal de calcul",
     "INFO_TITREJOURNAL_GLOBAL": "Synthèse du journal de calcul",
-    "INFO_WELCOME_CONTENT": "<p>Le logiciel Cassiopée a été développé par le pôle R&D écohydraulique regroupant l'<a href=\"https&nbsp;://ofb.gouv.fr\" target=\"_blank\">OFB</a> (Office Français de la Biodiversité) et l’<a href=\"https&nbsp;://www.imft.fr\" target=\"_blank\">IMFT</a> (Institut de mécanique des fluides de Toulouse) et par l'<a href=\"http&nbsp;://g-eau.fr\" target=\"_blank\">UMR G-EAU</a> (UMR Gestion de l'Eau, Acteurs, Usages).</p><p>Il regroupe des outils d'aide à la conception des dispositifs de franchissement piscicoles pour la montaison et la dévalaison ainsi que des outils de calcul hydraulique utiles pour l'ingénierie en environnement et agriculture.</p><p>Pour plus d'informations, consulter les <a href=\"assets/docs/fr/mentions_legales.html\" target=\"_blank\">mentions légales</a> et la <a href=\"assets/docs/fr/index.html\" target=\"_blank\">documentation</a>.</p>",
+    "INFO_WELCOME_CONTENT": "<p>Le logiciel Cassiopée a été développé par le pôle R&D écohydraulique regroupant l'<a href=\"https://ofb.gouv.fr\" target=\"_blank\">OFB</a> (Office Français de la Biodiversité) et l’<a href=\"https://www.imft.fr\" target=\"_blank\">IMFT</a> (Institut de mécanique des fluides de Toulouse) et par l'<a href=\"http://g-eau.fr\" target=\"_blank\">UMR G-EAU</a> (UMR Gestion de l'Eau, Acteurs, Usages).</p><p>Il regroupe des outils d'aide à la conception des dispositifs de franchissement piscicoles pour la montaison et la dévalaison ainsi que des outils de calcul hydraulique utiles pour l'ingénierie en environnement et agriculture.</p><p>Pour plus d'informations, consulter les <a href=\"assets/docs/fr/mentions_legales.html\" target=\"_blank\">mentions légales</a> et la <a href=\"assets/docs/fr/index.html\" target=\"_blank\">documentation</a>.</p>",
     "INFO_WELCOME_SUBTITLE": "Modules de calcul d'hydraulique",
     "INFO_EXAMPLE_LABEL_CHANNEL_FLOW": "Débit d'un chenal avec ouvrages",
     "INFO_EXAMPLE_LABEL_PAB_COMPLETE": "Passe à bassins type",
-- 
GitLab


From 025c9f469de9543dae85812abfbf114780bf868a Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 30 Apr 2020 11:38:57 +0200
Subject: [PATCH 032/101] Enhance translation

i18nService: detect and translate ENUM_X and FORM_ID_Y in regular messages
update Verificateur messages and fish species list
---
 .../elements/select-field-custom.ts           |  2 +-
 .../services/internationalisation.service.ts  | 18 +++++++-
 src/locale/messages.en.json                   | 46 ++++++++++---------
 src/locale/messages.fr.json                   | 46 ++++++++++---------
 4 files changed, 66 insertions(+), 46 deletions(-)

diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 86d32757d..3320cf8b8 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -146,7 +146,7 @@ export class SelectFieldCustom extends SelectField {
                         new SelectEntry(
                             this._entriesBaseId + spgId,
                             FishSpecies[j],
-                            ServiceFactory.instance.i18nService.localizeText("INFO_ENUM_" + FishSpecies[j]) + " (" + spgId + ")"
+                            ServiceFactory.instance.i18nService.localizeText("INFO_ENUM_" + FishSpecies[j])
                         )
                     );
                 }
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 5ba795217..45fbe17cd 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -143,7 +143,7 @@ export class I18nService extends Observable implements Observer {
     public localizeMessage(r: Message, nDigits: number = 3): string {
         let text: string;
         let m: string = this.getMessageFromCode(r.code);
-
+        // replace %X% by formatted value of extraVar.X
         for (const k in r.extraVar) {
             if (r.extraVar.hasOwnProperty(k)) {
                 const v: any = r.extraVar[k];
@@ -167,6 +167,21 @@ export class I18nService extends Observable implements Observer {
                 m = this.replaceAll(m, "%" + k + "%", s);
             }
         }
+        // replace "ENUM_X_Y" by translated enum value;
+        // example for lang "fr" : "ENUM_SPECIES_6" => "INFO_ENUM_SPECIES_6" => "Ombre commun"
+        m = m.replace(/(ENUM_[^ ,;\.]+)/g, (match, p1) => {
+            return this.localizeText("INFO_" + p1);
+        });
+
+        // replace "FORM_ID_X" by form name in current session, if any
+        m = m.replace(/FORM_ID_(\w{6})/g, (match, p1) => {
+            const form = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(p1); // cannot inject FormulaireService => cyclic dependency :/
+            let formName = "**UNKNOWN_FORM**";
+            if (form !== undefined) {
+                formName = form.calculatorName;
+            }
+            return formName;
+        });
 
         // replace "ENUM_X_Y" by translated enum value;
         // example for lang "fr" : "ENUM_SPECIES_6" => "INFO_ENUM_SPECIES_6" => "Ombre commun"
@@ -239,6 +254,7 @@ export class I18nService extends Observable implements Observer {
     /**
      * Met en forme un result en fonction du libellé qui l'accompagne
      * Les result avec le terme "ENUM_" sont traduit avec le message INFO_ENUM_[Nom de la variable après ENUM_]
+     * Exemple pour la langue "fr" : "ENUM_STRUCTUREFLOWREGIME_1" => "INFO_ENUM_STRUCTUREFLOWREGIME_1" => "Partiellement noyé"
      */
     public formatResult(label: string, value: number): string {
         if (value === undefined) {
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 96f93168e..132e2b4f1 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -139,26 +139,26 @@
     "INFO_ENUM_OUVRAGE_Q_REGIME_3": "Zero flow",
     "INFO_ENUM_PARFLOWREGIME_0": "Free",
     "INFO_ENUM_PARFLOWREGIME_1": "Submerged",
-    "INFO_ENUM_SPECIES_1": "Salmon, trout [50-100]",
-    "INFO_ENUM_SPECIES_2": "Mules",
-    "INFO_ENUM_SPECIES_3a": "Great Shad",
-    "INFO_ENUM_SPECIES_3b": "Shad shad",
-    "INFO_ENUM_SPECIES_3c": "Sea lamprey",
-    "INFO_ENUM_SPECIES_4a": "Trout [25-55]",
-    "INFO_ENUM_SPECIES_4b": "River trout [15-30]",
-    "INFO_ENUM_SPECIES_5": "Aspe, pike",
-    "INFO_ENUM_SPECIES_6": "Common Shadow",
-    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu",
-    "INFO_ENUM_SPECIES_7b": "River Lamprey",
-    "INFO_ENUM_SPECIES_8a": "Common Carp",
-    "INFO_ENUM_SPECIES_8b": "Common bream, pike-perch",
-    "INFO_ENUM_SPECIES_8c": "Brim bream, ide, monkfish, perch, tench",
-    "INFO_ENUM_SPECIES_8d": "Vandoises",
-    "INFO_ENUM_SPECIES_9a": "Ablette, cockle, carrassin, roach...",
-    "INFO_ENUM_SPECIES_9b": "Apron, sculpins, bolts, loche...",
-    "INFO_ENUM_SPECIES_10": "Able, cowherd, stickleback, minnows",
-    "INFO_ENUM_SPECIES_11a": "European eel [yellow]",
-    "INFO_ENUM_SPECIES_11b": "European Eel [glass eel]",
+    "INFO_ENUM_SPECIES_1": "Salmon, trout [50-100] (1)",
+    "INFO_ENUM_SPECIES_2": "Mules (2)",
+    "INFO_ENUM_SPECIES_3a": "Great Shad (3a)",
+    "INFO_ENUM_SPECIES_3b": "Shad shad (3b)",
+    "INFO_ENUM_SPECIES_3c": "Sea lamprey (3c)",
+    "INFO_ENUM_SPECIES_4a": "Trout [25-55] (4a)",
+    "INFO_ENUM_SPECIES_4b": "River trout [15-30] (4b)",
+    "INFO_ENUM_SPECIES_5": "Aspe, pike (5)",
+    "INFO_ENUM_SPECIES_6": "Common Shadow (6)",
+    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu (7a)",
+    "INFO_ENUM_SPECIES_7b": "River Lamprey (7b)",
+    "INFO_ENUM_SPECIES_8a": "Common Carp (8a)",
+    "INFO_ENUM_SPECIES_8b": "Common bream, pike-perch (8b)",
+    "INFO_ENUM_SPECIES_8c": "Brim bream, ide, monkfish, perch, tench (8c)",
+    "INFO_ENUM_SPECIES_8d": "Vandoises (8d)",
+    "INFO_ENUM_SPECIES_9a": "Ablette, cockle, carrassin, roach... (9a)",
+    "INFO_ENUM_SPECIES_9b": "Apron, sculpins, bolts, loche... (9b)",
+    "INFO_ENUM_SPECIES_10": "Able, cowherd, stickleback, minnows (10)",
+    "INFO_ENUM_SPECIES_11a": "European eel [yellow] (11a)",
+    "INFO_ENUM_SPECIES_11b": "European Eel [glass eel] (11b)",
     "INFO_ENUM_STRUCTUREFLOWMODE_0": "Weir",
     "INFO_ENUM_STRUCTUREFLOWMODE_1": "Orifice",
     "INFO_ENUM_STRUCTUREFLOWMODE_2": "Zero flow",
@@ -633,8 +633,10 @@
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
-    "ERROR_VERIF_SPECIES_KO": "Crossability criteria are not met for species group %speciesGroup%",
-    "INFO_VERIF_SPECIES_OK": "Crossability criteria are met for species group %speciesGroup%",
+    "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
+    "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
+    "ERROR_VERIF_SPECIES_NUB_KO": "Crossability criteria are not met for custom species FORM_ID_%uid%",
+    "INFO_VERIF_SPECIES_NUB_OK": "Crossability criteria are met for custom species FORM_ID_%uid%",
     "ERROR_VERIF_PAB_WALL_NOT_CROSSABLE": "Wall #%N% is not crossable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "Downwall is not crossable",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type"
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index fe6856a2e..d2d4687f2 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -139,26 +139,26 @@
     "INFO_ENUM_OUVRAGE_Q_REGIME_3": "Débit nul",
     "INFO_ENUM_PARFLOWREGIME_0": "Dénoyé",
     "INFO_ENUM_PARFLOWREGIME_1": "Noyé",
-    "INFO_ENUM_SPECIES_1": "Saumon, truite [50-100]",
-    "INFO_ENUM_SPECIES_2": "Mulets",
-    "INFO_ENUM_SPECIES_3a": "Grande Alose",
-    "INFO_ENUM_SPECIES_3b": "Alose feinte",
-    "INFO_ENUM_SPECIES_3c": "Lamproie marine",
-    "INFO_ENUM_SPECIES_4a": "Truite [25-55]",
-    "INFO_ENUM_SPECIES_4b": "Truite de rivière [15-30]",
-    "INFO_ENUM_SPECIES_5": "Aspe, brochet",
-    "INFO_ENUM_SPECIES_6": "Ombre commun",
-    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu",
-    "INFO_ENUM_SPECIES_7b": "Lamproie fluviatile",
-    "INFO_ENUM_SPECIES_8a": "Carpe commune",
-    "INFO_ENUM_SPECIES_8b": "Brème commune, sandre",
-    "INFO_ENUM_SPECIES_8c": "Brème bordelière, ide, lotte, perche, tanche",
-    "INFO_ENUM_SPECIES_8d": "Vandoises",
-    "INFO_ENUM_SPECIES_9a": "Ablette, blageon, carrassin, gardon...",
-    "INFO_ENUM_SPECIES_9b": "Apron, chabots, goujons, loche...",
-    "INFO_ENUM_SPECIES_10": "Able, bouvière, épinoche(tte), vairons",
-    "INFO_ENUM_SPECIES_11a": "Anguille européenne [jaune]",
-    "INFO_ENUM_SPECIES_11b": "Anguille européenne [civelle]",
+    "INFO_ENUM_SPECIES_1": "Saumon, truite [50-100] (1)",
+    "INFO_ENUM_SPECIES_2": "Mulets (2)",
+    "INFO_ENUM_SPECIES_3a": "Grande Alose (3a)",
+    "INFO_ENUM_SPECIES_3b": "Alose feinte (3b)",
+    "INFO_ENUM_SPECIES_3c": "Lamproie marine (3c)",
+    "INFO_ENUM_SPECIES_4a": "Truite [25-55] (4a)",
+    "INFO_ENUM_SPECIES_4b": "Truite de rivière [15-30] (4b)",
+    "INFO_ENUM_SPECIES_5": "Aspe, brochet (5)",
+    "INFO_ENUM_SPECIES_6": "Ombre commun (6)",
+    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu (7a)",
+    "INFO_ENUM_SPECIES_7b": "Lamproie fluviatile (7b)",
+    "INFO_ENUM_SPECIES_8a": "Carpe commune (8a)",
+    "INFO_ENUM_SPECIES_8b": "Brème commune, sandre (8b)",
+    "INFO_ENUM_SPECIES_8c": "Brème bordelière, ide, lotte, perche, tanche (8c)",
+    "INFO_ENUM_SPECIES_8d": "Vandoises (8d)",
+    "INFO_ENUM_SPECIES_9a": "Ablette, blageon, carrassin, gardon... (9a)",
+    "INFO_ENUM_SPECIES_9b": "Apron, chabots, goujons, loche... (9b)",
+    "INFO_ENUM_SPECIES_10": "Able, bouvière, épinoche(tte), vairons (10)",
+    "INFO_ENUM_SPECIES_11a": "Anguille européenne [jaune] (11a)",
+    "INFO_ENUM_SPECIES_11b": "Anguille européenne [civelle] (11b)",
     "INFO_ENUM_STRUCTUREFLOWMODE_0": "Surface libre",
     "INFO_ENUM_STRUCTUREFLOWMODE_1": "En charge",
     "INFO_ENUM_STRUCTUREFLOWMODE_2": "Débit nul",
@@ -634,8 +634,10 @@
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
-    "ERROR_VERIF_SPECIES_KO": "Le franchissement est impossible pour le groupe d'espèces %speciesGroup%",
-    "INFO_VERIF_SPECIES_OK": "Le franchissement est possible pour le groupe d'espèces %speciesGroup%",
+    "ERROR_VERIF_SPECIES_GROUP_KO": "Le franchissement est impossible pour le groupe d'espèces ENUM_%speciesGroup%",
+    "INFO_VERIF_SPECIES_GROUP_OK": "Le franchissement est possible pour le groupe d'espèces ENUM_%speciesGroup%",
+    "ERROR_VERIF_SPECIES_NUB_KO": "Le franchissement est impossible pour l'espèce personnalisée FORM_ID_%uid%",
+    "INFO_VERIF_SPECIES_NUB_OK": "Le franchissement est possible pour l'espèce personnalisée FORM_ID_%uid%",
     "ERROR_VERIF_PAB_WALLS_NOT_CROSSABLE": "La cloison n°%N% n'est pas franchissable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "La cloison aval n'est pas franchissable",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
-- 
GitLab


From eeccb00a5fb07269d4095bcc9ab9336ae52cb4dd Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 30 Apr 2020 11:52:26 +0200
Subject: [PATCH 033/101] Modules diagram: added Verificateur links

---
 .../modules-diagram.component.ts              | 20 ++++++++++++++++++-
 src/locale/messages.en.json                   |  2 ++
 src/locale/messages.fr.json                   |  2 ++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/app/components/modules-diagram/modules-diagram.component.ts b/src/app/components/modules-diagram/modules-diagram.component.ts
index 150764b20..0ec976df7 100644
--- a/src/app/components/modules-diagram/modules-diagram.component.ts
+++ b/src/app/components/modules-diagram/modules-diagram.component.ts
@@ -18,7 +18,10 @@ import {
     Nub,
     MacrorugoCompound,
     Pab,
-    Solveur
+    Solveur,
+    Verificateur,
+    Espece,
+    FishSpecies
 } from "jalhyd";
 
 import { I18nService } from "../../services/internationalisation.service";
@@ -222,6 +225,21 @@ export class ModulesDiagramComponent implements AfterContentInit, AfterViewCheck
                     def.push(nub.uid + "-->|" + finds + ":" + sp.symbol + "|" + sp.parentNub.uid);
                 }
             }
+            // add Verificateur links
+            if (nub instanceof Verificateur) {
+                const ntv = nub.nubToVerify;
+                const sp = nub.species.filter((sp) => {
+                    return sp.species === FishSpecies.SPECIES_CUSTOM;
+                });
+                const verifiesPass = this.intlService.localizeText("INFO_DIAGRAM_VERIFICATEUR_VERIFIES_PASS");
+                const verifiesSpecies = this.intlService.localizeText("INFO_DIAGRAM_VERIFICATEUR_VERIFIES_SPECIES");
+                if (ntv !== undefined) {
+                    def.push(nub.uid + "-->|" + verifiesPass + "|" + ntv.uid);
+                }
+                for (const s of sp) {
+                    def.push(nub.uid + "-->|" + verifiesSpecies + "|" + s.uid);
+                }
+            }
         }
 
         return def.join("\n");
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 132e2b4f1..5820aaabf 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -98,6 +98,8 @@
     "INFO_DEVER_TITRE": "Free flow weir stage-discharge laws",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "finds",
     "INFO_DIAGRAM_SOLVEUR_READS": "reads",
+    "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_PASS": "verifies pass",
+    "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_SPECIES": "verifies species",
     "INFO_DIAGRAM_TITLE": "Calculation modules diagram",
     "INFO_DIAGRAM_DRAWING_ERROR": "Error while drawing diagram",
     "INFO_DIAGRAM_CALCULATED_PARAM": "calculated parameter",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index d2d4687f2..08262706c 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -98,6 +98,8 @@
     "INFO_DEVER_TITRE": "Lois de déversoirs dénoyés",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "trouve",
     "INFO_DIAGRAM_SOLVEUR_READS": "lit",
+    "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_PASS": "vérifie la passe",
+    "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_SPECIES": "vérifie les espèces",
     "INFO_DIAGRAM_TITLE": "Diagramme des modules de calcul",
     "INFO_DIAGRAM_DRAWING_ERROR": "Erreur lors du dessin du diagramme",
     "INFO_DIAGRAM_CALCULATED_PARAM": "paramètre calculé",
-- 
GitLab


From 2597f59f95744a486155f868448ae6033219473c Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 30 Apr 2020 12:07:09 +0200
Subject: [PATCH 034/101] Update translation

---
 src/locale/messages.en.json | 3 +++
 src/locale/messages.fr.json | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 5820aaabf..9184c785d 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -555,6 +555,7 @@
     "INFO_TRIGO_TITRE": "Trigonometric function",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
     "INFO_VERIF_OK": "Crossing criteria are met for all species",
+    "WARNING_VERIF_OK_BUT": "Crossing criteria are met for all species, but there are warnings",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
@@ -636,8 +637,10 @@
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
+    "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings",
     "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
     "ERROR_VERIF_SPECIES_NUB_KO": "Crossability criteria are not met for custom species FORM_ID_%uid%",
+    "WARNING_VERIF_SPECIES_NUB_OK_BUT": "Crossability criteria are met for custom species FORM_ID_%uid%, but there are warnings",
     "INFO_VERIF_SPECIES_NUB_OK": "Crossability criteria are met for custom species FORM_ID_%uid%",
     "ERROR_VERIF_PAB_WALL_NOT_CROSSABLE": "Wall #%N% is not crossable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "Downwall is not crossable",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 08262706c..af5843891 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -556,6 +556,7 @@
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
+    "WARNING_VERIF_OK_BUT": "Les critères de franchissement sont remplis pour toutes les espèces, mais il y a des avertissements",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée&nbsp;: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
@@ -637,8 +638,10 @@
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Le franchissement est impossible pour le groupe d'espèces ENUM_%speciesGroup%",
+    "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Le franchissement est possible pour le groupe d'espèces ENUM_%speciesGroup%, mais il y a des avertissements",
     "INFO_VERIF_SPECIES_GROUP_OK": "Le franchissement est possible pour le groupe d'espèces ENUM_%speciesGroup%",
     "ERROR_VERIF_SPECIES_NUB_KO": "Le franchissement est impossible pour l'espèce personnalisée FORM_ID_%uid%",
+    "WARNING_VERIF_SPECIES_NUB_OK_BUT": "Le franchissement est possible pour l'espèce personnalisée FORM_ID_%uid%, mais il y a des avertissements",
     "INFO_VERIF_SPECIES_NUB_OK": "Le franchissement est possible pour l'espèce personnalisée FORM_ID_%uid%",
     "ERROR_VERIF_PAB_WALLS_NOT_CROSSABLE": "La cloison n°%N% n'est pas franchissable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "La cloison aval n'est pas franchissable",
-- 
GitLab


From 3d1b89a5099210ffd5b3e8f523c65907e607479d Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 30 Apr 2020 14:46:43 +0200
Subject: [PATCH 035/101] Verificateur: fix bug in custom species reference
 loading

---
 src/app/formulaire/definition/form-verificateur.ts | 6 ------
 src/app/formulaire/elements/select-field-custom.ts | 2 +-
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 5da57ecf1..a55e3357e 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -37,10 +37,4 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         }
     }
 
-    protected compute() {
-        this.runNubCalc(this.currentNub);
-        this.reaffectResultComponents();
-        // do not refreshFieldsets() (useless here) or jet type selector's disabled state will be reset
-    }
-
 }
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 3320cf8b8..270fb2b79 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -130,7 +130,7 @@ export class SelectFieldCustom extends SelectField {
                 for (const en of especeNubs) {
                     this.addEntry(
                         new SelectEntry(
-                            en.uid,
+                            this._entriesBaseId + en.uid,
                             en.uid,
                             sprintf(
                                 ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
-- 
GitLab


From c59273115e310f88b63ff4a8988d7ab3c07037dd Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 30 Apr 2020 14:54:22 +0200
Subject: [PATCH 036/101] Update translation

---
 src/locale/messages.fr.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index af5843891..fb1deb92f 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -99,7 +99,7 @@
     "INFO_DIAGRAM_SOLVEUR_FINDS": "trouve",
     "INFO_DIAGRAM_SOLVEUR_READS": "lit",
     "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_PASS": "vérifie la passe",
-    "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_SPECIES": "vérifie les espèces",
+    "INFO_DIAGRAM_VERIFICATEUR_VERIFIES_SPECIES": "vérifie l'espèce",
     "INFO_DIAGRAM_TITLE": "Diagramme des modules de calcul",
     "INFO_DIAGRAM_DRAWING_ERROR": "Erreur lors du dessin du diagramme",
     "INFO_DIAGRAM_CALCULATED_PARAM": "paramètre calculé",
-- 
GitLab


From 586f65259b85d3f3e604d33a3202e2170e3c6c45 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 4 May 2020 13:46:34 +0200
Subject: [PATCH 037/101] Added VerificateurResults

improved calculator results organization
updated e2e
---
 e2e/calc-all-examples.e2e-spec.ts             |   2 +-
 e2e/calculator.po.ts                          |   2 +
 src/app/app.module.ts                         |   2 +
 .../calculator-results.component.html         |  13 +-
 .../calculator-results.component.ts           |  85 ++++++---
 .../fixedvar-results/results.component.ts     |   4 -
 .../jet-results/jet-results.component.ts      |   3 +-
 .../pab-results/pab-results.component.ts      |   2 +-
 .../remous-results.component.ts               |   5 -
 .../section-results.component.html            |  19 +++
 .../section-results.component.ts              |  58 +++----
 .../verificateur-results.component.html       |   8 +
 .../verificateur-results.component.scss       |   0
 .../verificateur-results.component.ts         | 161 ++++++++++++++++++
 src/app/formulaire/definition/form-pab.ts     |   2 +-
 .../definition/form-verificateur.ts           |  61 ++++++-
 src/app/results/param-calc-results.ts         |   2 +-
 src/app/results/verificateur-results.ts       |  14 ++
 18 files changed, 362 insertions(+), 81 deletions(-)
 create mode 100644 src/app/components/verificateur-results/verificateur-results.component.html
 create mode 100644 src/app/components/verificateur-results/verificateur-results.component.scss
 create mode 100644 src/app/components/verificateur-results/verificateur-results.component.ts
 create mode 100644 src/app/results/verificateur-results.ts

diff --git a/e2e/calc-all-examples.e2e-spec.ts b/e2e/calc-all-examples.e2e-spec.ts
index 31a63bbab..7f6fbc861 100644
--- a/e2e/calc-all-examples.e2e-spec.ts
+++ b/e2e/calc-all-examples.e2e-spec.ts
@@ -6,7 +6,7 @@ import { browser, by, element } from "protractor";
 /**
  * Calculate all modules of all examples
  */
-describe("ngHyd − calculate all modules of all examples −", async () => {
+describe("ngHyd − example sessions −", async () => {
 
   let listPage: ListPage;
   let calcPage: CalculatorPage;
diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts
index 1edff79f8..2639f2077 100644
--- a/e2e/calculator.po.ts
+++ b/e2e/calculator.po.ts
@@ -125,6 +125,8 @@ export class CalculatorPage {
       ||
       await element(by.css("fixedvar-results results-chart > chart-results-container")).isPresent()
       ||
+      await element(by.css("section-results fixed-results > .fixed-results-container")).isPresent()
+      ||
       await element(by.css("remous-results #main-chart")).isPresent()
       ||
       await element(by.css("pab-results pab-results-table")).isPresent()
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 6e9d00408..2fb9161a8 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -72,6 +72,7 @@ import { SectionCanvasComponent } from "./components/section-canvas/section-canv
 import { RemousResultsComponent } from "./components/remous-results/remous-results.component";
 import { ResultsChartComponent } from "./components/results-chart/results-chart.component";
 import { PabResultsComponent } from "./components/pab-results/pab-results.component";
+import { VerificateurResultsComponent } from "./components/verificateur-results/verificateur-results.component";
 import { PabResultsTableComponent } from "./components/pab-results/pab-results-table.component";
 import { ChartTypeSelectComponent } from "./components/results-chart/chart-type.component";
 import { LogComponent } from "./components/log/log.component";
@@ -215,6 +216,7 @@ const appRoutes: Routes = [
     NgParamInputComponent,
     PabProfileChartComponent,
     PabResultsComponent,
+    VerificateurResultsComponent,
     PabResultsTableComponent,
     PabTableComponent,
     VariableResultsSelectorComponent,
diff --git a/src/app/components/calculator-results/calculator-results.component.html b/src/app/components/calculator-results/calculator-results.component.html
index e15f90423..319b3eab3 100644
--- a/src/app/components/calculator-results/calculator-results.component.html
+++ b/src/app/components/calculator-results/calculator-results.component.html
@@ -1,8 +1,9 @@
 <div>
-    <section-results></section-results>
-    <remous-results></remous-results>
-    <pab-results></pab-results>
-    <macrorugo-compound-results></macrorugo-compound-results>
-    <jet-results></jet-results>
-    <fixedvar-results></fixedvar-results>
+    <section-results [hidden]="! isSP"></section-results>
+    <remous-results [hidden]="! isRemous"></remous-results>
+    <pab-results [hidden]="! isPAB"></pab-results>
+    <verificateur-results [hidden]="! isVerificateur"></verificateur-results>
+    <macrorugo-compound-results [hidden]="! isMRC"></macrorugo-compound-results>
+    <jet-results [hidden]="! isJet"></jet-results>
+    <fixedvar-results [hidden]="! showGenericResults"></fixedvar-results>
 </div>
diff --git a/src/app/components/calculator-results/calculator-results.component.ts b/src/app/components/calculator-results/calculator-results.component.ts
index 133296818..09df29e7e 100644
--- a/src/app/components/calculator-results/calculator-results.component.ts
+++ b/src/app/components/calculator-results/calculator-results.component.ts
@@ -8,6 +8,9 @@ import { MacrorugoCompoundResultsComponent } from "../macrorugo-compound-results
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { JetResultsComponent } from "../jet-results/jet-results.component";
 import { GenericCalculatorComponent } from "../generic-calculator/calculator.component";
+import { VerificateurResultsComponent } from "../verificateur-results/verificateur-results.component";
+
+import { CalculatorType } from 'jalhyd';
 
 @Component({
     selector: "calc-results",
@@ -41,6 +44,12 @@ export class CalculatorResultsComponent implements AfterViewChecked {
     @ViewChild(PabResultsComponent, { static: true })
     private pabResultsComponent: PabResultsComponent;
 
+    /**
+     * composant d'affichage des résultats des vérificateurs de critères de franchissement
+     */
+    @ViewChild(VerificateurResultsComponent, { static: true })
+    private verificateurResultsComponent: VerificateurResultsComponent;
+
     /**
      * composant d'affichage des résultats des passes à macrorugosités complexes
      */
@@ -63,45 +72,75 @@ export class CalculatorResultsComponent implements AfterViewChecked {
         @Inject(forwardRef(() => GenericCalculatorComponent)) private calculatorComponent: GenericCalculatorComponent
     ) { }
 
+    // @TODO this system is sh*tty !
     public set formulaire(f: FormulaireDefinition) {
         this._formulaire = f;
         if (this._formulaire === undefined) {
             this.fixedVarResultsComponent.results = undefined;
-            this.sectionResultsComponent.results = undefined;
-            this.remousResultsComponent.results = undefined;
-            this.pabResultsComponent.results = undefined;
-            this.mrcResultsComponent.results = undefined;
             this.jetResultsComponent.results = undefined;
+            this.mrcResultsComponent.results = undefined;
+            this.pabResultsComponent.results = undefined;
+            this.remousResultsComponent.results = undefined;
+            this.sectionResultsComponent.results = undefined;
+            this.verificateurResultsComponent.results = undefined;
         } else {
-            this.sectionResultsComponent.results = f.results;
-            this.remousResultsComponent.results = f.results;
-            this.pabResultsComponent.results = f.results;
-            this.mrcResultsComponent.results = f.results;
-            // FixedVar and Jet are mutually incompatible (the 2nd extend the 1st)
-            if (this.isJet) {
-                this.jetResultsComponent.results = f.results;
-                this.fixedVarResultsComponent.results = undefined;
-            } else {
-                this.fixedVarResultsComponent.results = f.results;
-                this.jetResultsComponent.results = undefined;
-            }
+            if (this.showGenericResults) this.fixedVarResultsComponent.results = f.results;
+            if (this.isJet) this.jetResultsComponent.results = f.results;
+            if (this.isMRC) this.mrcResultsComponent.results = f.results;
+            if (this.isPAB) this.pabResultsComponent.results = f.results;
+            if (this.isRemous) this.remousResultsComponent.results = f.results;
+            if (this.isSP) this.sectionResultsComponent.results = f.results;
+            if (this.isVerificateur) this.verificateurResultsComponent.results = f.results;
         }
     }
 
     public updateView() {
-        this.fixedVarResultsComponent.updateView();
-        this.sectionResultsComponent.updateView();
-        this.remousResultsComponent.updateView();
-        this.pabResultsComponent.updateView();
-        this.mrcResultsComponent.updateView();
-        this.jetResultsComponent.updateView();
+        if (this.showGenericResults) this.fixedVarResultsComponent.updateView();
+        if (this.isJet) this.jetResultsComponent.updateView();
+        if (this.isMRC) this.mrcResultsComponent.updateView();
+        if (this.isPAB) this.pabResultsComponent.updateView();
+        if (this.isRemous) this.remousResultsComponent.updateView();
+        if (this.isSP) this.sectionResultsComponent.updateView();
+        if (this.isVerificateur) this.verificateurResultsComponent.updateView();
     }
 
     public ngAfterViewChecked() {
         this.afterViewChecked.emit();
     }
 
-    public get isJet() {
+    /** Should we show the default FixedVarResultsComponent ? */
+    public get showGenericResults(): boolean {
+        return (
+            ! this.isJet
+            && ! this.isMRC
+            && ! this.isPAB
+            && ! this.isRemous
+            && ! this.isSP
+            && ! this.isVerificateur
+        )
+    }
+
+    public get isJet(): boolean {
         return this.calculatorComponent.isJet;
     }
+
+    public get isMRC(): boolean {
+        return this.calculatorComponent.isMRC;
+    }
+
+    public get isPAB(): boolean {
+        return this.calculatorComponent.isPAB;
+    }
+
+    public get isRemous(): boolean {
+        return this.calculatorComponent.is(CalculatorType.CourbeRemous);
+    }
+
+    public get isSP(): boolean {
+        return this.calculatorComponent.is(CalculatorType.SectionParametree);
+    }
+
+    public get isVerificateur(): boolean {
+        return this.calculatorComponent.is(CalculatorType.Verificateur);
+    }
 }
diff --git a/src/app/components/fixedvar-results/results.component.ts b/src/app/components/fixedvar-results/results.component.ts
index e1829e929..550cff912 100644
--- a/src/app/components/fixedvar-results/results.component.ts
+++ b/src/app/components/fixedvar-results/results.component.ts
@@ -15,10 +15,6 @@ export class ResultsComponentDirective {
     /** max number of decimals for auto-adjusting charts axis graduations */
     public static CHARTS_AXIS_PRECISION = 10;
 
-    public constructor() {
-        const sf = <Screenfull>screenfull;
-    }
-
     /** tracks the fullscreen state */
     public get isFullscreen() {
         const sf = <Screenfull>screenfull;
diff --git a/src/app/components/jet-results/jet-results.component.ts b/src/app/components/jet-results/jet-results.component.ts
index 50d8a1a1d..28ecd927c 100644
--- a/src/app/components/jet-results/jet-results.component.ts
+++ b/src/app/components/jet-results/jet-results.component.ts
@@ -46,8 +46,7 @@ export class JetResultsComponent extends FixedVarResultsComponent {
     protected updateResults() {
         const superUpdated = super.updateResults();
 
-        let trajectoryChartUpdated: boolean;
-        trajectoryChartUpdated = this.jetTrajectoryChartComponent !== undefined;
+        let trajectoryChartUpdated = this.jetTrajectoryChartComponent !== undefined;
 
         if (trajectoryChartUpdated) {
             // draw chart whether params are variating or not,
diff --git a/src/app/components/pab-results/pab-results.component.ts b/src/app/components/pab-results/pab-results.component.ts
index fe282c196..79551c24d 100644
--- a/src/app/components/pab-results/pab-results.component.ts
+++ b/src/app/components/pab-results/pab-results.component.ts
@@ -66,7 +66,7 @@ export class PabResultsComponent implements DoCheck {
 
     /**
      * update results table and chart when the variable index changed (event sent by
-     * PabVariableResultsSelectorComponent); variable index is already set in
+     * VariableResultsSelectorComponent); variable index is already set in
      * pabResults at this time
      */
     public variableIndexChanged() {
diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts
index 1e2f8d7b3..db14a54ce 100644
--- a/src/app/components/remous-results/remous-results.component.ts
+++ b/src/app/components/remous-results/remous-results.component.ts
@@ -141,11 +141,6 @@ export class RemousResultsComponent extends ResultsComponentDirective implements
         return this._tableHeaders;
     }
 
-    public getResultClass(i: number) {
-        // tslint:disable-next-line:no-bitwise
-        return "result_id_" + String(i & 1);
-    }
-
     public get hasResults(): boolean {
         return this._remousResults !== undefined && this._remousResults.hasResults;
     }
diff --git a/src/app/components/section-results/section-results.component.html b/src/app/components/section-results/section-results.component.html
index 04625e227..7911644b1 100644
--- a/src/app/components/section-results/section-results.component.html
+++ b/src/app/components/section-results/section-results.component.html
@@ -1,4 +1,5 @@
 <div class="section-results-container" #sectionResults *ngIf="hasResults" fxLayout="row wrap" fxLayoutAlign="center center">
+
     <div fxFlex="1 1 100%">
         <div class="section-results-buttons">
             <button mat-icon-button (click)="exportAsImage(sectionResults)" [title]="uitextExportImageTitle">
@@ -18,3 +19,21 @@
         </div>
     </div>
 </div>
+
+<div class="container">
+    <!-- journal -->
+    <log></log>
+
+    <results-chart *ngIf="showVarResults"></results-chart>
+    <!--<results-chart [hidden]="! showVarResultsChart"></results-chart>-->
+
+    <div>
+        <!-- table des résultats fixés -->
+        <fixed-results [results]=fixedResults></fixed-results>
+
+        <!-- table des résultats variés -->
+        <div *ngIf="showVarResults">
+            <var-results [results]=varResults></var-results>
+        </div>
+    </div>
+</div>
diff --git a/src/app/components/section-results/section-results.component.ts b/src/app/components/section-results/section-results.component.ts
index 130f45e7f..ea10156d3 100644
--- a/src/app/components/section-results/section-results.component.ts
+++ b/src/app/components/section-results/section-results.component.ts
@@ -5,9 +5,9 @@ import { ResultElement } from "jalhyd";
 import { SectionCanvasComponent } from "../section-canvas/section-canvas.component";
 import { SectionResults } from "../../results/section-results";
 import { CalculatorResults } from "../../results/calculator-results";
-import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { I18nService } from "../../services/internationalisation.service";
 import { AppComponent } from "../../app.component";
+import { FixedVarResultsComponent } from '../fixedvar-results/fixedvar-results.component';
 
 @Component({
     selector: "section-results",
@@ -16,7 +16,7 @@ import { AppComponent } from "../../app.component";
         "./section-results.component.scss"
     ]
 })
-export class SectionResultsComponent extends ResultsComponentDirective implements DoCheck {
+export class SectionResultsComponent extends FixedVarResultsComponent implements DoCheck {
 
     constructor(
         private intlService: I18nService,
@@ -26,6 +26,7 @@ export class SectionResultsComponent extends ResultsComponentDirective implement
     }
 
     public set results(rs: CalculatorResults[]) {
+        super.results = rs;
         this._resultElement = undefined;
         this._results = undefined;
         if (rs) {
@@ -68,28 +69,17 @@ export class SectionResultsComponent extends ResultsComponentDirective implement
      */
     private _resultElement: ResultElement;
 
-    private _doUpdate = false;
-
     @ViewChild(SectionCanvasComponent)
-    private _sectionCanvas: SectionCanvasComponent;
+    private _sectionCanvasComponent: SectionCanvasComponent;
 
     public updateView() {
-        if (this._sectionCanvas) {
-            this._sectionCanvas.reset();
+        if (this._sectionCanvasComponent) {
+            this._sectionCanvasComponent.reset();
         }
-
         if (this._results) {
             this._doUpdate = this._results.hasResults;
         }
-    }
-
-    /**
-     * appelé pour gérer les changements non détectés par Angular
-     */
-    public ngDoCheck() {
-        if (this._doUpdate) {
-            this._doUpdate = !this.updateResults();
-        }
+        super.updateView();
     }
 
     private isSectionLevel(s: string) {
@@ -101,17 +91,18 @@ export class SectionResultsComponent extends ResultsComponentDirective implement
         return false;
     }
 
-    private updateResults() {
-        if (this._results && this._sectionCanvas) {
+    protected updateResults() {
+        const superUpdated = super.updateResults();
 
+        if (this._results && this._sectionCanvasComponent !== undefined) {
             this._resultElement = new ResultElement();
 
             // compute canvas optimal size the first time
-            if (this._sectionCanvas.originalSize === undefined) {
+            if (this._sectionCanvasComponent.originalSize === undefined) {
                 const container = this.element.nativeElement.querySelector(".section-results-container");
                 const size = Math.min(container.offsetWidth, container.offsetHeight);
-                this._sectionCanvas.originalSize = size - 17; // 417 - 17 = 400
-                this._sectionCanvas.size = this._sectionCanvas.originalSize;
+                this._sectionCanvasComponent.originalSize = size - 17; // 417 - 17 = 400
+                this._sectionCanvasComponent.size = this._sectionCanvasComponent.originalSize;
             }
 
             // traduction des symboles des variables calculées
@@ -123,30 +114,25 @@ export class SectionResultsComponent extends ResultsComponentDirective implement
                     this._resultElement.addExtraResult(lbl, er);
 
                     if (this.isSectionLevel(k)) {
-                        this._sectionCanvas.addLevel(er, k + " = " + this.formattedValue(er), SectionResultsComponent.labelColors[k]);
+                        this._sectionCanvasComponent.addLevel(er, k + " = " + this.formattedValue(er), SectionResultsComponent.labelColors[k]);
                     }
                 }
             }
 
             // ajout du tirant d'eau saisi
             const valY = this._results.result.sourceNub.getParameter("Y").singleValue;
-            this._sectionCanvas.addLevel(valY, "Y = " + this.formattedValue(valY), SectionResultsComponent.labelColors["Y"]);
+            this._sectionCanvasComponent.addLevel(valY, "Y = " + this.formattedValue(valY), SectionResultsComponent.labelColors["Y"]);
 
             // wait just a little to draw, in case this._sectionCanvas.size was changed above (1st run)
             setTimeout(() => {
                 if (this._results && this._results.section) {
-                    this._sectionCanvas.section = this._results.section;
+                    this._sectionCanvasComponent.section = this._results.section;
                 }
             }, 100);
-
-            return true;
         }
-        return false;
-    }
 
-    public getResultClass(i: number) {
-        // tslint:disable-next-line:no-bitwise
-        return "result_id_" + String(i & 1);
+        let canvasUpdated = (! this.hasResults || this._sectionCanvasComponent !== undefined);
+        return superUpdated && canvasUpdated;
     }
 
     public exportAsImage(element: HTMLDivElement) {
@@ -155,10 +141,10 @@ export class SectionResultsComponent extends ResultsComponentDirective implement
 
     /** redraw canvas on fullscreen state change (scale drawing) */
     public fullscreenChange(isFullscreen: boolean) {
-        this._sectionCanvas.size = this.getContainerSize(! isFullscreen);
-        this.previousContainerSize = this._sectionCanvas.size;
+        this._sectionCanvasComponent.size = this.getContainerSize(! isFullscreen);
+        this.previousContainerSize = this._sectionCanvasComponent.size;
         setTimeout(() => {
-            this._sectionCanvas.draw();
+            this._sectionCanvasComponent.draw();
         }, 100);
     }
 
@@ -173,7 +159,7 @@ export class SectionResultsComponent extends ResultsComponentDirective implement
         // when going back from fullscreen mode, container size tends to be
         // too high for whatever reason; use originalSize on this purpose
         if (useOriginalSize) {
-            size = Math.min(size, this._sectionCanvas.originalSize);
+            size = Math.min(size, this._sectionCanvasComponent.originalSize);
         }
         return size;
     }
diff --git a/src/app/components/verificateur-results/verificateur-results.component.html b/src/app/components/verificateur-results/verificateur-results.component.html
new file mode 100644
index 000000000..dbe866617
--- /dev/null
+++ b/src/app/components/verificateur-results/verificateur-results.component.html
@@ -0,0 +1,8 @@
+<div class="container">
+    <log #generalLog [logTitle]="uitextGeneralLogTitle">log général</log>
+
+    <variable-results-selector [results]="verificateurResults" (indexChange)="variableIndexChanged()">
+    </variable-results-selector>
+
+    <log #iterationLog></log>
+</div>
diff --git a/src/app/components/verificateur-results/verificateur-results.component.scss b/src/app/components/verificateur-results/verificateur-results.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts
new file mode 100644
index 000000000..8a00642cc
--- /dev/null
+++ b/src/app/components/verificateur-results/verificateur-results.component.ts
@@ -0,0 +1,161 @@
+import { Component, ViewChild, DoCheck } from "@angular/core";
+
+import { cLog } from "jalhyd";
+
+import { LogComponent } from "../log/log.component";
+import { CalculatorResults } from "../../results/calculator-results";
+import { VariableResultsSelectorComponent } from "../variable-results-selector/variable-results-selector.component";
+import { I18nService } from "../../services/internationalisation.service";
+import { VerificateurResults } from "../../results/verificateur-results";
+import { ResultsComponentDirective } from '../fixedvar-results/results.component';
+
+@Component({
+    selector: "verificateur-results",
+    templateUrl: "./verificateur-results.component.html",
+    styleUrls: [
+        "./verificateur-results.component.scss"
+    ]
+})
+export class VerificateurResultsComponent extends ResultsComponentDirective implements DoCheck {
+
+    /** résultats non mis en forme */
+    private _verificateurResults: VerificateurResults;
+
+    /** true si les résultats doiventt être remis à jour */
+    private _doUpdate = false;
+
+    @ViewChild(VariableResultsSelectorComponent)
+    private variableResultsSelectorComponent: VariableResultsSelectorComponent;
+
+    @ViewChild("generalLog")
+    private generalLogComponent: LogComponent;
+
+    @ViewChild("iterationLog")
+    private iterationLogComponent: LogComponent;
+
+    constructor(
+        private i18nService: I18nService,
+    ) {
+        super();
+    }
+
+    public set results(rs: CalculatorResults[]) {
+        this._verificateurResults = undefined;
+        if (rs.length > 0 && rs[0] instanceof VerificateurResults) {
+            this._verificateurResults = rs[0] as VerificateurResults;
+        }
+        this.updateView();
+    }
+
+    /**
+     * update iteration log when the variable index changed (event sent by
+     * VariableResultsSelectorComponent); variable index is already set in
+     * verificateurResults at this time
+     */
+    public variableIndexChanged() {
+        this.updateView();
+    }
+
+    public updateView() {
+        if (this.iterationLogComponent) {
+            this.iterationLogComponent.log = undefined;
+        }
+        if (this.generalLogComponent) {
+            this.generalLogComponent.log = undefined;
+        }
+        if (this.variableResultsSelectorComponent) {
+            this.variableResultsSelectorComponent.results = undefined;
+        }
+        // set _doUpdate flag so that results are rebuilt on the next Angular display cycle
+        this._doUpdate = false;
+        if (this._verificateurResults !== undefined) {
+            this._doUpdate = this._doUpdate || this._verificateurResults.hasResults || this._verificateurResults.hasLog;
+        }
+    }
+
+    public ngDoCheck() {
+        if (this._doUpdate) {
+            this._doUpdate = !this.updateResults();
+        }
+    }
+
+    /*
+     * Retourne les messages à afficher dans le composant de log global, au dessus
+     * du sélecteur d'itération : messages globaux du Verificateur
+     */
+    private get globalLog(): cLog {
+        const l = new cLog();
+        if (this._verificateurResults && this._verificateurResults.result && this._verificateurResults.result.hasGlobalLog()) {
+            l.addLog(this._verificateurResults.result.globalLog);
+        }
+        return l;
+    }
+
+    /**
+     * Retourne les messages à afficher dans le composant de log "du bas" : logs de l'itération
+     * en cours (messages non-globaux du Vérificateur et eds Espèce), que le résultat varie ou non
+     */
+    private get iterationLog(): cLog {
+        const l = new cLog();
+        if (this._verificateurResults) {
+            // = 0 lorsque rien ne varie
+            const vi = this._verificateurResults.variableIndex;
+            // log du Verificateur pour l'itération en cours
+            if (
+                this._verificateurResults.result
+                && this._verificateurResults.result.hasResultElements()
+                && this._verificateurResults.result.resultElements[vi]
+                && this._verificateurResults.result.resultElements[vi].hasLog()
+            ) {
+                l.addLog(this._verificateurResults.result.resultElements[vi].log);
+            }
+            // logs des Espece pour l'itération en cours
+            for (const er of this._verificateurResults.especeResults) {
+                if (er && er.hasResultElements() && er.resultElements[vi].hasLog()) {
+                    l.addLog(er.resultElements[vi].log);
+                }
+            }
+        }
+        return l;
+    }
+
+    /**
+     * met à jour l'affichage des résultats
+     * @returns true si les résultats ont pu être mis à jour
+     */
+    private updateResults() {
+        let selectorUpdated: boolean;
+
+        // results or not, there might be a log
+        const logUpdated = (this.iterationLogComponent !== undefined || this.generalLogComponent !== undefined); // gne ?
+        if (logUpdated) {
+            // order of logs is important !
+            this.iterationLogComponent.log = this.iterationLog;
+            this.generalLogComponent.log = this.globalLog;
+        }
+
+        if (this.hasResults) {
+            selectorUpdated = this.variableResultsSelectorComponent !== undefined;
+            if (selectorUpdated) {
+                this.variableResultsSelectorComponent.results = this._verificateurResults;
+            }
+        } else {
+            selectorUpdated = true;
+        }
+
+        return logUpdated && selectorUpdated;
+    }
+
+    public get verificateurResults() {
+        return this._verificateurResults;
+    }
+
+    public get hasResults(): boolean {
+        return this._verificateurResults && this._verificateurResults.hasResults;
+    }
+
+    public get uitextGeneralLogTitle(): string {
+        return this.i18nService.localizeText("INFO_TITREJOURNAL_GLOBAL");
+    }
+
+}
diff --git a/src/app/formulaire/definition/form-pab.ts b/src/app/formulaire/definition/form-pab.ts
index 723d0713a..08bd3f1ab 100644
--- a/src/app/formulaire/definition/form-pab.ts
+++ b/src/app/formulaire/definition/form-pab.ts
@@ -82,7 +82,7 @@ export class FormulairePab extends FormulaireDefinition {
         return this._pabResults;
     }
 
-    public resetResults() {
+    public resetResults() { // @TODO why not resetFormResults() only ?
         this._pabResults.reset();
     }
 
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index a55e3357e..2a46caf52 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -1,13 +1,72 @@
-import { IObservable, Nub, Verificateur } from "jalhyd";
+import { IObservable, Nub, Verificateur, Result } from "jalhyd";
 
 import { SelectFieldCustom } from "../elements/select-field-custom";
 import { FormulaireFixedVar } from "./form-fixedvar";
+import { VerificateurResults } from "../../results/verificateur-results";
+import { CalculatorResults } from "../../results/calculator-results";
 
 /**
  * Formulaire pour les Vérificateurs
  */
 export class FormulaireVerificateur extends FormulaireFixedVar {
 
+    protected _verificateurResults: VerificateurResults;
+
+    constructor() {
+        super();
+        this._verificateurResults = new VerificateurResults();
+    }
+
+    public get verificateurNub(): Verificateur {
+        return this.currentNub as Verificateur;
+    }
+
+    public get verificateurResults() {
+        return this._verificateurResults;
+    }
+
+    protected compute() {
+        this.runNubCalc(this.currentNub);
+        // reset variable index to avoid trying to access an index > 0 when nothing varies
+        const mrcr = this.verificateurResults;
+        mrcr.variableIndex = 0;
+
+        this.reaffectResultComponents();
+    }
+
+    protected reaffectResultComponents() {
+        const ver: Verificateur = (this.currentNub as Verificateur);
+        // const varParams: NgParameter[] = this.getVariatedParameters();
+
+        // résultat de calcul de la passe à macrorugo complexe
+        const vr = this.verificateurResults;
+        // vr.calculatedParameter = computedParam;
+        vr.result = ver.result;
+        /* if (varParams) {
+            vr.variatedParameters = varParams;
+        } */
+        vr.variatedParameters = [];
+
+        // résultat de chaque Espece
+        const er: Result[] = [];
+        for (const sp of ver.species) {
+            er.push(sp.result);
+        }
+        vr.especeResults = er;
+    }
+
+    public resetFormResults() {
+        this._verificateurResults.reset();
+    }
+
+    public get results(): CalculatorResults[] {
+        return [ this._verificateurResults ];
+    }
+
+    public get hasResults(): boolean {
+        return this._verificateurResults.hasResults;
+    }
+
     // interface Observer
 
     public update(sender: IObservable, data: any) {
diff --git a/src/app/results/param-calc-results.ts b/src/app/results/param-calc-results.ts
index 62cd26f84..6a2418848 100644
--- a/src/app/results/param-calc-results.ts
+++ b/src/app/results/param-calc-results.ts
@@ -20,7 +20,7 @@ export abstract class CalculatedParamResults extends CalculatorResults {
     /** custom variables order for results tables  */
     public variablesOrder: string[] = [];
 
-    protected reset() {
+    public reset() {
         this._calculatedParam = undefined;
         this.calculatedParameterHeader = undefined;
         this.result = undefined;
diff --git a/src/app/results/verificateur-results.ts b/src/app/results/verificateur-results.ts
new file mode 100644
index 000000000..04f686404
--- /dev/null
+++ b/src/app/results/verificateur-results.ts
@@ -0,0 +1,14 @@
+import { MultiDimensionResults } from "./multidimension-results";
+
+import { Result } from 'jalhyd';
+
+export class VerificateurResults extends MultiDimensionResults {
+
+    /** résultats des modules Espece */
+    public especeResults: Result[];
+
+    public reset() {
+        super.reset();
+        this.especeResults = [];
+    }
+}
-- 
GitLab


From 11057ede998c3093de5373764f749add17e9f36b Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 5 May 2020 11:46:54 +0200
Subject: [PATCH 038/101] Added new component log-drawer

update Verificateur results with log-drawer
---
 src/app/app.module.ts                         |  4 +-
 .../log-drawer/log-drawer.component.html      | 24 +++++++++
 .../log-drawer/log-drawer.component.scss      | 41 ++++++++++++++++
 .../log-drawer/log-drawer.component.ts        | 49 +++++++++++++++++++
 .../pab-results-table.component.ts            |  4 +-
 .../verificateur-results.component.html       |  2 +-
 .../verificateur-results.component.ts         | 29 ++++++++---
 src/locale/messages.en.json                   | 27 +++++-----
 src/locale/messages.fr.json                   | 37 ++++++++------
 9 files changed, 178 insertions(+), 39 deletions(-)
 create mode 100644 src/app/components/log-drawer/log-drawer.component.html
 create mode 100644 src/app/components/log-drawer/log-drawer.component.scss
 create mode 100644 src/app/components/log-drawer/log-drawer.component.ts

diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 2fb9161a8..5d9fd69fc 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -75,13 +75,14 @@ import { PabResultsComponent } from "./components/pab-results/pab-results.compon
 import { VerificateurResultsComponent } from "./components/verificateur-results/verificateur-results.component";
 import { PabResultsTableComponent } from "./components/pab-results/pab-results-table.component";
 import { ChartTypeSelectComponent } from "./components/results-chart/chart-type.component";
-import { LogComponent } from "./components/log/log.component";
 import { CalculatorListComponent } from "./components/calculator-list/calculator-list.component";
 import { ApplicationSetupComponent } from "./components/app-setup/app-setup.component";
 import { BaseParamInputComponent } from "./components/base-param-input/base-param-input.component";
 import { FixedResultsComponent } from "./components/fixedvar-results/fixed-results.component";
 import { VarResultsComponent } from "./components/fixedvar-results/var-results.component";
+import { LogComponent } from "./components/log/log.component";
 import { LogEntryComponent } from "./components/log-entry/log-entry.component";
+import { LogDrawerComponent } from './components/log-drawer/log-drawer.component';
 import { ParamLinkComponent } from "./components/param-link/param-link.component";
 import { PabProfileChartComponent } from "./components/pab-profile-chart/pab-profile-chart.component";
 import { PabTableComponent } from "./components/pab-table/pab-table.component";
@@ -211,6 +212,7 @@ const appRoutes: Routes = [
     JetResultsComponent,
     JetTrajectoryChartComponent,
     LogComponent,
+    LogDrawerComponent,
     LogEntryComponent,
     ModulesDiagramComponent,
     NgParamInputComponent,
diff --git a/src/app/components/log-drawer/log-drawer.component.html b/src/app/components/log-drawer/log-drawer.component.html
new file mode 100644
index 000000000..4b9bbd8ee
--- /dev/null
+++ b/src/app/components/log-drawer/log-drawer.component.html
@@ -0,0 +1,24 @@
+<div *ngIf="hasEntries">
+    <div class="hyd_log_drawer">
+        <!-- titre -->
+        <div class="titre">{{ uitextTitreJournal }}</div>
+        <!-- entrées du journal -->
+        <div class="log-entry" *ngFor="let entry of log">
+            <log-entry [_message]="entry.message"></log-entry>
+            <div *ngIf="entry.subLog.messages.length" class="drawer">
+                <div class="open-drawer">
+                    <span *ngIf="! entry.isOpen">
+                        <a (click)="entry.isOpen = true;">{{ uitextShowDetails }}</a>
+                    </span>
+                    <span *ngIf="entry.isOpen">
+                        <a (click)="entry.isOpen = false">{{ uitextHideDetails }}</a>
+                    </span>
+                </div>
+                <div class="drawer-contents" [hidden]="! entry.isOpen">
+                    <log-entry *ngFor="let m of entry.subLog.messages" [_message]="m"></log-entry>
+                </div>
+            </div>
+        </div>
+        
+    </div>
+</div>
diff --git a/src/app/components/log-drawer/log-drawer.component.scss b/src/app/components/log-drawer/log-drawer.component.scss
new file mode 100644
index 000000000..2ae464717
--- /dev/null
+++ b/src/app/components/log-drawer/log-drawer.component.scss
@@ -0,0 +1,41 @@
+:host {
+    display: block;
+}
+
+.hyd_log_drawer {
+    margin-top: 2.5em;
+    border: solid #ccc 1px;
+    border-radius: 2px;
+    padding: 1em;
+    padding-top : 1.3em;
+
+    > .log-entry {
+        margin-bottom: 1.5em;
+    }
+}
+
+.titre {
+    background-color: white;
+    border: 1px solid #ccc;
+    border-radius: 2px;
+    float: left;
+    font-weight: bold;
+    margin-bottom: -1em;
+    margin-top: -2.3em;
+    padding: 0.2em 0.5em;
+}
+
+.open-drawer {
+    margin-top: -6px;
+
+    a {
+        // text-decoration: underline;
+        cursor: pointer;
+    }
+}
+
+.drawer-contents {
+    margin-left: 1em;
+    border-left: solid #ddd 1px;
+    padding-left: 1em;
+}
diff --git a/src/app/components/log-drawer/log-drawer.component.ts b/src/app/components/log-drawer/log-drawer.component.ts
new file mode 100644
index 000000000..2394e46b8
--- /dev/null
+++ b/src/app/components/log-drawer/log-drawer.component.ts
@@ -0,0 +1,49 @@
+import { Component, Input } from "@angular/core";
+
+import { cLog, Message } from "jalhyd";
+
+import { I18nService } from "../../services/internationalisation.service";
+
+@Component({
+    selector: "log-drawer",
+    templateUrl: "./log-drawer.component.html",
+    styleUrls: [
+        "./log-drawer.component.scss"
+    ]
+})
+/** le log à tiroirs ! */
+export class LogDrawerComponent {
+
+    /** A list of log messages accompanied by a sub-log (multiple messages) */
+    public log: Array<{ message: Message, subLog: cLog }>;
+
+    // title to display above the log
+    @Input()
+    public logTitle: string;
+
+    constructor(
+        private intlService: I18nService,
+    ) {
+        this.log = [];
+    }
+
+    public get uitextTitreJournal(): string {
+        if (this.logTitle) {
+            return this.logTitle;
+        } else {
+            return this.intlService.localizeText("INFO_TITREJOURNAL");
+        }
+    }
+
+    public get hasEntries(): boolean {
+        return this.log !== undefined && this.log.length !== 0;
+    }
+
+    public get uitextShowDetails(): string {
+        return this.intlService.localizeText("INFO_LOG_SHOW_DETAILS");
+    }
+
+    public get uitextHideDetails(): string {
+        return this.intlService.localizeText("INFO_LOG_HIDE_DETAILS");
+    }
+}
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 8fb591b99..45418cf16 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -1,6 +1,6 @@
 import { Component, ViewChild, ElementRef } from "@angular/core";
 
-import { CloisonAval, Result } from "jalhyd";
+import { CloisonAval, Result, capitalize } from "jalhyd";
 
 import { PabResults } from "../../results/pab-results";
 import { I18nService } from "../../services/internationalisation.service";
@@ -40,7 +40,7 @@ export class PabResultsTableComponent extends ResultsComponentDirective {
         const devices = re.sourceNub.getChildren();
         const jetTypes: string[] = devices.map((device) => {
             const jt = device.result.resultElements[vi].getValue("ENUM_StructureJetType");
-            let jetType = this.intlService.localizeText("INFO_ENUM_STRUCTUREJETTYPE_" + jt);
+            let jetType = capitalize(this.intlService.localizeText("INFO_ENUM_STRUCTUREJETTYPE_" + jt));
             if (devices.length > 1) {
                 // evil HTML injection in table cell (simpler)
                 jetType = this.intlService.localizeText("INFO_LIB_FS_OUVRAGE") + " n°"
diff --git a/src/app/components/verificateur-results/verificateur-results.component.html b/src/app/components/verificateur-results/verificateur-results.component.html
index dbe866617..1d0f78479 100644
--- a/src/app/components/verificateur-results/verificateur-results.component.html
+++ b/src/app/components/verificateur-results/verificateur-results.component.html
@@ -4,5 +4,5 @@
     <variable-results-selector [results]="verificateurResults" (indexChange)="variableIndexChanged()">
     </variable-results-selector>
 
-    <log #iterationLog></log>
+    <log-drawer #iterationLog></log-drawer>
 </div>
diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts
index 8a00642cc..c79542673 100644
--- a/src/app/components/verificateur-results/verificateur-results.component.ts
+++ b/src/app/components/verificateur-results/verificateur-results.component.ts
@@ -1,6 +1,6 @@
 import { Component, ViewChild, DoCheck } from "@angular/core";
 
-import { cLog } from "jalhyd";
+import { cLog, Message } from "jalhyd";
 
 import { LogComponent } from "../log/log.component";
 import { CalculatorResults } from "../../results/calculator-results";
@@ -8,6 +8,7 @@ import { VariableResultsSelectorComponent } from "../variable-results-selector/v
 import { I18nService } from "../../services/internationalisation.service";
 import { VerificateurResults } from "../../results/verificateur-results";
 import { ResultsComponentDirective } from '../fixedvar-results/results.component';
+import { LogDrawerComponent } from "../log-drawer/log-drawer.component";
 
 @Component({
     selector: "verificateur-results",
@@ -31,7 +32,7 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
     private generalLogComponent: LogComponent;
 
     @ViewChild("iterationLog")
-    private iterationLogComponent: LogComponent;
+    private iterationLogComponent: LogDrawerComponent;
 
     constructor(
         private i18nService: I18nService,
@@ -95,24 +96,36 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
      * Retourne les messages à afficher dans le composant de log "du bas" : logs de l'itération
      * en cours (messages non-globaux du Vérificateur et eds Espèce), que le résultat varie ou non
      */
-    private get iterationLog(): cLog {
-        const l = new cLog();
+    private get iterationLog(): Array<{ message: Message, subLog: cLog }> {
+        const l: Array<{ message: Message, subLog: cLog }> = [];
         if (this._verificateurResults) {
             // = 0 lorsque rien ne varie
             const vi = this._verificateurResults.variableIndex;
             // log du Verificateur pour l'itération en cours
+            const element = { message: Message, subLog: cLog };
             if (
                 this._verificateurResults.result
                 && this._verificateurResults.result.hasResultElements()
                 && this._verificateurResults.result.resultElements[vi]
                 && this._verificateurResults.result.resultElements[vi].hasLog()
             ) {
-                l.addLog(this._verificateurResults.result.resultElements[vi].log);
+                // every log message of Verificateur is supposed to always be a status message for the nth Espece
+                const verLog: cLog = this._verificateurResults.result.resultElements[vi].log;
+                for (const vm of verLog.messages) {
+                    l.push({
+                        message: vm,
+                        subLog: new cLog()
+                    });
+                }
+            }
+            // logs des Espece pour l'itération en cours; l.length devrait toujours être égal à this._verificateurResults.especeResults.length
+            if (l.length !== this._verificateurResults.especeResults.length) {
+                throw new Error("VerificateurResultsComponent: l.length !== this._verificateurResults.especeResults.length (" + l.length + " / " + this._verificateurResults.especeResults.length) + ")";
             }
-            // logs des Espece pour l'itération en cours
-            for (const er of this._verificateurResults.especeResults) {
+            for (let i = 0; i < this._verificateurResults.especeResults.length; i++) {
+                const er = this._verificateurResults.especeResults[i];
                 if (er && er.hasResultElements() && er.resultElements[vi].hasLog()) {
-                    l.addLog(er.resultElements[vi].log);
+                    l[i].subLog.addLog(er.resultElements[vi].log);
                 }
             }
         }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 9184c785d..8f6a2e6fa 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -168,9 +168,9 @@
     "INFO_ENUM_STRUCTUREFLOWREGIME_1": "Partially submerged",
     "INFO_ENUM_STRUCTUREFLOWREGIME_2": "Submerged",
     "INFO_ENUM_STRUCTUREFLOWREGIME_3": "Zero flow",
-    "INFO_ENUM_STRUCTUREJETTYPE_0": "Diving",
-    "INFO_ENUM_STRUCTUREJETTYPE_1": "Surface",
-    "INFO_ENUM_STRUCTUREJETTYPE_2": "Not applicable",
+    "INFO_ENUM_STRUCTUREJETTYPE_0": "diving",
+    "INFO_ENUM_STRUCTUREJETTYPE_1": "surface",
+    "INFO_ENUM_STRUCTUREJETTYPE_2": "not applicable",
     "INFO_CHART_BUTTON_TITLE_RESET_ZOOM": "Restore default zoom",
     "INFO_CHART_BUTTON_TITLE_EXPORT_IMAGE": "Save picture",
     "INFO_CHART_BUTTON_TITLE_ENTER_FS": "Display fullscreen",
@@ -612,17 +612,19 @@
     "WARNING_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
-    "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet&nbsp;: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet&nbsp;: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Downwall: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Downwall: fall %DH% too high for jet type %jetType% (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Downwall: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Downwall: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "WARNING_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
     "WARNING_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum: %minLB%)",
+    "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum for surface jet: %minLBS%, minimum for diving jet: %minLBS%)",
+    "ERROR_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
+    "WARNING_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "WARNING_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
@@ -631,8 +633,11 @@
     "ERROR_VERIF_PAB_SMIN_DW": "Downwall, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
     "WARNING_VERIF_PAB_SMIN": "Wall #%NC%, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
     "WARNING_VERIF_PAB_SMIN_DW": "Downwall, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "ERROR_VERIF_PAB_YMOY": "Wall #%N%: basin depth %PB% too low (minimum: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY": "Wall #%N%: basin depth %PB% too low (minimum for surface jet: %minPBS%, minimum for diving jet: %minPBP%)",
+    "ERROR_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
+    "WARNING_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
     "ERROR_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
+    "WARNING_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index fb1deb92f..14a4a2934 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -168,9 +168,9 @@
     "INFO_ENUM_STRUCTUREFLOWREGIME_1": "Partiellement noyé",
     "INFO_ENUM_STRUCTUREFLOWREGIME_2": "Noyé",
     "INFO_ENUM_STRUCTUREFLOWREGIME_3": "Débit nul",
-    "INFO_ENUM_STRUCTUREJETTYPE_0": "Plongeant",
-    "INFO_ENUM_STRUCTUREJETTYPE_1": "De surface",
-    "INFO_ENUM_STRUCTUREJETTYPE_2": "Sans objet",
+    "INFO_ENUM_STRUCTUREJETTYPE_0": "plongeant",
+    "INFO_ENUM_STRUCTUREJETTYPE_1": "de surface",
+    "INFO_ENUM_STRUCTUREJETTYPE_2": "sans objet",
     "INFO_CHART_BUTTON_TITLE_RESET_ZOOM": "Réinitialiser le zoom",
     "INFO_CHART_BUTTON_TITLE_EXPORT_IMAGE": "Enregistrer l'image",
     "INFO_CHART_BUTTON_TITLE_ENTER_FS": "Afficher en plein écran",
@@ -615,15 +615,17 @@
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
     "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N%&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
-    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Cloison aval&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Cloison aval&nbsp;: chute %DH% trop importante pour le jet %jetType% (maximum&nbsp;: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
+    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Cloison aval&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Cloison aval&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
     "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
     "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
     "WARNING_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
     "WARNING_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum&nbsp;: %minLB%)",
+    "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum pour jet de surface&nbsp;: %minLBS%, minimum pour jet plongeant&nbsp;: %minLBP%)",
+    "ERROR_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
+    "WARNING_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
     "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
@@ -632,18 +634,21 @@
     "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
     "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
     "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
-    "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum&nbsp;: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum pour jet de surface&nbsp;: %minPBS%, minimum pour jet plongeant&nbsp;: %minPBP%)",
+    "ERROR_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
+    "WARNING_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
     "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
+    "WARNING_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
-    "ERROR_VERIF_SPECIES_GROUP_KO": "Le franchissement est impossible pour le groupe d'espèces ENUM_%speciesGroup%",
-    "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Le franchissement est possible pour le groupe d'espèces ENUM_%speciesGroup%, mais il y a des avertissements",
-    "INFO_VERIF_SPECIES_GROUP_OK": "Le franchissement est possible pour le groupe d'espèces ENUM_%speciesGroup%",
-    "ERROR_VERIF_SPECIES_NUB_KO": "Le franchissement est impossible pour l'espèce personnalisée FORM_ID_%uid%",
-    "WARNING_VERIF_SPECIES_NUB_OK_BUT": "Le franchissement est possible pour l'espèce personnalisée FORM_ID_%uid%, mais il y a des avertissements",
-    "INFO_VERIF_SPECIES_NUB_OK": "Le franchissement est possible pour l'espèce personnalisée FORM_ID_%uid%",
-    "ERROR_VERIF_PAB_WALLS_NOT_CROSSABLE": "La cloison n°%N% n'est pas franchissable",
+    "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible",
+    "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements",
+    "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK",
+    "ERROR_VERIF_SPECIES_NUB_KO": "FORM_ID_%uid%&nbsp;: franchissement impossible",
+    "WARNING_VERIF_SPECIES_NUB_OK_BUT": "FORM_ID_%uid%&nbsp;: OK, avec des avertissements",
+    "INFO_VERIF_SPECIES_NUB_OK": "FORM_ID_%uid%&nbsp;: OK",
+    "ERROR_VERIF_PAB_WALL_NOT_CROSSABLE": "La cloison n°%N% n'est pas franchissable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "La cloison aval n'est pas franchissable",
     "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
 }
-- 
GitLab


From b6e2c2f3e61c4e3ff71c60fa5a01f8601db365c4 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 5 May 2020 14:42:08 +0200
Subject: [PATCH 039/101] Add script to check missing translations of JaLHyd
 messages

---
 scripts/check-translations.js | 44 +++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 scripts/check-translations.js

diff --git a/scripts/check-translations.js b/scripts/check-translations.js
new file mode 100644
index 000000000..8beb57298
--- /dev/null
+++ b/scripts/check-translations.js
@@ -0,0 +1,44 @@
+'use strict';
+
+const fs = require('fs');
+
+// read and transform JaLHyd message file
+const jalhydMessagesPath = "../jalhyd/src/util/message.ts";
+let jm = fs.readFileSync(jalhydMessagesPath, "utf-8");
+// extract enum block
+jm = jm.replace(/export enum MessageCode \{([^{]+)\}[\s\S]+/m, (match, p1) => {
+    return p1;
+});
+// remove comments
+jm = jm.replace(/\/\*[\s\S]*?\*\//gm, "");
+jm = jm.replace(/\/\/.+/g, "");
+
+// remove spaces
+jm = jm.replace(/[ \t]+/g, "");
+// remove line breaks
+jm = jm.replace(/\n/g, "");
+// split on ";"
+const messages = jm.split(",");
+
+// console.log(messages);
+
+// read every language file
+const localePath = "src/locale";
+const localeDir = fs.readdirSync(localePath);
+for (let i = 0; i < localeDir.length; i++) {
+    const localeFile = localeDir[i];
+    const res = localeFile.match(/^messages\.([a-z]{2})\.json$/);
+    if (res) {
+        const lang = res[1];
+        console.log("Loading translations for language [" + lang + "]");
+        const langFilePath = localePath + '/' + localeFile;
+        let translations = Object.keys(JSON.parse(fs.readFileSync(langFilePath, "utf-8")));
+        // console.log(translations);
+        // check against JaLHyd messages list
+        for (const mess of messages) {
+            if (! translations.includes(mess)) {
+                console.log("  missing message in [" + lang + "] translation: " + mess);
+            }
+        }
+    }
+}
-- 
GitLab


From 221cf773f43eade417b6470c2d6de4d62721d8e0 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 5 May 2020 14:42:12 +0200
Subject: [PATCH 040/101] ts lint

---
 src/app/app.component.ts                      |  2 +-
 src/app/app.module.ts                         |  2 +-
 .../calculator-results.component.ts           | 32 +++++++++----------
 .../dialog-edit-param-values.component.ts     |  5 ++-
 .../jet-results/jet-results.component.ts      |  4 +--
 .../modules-diagram.component.ts              |  4 +--
 .../section-results.component.ts              |  8 +++--
 .../verificateur-results.component.ts         |  9 ++++--
 .../formulaire/definition/form-definition.ts  |  2 +-
 .../formulaire/definition/form-fixedvar.ts    |  2 +-
 src/app/formulaire/elements/fieldset.ts       |  2 +-
 .../elements/select-field-custom.ts           |  8 ++---
 src/app/results/verificateur-results.ts       |  2 +-
 .../services/internationalisation.service.ts  |  3 +-
 src/app/util.ts                               | 10 +++---
 15 files changed, 52 insertions(+), 43 deletions(-)

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 92170a313..e90029baf 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -24,7 +24,7 @@ import { DialogSaveSessionComponent } from "./components/dialog-save-session/dia
 import { QuicknavComponent } from "./components/quicknav/quicknav.component";
 import { NotificationsService } from "./services/notifications.service";
 
-import { decodeHtml } from './util';
+import { decodeHtml } from "./util";
 
 import { HotkeysService, Hotkey } from "angular2-hotkeys";
 
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 5d9fd69fc..51dceda8d 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -82,7 +82,7 @@ import { FixedResultsComponent } from "./components/fixedvar-results/fixed-resul
 import { VarResultsComponent } from "./components/fixedvar-results/var-results.component";
 import { LogComponent } from "./components/log/log.component";
 import { LogEntryComponent } from "./components/log-entry/log-entry.component";
-import { LogDrawerComponent } from './components/log-drawer/log-drawer.component';
+import { LogDrawerComponent } from "./components/log-drawer/log-drawer.component";
 import { ParamLinkComponent } from "./components/param-link/param-link.component";
 import { PabProfileChartComponent } from "./components/pab-profile-chart/pab-profile-chart.component";
 import { PabTableComponent } from "./components/pab-table/pab-table.component";
diff --git a/src/app/components/calculator-results/calculator-results.component.ts b/src/app/components/calculator-results/calculator-results.component.ts
index 09df29e7e..900cf877a 100644
--- a/src/app/components/calculator-results/calculator-results.component.ts
+++ b/src/app/components/calculator-results/calculator-results.component.ts
@@ -10,7 +10,7 @@ import { JetResultsComponent } from "../jet-results/jet-results.component";
 import { GenericCalculatorComponent } from "../generic-calculator/calculator.component";
 import { VerificateurResultsComponent } from "../verificateur-results/verificateur-results.component";
 
-import { CalculatorType } from 'jalhyd';
+import { CalculatorType } from "jalhyd";
 
 @Component({
     selector: "calc-results",
@@ -84,24 +84,24 @@ export class CalculatorResultsComponent implements AfterViewChecked {
             this.sectionResultsComponent.results = undefined;
             this.verificateurResultsComponent.results = undefined;
         } else {
-            if (this.showGenericResults) this.fixedVarResultsComponent.results = f.results;
-            if (this.isJet) this.jetResultsComponent.results = f.results;
-            if (this.isMRC) this.mrcResultsComponent.results = f.results;
-            if (this.isPAB) this.pabResultsComponent.results = f.results;
-            if (this.isRemous) this.remousResultsComponent.results = f.results;
-            if (this.isSP) this.sectionResultsComponent.results = f.results;
-            if (this.isVerificateur) this.verificateurResultsComponent.results = f.results;
+            if (this.showGenericResults) { this.fixedVarResultsComponent.results = f.results; }
+            if (this.isJet) { this.jetResultsComponent.results = f.results; }
+            if (this.isMRC) { this.mrcResultsComponent.results = f.results; }
+            if (this.isPAB) { this.pabResultsComponent.results = f.results; }
+            if (this.isRemous) { this.remousResultsComponent.results = f.results; }
+            if (this.isSP) { this.sectionResultsComponent.results = f.results; }
+            if (this.isVerificateur) { this.verificateurResultsComponent.results = f.results; }
         }
     }
 
     public updateView() {
-        if (this.showGenericResults) this.fixedVarResultsComponent.updateView();
-        if (this.isJet) this.jetResultsComponent.updateView();
-        if (this.isMRC) this.mrcResultsComponent.updateView();
-        if (this.isPAB) this.pabResultsComponent.updateView();
-        if (this.isRemous) this.remousResultsComponent.updateView();
-        if (this.isSP) this.sectionResultsComponent.updateView();
-        if (this.isVerificateur) this.verificateurResultsComponent.updateView();
+        if (this.showGenericResults) { this.fixedVarResultsComponent.updateView(); }
+        if (this.isJet) { this.jetResultsComponent.updateView(); }
+        if (this.isMRC) { this.mrcResultsComponent.updateView(); }
+        if (this.isPAB) { this.pabResultsComponent.updateView(); }
+        if (this.isRemous) { this.remousResultsComponent.updateView(); }
+        if (this.isSP) { this.sectionResultsComponent.updateView(); }
+        if (this.isVerificateur) { this.verificateurResultsComponent.updateView(); }
     }
 
     public ngAfterViewChecked() {
@@ -117,7 +117,7 @@ export class CalculatorResultsComponent implements AfterViewChecked {
             && ! this.isRemous
             && ! this.isSP
             && ! this.isVerificateur
-        )
+        );
     }
 
     public get isJet(): boolean {
diff --git a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
index 7da1e632c..3c419f000 100644
--- a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
+++ b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
@@ -215,7 +215,10 @@ export class DialogEditParamValuesComponent implements OnInit {
                 if (this.param.paramDefinition.step === 0) {
                     return 0;
                 } else {
-                    return Math.max(0, Math.ceil((this.param.paramDefinition.max - this.param.paramDefinition.min) / this.param.paramDefinition.step) + 1);
+                    return Math.max(
+                        0,
+                        Math.ceil((this.param.paramDefinition.max - this.param.paramDefinition.min) / this.param.paramDefinition.step) + 1
+                    );
                 }
             } catch (e) {
                 // min > max or something, silent fail
diff --git a/src/app/components/jet-results/jet-results.component.ts b/src/app/components/jet-results/jet-results.component.ts
index 28ecd927c..455521eab 100644
--- a/src/app/components/jet-results/jet-results.component.ts
+++ b/src/app/components/jet-results/jet-results.component.ts
@@ -28,7 +28,7 @@ export class JetResultsComponent extends FixedVarResultsComponent {
         return this.hasResults && (
             this._fixedResults && this._fixedResults.result && this._fixedResults.result.sourceNub.result.ok
             ||
-            this._varResults&& this._varResults.result && this._varResults.result.sourceNub.result.ok
+            this._varResults && this._varResults.result && this._varResults.result.sourceNub.result.ok
         );
     }
 
@@ -46,7 +46,7 @@ export class JetResultsComponent extends FixedVarResultsComponent {
     protected updateResults() {
         const superUpdated = super.updateResults();
 
-        let trajectoryChartUpdated = this.jetTrajectoryChartComponent !== undefined;
+        const trajectoryChartUpdated = this.jetTrajectoryChartComponent !== undefined;
 
         if (trajectoryChartUpdated) {
             // draw chart whether params are variating or not,
diff --git a/src/app/components/modules-diagram/modules-diagram.component.ts b/src/app/components/modules-diagram/modules-diagram.component.ts
index 0ec976df7..80d08b7b7 100644
--- a/src/app/components/modules-diagram/modules-diagram.component.ts
+++ b/src/app/components/modules-diagram/modules-diagram.component.ts
@@ -228,8 +228,8 @@ export class ModulesDiagramComponent implements AfterContentInit, AfterViewCheck
             // add Verificateur links
             if (nub instanceof Verificateur) {
                 const ntv = nub.nubToVerify;
-                const sp = nub.species.filter((sp) => {
-                    return sp.species === FishSpecies.SPECIES_CUSTOM;
+                const sp = nub.species.filter((spe) => {
+                    return spe.species === FishSpecies.SPECIES_CUSTOM;
                 });
                 const verifiesPass = this.intlService.localizeText("INFO_DIAGRAM_VERIFICATEUR_VERIFIES_PASS");
                 const verifiesSpecies = this.intlService.localizeText("INFO_DIAGRAM_VERIFICATEUR_VERIFIES_SPECIES");
diff --git a/src/app/components/section-results/section-results.component.ts b/src/app/components/section-results/section-results.component.ts
index ea10156d3..99df6bb4a 100644
--- a/src/app/components/section-results/section-results.component.ts
+++ b/src/app/components/section-results/section-results.component.ts
@@ -7,7 +7,7 @@ import { SectionResults } from "../../results/section-results";
 import { CalculatorResults } from "../../results/calculator-results";
 import { I18nService } from "../../services/internationalisation.service";
 import { AppComponent } from "../../app.component";
-import { FixedVarResultsComponent } from '../fixedvar-results/fixedvar-results.component';
+import { FixedVarResultsComponent } from "../fixedvar-results/fixedvar-results.component";
 
 @Component({
     selector: "section-results",
@@ -114,7 +114,9 @@ export class SectionResultsComponent extends FixedVarResultsComponent implements
                     this._resultElement.addExtraResult(lbl, er);
 
                     if (this.isSectionLevel(k)) {
-                        this._sectionCanvasComponent.addLevel(er, k + " = " + this.formattedValue(er), SectionResultsComponent.labelColors[k]);
+                        this._sectionCanvasComponent.addLevel(
+                            er, k + " = " + this.formattedValue(er), SectionResultsComponent.labelColors[k]
+                        );
                     }
                 }
             }
@@ -131,7 +133,7 @@ export class SectionResultsComponent extends FixedVarResultsComponent implements
             }, 100);
         }
 
-        let canvasUpdated = (! this.hasResults || this._sectionCanvasComponent !== undefined);
+        const canvasUpdated = (! this.hasResults || this._sectionCanvasComponent !== undefined);
         return superUpdated && canvasUpdated;
     }
 
diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts
index c79542673..b384e2125 100644
--- a/src/app/components/verificateur-results/verificateur-results.component.ts
+++ b/src/app/components/verificateur-results/verificateur-results.component.ts
@@ -7,7 +7,7 @@ import { CalculatorResults } from "../../results/calculator-results";
 import { VariableResultsSelectorComponent } from "../variable-results-selector/variable-results-selector.component";
 import { I18nService } from "../../services/internationalisation.service";
 import { VerificateurResults } from "../../results/verificateur-results";
-import { ResultsComponentDirective } from '../fixedvar-results/results.component';
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { LogDrawerComponent } from "../log-drawer/log-drawer.component";
 
 @Component({
@@ -118,9 +118,12 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
                     });
                 }
             }
-            // logs des Espece pour l'itération en cours; l.length devrait toujours être égal à this._verificateurResults.especeResults.length
+            // logs des Espece pour l'itération en cours; l.length devrait toujours être égal à especeResults.length
             if (l.length !== this._verificateurResults.especeResults.length) {
-                throw new Error("VerificateurResultsComponent: l.length !== this._verificateurResults.especeResults.length (" + l.length + " / " + this._verificateurResults.especeResults.length) + ")";
+                throw new Error(
+                    "VerificateurResultsComponent: l.length !== this._verificateurResults.especeResults.length ("
+                    + l.length + " / " + this._verificateurResults.especeResults.length + ")"
+                );
             }
             for (let i = 0; i < this._verificateurResults.especeResults.length; i++) {
                 const er = this._verificateurResults.especeResults[i];
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 026ffdba4..7de69e2b6 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -24,7 +24,7 @@ import { TopFormulaireElementIterator } from "../form-iterator/top-element-itera
 import { CalculatorResults } from "../../results/calculator-results";
 import { ServiceFactory } from "../../services/service-factory";
 import { PabTable } from "../elements/pab-table";
-import { SelectEntry } from '../elements/select-entry';
+import { SelectEntry } from "../elements/select-entry";
 
 /**
  * classe de base pour tous les formulaires
diff --git a/src/app/formulaire/definition/form-fixedvar.ts b/src/app/formulaire/definition/form-fixedvar.ts
index c9835398c..ca74b364d 100644
--- a/src/app/formulaire/definition/form-fixedvar.ts
+++ b/src/app/formulaire/definition/form-fixedvar.ts
@@ -7,7 +7,7 @@ import { ParamRadioConfig, NgParameter } from "../elements/ngparam";
 import { FieldSet } from "../elements/fieldset";
 
 import { Nub, IObservable } from "jalhyd";
-import { SelectFieldCustom } from '../elements/select-field-custom';
+import { SelectFieldCustom } from "../elements/select-field-custom";
 
 export class FormulaireFixedVar extends FormulaireDefinition {
 
diff --git a/src/app/formulaire/elements/fieldset.ts b/src/app/formulaire/elements/fieldset.ts
index 13ee41a8d..f9063cb45 100644
--- a/src/app/formulaire/elements/fieldset.ts
+++ b/src/app/formulaire/elements/fieldset.ts
@@ -15,7 +15,7 @@ import { StringMap } from "../../stringmap";
 import { FieldsetContainer } from "./fieldset-container";
 import { SelectFieldCustom } from "./select-field-custom";
 import { FormulaireFixedVar } from "../definition/form-fixedvar";
-import { SelectEntry } from './select-entry';
+import { SelectEntry } from "./select-entry";
 
 export class FieldSet extends FormulaireElement implements Observer {
 
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 270fb2b79..47a73730d 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -1,11 +1,11 @@
 import { SelectEntry } from "./select-entry";
 import { ServiceFactory } from "../../services/service-factory";
-import { SelectField } from './select-field';
+import { SelectField } from "./select-field";
 import { decodeHtml, arraysAreEqual } from "../../util";
 
 import { FishSpecies, Session, Solveur, FishPass, CalculatorType, Verificateur, Nub } from "jalhyd";
 
-import { sprintf } from 'sprintf-js';
+import { sprintf } from "sprintf-js";
 
 /**
  * A select field that populates itself with custom stuff (ex: references to Nubs, Parameters…)
@@ -219,7 +219,7 @@ export class SelectFieldCustom extends SelectField {
         const previousSelectedEntry = this._selectedEntry;
         this._selectedEntry = v;
         // if value changed
-        let valueChanged = (
+        const valueChanged = (
             ! previousSelectedEntry
             || (
                 ! Array.isArray(previousSelectedEntry)
@@ -243,7 +243,7 @@ export class SelectFieldCustom extends SelectField {
      */
     public setValueFromId(id: string | string[]) {
         let found = false;
-        let entries = [];
+        const entries = [];
         if (this._multiple && Array.isArray(id)) {
             for (const e of this._entries) {
                 if (id.includes(e.id)) {
diff --git a/src/app/results/verificateur-results.ts b/src/app/results/verificateur-results.ts
index 04f686404..304785720 100644
--- a/src/app/results/verificateur-results.ts
+++ b/src/app/results/verificateur-results.ts
@@ -1,6 +1,6 @@
 import { MultiDimensionResults } from "./multidimension-results";
 
-import { Result } from 'jalhyd';
+import { Result } from "jalhyd";
 
 export class VerificateurResults extends MultiDimensionResults {
 
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 45fbe17cd..321b572e0 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -175,7 +175,8 @@ export class I18nService extends Observable implements Observer {
 
         // replace "FORM_ID_X" by form name in current session, if any
         m = m.replace(/FORM_ID_(\w{6})/g, (match, p1) => {
-            const form = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(p1); // cannot inject FormulaireService => cyclic dependency :/
+            // cannot inject FormulaireService => cyclic dependency :/
+            const form = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(p1);
             let formName = "**UNKNOWN_FORM**";
             if (form !== undefined) {
                 formName = form.calculatorName;
diff --git a/src/app/util.ts b/src/app/util.ts
index 704320407..146002b23 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -163,15 +163,15 @@ export function generateValuesCombination(
 }
 
 export function arraysAreEqual(arrayA: any[], arrayB: any[], property?: string, sort = false): boolean {
-    let aA: any[] = JSON.parse(JSON.stringify(arrayA)); // array copy
-    let aB: any[] = JSON.parse(JSON.stringify(arrayB)); // array copy
+    const aA: any[] = JSON.parse(JSON.stringify(arrayA)); // array copy
+    const aB: any[] = JSON.parse(JSON.stringify(arrayB)); // array copy
     if (sort) {
-        aA.sort((a, b) => a-b);
-        aB.sort((a, b) => a-b);
+        aA.sort((a, b) => a - b);
+        aB.sort((a, b) => a - b);
     }
     let equal = true;
     if (aA.length === aB.length) {
-        for (let i=0; i < aA.length; i++) {
+        for (let i = 0; i < aA.length; i++) {
             const eA = aA[i];
             const eB = aB[i];
             if (property === undefined) {
-- 
GitLab


From 88a9a23f9b2475ce13a5d6a279fcf5460a63e245 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 5 May 2020 15:02:30 +0200
Subject: [PATCH 041/101] Updated dependencies

---
 package-lock.json | 2025 ++++++++++++++++++++++-----------------------
 package.json      |   20 +-
 2 files changed, 1011 insertions(+), 1034 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 6187c822a..dd1cb100d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,12 +11,12 @@
       "dev": true
     },
     "@angular-devkit/architect": {
-      "version": "0.901.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.1.tgz",
-      "integrity": "sha512-foWDAurMfBDYLAJxHpTFkJBub1c2A8+eWHbBjgqIHmT8xadnE7t8nSA9XDl+k/kIoWw/qFU+6IttPirudYc/vw==",
+      "version": "0.901.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz",
+      "integrity": "sha512-w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/core": "9.1.4",
         "rxjs": "6.5.4"
       },
       "dependencies": {
@@ -32,21 +32,21 @@
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.901.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.1.tgz",
-      "integrity": "sha512-6uEvo5htsJoxQHBVwHOGmM6YWq5q6m9UWMv/ughlek0RtSLFfOt9TZQ/yQHgtGQsCQvscD/jBzVoD0zD5Ax/SQ==",
+      "version": "0.901.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.4.tgz",
+      "integrity": "sha512-Vod4bc6d38fuvqauIDQxKMe9hKW9m4QNzPKxEc+Dv5Xkv95WaGzkbUVu8M8t4E//sDDMpmcPdYOXSdR27WBi2Q==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.1",
-        "@angular-devkit/build-optimizer": "0.901.1",
-        "@angular-devkit/build-webpack": "0.901.1",
-        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/architect": "0.901.4",
+        "@angular-devkit/build-optimizer": "0.901.4",
+        "@angular-devkit/build-webpack": "0.901.4",
+        "@angular-devkit/core": "9.1.4",
         "@babel/core": "7.9.0",
         "@babel/generator": "7.9.3",
         "@babel/preset-env": "7.9.0",
         "@babel/template": "7.8.6",
         "@jsdevtools/coverage-istanbul-loader": "3.0.3",
-        "@ngtools/webpack": "9.1.1",
+        "@ngtools/webpack": "9.1.4",
         "ajv": "6.12.0",
         "autoprefixer": "9.7.4",
         "babel-loader": "8.0.6",
@@ -56,6 +56,7 @@
         "circular-dependency-plugin": "5.2.0",
         "copy-webpack-plugin": "5.1.1",
         "core-js": "3.6.4",
+        "css-loader": "3.5.1",
         "cssnano": "4.1.10",
         "file-loader": "6.0.0",
         "find-cache-dir": "3.3.1",
@@ -83,7 +84,6 @@
         "semver": "7.1.3",
         "source-map": "0.7.3",
         "source-map-loader": "0.2.4",
-        "source-map-support": "0.5.16",
         "speed-measure-webpack-plugin": "1.3.1",
         "style-loader": "1.1.3",
         "stylus": "0.54.7",
@@ -141,9 +141,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -158,9 +158,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -236,24 +236,6 @@
           "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
           "dev": true
         },
-        "source-map-support": {
-          "version": "0.5.16",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
-          "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.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
-            }
-          }
-        },
         "terser": {
           "version": "4.6.10",
           "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz",
@@ -276,9 +258,9 @@
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.901.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.1.tgz",
-      "integrity": "sha512-o0A9CcyDQSUnC5CQIKf92VH8amIYRYrMgLf2kdhSMcy0QV+rEJyN81dSvwX/Yxgnr9NbWEAQg7jnyKk06vfhOw==",
+      "version": "0.901.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.4.tgz",
+      "integrity": "sha512-iDMlNRwd8ICMBKnycfw55hdnL5kCiqUjQn+aK/4uOMJMz49tiYMNJAaznXX2BFKmYSmbapKjEbzx9yMYRi9Y7w==",
       "dev": true,
       "requires": {
         "loader-utils": "2.0.0",
@@ -297,13 +279,13 @@
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.901.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.1.tgz",
-      "integrity": "sha512-9oNI+wPSk8yECy+f0EebfMx4PH3uDJRrifYZAxcr84IpzEbpfpRuYhE3ecwqd7k0zu2Kdjw1uUrGxBuH4/sbGg==",
+      "version": "0.901.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.4.tgz",
+      "integrity": "sha512-YBOufI4TGAtIDCS6erFygYJX/fkd8xwI58d+7iFIBmtIJC4/fpGjX6qkHMCBgh8HXAkEPSORBCYQn9O44J1ZXQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.1",
-        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/architect": "0.901.4",
+        "@angular-devkit/core": "9.1.4",
         "rxjs": "6.5.4"
       },
       "dependencies": {
@@ -319,9 +301,9 @@
       }
     },
     "@angular-devkit/core": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
-      "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
+      "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
       "dev": true,
       "requires": {
         "ajv": "6.12.0",
@@ -355,15 +337,6 @@
           "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
           "dev": true
         },
-        "magic-string": {
-          "version": "0.25.7",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
-          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
-          "dev": true,
-          "requires": {
-            "sourcemap-codec": "^1.4.4"
-          }
-        },
         "rxjs": {
           "version": "6.5.4",
           "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
@@ -376,62 +349,16 @@
       }
     },
     "@angular-devkit/schematics": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.1.tgz",
-      "integrity": "sha512-6wx2HcvafHvEjEa1tjDzW2hXrOiSE8ALqJUArb3+NoO1BDM42aGcqyPo0ODzKtDk12CgSsFXdNKRpQ5AmpSPtw==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.4.tgz",
+      "integrity": "sha512-RAbdnUEZ3JTLmWSBiXT5trsVx8Fi72fxN9CiRaluM09Cytg6BUc1wC5XCO0YPvhI400+3Ro1nwjPXezjg7LXzQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/core": "9.1.4",
         "ora": "4.0.3",
         "rxjs": "6.5.4"
       },
       "dependencies": {
-        "@angular-devkit/core": {
-          "version": "9.1.1",
-          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
-          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
-          "dev": true,
-          "requires": {
-            "ajv": "6.12.0",
-            "fast-json-stable-stringify": "2.1.0",
-            "magic-string": "0.25.7",
-            "rxjs": "6.5.4",
-            "source-map": "0.7.3"
-          }
-        },
-        "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
-        "fast-json-stable-stringify": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-          "dev": true
-        },
-        "magic-string": {
-          "version": "0.25.7",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
-          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
-          "dev": true,
-          "requires": {
-            "sourcemap-codec": "^1.4.4"
-          }
-        },
         "rxjs": {
           "version": "6.5.4",
           "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
@@ -444,14 +371,14 @@
       }
     },
     "@angular/animations": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.1.tgz",
-      "integrity": "sha512-IvKv8sV0ymbzDEX2ZLW+F6nOTQqDYallHexuzRVT9txvNE8TNHyySvLcyC5dTmX9fj9LA72NZ6nFyhxq0LFvtQ=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.4.tgz",
+      "integrity": "sha512-gMo/DbCm5BDArladMAeC7/75T2DvhLr4CSUGJt/P/aimTEG2ywoAALs3pzwSSe4qxrHiR0OIksVW3l4km3iXEw=="
     },
     "@angular/cdk": {
-      "version": "9.2.1",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.1.tgz",
-      "integrity": "sha512-aSG1UNPszkSnpNuDCNd7ZgT29oQ8vqHPmoqjvJI0JkEv3i6uEs5tRuhWl3TK39wDNuwdlq0AY47XTa/0Ppb5RQ==",
+      "version": "9.2.2",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.2.tgz",
+      "integrity": "sha512-VNd+KuMN6cBcy4/8OyMxqYaxdjPP6IyCqIVijB2JREkc5Sg4VWmPgx2L3rHt/DzjsVBVRgx35uqOMymDezG3jQ==",
       "requires": {
         "parse5": "^5.0.0"
       },
@@ -465,16 +392,16 @@
       }
     },
     "@angular/cli": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.1.tgz",
-      "integrity": "sha512-sjRAV4UF8M5v+2gw+EwCYSgciBZDc05AbNxQt+uUdxdfR1QU9hifWq8WDxfOR6jdDP5YqMtQsNaFNwrUyjJJoQ==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.4.tgz",
+      "integrity": "sha512-H9MqoT4zyIv+Yo3cvRVkzafWGHsqt7jUvtvGwMHIDMTfEX+Q8yiYlDLL6WM3Eb6/hDmLcRGC/GI495sKS1z5qA==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.1",
-        "@angular-devkit/core": "9.1.1",
-        "@angular-devkit/schematics": "9.1.1",
-        "@schematics/angular": "9.1.1",
-        "@schematics/update": "0.901.1",
+        "@angular-devkit/architect": "0.901.4",
+        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/schematics": "9.1.4",
+        "@schematics/angular": "9.1.4",
+        "@schematics/update": "0.901.4",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
         "debug": "4.1.1",
@@ -492,63 +419,6 @@
         "uuid": "7.0.2"
       },
       "dependencies": {
-        "@angular-devkit/architect": {
-          "version": "0.901.1",
-          "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.1.tgz",
-          "integrity": "sha512-foWDAurMfBDYLAJxHpTFkJBub1c2A8+eWHbBjgqIHmT8xadnE7t8nSA9XDl+k/kIoWw/qFU+6IttPirudYc/vw==",
-          "dev": true,
-          "requires": {
-            "@angular-devkit/core": "9.1.1",
-            "rxjs": "6.5.4"
-          },
-          "dependencies": {
-            "rxjs": {
-              "version": "6.5.4",
-              "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-              "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-              "dev": true,
-              "requires": {
-                "tslib": "^1.9.0"
-              }
-            }
-          }
-        },
-        "@angular-devkit/core": {
-          "version": "9.1.1",
-          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
-          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
-          "dev": true,
-          "requires": {
-            "ajv": "6.12.0",
-            "fast-json-stable-stringify": "2.1.0",
-            "magic-string": "0.25.7",
-            "rxjs": "6.5.4",
-            "source-map": "0.7.3"
-          },
-          "dependencies": {
-            "rxjs": {
-              "version": "6.5.4",
-              "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-              "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-              "dev": true,
-              "requires": {
-                "tslib": "^1.9.0"
-              }
-            }
-          }
-        },
-        "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
         "ansi-colors": {
           "version": "4.1.1",
           "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
@@ -617,18 +487,6 @@
             "ms": "^2.1.1"
           }
         },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
-        "fast-json-stable-stringify": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-          "dev": true
-        },
         "figures": {
           "version": "3.2.0",
           "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
@@ -680,12 +538,6 @@
           "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
           "dev": true
         },
-        "is-wsl": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
-          "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
-          "dev": true
-        },
         "lodash": {
           "version": "4.17.15",
           "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
@@ -701,15 +553,6 @@
             "yallist": "^3.0.2"
           }
         },
-        "magic-string": {
-          "version": "0.25.7",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
-          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
-          "dev": true,
-          "requires": {
-            "sourcemap-codec": "^1.4.4"
-          }
-        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -742,16 +585,6 @@
             "mimic-fn": "^2.1.0"
           }
         },
-        "open": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
-          "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
-          "dev": true,
-          "requires": {
-            "is-docker": "^2.0.0",
-            "is-wsl": "^2.1.1"
-          }
-        },
         "restore-cursor": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@@ -772,13 +605,10 @@
           }
         },
         "run-async": {
-          "version": "2.4.0",
-          "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
-          "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
-          "dev": true,
-          "requires": {
-            "is-promise": "^2.1.0"
-          }
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+          "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+          "dev": true
         },
         "semver": {
           "version": "7.1.3",
@@ -836,19 +666,19 @@
       }
     },
     "@angular/common": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.1.tgz",
-      "integrity": "sha512-bS13veMs7//YqYjYJ+JI78ylaCyVcdFKZKikd5SZa6+r6fajcyvLnSKqrKypG3O1BeJ8vOG/Pq54P5gWhbR6eA=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.4.tgz",
+      "integrity": "sha512-JvCoCWVbx0tF7l/0WTi24ui/mc2SElyVSNchR4VK/FViARnkvnSBdI/Ef5QWXrsPyKU4PYBtnWWgyxRspH+FBA=="
     },
     "@angular/compiler": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.1.tgz",
-      "integrity": "sha512-u1IP6IzUgK6lIzrG1cxp96umXgtThyhuFn/KPoyVt7wPxZ6vVR0ZxjM7zycEcrMGzk0nf0nyOKaksJk9sTXTbg=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.4.tgz",
+      "integrity": "sha512-B+f3lviFNEJtL9V9exSKYPSz2Ddb6dxgPzQR7GSjGikDo+fKMtC1PjNwgJooS9gavhQx30uwkEEMIPYQbM6nNA=="
     },
     "@angular/compiler-cli": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.1.tgz",
-      "integrity": "sha512-2jGp0ck2kkLNMzXUo/3iJkrQqJ7oGXE8h2tksxBsH2ptnhexRYTHZ626t7Np128tduY5JeC7J1Jxz7MUuYsJ2Q==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.4.tgz",
+      "integrity": "sha512-n3PzqNnPD7s/AF9mv5CnarK0sgfoq4txFncHjJWBSltuTQoz6BDZyjuEdqsSLUvgAZPeLsmohemOzEE38HYHZA==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
@@ -943,12 +773,6 @@
             "p-locate": "^4.1.0"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "p-locate": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
@@ -1033,9 +857,9 @@
           }
         },
         "yargs-parser": {
-          "version": "18.1.2",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz",
-          "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
@@ -1045,9 +869,9 @@
       }
     },
     "@angular/core": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.1.tgz",
-      "integrity": "sha512-6lDlUlePafr/392hOvvTZZl6xPHT50U6658sHUAVIr0Un4mJ2MHNHKZtO45bpn3hM4gjFcYRQ7Rpd0umW74iTA=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.4.tgz",
+      "integrity": "sha512-ND240vncmVD2KVe/KSQU3d/DxxoRipFg1+jFOFZGt0n0orCBHk/V1fu9iaG1sRyldL0+rCQ+fTI+1N4DTmMnxA=="
     },
     "@angular/flex-layout": {
       "version": "9.0.0-beta.29",
@@ -1055,35 +879,35 @@
       "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
     },
     "@angular/forms": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.1.tgz",
-      "integrity": "sha512-NX+LuK8JFisiq3uHCOK6YoN/yIb2R9Ye5mwiOPkuZA3lZLKCnUXqCHZbM8VHy/WdjIxxeUaFMJc38yV8RVoabg=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.4.tgz",
+      "integrity": "sha512-Njt+pMLfPBchL0/ayIjJqXL6ZfM4Ccvf7KO1wS1HMzh3QlmfNa0JSgc4pfrbRJAMN9g7V/FYLyKejs1bJZkenA=="
     },
     "@angular/language-service": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.1.tgz",
-      "integrity": "sha512-T+/0X2VnmgW/vzynqYTVv29qtebNvrCB/yJqtNIlqXvBjcB8XRRwZPDZvRyl5BiwEPSsJnjdRFNH9krQHxYp+g==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.4.tgz",
+      "integrity": "sha512-eyVxxiegdb4ESdFGfkuDN+YfUbOVHRQLjIl6ACFJQDNHzVXzbmuqpyr5hIJANIVady103/7+dqRxxJo1DdIdTQ==",
       "dev": true
     },
     "@angular/material": {
-      "version": "9.2.1",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.1.tgz",
-      "integrity": "sha512-nqn/0Eg04DxwnkRGSM1xnmGgtfHYOBcEPbFeTu8c1qAbjFEozd6tpw4y6dQrCCL/JLNIRQPsxsUsVnKeWDF/4Q=="
+      "version": "9.2.2",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.2.tgz",
+      "integrity": "sha512-gdQiMJ6PtW/5fd+0mglHFyzxULDCBGjn9RTET3sUq2rkc9+jBXr4OvnsUyBWSnqqv97XqotVDIx5JgE4/YX/Rw=="
     },
     "@angular/platform-browser": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.1.tgz",
-      "integrity": "sha512-tjALKhdAWPErj0euIIdvx/31AHEZ7is7ADsMu+nYn2NY2gcPUuiqq3RCUJVxBYJ2Cclq1nlF0i2rEDKh7TrBKg=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.4.tgz",
+      "integrity": "sha512-mBCHfTl+5tQfaUiGlDujP7mFBzovFc54Zi2kcCE8DSdSSVQ2TPBo6hXa6y2cL3hJPFZzQ7mC4ORFrsGADhHn/w=="
     },
     "@angular/platform-browser-dynamic": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.1.tgz",
-      "integrity": "sha512-kEox5UOwkRLjGKXLh5o5SYopoAylpKgrXtRrKRKTCMmZTpYSe1bLlXMjpwMAMZ9ZFSTvWp9iX94aT5bJDpLrRQ=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.4.tgz",
+      "integrity": "sha512-YtVbnxyS6FU7xNpA6A95tmSfrB8+WC7OH3mbP8M9NaGk0OYz8B/JOe1HByP4JRpEGCvBtXdJ2NSW/MpLIT8SiQ=="
     },
     "@angular/router": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.1.tgz",
-      "integrity": "sha512-OQ5Ctd+swF7ZNlgUxrkGKk2B4yBFqJm0QCxkM86kFDCKQV/4OButZ+4HPy1HxeozBIAmm2pbQA+YjsAUs0VZcQ=="
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.4.tgz",
+      "integrity": "sha512-yUyjCgG2P2Jh8MvoyC6yirmAtx1Qe7MKLuLvsa9WOB571QNEcNLTYMfAMHUKsQTcE/+o984QyLlneoibgI9wFA=="
     },
     "@babel/code-frame": {
       "version": "7.5.5",
@@ -1095,12 +919,12 @@
       }
     },
     "@babel/compat-data": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz",
-      "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz",
+      "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.9.1",
+        "browserslist": "^4.11.1",
         "invariant": "^2.2.4",
         "semver": "^5.5.0"
       }
@@ -1139,12 +963,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -1191,9 +1015,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -1208,26 +1032,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1321,9 +1145,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1344,9 +1168,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1357,13 +1181,13 @@
       }
     },
     "@babel/helper-compilation-targets": {
-      "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz",
-      "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz",
+      "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==",
       "dev": true,
       "requires": {
-        "@babel/compat-data": "^7.8.6",
-        "browserslist": "^4.9.1",
+        "@babel/compat-data": "^7.9.6",
+        "browserslist": "^4.11.1",
         "invariant": "^2.2.4",
         "levenary": "^1.1.1",
         "semver": "^5.5.0"
@@ -1432,9 +1256,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -1449,9 +1273,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1481,12 +1305,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -1533,9 +1357,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -1550,26 +1374,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1630,9 +1454,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1652,9 +1476,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1674,9 +1498,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1731,9 +1555,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -1748,9 +1572,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1770,9 +1594,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1820,12 +1644,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -1872,9 +1696,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -1889,26 +1713,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -1940,15 +1764,15 @@
       }
     },
     "@babel/helper-replace-supers": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
-      "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
+      "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
       "dev": true,
       "requires": {
         "@babel/helper-member-expression-to-functions": "^7.8.3",
         "@babel/helper-optimise-call-expression": "^7.8.3",
-        "@babel/traverse": "^7.8.6",
-        "@babel/types": "^7.8.6"
+        "@babel/traverse": "^7.9.6",
+        "@babel/types": "^7.9.6"
       },
       "dependencies": {
         "@babel/code-frame": {
@@ -1961,12 +1785,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -2013,9 +1837,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -2030,26 +1854,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -2111,9 +1935,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -2128,9 +1952,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -2177,12 +2001,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -2229,9 +2053,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -2246,26 +2070,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -2297,14 +2121,14 @@
       }
     },
     "@babel/helpers": {
-      "version": "7.9.2",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
-      "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
+      "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
       "dev": true,
       "requires": {
         "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.9.0",
-        "@babel/types": "^7.9.0"
+        "@babel/traverse": "^7.9.6",
+        "@babel/types": "^7.9.6"
       },
       "dependencies": {
         "@babel/code-frame": {
@@ -2317,12 +2141,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -2369,9 +2193,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -2386,26 +2210,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -2513,9 +2337,9 @@
       }
     },
     "@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.9.5",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz",
-      "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz",
+      "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3",
@@ -2739,9 +2563,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -2756,9 +2580,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -2875,9 +2699,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -2892,9 +2716,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -2923,38 +2747,38 @@
       }
     },
     "@babel/plugin-transform-modules-amd": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz",
-      "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz",
+      "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==",
       "dev": true,
       "requires": {
         "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
-        "babel-plugin-dynamic-import-node": "^2.3.0"
+        "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz",
-      "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz",
+      "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==",
       "dev": true,
       "requires": {
         "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-simple-access": "^7.8.3",
-        "babel-plugin-dynamic-import-node": "^2.3.0"
+        "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz",
-      "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz",
+      "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==",
       "dev": true,
       "requires": {
         "@babel/helper-hoist-variables": "^7.8.3",
         "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
-        "babel-plugin-dynamic-import-node": "^2.3.0"
+        "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-umd": {
@@ -3015,9 +2839,9 @@
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -3180,9 +3004,9 @@
       },
       "dependencies": {
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -3691,9 +3515,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -3746,16 +3570,10 @@
             "source-map": "^0.6.1"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
@@ -3781,12 +3599,12 @@
       }
     },
     "@ngtools/webpack": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.1.tgz",
-      "integrity": "sha512-4RPlk6aIlYhk9isTvXbMaA2G0LhxOzcZ+2iG7zV9Yj/Vm8+lrRexpQ/kC/Dh0GI/oCtKIkVpUzx5LTozYeTLdQ==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.4.tgz",
+      "integrity": "sha512-CDlQzMnWraxf/dT3G5L+0N0VniWHWdzjLRP8pWBoyV0xlzWS1yL/lj8Mas2jEIuaUxZ8bi29mE7xa8prqewtBQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.1",
+        "@angular-devkit/core": "9.1.4",
         "enhanced-resolve": "4.1.1",
         "rxjs": "6.5.4",
         "webpack-sources": "1.4.3"
@@ -3810,82 +3628,23 @@
       "dev": true
     },
     "@schematics/angular": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.1.tgz",
-      "integrity": "sha512-V0DcDNgHQ2YR+PGZI6+pf/mUNNxt5SusShkZ1PbwIMk/HUQpzEGkLjm3v1Jw9eIZKiuDx615GNU1xDzQ/KyNRQ==",
+      "version": "9.1.4",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.4.tgz",
+      "integrity": "sha512-7nbiYBRgXc+f0sa5iXTcF6/VMy/Xq0wyKKnDFiLCb2aFYR7EXRHWF2GuwDIg2bvFugLuCBDoNnXeddLE1TXGWg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.1",
-        "@angular-devkit/schematics": "9.1.1"
-      },
-      "dependencies": {
-        "@angular-devkit/core": {
-          "version": "9.1.1",
-          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
-          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
-          "dev": true,
-          "requires": {
-            "ajv": "6.12.0",
-            "fast-json-stable-stringify": "2.1.0",
-            "magic-string": "0.25.7",
-            "rxjs": "6.5.4",
-            "source-map": "0.7.3"
-          },
-          "dependencies": {
-            "rxjs": {
-              "version": "6.5.4",
-              "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-              "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-              "dev": true,
-              "requires": {
-                "tslib": "^1.9.0"
-              }
-            }
-          }
-        },
-        "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
-        "fast-json-stable-stringify": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-          "dev": true
-        },
-        "magic-string": {
-          "version": "0.25.7",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
-          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
-          "dev": true,
-          "requires": {
-            "sourcemap-codec": "^1.4.4"
-          }
-        }
+        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/schematics": "9.1.4"
       }
     },
     "@schematics/update": {
-      "version": "0.901.1",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.1.tgz",
-      "integrity": "sha512-g5B8hjXKCbUNLKCkWQxc5r2D9lOQXRTLZJNIqva+l/ck0AML5MpelxkqQId9ZGLfQqfFk/XjdSHRWgcmUs1WnA==",
+      "version": "0.901.4",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.4.tgz",
+      "integrity": "sha512-jCtZY2Fbj502gKN5gdu1brnRy/ssyzTrWm69Ty73V+t8uL7nLr+/hny/VBJ8CiQnKQvxcgVl1xgvI1cXzpysVA==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.1",
-        "@angular-devkit/schematics": "9.1.1",
+        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/schematics": "9.1.4",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
         "npm-package-arg": "^8.0.0",
@@ -3895,43 +3654,6 @@
         "semver-intersect": "1.4.0"
       },
       "dependencies": {
-        "@angular-devkit/core": {
-          "version": "9.1.1",
-          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz",
-          "integrity": "sha512-57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==",
-          "dev": true,
-          "requires": {
-            "ajv": "6.12.0",
-            "fast-json-stable-stringify": "2.1.0",
-            "magic-string": "0.25.7",
-            "rxjs": "6.5.4",
-            "source-map": "0.7.3"
-          }
-        },
-        "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
-        "fast-json-stable-stringify": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-          "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-          "dev": true
-        },
         "hosted-git-info": {
           "version": "3.0.4",
           "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
@@ -3950,15 +3672,6 @@
             "yallist": "^3.0.2"
           }
         },
-        "magic-string": {
-          "version": "0.25.7",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
-          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
-          "dev": true,
-          "requires": {
-            "sourcemap-codec": "^1.4.4"
-          }
-        },
         "npm-package-arg": {
           "version": "8.0.1",
           "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
@@ -4084,9 +3797,9 @@
       "integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew=="
     },
     "@types/node": {
-      "version": "13.11.1",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz",
-      "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==",
+      "version": "13.13.4",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.4.tgz",
+      "integrity": "sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA==",
       "dev": true
     },
     "@types/pako": {
@@ -4095,15 +3808,15 @@
       "integrity": "sha512-GdZbRSJ3Cv5fiwT6I0SQ3ckeN2PWNqxd26W9Z2fCK1tGrrasGy4puvNFtnddqH9UJFMQYXxEuuB7B8UK+LLwSg=="
     },
     "@types/q": {
-      "version": "0.0.32",
-      "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
-      "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
+      "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
       "dev": true
     },
     "@types/selenium-webdriver": {
-      "version": "3.0.16",
-      "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz",
-      "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==",
+      "version": "3.0.17",
+      "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz",
+      "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==",
       "dev": true
     },
     "@types/source-list-map": {
@@ -4411,9 +4124,9 @@
       }
     },
     "adm-zip": {
-      "version": "0.4.13",
-      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz",
-      "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==",
+      "version": "0.4.14",
+      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz",
+      "integrity": "sha512-/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==",
       "dev": true
     },
     "after": {
@@ -5140,12 +4853,6 @@
             "semver": "^5.6.0"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -5161,9 +4868,9 @@
       }
     },
     "babel-plugin-dynamic-import-node": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
-      "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+      "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
       "dev": true,
       "requires": {
         "object.assign": "^4.1.0"
@@ -5339,14 +5046,6 @@
       "dev": true,
       "requires": {
         "minimist": "^1.2.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        }
       }
     },
     "bluebird": {
@@ -5736,21 +5435,21 @@
       }
     },
     "browserslist": {
-      "version": "4.11.1",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz",
-      "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==",
+      "version": "4.12.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
+      "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
       "dev": true,
       "requires": {
-        "caniuse-lite": "^1.0.30001038",
-        "electron-to-chromium": "^1.3.390",
+        "caniuse-lite": "^1.0.30001043",
+        "electron-to-chromium": "^1.3.413",
         "node-releases": "^1.1.53",
         "pkg-up": "^2.0.0"
       }
     },
     "browserstack": {
-      "version": "1.5.3",
-      "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz",
-      "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==",
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz",
+      "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==",
       "dev": true,
       "requires": {
         "https-proxy-agent": "^2.2.1"
@@ -6011,24 +5710,6 @@
             "yallist": "^3.0.2"
           }
         },
-        "minizlib": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz",
-          "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==",
-          "dev": true,
-          "requires": {
-            "minipass": "^3.0.0",
-            "yallist": "^4.0.0"
-          },
-          "dependencies": {
-            "yallist": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-              "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-              "dev": true
-            }
-          }
-        },
         "mkdirp": {
           "version": "1.0.4",
           "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -6044,28 +5725,6 @@
             "aggregate-error": "^3.0.0"
           }
         },
-        "tar": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz",
-          "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==",
-          "dev": true,
-          "requires": {
-            "chownr": "^1.1.3",
-            "fs-minipass": "^2.0.0",
-            "minipass": "^3.0.0",
-            "minizlib": "^2.1.0",
-            "mkdirp": "^1.0.3",
-            "yallist": "^4.0.0"
-          },
-          "dependencies": {
-            "yallist": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-              "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-              "dev": true
-            }
-          }
-        },
         "yallist": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -6199,9 +5858,9 @@
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30001041",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz",
-      "integrity": "sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA==",
+      "version": "1.0.30001051",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001051.tgz",
+      "integrity": "sha512-sw8UUnTlRevawTMZKN7vpfwSjCBVoiMPlYd8oT2VwNylyPCBdMAUmLGUApnYYTtIm5JXsQegUAY7GPHqgfDzjw==",
       "dev": true
     },
     "canonical-path": {
@@ -6321,9 +5980,9 @@
       }
     },
     "chokidar": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
-      "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
+      "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
       "dev": true,
       "requires": {
         "anymatch": "~3.1.1",
@@ -6333,7 +5992,7 @@
         "is-binary-path": "~2.1.0",
         "is-glob": "~4.0.1",
         "normalize-path": "~3.0.0",
-        "readdirp": "~3.3.0"
+        "readdirp": "~3.4.0"
       },
       "dependencies": {
         "anymatch": {
@@ -6371,16 +6030,16 @@
           }
         },
         "fsevents": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
-          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+          "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
           "dev": true,
           "optional": true
         },
         "glob-parent": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
-          "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
           "dev": true,
           "requires": {
             "is-glob": "^4.0.1"
@@ -6417,12 +6076,20 @@
           "dev": true
         },
         "readdirp": {
-          "version": "3.3.0",
-          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
-          "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+          "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
           "dev": true,
           "requires": {
-            "picomatch": "^2.0.7"
+            "picomatch": "^2.2.1"
+          },
+          "dependencies": {
+            "picomatch": {
+              "version": "2.2.2",
+              "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+              "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+              "dev": true
+            }
           }
         },
         "to-regex-range": {
@@ -6640,14 +6307,6 @@
         "@types/q": "^1.5.1",
         "chalk": "^2.4.1",
         "q": "^1.1.2"
-      },
-      "dependencies": {
-        "@types/q": {
-          "version": "1.5.2",
-          "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
-          "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
-          "dev": true
-        }
       }
     },
     "code-block-writer": {
@@ -7153,12 +6812,6 @@
             "semver": "^5.6.0"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "normalize-path": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -7956,6 +7609,89 @@
         "timsort": "^0.3.0"
       }
     },
+    "css-loader": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.1.tgz",
+      "integrity": "sha512-0G4CbcZzQ9D1Q6ndOfjFuMDo8uLYMu5vc9Abs5ztyHcKvmil6GJrMiNjzzi3tQvUF+mVRuDg7bE6Oc0Prolgig==",
+      "dev": true,
+      "requires": {
+        "camelcase": "^5.3.1",
+        "cssesc": "^3.0.0",
+        "icss-utils": "^4.1.1",
+        "loader-utils": "^1.2.3",
+        "normalize-path": "^3.0.0",
+        "postcss": "^7.0.27",
+        "postcss-modules-extract-imports": "^2.0.0",
+        "postcss-modules-local-by-default": "^3.0.2",
+        "postcss-modules-scope": "^2.2.0",
+        "postcss-modules-values": "^3.0.0",
+        "postcss-value-parser": "^4.0.3",
+        "schema-utils": "^2.6.5",
+        "semver": "^6.3.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.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
+        },
+        "schema-utils": {
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.12.0",
+            "ajv-keywords": "^3.4.1"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
     "css-parse": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz",
@@ -9347,9 +9083,9 @@
       }
     },
     "electron-to-chromium": {
-      "version": "1.3.404",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.404.tgz",
-      "integrity": "sha512-G7XYSpNXv/GhFLgjGyBJAs9LjLHBWhsvjf6VI/VbptG9KiABHSItETTgDe1LDjbHA5P/Rn2MMDKOvhewM+w2Cg==",
+      "version": "1.3.428",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.428.tgz",
+      "integrity": "sha512-u3+5jEfgLKq/hGO96YfAoOAM1tgFnRDTCD5mLuev44tttcXix+INtVegAkmGzUcfDsnzkPt51XXurXZLLwXt0w==",
       "dev": true
     },
     "elementtree": {
@@ -9628,9 +9364,9 @@
       }
     },
     "es6-promise": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
-      "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==",
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
       "dev": true
     },
     "es6-promisify": {
@@ -10335,9 +10071,9 @@
       }
     },
     "figgy-pudding": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
-      "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+      "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
       "dev": true
     },
     "figures": {
@@ -10360,9 +10096,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -10378,9 +10114,9 @@
           "dev": true
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
@@ -10487,9 +10223,9 @@
           }
         },
         "make-dir": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
-          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
@@ -11722,13 +11458,39 @@
       "dev": true
     },
     "hash-base": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
-      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+      "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
       "dev": true,
       "requires": {
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+          "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+          "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+          "dev": true
+        }
       }
     },
     "hash.js": {
@@ -11965,15 +11727,6 @@
         "debug": "^3.1.0"
       },
       "dependencies": {
-        "agent-base": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
-          "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
-          "dev": true,
-          "requires": {
-            "es6-promisify": "^5.0.0"
-          }
-        },
         "debug": {
           "version": "3.2.6",
           "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
@@ -12017,6 +11770,15 @@
         "safer-buffer": ">= 2.1.2 < 3"
       }
     },
+    "icss-utils": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+      "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.14"
+      }
+    },
     "ieee754": {
       "version": "1.1.13",
       "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
@@ -12830,12 +12592,12 @@
           }
         },
         "@babel/generator": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
-          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.5",
+            "@babel/types": "^7.9.6",
             "jsesc": "^2.5.1",
             "lodash": "^4.17.13",
             "source-map": "^0.5.0"
@@ -12882,9 +12644,9 @@
           }
         },
         "@babel/parser": {
-          "version": "7.9.4",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
-          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
           "dev": true
         },
         "@babel/template": {
@@ -12899,26 +12661,26 @@
           }
         },
         "@babel/traverse": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
-          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
           "dev": true,
           "requires": {
             "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.5",
+            "@babel/generator": "^7.9.6",
             "@babel/helper-function-name": "^7.9.5",
             "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.0",
-            "@babel/types": "^7.9.5",
+            "@babel/parser": "^7.9.6",
+            "@babel/types": "^7.9.6",
             "debug": "^4.1.0",
             "globals": "^11.1.0",
             "lodash": "^4.17.13"
           }
         },
         "@babel/types": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
-          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
           "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.9.5",
@@ -13114,20 +12876,12 @@
       "dev": true
     },
     "jasmine-spec-reporter": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.1.tgz",
-      "integrity": "sha512-RrOZ+bSPnbk1/9KKs5lm0Nl0cqDCh/XXVlCmu3nkhEJH6HTDh4hoJZu3q8e9aq37C0eXEf/JEJnYy+t4m3arZQ==",
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz",
+      "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==",
       "dev": true,
       "requires": {
         "colors": "1.4.0"
-      },
-      "dependencies": {
-        "colors": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
-          "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
-          "dev": true
-        }
       }
     },
     "jasminewd2": {
@@ -13242,14 +12996,6 @@
       "dev": true,
       "requires": {
         "minimist": "^1.2.5"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        }
       }
     },
     "jsonfile": {
@@ -13279,9 +13025,9 @@
       }
     },
     "jszip": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz",
-      "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz",
+      "integrity": "sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==",
       "dev": true,
       "requires": {
         "lie": "~3.3.0",
@@ -13291,9 +13037,9 @@
       }
     },
     "karma": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.1.tgz",
-      "integrity": "sha512-xrDGtZ0mykEQjx1BUHOP1ITi39MDsCGocmSvLJWHxUQpxuKwxk3ZUrC6HI2VWh1plLC6+7cA3B19m12yzO/FRw==",
+      "version": "5.0.4",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.4.tgz",
+      "integrity": "sha512-UGqTe2LBiGQBXRN+Fygeiq63tbfOX45639SKSbPkLpARwnxROWJZg+froGkpHxr84FXCe8UGCf+1PITM6frT5w==",
       "dev": true,
       "requires": {
         "body-parser": "^1.16.1",
@@ -13414,9 +13160,9 @@
           }
         },
         "mime": {
-          "version": "2.4.4",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "version": "2.4.5",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
+          "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
           "dev": true
         },
         "p-locate": {
@@ -13506,9 +13252,9 @@
           }
         },
         "yargs-parser": {
-          "version": "18.1.2",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz",
-          "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
@@ -13691,12 +13437,6 @@
             "json5": "^1.0.1"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -14055,9 +13795,9 @@
       "dev": true
     },
     "magic-string": {
-      "version": "0.25.4",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz",
-      "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==",
+      "version": "0.25.7",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+      "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
       "dev": true,
       "requires": {
         "sourcemap-codec": "^1.4.4"
@@ -14436,12 +14176,6 @@
             "json5": "^1.0.1"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "normalize-url": {
           "version": "1.9.1",
           "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
@@ -14506,9 +14240,9 @@
       }
     },
     "minimist": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
       "dev": true
     },
     "minipass": {
@@ -14556,28 +14290,19 @@
       }
     },
     "minizlib": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
-      "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz",
+      "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==",
       "dev": true,
       "requires": {
-        "minipass": "^2.9.0"
+        "minipass": "^3.0.0",
+        "yallist": "^4.0.0"
       },
       "dependencies": {
-        "minipass": {
-          "version": "2.9.0",
-          "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
-          "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
-          "dev": true,
-          "requires": {
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.0"
-          }
-        },
         "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
           "dev": true
         }
       }
@@ -14869,9 +14594,9 @@
       }
     },
     "node-releases": {
-      "version": "1.1.53",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz",
-      "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==",
+      "version": "1.1.54",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.54.tgz",
+      "integrity": "sha512-tLzytKpgwKQr37yw9CEODjNM9lnmsNxzlv575GzOZ16AgMvPcJis/DgrJX4UEV1KIYoXk6XoVfY6YaMOPJESAQ==",
       "dev": true
     },
     "nopt": {
@@ -14946,9 +14671,9 @@
       },
       "dependencies": {
         "semver": {
-          "version": "7.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.0.tgz",
-          "integrity": "sha512-uyvgU/igkrMgNHwLgXvlpD9jEADbJhB0+JXSywoO47JgJ6c16iau9F9cjtc/E5o0PoqRYTiTIAPRKaYe84z6eQ==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         }
       }
@@ -15023,9 +14748,9 @@
           }
         },
         "semver": {
-          "version": "7.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.0.tgz",
-          "integrity": "sha512-uyvgU/igkrMgNHwLgXvlpD9jEADbJhB0+JXSywoO47JgJ6c16iau9F9cjtc/E5o0PoqRYTiTIAPRKaYe84z6eQ==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
         "yallist": {
@@ -15037,9 +14762,9 @@
       }
     },
     "npm-registry-fetch": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.3.tgz",
-      "integrity": "sha512-WGvUx0lkKFhu9MbiGFuT9nG2NpfQ+4dCJwRwwtK2HK5izJEvwDxMeUyqbuMS7N/OkpVCqDorV6rO5E4V9F8lJw==",
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.4.tgz",
+      "integrity": "sha512-6jb34hX/iYNQebqWUHtU8YF6Cjb1H6ouTFPClYsyiW6lpFkljTpdeftm53rRojtja1rKAvKNIIiTS5Sjpw4wsA==",
       "dev": true,
       "requires": {
         "JSONStream": "^1.3.4",
@@ -15196,9 +14921,9 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.4",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
-          "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
@@ -15411,10 +15136,13 @@
       },
       "dependencies": {
         "is-wsl": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
-          "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
-          "dev": true
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+          "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+          "dev": true,
+          "requires": {
+            "is-docker": "^2.0.0"
+          }
         }
       }
     },
@@ -15433,24 +15161,6 @@
         "is-wsl": "^1.1.0"
       }
     },
-    "optimist": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
-      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
-      "dev": true,
-      "requires": {
-        "minimist": "~0.0.1",
-        "wordwrap": "~0.0.2"
-      },
-      "dependencies": {
-        "wordwrap": {
-          "version": "0.0.3",
-          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-          "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
-          "dev": true
-        }
-      }
-    },
     "optionator": {
       "version": "0.8.3",
       "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
@@ -15800,6 +15510,15 @@
             }
           }
         },
+        "fs-minipass": {
+          "version": "1.2.7",
+          "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+          "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+          "dev": true,
+          "requires": {
+            "minipass": "^2.6.0"
+          }
+        },
         "get-stream": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -15828,6 +15547,15 @@
             "yallist": "^3.0.0"
           }
         },
+        "minizlib": {
+          "version": "1.3.3",
+          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+          "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+          "dev": true,
+          "requires": {
+            "minipass": "^2.9.0"
+          }
+        },
         "npm-pick-manifest": {
           "version": "3.0.2",
           "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz",
@@ -15854,6 +15582,21 @@
             "figgy-pudding": "^3.5.1"
           }
         },
+        "tar": {
+          "version": "4.4.13",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+          "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+          "dev": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.8.6",
+            "minizlib": "^1.2.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.3"
+          }
+        },
         "yallist": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -16360,12 +16103,6 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
-        },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
         }
       }
     },
@@ -16531,6 +16268,47 @@
         }
       }
     },
+    "postcss-modules-extract-imports": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+      "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.5"
+      }
+    },
+    "postcss-modules-local-by-default": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz",
+      "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==",
+      "dev": true,
+      "requires": {
+        "icss-utils": "^4.1.1",
+        "postcss": "^7.0.16",
+        "postcss-selector-parser": "^6.0.2",
+        "postcss-value-parser": "^4.0.0"
+      }
+    },
+    "postcss-modules-scope": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+      "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.6",
+        "postcss-selector-parser": "^6.0.0"
+      }
+    },
+    "postcss-modules-values": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+      "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+      "dev": true,
+      "requires": {
+        "icss-utils": "^4.0.0",
+        "postcss": "^7.0.6"
+      }
+    },
     "postcss-normalize-charset": {
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
@@ -16794,9 +16572,9 @@
       }
     },
     "postcss-value-parser": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
-      "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+      "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
       "dev": true
     },
     "prelude-ls": {
@@ -16925,9 +16703,9 @@
       }
     },
     "protractor": {
-      "version": "5.4.3",
-      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.3.tgz",
-      "integrity": "sha512-7pMAolv8Ah1yJIqaorDTzACtn3gk7BamVKPTeO5lqIGOrfosjPgXFx/z1dqSI+m5EeZc2GMJHPr5DYlodujDNA==",
+      "version": "5.4.4",
+      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz",
+      "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==",
       "dev": true,
       "requires": {
         "@types/q": "^0.0.32",
@@ -16938,15 +16716,21 @@
         "glob": "^7.0.3",
         "jasmine": "2.8.0",
         "jasminewd2": "^2.1.0",
-        "optimist": "~0.6.0",
         "q": "1.4.1",
         "saucelabs": "^1.5.0",
         "selenium-webdriver": "3.6.0",
         "source-map-support": "~0.4.0",
         "webdriver-js-extender": "2.1.0",
-        "webdriver-manager": "^12.0.6"
+        "webdriver-manager": "^12.0.6",
+        "yargs": "^12.0.5"
       },
       "dependencies": {
+        "@types/q": {
+          "version": "0.0.32",
+          "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
+          "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+          "dev": true
+        },
         "ansi-styles": {
           "version": "2.2.1",
           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
@@ -16995,12 +16779,6 @@
             "pinkie-promise": "^2.0.0"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "pify": {
           "version": "2.3.0",
           "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
@@ -17291,9 +17069,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -17328,16 +17106,10 @@
             "json5": "^1.0.1"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
@@ -17846,9 +17618,9 @@
       },
       "dependencies": {
         "fsevents": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
-          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+          "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
           "dev": true,
           "optional": true
         }
@@ -17937,9 +17709,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -17974,12 +17746,6 @@
             "json5": "^1.0.1"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "neo-async": {
           "version": "2.6.1",
           "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
@@ -17987,9 +17753,9 @@
           "dev": true
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
@@ -18676,12 +18442,6 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
-        },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
         }
       }
     },
@@ -18699,9 +18459,9 @@
       }
     },
     "source-map-support": {
-      "version": "0.5.9",
-      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-      "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+      "version": "0.5.19",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+      "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
       "dev": true,
       "requires": {
         "buffer-from": "^1.0.0",
@@ -19145,24 +18905,306 @@
         "function-bind": "^1.0.2"
       }
     },
+    "string.prototype.trimend": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+      "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "dev": true,
+          "requires": {
+            "es-to-primitive": "^1.2.1",
+            "function-bind": "^1.1.1",
+            "has": "^1.0.3",
+            "has-symbols": "^1.0.1",
+            "is-callable": "^1.1.5",
+            "is-regex": "^1.0.5",
+            "object-inspect": "^1.7.0",
+            "object-keys": "^1.1.1",
+            "object.assign": "^4.1.0",
+            "string.prototype.trimleft": "^2.1.1",
+            "string.prototype.trimright": "^2.1.1"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+          "dev": true,
+          "requires": {
+            "is-callable": "^1.1.4",
+            "is-date-object": "^1.0.1",
+            "is-symbol": "^1.0.2"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+          "dev": true
+        },
+        "is-callable": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "dev": true
+        },
+        "is-regex": {
+          "version": "1.0.5",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "dev": true,
+          "requires": {
+            "has": "^1.0.3"
+          }
+        },
+        "object-inspect": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "dev": true
+        },
+        "object-keys": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+          "dev": true
+        }
+      }
+    },
     "string.prototype.trimleft": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
-      "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
+      "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
+        "es-abstract": "^1.17.5",
+        "string.prototype.trimstart": "^1.0.0"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "dev": true,
+          "requires": {
+            "es-to-primitive": "^1.2.1",
+            "function-bind": "^1.1.1",
+            "has": "^1.0.3",
+            "has-symbols": "^1.0.1",
+            "is-callable": "^1.1.5",
+            "is-regex": "^1.0.5",
+            "object-inspect": "^1.7.0",
+            "object-keys": "^1.1.1",
+            "object.assign": "^4.1.0",
+            "string.prototype.trimleft": "^2.1.1",
+            "string.prototype.trimright": "^2.1.1"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+          "dev": true,
+          "requires": {
+            "is-callable": "^1.1.4",
+            "is-date-object": "^1.0.1",
+            "is-symbol": "^1.0.2"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+          "dev": true
+        },
+        "is-callable": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "dev": true
+        },
+        "is-regex": {
+          "version": "1.0.5",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "dev": true,
+          "requires": {
+            "has": "^1.0.3"
+          }
+        },
+        "object-inspect": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "dev": true
+        },
+        "object-keys": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+          "dev": true
+        }
       }
     },
     "string.prototype.trimright": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
-      "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
+      "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
+        "es-abstract": "^1.17.5",
+        "string.prototype.trimend": "^1.0.0"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "dev": true,
+          "requires": {
+            "es-to-primitive": "^1.2.1",
+            "function-bind": "^1.1.1",
+            "has": "^1.0.3",
+            "has-symbols": "^1.0.1",
+            "is-callable": "^1.1.5",
+            "is-regex": "^1.0.5",
+            "object-inspect": "^1.7.0",
+            "object-keys": "^1.1.1",
+            "object.assign": "^4.1.0",
+            "string.prototype.trimleft": "^2.1.1",
+            "string.prototype.trimright": "^2.1.1"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+          "dev": true,
+          "requires": {
+            "is-callable": "^1.1.4",
+            "is-date-object": "^1.0.1",
+            "is-symbol": "^1.0.2"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+          "dev": true
+        },
+        "is-callable": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "dev": true
+        },
+        "is-regex": {
+          "version": "1.0.5",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "dev": true,
+          "requires": {
+            "has": "^1.0.3"
+          }
+        },
+        "object-inspect": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "dev": true
+        },
+        "object-keys": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+          "dev": true
+        }
+      }
+    },
+    "string.prototype.trimstart": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+      "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "dev": true,
+          "requires": {
+            "es-to-primitive": "^1.2.1",
+            "function-bind": "^1.1.1",
+            "has": "^1.0.3",
+            "has-symbols": "^1.0.1",
+            "is-callable": "^1.1.5",
+            "is-regex": "^1.0.5",
+            "object-inspect": "^1.7.0",
+            "object-keys": "^1.1.1",
+            "object.assign": "^4.1.0",
+            "string.prototype.trimleft": "^2.1.1",
+            "string.prototype.trimright": "^2.1.1"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+          "dev": true,
+          "requires": {
+            "is-callable": "^1.1.4",
+            "is-date-object": "^1.0.1",
+            "is-symbol": "^1.0.2"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+          "dev": true
+        },
+        "is-callable": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "dev": true
+        },
+        "is-regex": {
+          "version": "1.0.5",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "dev": true,
+          "requires": {
+            "has": "^1.0.3"
+          }
+        },
+        "object-inspect": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "dev": true
+        },
+        "object-keys": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+          "dev": true
+        }
       }
     },
     "string_decoder": {
@@ -19219,9 +19261,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -19256,16 +19298,10 @@
             "json5": "^1.0.1"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
@@ -19376,12 +19412,6 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
-        },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
         }
       }
     },
@@ -19551,43 +19581,35 @@
       }
     },
     "tar": {
-      "version": "4.4.13",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
-      "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz",
+      "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==",
       "dev": true,
       "requires": {
-        "chownr": "^1.1.1",
-        "fs-minipass": "^1.2.5",
-        "minipass": "^2.8.6",
-        "minizlib": "^1.2.1",
-        "mkdirp": "^0.5.0",
-        "safe-buffer": "^5.1.2",
-        "yallist": "^3.0.3"
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "minipass": "^3.0.0",
+        "minizlib": "^2.1.0",
+        "mkdirp": "^1.0.3",
+        "yallist": "^4.0.0"
       },
       "dependencies": {
-        "fs-minipass": {
-          "version": "1.2.7",
-          "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
-          "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
-          "dev": true,
-          "requires": {
-            "minipass": "^2.6.0"
-          }
+        "chownr": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+          "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+          "dev": true
         },
-        "minipass": {
-          "version": "2.9.0",
-          "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
-          "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
-          "dev": true,
-          "requires": {
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.0"
-          }
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "dev": true
         },
         "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
           "dev": true
         }
       }
@@ -19702,9 +19724,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -19760,9 +19782,9 @@
           }
         },
         "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
           "dev": true
         },
         "lru-cache": {
@@ -19793,9 +19815,9 @@
           }
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
@@ -19808,16 +19830,6 @@
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
           "dev": true
         },
-        "source-map-support": {
-          "version": "0.5.16",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
-          "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        },
         "ssri": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
@@ -19829,9 +19841,9 @@
           }
         },
         "terser": {
-          "version": "4.6.11",
-          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz",
-          "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==",
+          "version": "4.6.13",
+          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.13.tgz",
+          "integrity": "sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==",
           "dev": true,
           "requires": {
             "commander": "^2.20.0",
@@ -20044,15 +20056,15 @@
       "integrity": "sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA=="
     },
     "ts-node": {
-      "version": "8.8.2",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.8.2.tgz",
-      "integrity": "sha512-duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q==",
+      "version": "8.10.1",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz",
+      "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==",
       "dev": true,
       "requires": {
         "arg": "^4.1.0",
         "diff": "^4.0.1",
         "make-error": "^1.1.1",
-        "source-map-support": "^0.5.6",
+        "source-map-support": "^0.5.17",
         "yn": "3.1.1"
       }
     },
@@ -20124,9 +20136,9 @@
       "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
     },
     "tslint": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.1.tgz",
-      "integrity": "sha512-kd6AQ/IgPRpLn6g5TozqzPdGNZ0q0jtXW4//hRcj10qLYBaa3mTUU2y2MCG+RXZm8Zx+KZi0eA+YCrMyNlF4UA==",
+      "version": "6.1.2",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz",
+      "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -20142,23 +20154,6 @@
         "semver": "^5.3.0",
         "tslib": "^1.10.0",
         "tsutils": "^2.29.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
-        "mkdirp": {
-          "version": "0.5.5",
-          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
-          "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.5"
-          }
-        }
       }
     },
     "tsutils": {
@@ -20230,18 +20225,18 @@
       },
       "dependencies": {
         "mime-db": {
-          "version": "1.43.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
-          "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+          "version": "1.44.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+          "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
           "dev": true
         },
         "mime-types": {
-          "version": "2.1.26",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
-          "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+          "version": "2.1.27",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+          "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
           "dev": true,
           "requires": {
-            "mime-db": "1.43.0"
+            "mime-db": "1.44.0"
           }
         }
       }
@@ -21078,9 +21073,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -21182,12 +21177,6 @@
             "semver": "^5.6.0"
           }
         },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
         "neo-async": {
           "version": "2.6.1",
           "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
@@ -21260,9 +21249,9 @@
       },
       "dependencies": {
         "mime": {
-          "version": "2.4.4",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "version": "2.4.5",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
+          "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
           "dev": true
         }
       }
@@ -21732,12 +21721,6 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
-        },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
         }
       }
     },
@@ -21838,12 +21821,6 @@
         "xmlbuilder": "~11.0.0"
       },
       "dependencies": {
-        "sax": {
-          "version": "1.2.4",
-          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
-          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
-          "dev": true
-        },
         "xmlbuilder": {
           "version": "11.0.1",
           "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
diff --git a/package.json b/package.json
index b6d5d0023..9a15dc891 100644
--- a/package.json
+++ b/package.json
@@ -84,31 +84,31 @@
     "zone.js": "^0.10.3"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "^0.901.1",
-    "@angular/cli": "^9.1.1",
-    "@angular/compiler-cli": "^9.1.1",
-    "@angular/language-service": "^9.1.1",
+    "@angular-devkit/build-angular": "^0.901.4",
+    "@angular/cli": "^9.1.4",
+    "@angular/compiler-cli": "^9.1.4",
+    "@angular/language-service": "^9.1.4",
     "@compodoc/compodoc": "^1.1.11",
     "@types/file-saver": "^2.0.1",
     "@types/jasmine": "^3.5.10",
     "@types/jasminewd2": "^2.0.8",
-    "@types/node": "^13.11.1",
+    "@types/node": "^13.13.4",
     "codelyzer": "^5.2.2",
     "cordova": "^9.0.0",
     "electron": "^8.2.2",
     "electron-builder": "^22.4.1",
     "fs-extra": "^9.0.0",
     "jasmine-core": "^3.5.0",
-    "jasmine-spec-reporter": "^5.0.1",
-    "karma": "^5.0.1",
+    "jasmine-spec-reporter": "^5.0.2",
+    "karma": "^5.0.4",
     "karma-chrome-launcher": "^3.1.0",
     "karma-cli": "~2.0.0",
     "karma-coverage-istanbul-reporter": "^2.1.1",
     "karma-jasmine": "^3.1.1",
     "karma-jasmine-html-reporter": "^1.5.3",
-    "protractor": "^5.4.3",
-    "ts-node": "^8.8.2",
-    "tslint": "^6.1.1",
+    "protractor": "^5.4.4",
+    "ts-node": "^8.10.1",
+    "tslint": "^6.1.2",
     "typescript": "~3.7.5",
     "webpack-dev-server": "^3.10.3"
   },
-- 
GitLab


From 63f102d9d8618f296f06624f66c518ab0fe015ab Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 5 May 2020 16:57:19 +0200
Subject: [PATCH 042/101] Updated dependencies (2)

---
 package-lock.json | 777 +++++++++++++---------------------------------
 package.json      |  12 +-
 2 files changed, 220 insertions(+), 569 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index dd1cb100d..dfa6e2674 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1091,50 +1091,6 @@
         }
       }
     },
-    "@babel/generator": {
-      "version": "7.5.5",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
-      "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.5.5",
-        "jsesc": "^2.5.1",
-        "lodash": "^4.17.13",
-        "source-map": "^0.5.0",
-        "trim-right": "^1.0.1"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "regenerator-transform": {
-          "version": "0.14.2",
-          "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.2.tgz",
-          "integrity": "sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ==",
-          "requires": {
-            "@babel/runtime": "^7.8.4",
-            "private": "^0.1.8"
-          }
-        },
-        "rimraf": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
-          "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
-          "requires": {
-            "glob": "^7.1.3"
-          }
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
-      }
-    },
     "@babel/helper-annotate-as-pure": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz",
@@ -1424,26 +1380,6 @@
         }
       }
     },
-    "@babel/helper-function-name": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-      "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-get-function-arity": "^7.0.0",
-        "@babel/template": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      }
-    },
-    "@babel/helper-get-function-arity": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-      "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      }
-    },
     "@babel/helper-hoist-variables": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz",
@@ -1964,15 +1900,6 @@
         }
       }
     },
-    "@babel/helper-split-export-declaration": {
-      "version": "7.4.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
-      "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.4.4"
-      }
-    },
     "@babel/helper-validator-identifier": {
       "version": "7.9.5",
       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
@@ -2279,12 +2206,6 @@
         }
       }
     },
-    "@babel/parser": {
-      "version": "7.5.5",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
-      "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
-      "dev": true
-    },
     "@babel/plugin-proposal-async-generator-functions": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz",
@@ -3033,6 +2954,7 @@
       "version": "7.8.4",
       "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
       "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
+      "dev": true,
       "requires": {
         "regenerator-runtime": "^0.13.2"
       },
@@ -3040,66 +2962,7 @@
         "regenerator-runtime": {
           "version": "0.13.3",
           "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
-          "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
-        }
-      }
-    },
-    "@babel/template": {
-      "version": "7.4.4",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
-      "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "@babel/parser": "^7.4.4",
-        "@babel/types": "^7.4.4"
-      }
-    },
-    "@babel/traverse": {
-      "version": "7.5.5",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
-      "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.5.5",
-        "@babel/generator": "^7.5.5",
-        "@babel/helper-function-name": "^7.1.0",
-        "@babel/helper-split-export-declaration": "^7.4.4",
-        "@babel/parser": "^7.5.5",
-        "@babel/types": "^7.5.5",
-        "debug": "^4.1.0",
-        "globals": "^11.1.0",
-        "lodash": "^4.17.13"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.5.5",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
-          "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "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"
-          }
-        },
-        "globals": {
-          "version": "11.12.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
-          "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
-          "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==",
+          "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
           "dev": true
         }
       }
@@ -3419,13 +3282,33 @@
       }
     },
     "@develar/schema-utils": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.1.0.tgz",
-      "integrity": "sha512-qjCqB4ctMig9Gz5bd6lkdFr3bO6arOdQqptdBSpF1ZpCnjofieCciEzkoS9ujY9cMGyllYSCSmBJ3x9OKHXzoA==",
+      "version": "2.6.5",
+      "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
+      "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==",
       "dev": true,
       "requires": {
-        "ajv": "^6.1.0",
-        "ajv-keywords": "^3.1.0"
+        "ajv": "^6.12.0",
+        "ajv-keywords": "^3.4.1"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        }
       }
     },
     "@dsherret/to-absolute-glob": {
@@ -3482,9 +3365,9 @@
           }
         },
         "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
           "dev": true
         },
         "ms": {
@@ -4364,38 +4247,38 @@
       "dev": true
     },
     "app-builder-bin": {
-      "version": "3.5.5",
-      "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.5.tgz",
-      "integrity": "sha512-ZcHzJ9Xl+azPqdKzXZKdRZmkNmbxHHZyl4cbobNf8qMQpoPChpcov8riVrZSbu/0cT/JqJ8LOwJjy1OAwbChaQ==",
+      "version": "3.5.8",
+      "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.8.tgz",
+      "integrity": "sha512-ni3q7QTfQNWHNWuyn5x3FZu6GnQZv+TFnfgk5++svqleKEhHGqS1mIaKsh7x5pBX6NFXU3/+ktk98wA/AW4EXw==",
       "dev": true
     },
     "app-builder-lib": {
-      "version": "22.4.1",
-      "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.4.1.tgz",
-      "integrity": "sha512-epwUzIM+2pcdy/If9koTP74CKx4v7xGPj75a2Z5cM4rrGN9yVZ3eDUBbfF0e0qE4Qmcv5pd0BAZJ26bGm8NWsQ==",
+      "version": "22.6.0",
+      "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.6.0.tgz",
+      "integrity": "sha512-ky2aLYy92U+Gh6dKq/e8/bNmCotp6/GMhnX8tDZPv9detLg9WuBnWWi1ktBPlpbl1DREusy+TIh+9rgvfduQoA==",
       "dev": true,
       "requires": {
         "7zip-bin": "~5.0.3",
-        "@develar/schema-utils": "~2.1.0",
+        "@develar/schema-utils": "~2.6.5",
         "async-exit-hook": "^2.0.1",
         "bluebird-lst": "^1.0.9",
-        "builder-util": "22.4.1",
-        "builder-util-runtime": "8.6.2",
+        "builder-util": "22.6.0",
+        "builder-util-runtime": "8.7.0",
         "chromium-pickle-js": "^0.2.0",
         "debug": "^4.1.1",
-        "ejs": "^3.0.1",
-        "electron-publish": "22.4.1",
-        "fs-extra": "^8.1.0",
+        "ejs": "^3.1.2",
+        "electron-publish": "22.6.0",
+        "fs-extra": "^9.0.0",
         "hosted-git-info": "^3.0.4",
         "is-ci": "^2.0.0",
-        "isbinaryfile": "^4.0.4",
+        "isbinaryfile": "^4.0.6",
         "js-yaml": "^3.13.1",
         "lazy-val": "^1.0.4",
         "minimatch": "^3.0.4",
         "normalize-package-data": "^2.5.0",
-        "read-config-file": "5.0.2",
+        "read-config-file": "6.0.0",
         "sanitize-filename": "^1.6.3",
-        "semver": "^7.1.3",
+        "semver": "^7.3.2",
         "temp-file": "^3.3.7"
       },
       "dependencies": {
@@ -4408,23 +4291,6 @@
             "ms": "^2.1.1"
           }
         },
-        "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.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
         "hosted-git-info": {
           "version": "3.0.4",
           "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
@@ -4434,6 +4300,12 @@
             "lru-cache": "^5.1.1"
           }
         },
+        "isbinaryfile": {
+          "version": "4.0.6",
+          "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz",
+          "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==",
+          "dev": true
+        },
         "lru-cache": {
           "version": "5.1.1",
           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -4450,9 +4322,9 @@
           "dev": true
         },
         "semver": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
-          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
         "yallist": {
@@ -4469,15 +4341,6 @@
       "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==",
       "dev": true
     },
-    "append-transform": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
-      "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
-      "dev": true,
-      "requires": {
-        "default-require-extensions": "^2.0.0"
-      }
-    },
     "aproba": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
@@ -5496,23 +5359,23 @@
       "dev": true
     },
     "builder-util": {
-      "version": "22.4.1",
-      "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.4.1.tgz",
-      "integrity": "sha512-+ysLc7cC4w6P7rBxmZ5X2aU3QvcwFoWCl1us+mcUKdsGmJAtFUMPJqueeptdxjyPrPShIUOKHzA8uk5A3d1fHg==",
+      "version": "22.6.0",
+      "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.6.0.tgz",
+      "integrity": "sha512-jgdES2ExJYkuXC3DEaGAjFctKNA81C4QDy8zdoc+rqdSqheTizuDNtZg02uMFklmUES4V4fggmqds+Y7wraqng==",
       "dev": true,
       "requires": {
         "7zip-bin": "~5.0.3",
         "@types/debug": "^4.1.5",
         "@types/fs-extra": "^8.1.0",
-        "app-builder-bin": "3.5.5",
+        "app-builder-bin": "3.5.8",
         "bluebird-lst": "^1.0.9",
-        "builder-util-runtime": "8.6.2",
-        "chalk": "^3.0.0",
+        "builder-util-runtime": "8.7.0",
+        "chalk": "^4.0.0",
         "debug": "^4.1.1",
-        "fs-extra": "^8.1.0",
+        "fs-extra": "^9.0.0",
         "is-ci": "^2.0.0",
         "js-yaml": "^3.13.1",
-        "source-map-support": "^0.5.16",
+        "source-map-support": "^0.5.19",
         "stat-mode": "^1.0.0",
         "temp-file": "^3.3.7"
       },
@@ -5528,9 +5391,9 @@
           }
         },
         "chalk": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
-          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+          "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
           "dev": true,
           "requires": {
             "ansi-styles": "^4.1.0",
@@ -5555,23 +5418,6 @@
             "ms": "^2.1.1"
           }
         },
-        "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.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -5584,22 +5430,6 @@
           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
           "dev": true
         },
-        "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.16",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
-          "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        },
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -5612,9 +5442,9 @@
       }
     },
     "builder-util-runtime": {
-      "version": "8.6.2",
-      "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz",
-      "integrity": "sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A==",
+      "version": "8.7.0",
+      "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.0.tgz",
+      "integrity": "sha512-G1AqqVM2vYTrSFR982c1NNzwXKrGLQjVjaZaWQdn4O6Z3YKjdMDofw88aD9jpyK9ZXkrCxR0tI3Qe9wNbyTlXg==",
       "dev": true,
       "requires": {
         "debug": "^4.1.1",
@@ -6476,12 +6306,6 @@
         }
       }
     },
-    "compare-versions": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz",
-      "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==",
-      "dev": true
-    },
     "component-bind": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
@@ -7380,9 +7204,9 @@
       "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA=="
     },
     "cordova-plugin-file-opener2": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.0.tgz",
-      "integrity": "sha512-yQcJ5coOlfkDcTfIhFJEL2A7SWtLhy50y51Cb+EEkI7Y0lP74Ec2tsMtIOhe9i8wPSoSfnDcN77Hj6CSeIjogA=="
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.1.tgz",
+      "integrity": "sha512-Esj7f1mRj19Mj+M2xQphw88zZ/zA9RfljTfahHf5xIKhtoB4Nf1DRbohOiT6z/AHg18EugN9H2g2jiwcBTkRRA=="
     },
     "cordova-plugin-local-notification": {
       "version": "0.9.0-beta.2",
@@ -8290,15 +8114,6 @@
         "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",
-      "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
-      "dev": true,
-      "requires": {
-        "strip-bom": "^3.0.0"
-      }
-    },
     "defaults": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
@@ -8556,37 +8371,19 @@
       }
     },
     "dmg-builder": {
-      "version": "22.4.1",
-      "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.4.1.tgz",
-      "integrity": "sha512-hEemh7n0zoVt7zPPwvn7iOttP03oENjJ4ApttPmt8oDnX8T4q42MjGWyDlLkPMplMJfoTxkkNqmm296f0OYM8Q==",
+      "version": "22.6.0",
+      "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.6.0.tgz",
+      "integrity": "sha512-rJxuGhHIpcuDGBtWZMM8aLxkbZNgYO2MO5dUerDIBXebhX1K8DA23iz/uZ8ahcRNgWEv57b8GDqJbXKEfr5T0A==",
       "dev": true,
       "requires": {
-        "app-builder-lib": "~22.4.1",
-        "bluebird-lst": "^1.0.9",
-        "builder-util": "~22.4.1",
-        "fs-extra": "^8.1.0",
+        "app-builder-lib": "22.6.0",
+        "builder-util": "22.6.0",
+        "fs-extra": "^9.0.0",
         "iconv-lite": "^0.5.1",
         "js-yaml": "^3.13.1",
         "sanitize-filename": "^1.6.3"
       },
       "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.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
         "iconv-lite": {
           "version": "0.5.1",
           "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
@@ -8759,15 +8556,18 @@
       "dev": true
     },
     "ejs": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.1.tgz",
-      "integrity": "sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw==",
-      "dev": true
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.2.tgz",
+      "integrity": "sha512-zFuywxrAWtX5Mk2KAuoJNkXXbfezpNA0v7i+YC971QORguPekpjpAgeOv99YWSdKXwj7JxI2QAWDeDkE8fWtXw==",
+      "dev": true,
+      "requires": {
+        "jake": "^10.6.1"
+      }
     },
     "electron": {
-      "version": "8.2.2",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.2.tgz",
-      "integrity": "sha512-GH4RCbpuzEn3XpTmsf+wLaJ2KOPSOoBJvQ0s6ftTLs5+IQEgKZvkdYCj8TCBNXFhss31RT3BUqoEQQUyZErK0A==",
+      "version": "8.2.5",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.5.tgz",
+      "integrity": "sha512-LxSCUwmlfJtRwthd3ofpYaZ+1C2hQSW8Ep1DD9K3VbnDItO+kb3t1z35daJgAab78j54aOwo9gMxJtvU0Ftj6w==",
       "dev": true,
       "requires": {
         "@electron/get": "^1.0.1",
@@ -8776,33 +8576,33 @@
       },
       "dependencies": {
         "@types/node": {
-          "version": "12.12.35",
-          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.35.tgz",
-          "integrity": "sha512-ASYsaKecA7TUsDrqIGPNk3JeEox0z/0XR/WsJJ8BIX/9+SkMSImQXKWfU/yBrSyc7ZSE/NPqLu36Nur0miCFfQ==",
+          "version": "12.12.37",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.37.tgz",
+          "integrity": "sha512-4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg==",
           "dev": true
         }
       }
     },
     "electron-builder": {
-      "version": "22.4.1",
-      "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.4.1.tgz",
-      "integrity": "sha512-13CjZcGeJS+c3EKRwFT/Oty5Niif5g1FwDioBLEbjkPCPQgxdtDsr+rJtCu9qxkiKDYpAoPS+t/clNk0efONvQ==",
+      "version": "22.6.0",
+      "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.6.0.tgz",
+      "integrity": "sha512-aLHlB6DTfjJ3MI4AUIFeWnwIozNgNlbOk2c2sTHxB10cAKp0dBVSPZ7xF5NK0uwDhElvRzJQubnHtJD6zKg42Q==",
       "dev": true,
       "requires": {
         "@types/yargs": "^15.0.4",
-        "app-builder-lib": "22.4.1",
+        "app-builder-lib": "22.6.0",
         "bluebird-lst": "^1.0.9",
-        "builder-util": "22.4.1",
-        "builder-util-runtime": "8.6.2",
-        "chalk": "^3.0.0",
-        "dmg-builder": "22.4.1",
-        "fs-extra": "^8.1.0",
+        "builder-util": "22.6.0",
+        "builder-util-runtime": "8.7.0",
+        "chalk": "^4.0.0",
+        "dmg-builder": "22.6.0",
+        "fs-extra": "^9.0.0",
         "is-ci": "^2.0.0",
         "lazy-val": "^1.0.4",
-        "read-config-file": "5.0.2",
+        "read-config-file": "6.0.0",
         "sanitize-filename": "^1.6.3",
         "update-notifier": "^4.1.0",
-        "yargs": "^15.1.0"
+        "yargs": "^15.3.1"
       },
       "dependencies": {
         "ansi-regex": {
@@ -8822,9 +8622,9 @@
           }
         },
         "chalk": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
-          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+          "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
           "dev": true,
           "requires": {
             "ansi-styles": "^4.1.0",
@@ -8861,29 +8661,12 @@
             "path-exists": "^4.0.0"
           }
         },
-        "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"
-          }
-        },
         "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
         },
-        "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8967,9 +8750,9 @@
           }
         },
         "yargs": {
-          "version": "15.3.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz",
-          "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==",
+          "version": "15.3.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+          "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
           "dev": true,
           "requires": {
             "cliui": "^6.0.0",
@@ -8982,13 +8765,13 @@
             "string-width": "^4.2.0",
             "which-module": "^2.0.0",
             "y18n": "^4.0.0",
-            "yargs-parser": "^18.1.0"
+            "yargs-parser": "^18.1.1"
           }
         },
         "yargs-parser": {
-          "version": "18.1.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.0.tgz",
-          "integrity": "sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
@@ -8998,17 +8781,17 @@
       }
     },
     "electron-publish": {
-      "version": "22.4.1",
-      "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.4.1.tgz",
-      "integrity": "sha512-nwKNum3KXm+01rtWX2pc1jhazdzDy2zYnQx+zmXphZchjd6UOMX3ZN0xyZUCKugw5ZliflT6LkgbrcBXBtYD3A==",
+      "version": "22.6.0",
+      "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.6.0.tgz",
+      "integrity": "sha512-+v05SBf9qR7Os5au+fifloNHy5QxHQkUGudBj68YaTb43Pn37UkwRxSc49Lf13s4wW32ohM45g8BOVInPJEdnA==",
       "dev": true,
       "requires": {
         "@types/fs-extra": "^8.1.0",
         "bluebird-lst": "^1.0.9",
-        "builder-util": "~22.4.1",
-        "builder-util-runtime": "8.6.2",
-        "chalk": "^3.0.0",
-        "fs-extra": "^8.1.0",
+        "builder-util": "22.6.0",
+        "builder-util-runtime": "8.7.0",
+        "chalk": "^4.0.0",
+        "fs-extra": "^9.0.0",
         "lazy-val": "^1.0.4",
         "mime": "^2.4.4"
       },
@@ -9024,9 +8807,9 @@
           }
         },
         "chalk": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
-          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+          "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
           "dev": true,
           "requires": {
             "ansi-styles": "^4.1.0",
@@ -9042,23 +8825,6 @@
             "color-name": "~1.1.4"
           }
         },
-        "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.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -9066,9 +8832,9 @@
           "dev": true
         },
         "mime": {
-          "version": "2.4.4",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "version": "2.4.5",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
+          "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
           "dev": true
         },
         "supports-color": {
@@ -9946,23 +9712,6 @@
         "debug": "^2.6.9",
         "mkdirp": "^0.5.4",
         "yauzl": "^2.10.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-          "dev": true
-        },
-        "mkdirp": {
-          "version": "0.5.5",
-          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
-          "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.5"
-          }
-        }
       }
     },
     "extsprintf": {
@@ -10130,14 +9879,13 @@
       "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
       "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
     },
-    "fileset": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
-      "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+    "filelist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz",
+      "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==",
       "dev": true,
       "requires": {
-        "glob": "^7.0.3",
-        "minimatch": "^3.0.3"
+        "minimatch": "^3.0.4"
       }
     },
     "fill-range": {
@@ -11202,9 +10950,9 @@
       },
       "dependencies": {
         "semver": {
-          "version": "7.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.0.tgz",
-          "integrity": "sha512-uyvgU/igkrMgNHwLgXvlpD9jEADbJhB0+JXSywoO47JgJ6c16iau9F9cjtc/E5o0PoqRYTiTIAPRKaYe84z6eQ==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true,
           "optional": true
         }
@@ -11568,9 +11316,9 @@
       "dev": true
     },
     "html-escaper": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz",
-      "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+      "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
       "dev": true
     },
     "html-minifier": {
@@ -12478,95 +12226,12 @@
       "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
       "dev": true
     },
-    "istanbul-api": {
-      "version": "2.1.6",
-      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.6.tgz",
-      "integrity": "sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA==",
-      "dev": true,
-      "requires": {
-        "async": "^2.6.2",
-        "compare-versions": "^3.4.0",
-        "fileset": "^2.0.3",
-        "istanbul-lib-coverage": "^2.0.5",
-        "istanbul-lib-hook": "^2.0.7",
-        "istanbul-lib-instrument": "^3.3.0",
-        "istanbul-lib-report": "^2.0.8",
-        "istanbul-lib-source-maps": "^3.0.6",
-        "istanbul-reports": "^2.2.4",
-        "js-yaml": "^3.13.1",
-        "make-dir": "^2.1.0",
-        "minimatch": "^3.0.4",
-        "once": "^1.4.0"
-      },
-      "dependencies": {
-        "istanbul-lib-coverage": {
-          "version": "2.0.5",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
-          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
-          "dev": true
-        },
-        "istanbul-lib-instrument": {
-          "version": "3.3.0",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
-          "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
-          "dev": true,
-          "requires": {
-            "@babel/generator": "^7.4.0",
-            "@babel/parser": "^7.4.3",
-            "@babel/template": "^7.4.0",
-            "@babel/traverse": "^7.4.3",
-            "@babel/types": "^7.4.0",
-            "istanbul-lib-coverage": "^2.0.5",
-            "semver": "^6.0.0"
-          }
-        },
-        "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"
-          },
-          "dependencies": {
-            "semver": {
-              "version": "5.7.1",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-              "dev": true
-            }
-          }
-        },
-        "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": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        }
-      }
-    },
     "istanbul-lib-coverage": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
       "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
       "dev": true
     },
-    "istanbul-lib-hook": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
-      "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
-      "dev": true,
-      "requires": {
-        "append-transform": "^1.0.0"
-      }
-    },
     "istanbul-lib-instrument": {
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz",
@@ -12718,43 +12383,45 @@
       }
     },
     "istanbul-lib-report": {
-      "version": "2.0.8",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
-      "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+      "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
       "dev": true,
       "requires": {
-        "istanbul-lib-coverage": "^2.0.5",
-        "make-dir": "^2.1.0",
-        "supports-color": "^6.1.0"
+        "istanbul-lib-coverage": "^3.0.0",
+        "make-dir": "^3.0.0",
+        "supports-color": "^7.1.0"
       },
       "dependencies": {
-        "istanbul-lib-coverage": {
-          "version": "2.0.5",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
-          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
         "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==",
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
           "dev": true,
           "requires": {
-            "pify": "^4.0.1",
-            "semver": "^5.6.0"
+            "semver": "^6.0.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.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
           "dev": true
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
         }
       }
     },
@@ -12823,12 +12490,33 @@
       }
     },
     "istanbul-reports": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
-      "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
+      "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
+      "dev": true,
+      "requires": {
+        "html-escaper": "^2.0.0",
+        "istanbul-lib-report": "^3.0.0"
+      }
+    },
+    "jake": {
+      "version": "10.6.1",
+      "resolved": "https://registry.npmjs.org/jake/-/jake-10.6.1.tgz",
+      "integrity": "sha512-pHUK3+V0BjOb1XSi95rbBksrMdIqLVC9bJqDnshVyleYsET3H0XAq+3VB2E3notcYvv4wRdRHn13p7vobG+wfQ==",
       "dev": true,
       "requires": {
-        "html-escaper": "^2.0.0"
+        "async": "0.9.x",
+        "chalk": "^2.4.2",
+        "filelist": "^1.0.1",
+        "minimatch": "^3.0.4"
+      },
+      "dependencies": {
+        "async": {
+          "version": "0.9.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+          "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+          "dev": true
+        }
       }
     },
     "jalhyd": {
@@ -13293,12 +12981,15 @@
       }
     },
     "karma-coverage-istanbul-reporter": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz",
-      "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==",
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.2.tgz",
+      "integrity": "sha512-pg23tKKF867UIJUIZF252cNbiBnuMIPOMkeiULzjysr9K267Js2O/SoQBL1PCPctJVzvhOkE47yQPUKrWtyl6w==",
       "dev": true,
       "requires": {
-        "istanbul-api": "^2.1.6",
+        "istanbul-lib-coverage": "^3.0.0",
+        "istanbul-lib-report": "^3.0.0",
+        "istanbul-lib-source-maps": "^3.0.6",
+        "istanbul-reports": "^3.0.2",
         "minimatch": "^3.0.4"
       }
     },
@@ -16595,9 +16286,9 @@
       "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew=="
     },
     "primeng": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.0.5.tgz",
-      "integrity": "sha512-juugoXZaU7TyGyTSFx0PNjObqM+/RTY/arJ/LwyH/0KaIv0V+Oqfvnx8btJ96kLOZ+h0xLWXLuAbxsTXe9EX6w=="
+      "version": "9.0.6",
+      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.0.6.tgz",
+      "integrity": "sha512-RGVTkXwHTb7609zTU/uJFYdbJV124kOwrMiwnHjFn6UkwmS3yTX0Kkr21v8KOTJqsKLq3OWVYhkOwvUklipAAg=="
     },
     "printj": {
       "version": "1.1.2",
@@ -16615,7 +16306,8 @@
     "private": {
       "version": "0.1.8",
       "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
-      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
+      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+      "dev": true
     },
     "process": {
       "version": "0.11.10",
@@ -17183,51 +16875,16 @@
       }
     },
     "read-config-file": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.2.tgz",
-      "integrity": "sha512-tVt1lsiSjs+FtL/vtfCivqtKR1UNk3BB3uPJQvJqkgtAYDvZjo0xyXFYSVmzaTcO+Jdi5G7O2K2vDV+p1M/oug==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz",
+      "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==",
       "dev": true,
       "requires": {
         "dotenv": "^8.2.0",
         "dotenv-expand": "^5.1.0",
-        "fs-extra": "^8.1.0",
         "js-yaml": "^3.13.1",
-        "json5": "^2.1.1",
+        "json5": "^2.1.2",
         "lazy-val": "^1.0.4"
-      },
-      "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.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
-        },
-        "json5": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
-          "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "minimist": {
-          "version": "1.2.4",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
-          "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg==",
-          "dev": true
-        }
       }
     },
     "read-package-json": {
@@ -19636,9 +19293,9 @@
           }
         },
         "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
           "dev": true
         }
       }
@@ -20030,12 +19687,6 @@
       "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
       "dev": true
     },
-    "trim-right": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
-      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
-      "dev": true
-    },
     "truncate-utf8-bytes": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -20629,9 +20280,9 @@
           "dev": true
         },
         "is-installed-globally": {
-          "version": "0.3.1",
-          "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz",
-          "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==",
+          "version": "0.3.2",
+          "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
+          "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
           "dev": true,
           "requires": {
             "global-dirs": "^2.0.1",
@@ -20651,9 +20302,9 @@
           "dev": true
         },
         "make-dir": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
-          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
@@ -21790,9 +21441,9 @@
       "dev": true
     },
     "xlsx": {
-      "version": "0.15.6",
-      "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.15.6.tgz",
-      "integrity": "sha512-7vD9eutyLs65iDjNFimVN+gk/oDkfkCgpQUjdE82QgzJCrBHC4bGPH7fzKVyy0UPp3gyFVQTQEFJaWaAvZCShQ==",
+      "version": "0.16.0",
+      "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.0.tgz",
+      "integrity": "sha512-W/LQZjh6o7WDGmCIUXp2FUPSej2XRdaiTgZN31Oh68JlL7jpm796p3eI5zOpphYNT12qkgnXYaCysAsoiyZvOQ==",
       "requires": {
         "adler-32": "~1.2.0",
         "cfb": "^1.1.4",
diff --git a/package.json b/package.json
index 9a15dc891..7f39c893d 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
     "cordova-plugin-badge": "^0.8.8",
     "cordova-plugin-device": "^2.0.3",
     "cordova-plugin-file": "^6.0.2",
-    "cordova-plugin-file-opener2": "^3.0.0",
+    "cordova-plugin-file-opener2": "^3.0.1",
     "cordova-plugin-local-notification": "^0.9.0-beta.2",
     "cordova-plugin-whitelist": "^1.3.4",
     "core-js": "^3.6.5",
@@ -74,13 +74,13 @@
     "ngx-matomo": "^0.1.4",
     "ngx-webstorage-service": "^4.1.0",
     "pako": "^1.0.11",
-    "primeng": "^9.0.5",
+    "primeng": "^9.0.6",
     "roboto-fontface": "^0.10.0",
     "rxjs": "^6.5.5",
     "screenfull": "^5.0.2",
     "svg-pan-zoom": "^3.6.1",
     "tslib": "^1.11.1",
-    "xlsx": "^0.15.6",
+    "xlsx": "^0.16.0",
     "zone.js": "^0.10.3"
   },
   "devDependencies": {
@@ -95,15 +95,15 @@
     "@types/node": "^13.13.4",
     "codelyzer": "^5.2.2",
     "cordova": "^9.0.0",
-    "electron": "^8.2.2",
-    "electron-builder": "^22.4.1",
+    "electron": "^8.2.5",
+    "electron-builder": "^22.6.0",
     "fs-extra": "^9.0.0",
     "jasmine-core": "^3.5.0",
     "jasmine-spec-reporter": "^5.0.2",
     "karma": "^5.0.4",
     "karma-chrome-launcher": "^3.1.0",
     "karma-cli": "~2.0.0",
-    "karma-coverage-istanbul-reporter": "^2.1.1",
+    "karma-coverage-istanbul-reporter": "^3.0.2",
     "karma-jasmine": "^3.1.1",
     "karma-jasmine-html-reporter": "^1.5.3",
     "protractor": "^5.4.4",
-- 
GitLab


From 24dbbc60be9116a88a27d5aa6cb88e68c0f9344c Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Tue, 5 May 2020 16:57:59 +0200
Subject: [PATCH 043/101] Updated e2e for new Section results

---
 e2e/calculator.po.ts                        | 19 ++++++++++++-------
 e2e/compute-reset-chained-links.e2e-spec.ts |  1 +
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts
index 2639f2077..fb065df26 100644
--- a/e2e/calculator.po.ts
+++ b/e2e/calculator.po.ts
@@ -121,22 +121,27 @@ export class CalculatorPage {
 
   async hasResults() {
     return (
-      await element(by.css("fixedvar-results fixed-results > .fixed-results-container")).isPresent()
+      await this.presentAndVisible("fixedvar-results fixed-results > .fixed-results-container")
       ||
-      await element(by.css("fixedvar-results results-chart > chart-results-container")).isPresent()
+      await this.presentAndVisible("fixedvar-results results-chart > chart-results-container")
       ||
-      await element(by.css("section-results fixed-results > .fixed-results-container")).isPresent()
+      await this.presentAndVisible("section-results fixed-results > .fixed-results-container")
       ||
-      await element(by.css("remous-results #main-chart")).isPresent()
+      await this.presentAndVisible("remous-results #main-chart")
       ||
-      await element(by.css("pab-results pab-results-table")).isPresent()
+      await this.presentAndVisible("pab-results pab-results-table")
       ||
-      await element(by.css("macrorugo-compound-results macrorugo-compound-results-table")).isPresent()
+      await this.presentAndVisible("macrorugo-compound-results macrorugo-compound-results-table")
       ||
-      await element(by.css("jet-results .fixed-results-container")).isPresent()
+      await this.presentAndVisible("jet-results .fixed-results-container")
     );
   }
 
+  async presentAndVisible(selector: string): Promise<boolean> {
+    const elt = element(by.css(selector));
+    return await elt.isPresent() && await elt.isDisplayed();
+  }
+
   /**
    * For a given <table> element, check that values of all cells of all rows in <tbody> are
    * different from "NaN", "ERR" and optionally ""
diff --git a/e2e/compute-reset-chained-links.e2e-spec.ts b/e2e/compute-reset-chained-links.e2e-spec.ts
index c0ba8e5f4..75ac102b9 100644
--- a/e2e/compute-reset-chained-links.e2e-spec.ts
+++ b/e2e/compute-reset-chained-links.e2e-spec.ts
@@ -45,6 +45,7 @@ describe("ngHyd − compute then reset chained results − ", () => {
 
     // down-most module should have results
     let hasResults = await calcPage.hasResults();
+    expect(hasResults).toBe(true);
     // up-most should not
     await navbar.clickCalculatorTabForUid("ZTFxeW");
     hasResults = await calcPage.hasResults();
-- 
GitLab


From a9644f5aa67c41de5b172a63885a24943bdbb2dd Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 6 May 2020 10:42:23 +0200
Subject: [PATCH 044/101] Fix bug in Verificateur log

---
 .../verificateur-results.component.ts         | 21 ++++++++-----------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts
index b384e2125..08c3ef53c 100644
--- a/src/app/components/verificateur-results/verificateur-results.component.ts
+++ b/src/app/components/verificateur-results/verificateur-results.component.ts
@@ -118,19 +118,16 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
                     });
                 }
             }
-            // logs des Espece pour l'itération en cours; l.length devrait toujours être égal à especeResults.length
-            if (l.length !== this._verificateurResults.especeResults.length) {
-                throw new Error(
-                    "VerificateurResultsComponent: l.length !== this._verificateurResults.especeResults.length ("
-                    + l.length + " / " + this._verificateurResults.especeResults.length + ")"
-                );
-            }
-            for (let i = 0; i < this._verificateurResults.especeResults.length; i++) {
-                const er = this._verificateurResults.especeResults[i];
-                if (er && er.hasResultElements() && er.resultElements[vi].hasLog()) {
-                    l[i].subLog.addLog(er.resultElements[vi].log);
+            // logs des Espece pour l'itération en cours; l.length devrait toujours être égal à especeResults.length,
+            // sauf s'il y a une erreur dans la passe calculée
+            if (l.length === this._verificateurResults.especeResults.length) {
+                for (let i = 0; i < this._verificateurResults.especeResults.length; i++) {
+                    const er = this._verificateurResults.especeResults[i];
+                    if (er && er.hasResultElements() && er.resultElements[vi].hasLog()) {
+                        l[i].subLog.addLog(er.resultElements[vi].log);
+                    }
                 }
-            }
+            } // else silent fail
         }
         return l;
     }
-- 
GitLab


From e47ba1cfea617dc379da882b2fb7b5f2d21be89a Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 6 May 2020 10:55:14 +0200
Subject: [PATCH 045/101] Verificateur: reset results when Select values change

---
 src/app/formulaire/definition/form-verificateur.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 2a46caf52..3059f51c5 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -85,6 +85,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         }
 
         if (sender instanceof SelectFieldCustom) {
+            this.reset(); // reset results
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
                 this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
-- 
GitLab


From 2626e71081e9ee0b92743a57a6d8e076584fd482 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 7 May 2020 13:41:30 +0200
Subject: [PATCH 046/101] Fix bug in PAB results reset

---
 src/app/formulaire/definition/form-pab.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/formulaire/definition/form-pab.ts b/src/app/formulaire/definition/form-pab.ts
index 08bd3f1ab..593aa219a 100644
--- a/src/app/formulaire/definition/form-pab.ts
+++ b/src/app/formulaire/definition/form-pab.ts
@@ -82,7 +82,7 @@ export class FormulairePab extends FormulaireDefinition {
         return this._pabResults;
     }
 
-    public resetResults() { // @TODO why not resetFormResults() only ?
+    public resetFormResults() {
         this._pabResults.reset();
     }
 
-- 
GitLab


From 1ce1801429b34cee01925a1da7e676c853c4c4c2 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 7 May 2020 15:49:16 +0200
Subject: [PATCH 047/101] Verificateur: manage variating passes

---
 .../verificateur-results.component.ts         |  9 ++++++---
 .../definition/form-verificateur.ts           | 19 +++++++++++++------
 src/app/results/verificateur-results.ts       |  5 +++++
 src/locale/messages.en.json                   |  2 ++
 src/locale/messages.fr.json                   |  4 ++++
 5 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts
index 08c3ef53c..2222240c5 100644
--- a/src/app/components/verificateur-results/verificateur-results.component.ts
+++ b/src/app/components/verificateur-results/verificateur-results.component.ts
@@ -101,8 +101,6 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
         if (this._verificateurResults) {
             // = 0 lorsque rien ne varie
             const vi = this._verificateurResults.variableIndex;
-            // log du Verificateur pour l'itération en cours
-            const element = { message: Message, subLog: cLog };
             if (
                 this._verificateurResults.result
                 && this._verificateurResults.result.hasResultElements()
@@ -123,7 +121,12 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
             if (l.length === this._verificateurResults.especeResults.length) {
                 for (let i = 0; i < this._verificateurResults.especeResults.length; i++) {
                     const er = this._verificateurResults.especeResults[i];
-                    if (er && er.hasResultElements() && er.resultElements[vi].hasLog()) {
+                    if (
+                        er
+                        && er.hasResultElements()
+                        && er.resultElements[vi]
+                        && er.resultElements[vi].hasLog()) 
+                    {
                         l[i].subLog.addLog(er.resultElements[vi].log);
                     }
                 }
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 3059f51c5..ad7f3fffc 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -4,6 +4,8 @@ import { SelectFieldCustom } from "../elements/select-field-custom";
 import { FormulaireFixedVar } from "./form-fixedvar";
 import { VerificateurResults } from "../../results/verificateur-results";
 import { CalculatorResults } from "../../results/calculator-results";
+import { NgParameter } from "../elements/ngparam";
+import { ServiceFactory } from "../../services/service-factory";
 
 /**
  * Formulaire pour les Vérificateurs
@@ -34,18 +36,23 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         this.reaffectResultComponents();
     }
 
+    protected findPassVariatedParameters(): NgParameter[] {
+        let pvp = []
+        const passUid = this.verificateurNub.nubToVerify.uid;
+        const passForm = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(passUid);
+        pvp = passForm.getVariatedParameters();
+        return pvp;
+    }
+
     protected reaffectResultComponents() {
         const ver: Verificateur = (this.currentNub as Verificateur);
-        // const varParams: NgParameter[] = this.getVariatedParameters();
 
         // résultat de calcul de la passe à macrorugo complexe
         const vr = this.verificateurResults;
-        // vr.calculatedParameter = computedParam;
         vr.result = ver.result;
-        /* if (varParams) {
-            vr.variatedParameters = varParams;
-        } */
-        vr.variatedParameters = [];
+
+        // paramètres qui varient, pour le sélecteur d'itération
+        vr.variatedParameters = this.findPassVariatedParameters();
 
         // résultat de chaque Espece
         const er: Result[] = [];
diff --git a/src/app/results/verificateur-results.ts b/src/app/results/verificateur-results.ts
index 304785720..59b1cdd26 100644
--- a/src/app/results/verificateur-results.ts
+++ b/src/app/results/verificateur-results.ts
@@ -7,6 +7,11 @@ export class VerificateurResults extends MultiDimensionResults {
     /** résultats des modules Espece */
     public especeResults: Result[];
 
+    public constructor() {
+        super();
+        this.reset();
+    }
+
     public reset() {
         super.reset();
         this.especeResults = [];
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 8f6a2e6fa..728fc8d75 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -555,6 +555,7 @@
     "INFO_TRIGO_TITRE": "Trigonometric function",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
     "INFO_VERIF_OK": "Crossing criteria are met for all species",
+    "INFO_VERIF_VARYING_OK": "Crossing criteria are met for all species and all pass modalities",
     "WARNING_VERIF_OK_BUT": "Crossing criteria are met for all species, but there are warnings",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
@@ -641,6 +642,7 @@
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
+    "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings",
     "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 14a4a2934..9a77d60bd 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -556,7 +556,9 @@
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
+    "INFO_VERIF_VARYING_OK": "Les critères de franchissement sont remplis pour toutes les espèces et toutes les modalités de la passe",
     "WARNING_VERIF_OK_BUT": "Les critères de franchissement sont remplis pour toutes les espèces, mais il y a des avertissements",
+    "WARNING_VERIF_VARYING_OK_BUT": "Seules certaines modalités de la passe sont franchissables",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée&nbsp;: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
@@ -607,6 +609,7 @@
     "INFO_PARENT_PREFIX": "%name% n°%position% : ",
     "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : ",
     "ERROR_VERIF_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs",
+    "ERROR_VERIF_VARYING_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs à l'itération %i%",
     "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
     "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
@@ -642,6 +645,7 @@
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
+    "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe",
     "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements",
     "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK",
-- 
GitLab


From 2ae40740fecc20a389c22b778d40342ddb606efc Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 11 May 2020 10:04:18 +0200
Subject: [PATCH 048/101] Updated dependencies

---
 package-lock.json | 2868 +++++++++++++++------------------------------
 package.json      |   36 +-
 2 files changed, 949 insertions(+), 1955 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index dfa6e2674..60a0a4bbe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,12 +11,12 @@
       "dev": true
     },
     "@angular-devkit/architect": {
-      "version": "0.901.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz",
-      "integrity": "sha512-w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==",
+      "version": "0.901.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.5.tgz",
+      "integrity": "sha512-VO+8qBkaq54xAjdtvhEhQ86gZxS0V1wC9hGblw3O+XXri/euHky4811B2BbEylPy8/kRy5sUYcuwcyZrVxJ2TQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/core": "9.1.5",
         "rxjs": "6.5.4"
       },
       "dependencies": {
@@ -32,21 +32,21 @@
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.901.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.4.tgz",
-      "integrity": "sha512-Vod4bc6d38fuvqauIDQxKMe9hKW9m4QNzPKxEc+Dv5Xkv95WaGzkbUVu8M8t4E//sDDMpmcPdYOXSdR27WBi2Q==",
+      "version": "0.901.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.5.tgz",
+      "integrity": "sha512-XottEBXE7cmkx6LPu33lXJCSAlxFkIu2ErWvV1oy+La6aZEuoJVntxzIKLprJmTiiD/4IDDQLWwp4m+EC96kyg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.4",
-        "@angular-devkit/build-optimizer": "0.901.4",
-        "@angular-devkit/build-webpack": "0.901.4",
-        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/architect": "0.901.5",
+        "@angular-devkit/build-optimizer": "0.901.5",
+        "@angular-devkit/build-webpack": "0.901.5",
+        "@angular-devkit/core": "9.1.5",
         "@babel/core": "7.9.0",
         "@babel/generator": "7.9.3",
         "@babel/preset-env": "7.9.0",
         "@babel/template": "7.8.6",
         "@jsdevtools/coverage-istanbul-loader": "3.0.3",
-        "@ngtools/webpack": "9.1.4",
+        "@ngtools/webpack": "9.1.5",
         "ajv": "6.12.0",
         "autoprefixer": "9.7.4",
         "babel-loader": "8.0.6",
@@ -97,77 +97,9 @@
         "webpack-merge": "4.2.2",
         "webpack-sources": "1.4.3",
         "webpack-subresource-integrity": "1.4.0",
-        "worker-plugin": "4.0.2"
+        "worker-plugin": "4.0.3"
       },
       "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz",
-          "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.0",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.5.7",
-              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-              "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-              "dev": true
-            }
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
         "ajv": {
           "version": "6.12.0",
           "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
@@ -180,12 +112,41 @@
             "uri-js": "^4.2.2"
           }
         },
+        "chokidar": {
+          "version": "2.1.8",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
         "core-js": {
           "version": "3.6.4",
           "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
           "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
           "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"
+          }
+        },
         "fast-deep-equal": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
@@ -206,6 +167,24 @@
             "path-is-absolute": "^1.0.0"
           }
         },
+        "is-absolute-url": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+          "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+          "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
+        },
+        "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
+        },
         "regenerator-runtime": {
           "version": "0.13.5",
           "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
@@ -230,6 +209,17 @@
             "tslib": "^1.9.0"
           }
         },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
         "semver": {
           "version": "7.1.3",
           "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
@@ -254,13 +244,62 @@
               "dev": true
             }
           }
+        },
+        "webpack-dev-server": {
+          "version": "3.10.3",
+          "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz",
+          "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==",
+          "dev": true,
+          "requires": {
+            "ansi-html": "0.0.7",
+            "bonjour": "^3.5.0",
+            "chokidar": "^2.1.8",
+            "compression": "^1.7.4",
+            "connect-history-api-fallback": "^1.6.0",
+            "debug": "^4.1.1",
+            "del": "^4.1.1",
+            "express": "^4.17.1",
+            "html-entities": "^1.2.1",
+            "http-proxy-middleware": "0.19.1",
+            "import-local": "^2.0.0",
+            "internal-ip": "^4.3.0",
+            "ip": "^1.1.5",
+            "is-absolute-url": "^3.0.3",
+            "killable": "^1.0.1",
+            "loglevel": "^1.6.6",
+            "opn": "^5.5.0",
+            "p-retry": "^3.0.1",
+            "portfinder": "^1.0.25",
+            "schema-utils": "^1.0.0",
+            "selfsigned": "^1.10.7",
+            "semver": "^6.3.0",
+            "serve-index": "^1.9.1",
+            "sockjs": "0.3.19",
+            "sockjs-client": "1.4.0",
+            "spdy": "^4.0.1",
+            "strip-ansi": "^3.0.1",
+            "supports-color": "^6.1.0",
+            "url": "^0.11.0",
+            "webpack-dev-middleware": "^3.7.2",
+            "webpack-log": "^2.0.0",
+            "ws": "^6.2.1",
+            "yargs": "12.0.5"
+          },
+          "dependencies": {
+            "semver": {
+              "version": "6.3.0",
+              "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+              "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+              "dev": true
+            }
+          }
         }
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.901.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.4.tgz",
-      "integrity": "sha512-iDMlNRwd8ICMBKnycfw55hdnL5kCiqUjQn+aK/4uOMJMz49tiYMNJAaznXX2BFKmYSmbapKjEbzx9yMYRi9Y7w==",
+      "version": "0.901.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.5.tgz",
+      "integrity": "sha512-xmAMvLMSa8BvqlZ0wsC37Qop/7/pEaQRKLeowC3CCI3jiYDF10Tihar+Hjc04NVSal8ZBP9/+Gp3Yr0x61HcFA==",
       "dev": true,
       "requires": {
         "loader-utils": "2.0.0",
@@ -270,6 +309,12 @@
         "webpack-sources": "1.4.3"
       },
       "dependencies": {
+        "tslib": {
+          "version": "1.11.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+          "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
+          "dev": true
+        },
         "typescript": {
           "version": "3.6.5",
           "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.5.tgz",
@@ -279,13 +324,13 @@
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.901.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.4.tgz",
-      "integrity": "sha512-YBOufI4TGAtIDCS6erFygYJX/fkd8xwI58d+7iFIBmtIJC4/fpGjX6qkHMCBgh8HXAkEPSORBCYQn9O44J1ZXQ==",
+      "version": "0.901.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.5.tgz",
+      "integrity": "sha512-4HHOFFRu3yUBe0otaDHh4PID99XvnBJj7hYzvbB5BvP0ULif4/W0aoU2STnern4lH4pJmrtqYawBZ84ETXN/Ag==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.4",
-        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/architect": "0.901.5",
+        "@angular-devkit/core": "9.1.5",
         "rxjs": "6.5.4"
       },
       "dependencies": {
@@ -301,9 +346,9 @@
       }
     },
     "@angular-devkit/core": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
-      "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.5.tgz",
+      "integrity": "sha512-i0BJ6Ad3bcDE6e4Ev9Flbw7P0bz9p94FDVfEOPGBTrbJQZSqOm3CqaH2y5LGfl7acSPUi54hK481h1QRUFBkTQ==",
       "dev": true,
       "requires": {
         "ajv": "6.12.0",
@@ -349,12 +394,12 @@
       }
     },
     "@angular-devkit/schematics": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.4.tgz",
-      "integrity": "sha512-RAbdnUEZ3JTLmWSBiXT5trsVx8Fi72fxN9CiRaluM09Cytg6BUc1wC5XCO0YPvhI400+3Ro1nwjPXezjg7LXzQ==",
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.5.tgz",
+      "integrity": "sha512-nkNiGrVl7xLaYYj/oT1wOBowa4Driv2f4abn78AJI/pd/EXA45G/rI9gO/kEG8lHn+FAMQedaywX9N4JDOxCGg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/core": "9.1.5",
         "ora": "4.0.3",
         "rxjs": "6.5.4"
       },
@@ -371,14 +416,14 @@
       }
     },
     "@angular/animations": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.4.tgz",
-      "integrity": "sha512-gMo/DbCm5BDArladMAeC7/75T2DvhLr4CSUGJt/P/aimTEG2ywoAALs3pzwSSe4qxrHiR0OIksVW3l4km3iXEw=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.6.tgz",
+      "integrity": "sha512-7Pp7aqNNcH4fu1BnOVpvqJJHjE7RZ5K1oD396OWCh35pgpLowLSpFjhbVhzGrcAuxHyKnnHSX3etLn2hDaHxmQ=="
     },
     "@angular/cdk": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.2.tgz",
-      "integrity": "sha512-VNd+KuMN6cBcy4/8OyMxqYaxdjPP6IyCqIVijB2JREkc5Sg4VWmPgx2L3rHt/DzjsVBVRgx35uqOMymDezG3jQ==",
+      "version": "9.2.3",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.3.tgz",
+      "integrity": "sha512-tQr/yt8GNGsZ/DTT+PMq7XdRmL56hwVCyf8F12JQAawutSLfTfMb+S1lpN7L/0Pb/L5JBuCfG2HmXK7vHo02gw==",
       "requires": {
         "parse5": "^5.0.0"
       },
@@ -392,16 +437,16 @@
       }
     },
     "@angular/cli": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.4.tgz",
-      "integrity": "sha512-H9MqoT4zyIv+Yo3cvRVkzafWGHsqt7jUvtvGwMHIDMTfEX+Q8yiYlDLL6WM3Eb6/hDmLcRGC/GI495sKS1z5qA==",
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.5.tgz",
+      "integrity": "sha512-Decn0p+s0SLc5p2GN7k8dUrOY43hBuCz8PxueW0gEln7NjlpdmHk+6JQn0ZRl2/2Dbk+eTGzPXyCxGwqsW3jjw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.4",
-        "@angular-devkit/core": "9.1.4",
-        "@angular-devkit/schematics": "9.1.4",
-        "@schematics/angular": "9.1.4",
-        "@schematics/update": "0.901.4",
+        "@angular-devkit/architect": "0.901.5",
+        "@angular-devkit/core": "9.1.5",
+        "@angular-devkit/schematics": "9.1.5",
+        "@schematics/angular": "9.1.5",
+        "@schematics/update": "0.901.5",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
         "debug": "4.1.1",
@@ -666,19 +711,19 @@
       }
     },
     "@angular/common": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.4.tgz",
-      "integrity": "sha512-JvCoCWVbx0tF7l/0WTi24ui/mc2SElyVSNchR4VK/FViARnkvnSBdI/Ef5QWXrsPyKU4PYBtnWWgyxRspH+FBA=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.6.tgz",
+      "integrity": "sha512-L9vw//wE+8QcSArOA411uJ68znnszCiPrbzSBV0BRZeadc7X68MwANA9qjtiTWZx5Xh9pNfHHwsCUyv2lUeinQ=="
     },
     "@angular/compiler": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.4.tgz",
-      "integrity": "sha512-B+f3lviFNEJtL9V9exSKYPSz2Ddb6dxgPzQR7GSjGikDo+fKMtC1PjNwgJooS9gavhQx30uwkEEMIPYQbM6nNA=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.6.tgz",
+      "integrity": "sha512-tHOQEjWuWqSkrk6/vI6BK7uJnpAyFajCXPW37rH5xspF/aMbetrpoOiGBNUQg/HLaFh04nOAnnFntjLkW0ooaA=="
     },
     "@angular/compiler-cli": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.4.tgz",
-      "integrity": "sha512-n3PzqNnPD7s/AF9mv5CnarK0sgfoq4txFncHjJWBSltuTQoz6BDZyjuEdqsSLUvgAZPeLsmohemOzEE38HYHZA==",
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.6.tgz",
+      "integrity": "sha512-1b7m9tvSQJE4y95wNCdi34MORcsmXPC1vaylYlzChVM2et9Y2eKHYcRs+4g329j66irLBGpS/7cgTT2pgJ+IbA==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
@@ -869,9 +914,9 @@
       }
     },
     "@angular/core": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.4.tgz",
-      "integrity": "sha512-ND240vncmVD2KVe/KSQU3d/DxxoRipFg1+jFOFZGt0n0orCBHk/V1fu9iaG1sRyldL0+rCQ+fTI+1N4DTmMnxA=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.6.tgz",
+      "integrity": "sha512-iXgPh5DebLwkMzLtQ6WKiv/mo4hpwMOwYex3O4F2CKToR2tKPnXbV5WC/ADGm0XYXiocSKQPiyL4ZrUjVeKEqA=="
     },
     "@angular/flex-layout": {
       "version": "9.0.0-beta.29",
@@ -879,35 +924,35 @@
       "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
     },
     "@angular/forms": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.4.tgz",
-      "integrity": "sha512-Njt+pMLfPBchL0/ayIjJqXL6ZfM4Ccvf7KO1wS1HMzh3QlmfNa0JSgc4pfrbRJAMN9g7V/FYLyKejs1bJZkenA=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.6.tgz",
+      "integrity": "sha512-3KiFjLDipZVgS5rfnZ8EoKlkUokOR8dmuw2xdjKHgzflWFFeuaY9ZtQgjZGw9/jkwWlc9P38BOSEHbK8NakdDw=="
     },
     "@angular/language-service": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.4.tgz",
-      "integrity": "sha512-eyVxxiegdb4ESdFGfkuDN+YfUbOVHRQLjIl6ACFJQDNHzVXzbmuqpyr5hIJANIVady103/7+dqRxxJo1DdIdTQ==",
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.6.tgz",
+      "integrity": "sha512-pB18hVoAbIuk1Wus8ur7yUxSukfPR4pCXiOfbxDQ94qlCzLAzIwXbaNV4erpBfL/fUKxMY3h8RrVt0dfm6M5RQ==",
       "dev": true
     },
     "@angular/material": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.2.tgz",
-      "integrity": "sha512-gdQiMJ6PtW/5fd+0mglHFyzxULDCBGjn9RTET3sUq2rkc9+jBXr4OvnsUyBWSnqqv97XqotVDIx5JgE4/YX/Rw=="
+      "version": "9.2.3",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.3.tgz",
+      "integrity": "sha512-QJltLNp8a/eoozPgkFLISEWgdlX9q9+fZaLJ8c9tHEp2IT5sFYBFHf8dPl0pUyxgOXkS/0HD43I1qki71/T7Kw=="
     },
     "@angular/platform-browser": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.4.tgz",
-      "integrity": "sha512-mBCHfTl+5tQfaUiGlDujP7mFBzovFc54Zi2kcCE8DSdSSVQ2TPBo6hXa6y2cL3hJPFZzQ7mC4ORFrsGADhHn/w=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.6.tgz",
+      "integrity": "sha512-ebQhbT0Z55vwlQwAY4+s3Bcf1Q4wEN5Yk43iCuVt4g2kFkg09UP0z8aYtbuh7VQDyv/W4TTIGX8smGBWstoedQ=="
     },
     "@angular/platform-browser-dynamic": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.4.tgz",
-      "integrity": "sha512-YtVbnxyS6FU7xNpA6A95tmSfrB8+WC7OH3mbP8M9NaGk0OYz8B/JOe1HByP4JRpEGCvBtXdJ2NSW/MpLIT8SiQ=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.6.tgz",
+      "integrity": "sha512-7AL3hWu4oY0LRiMS9ZEFXPW2uqybWcVNFDHjPp3UwsDIT4+sW3DIm8P+UvAOFkkRwaHpPDqm4chTTiAHygC/1Q=="
     },
     "@angular/router": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.4.tgz",
-      "integrity": "sha512-yUyjCgG2P2Jh8MvoyC6yirmAtx1Qe7MKLuLvsa9WOB571QNEcNLTYMfAMHUKsQTcE/+o984QyLlneoibgI9wFA=="
+      "version": "9.1.6",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.6.tgz",
+      "integrity": "sha512-Oz4nVQUR6t68DSzZuSrVaqrzmA7/0PIEi0sc85CE+UuOEoAqGMwN0NdQYizFT62WZ16DRI/1tZ+TTWvdmpEv8w=="
     },
     "@babel/code-frame": {
       "version": "7.5.5",
@@ -962,47 +1007,6 @@
             "@babel/highlight": "^7.8.3"
           }
         },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
         "@babel/highlight": {
           "version": "7.9.0",
           "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
@@ -1014,51 +1018,6 @@
             "js-tokens": "^4.0.0"
           }
         },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
         "convert-source-map": {
           "version": "1.7.0",
           "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
@@ -1091,6 +1050,26 @@
         }
       }
     },
+    "@babel/generator": {
+      "version": "7.9.3",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz",
+      "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.9.0",
+        "jsesc": "^2.5.1",
+        "lodash": "^4.17.13",
+        "source-map": "^0.5.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
     "@babel/helper-annotate-as-pure": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz",
@@ -1098,19 +1077,6 @@
       "dev": true,
       "requires": {
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-builder-binary-assignment-operator-visitor": {
@@ -1121,19 +1087,6 @@
       "requires": {
         "@babel/helper-explode-assignable-expression": "^7.8.3",
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-compilation-targets": {
@@ -1169,76 +1122,6 @@
         "@babel/helper-function-name": "^7.8.3",
         "@babel/types": "^7.8.3",
         "lodash": "^4.17.13"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-explode-assignable-expression": {
@@ -1249,135 +1132,26 @@
       "requires": {
         "@babel/traverse": "^7.8.3",
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
+      }
+    },
+    "@babel/helper-function-name": {
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+      "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.8.3",
+        "@babel/template": "^7.8.3",
+        "@babel/types": "^7.9.5"
+      }
+    },
+    "@babel/helper-get-function-arity": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
+      "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.8.3"
       }
     },
     "@babel/helper-hoist-variables": {
@@ -1387,19 +1161,6 @@
       "dev": true,
       "requires": {
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-member-expression-to-functions": {
@@ -1409,19 +1170,6 @@
       "dev": true,
       "requires": {
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-module-imports": {
@@ -1431,19 +1179,6 @@
       "dev": true,
       "requires": {
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-module-transforms": {
@@ -1459,65 +1194,6 @@
         "@babel/template": "^7.8.6",
         "@babel/types": "^7.9.0",
         "lodash": "^4.17.13"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-optimise-call-expression": {
@@ -1527,19 +1203,6 @@
       "dev": true,
       "requires": {
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/helper-plugin-utils": {
@@ -1568,135 +1231,6 @@
         "@babel/template": "^7.8.3",
         "@babel/traverse": "^7.8.3",
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
       }
     },
     "@babel/helper-replace-supers": {
@@ -1709,135 +1243,6 @@
         "@babel/helper-optimise-call-expression": "^7.8.3",
         "@babel/traverse": "^7.9.6",
         "@babel/types": "^7.9.6"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
       }
     },
     "@babel/helper-simple-access": {
@@ -1848,56 +1253,15 @@
       "requires": {
         "@babel/template": "^7.8.3",
         "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
+      "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.8.3"
       }
     },
     "@babel/helper-validator-identifier": {
@@ -1909,142 +1273,13 @@
     "@babel/helper-wrap-function": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
-      "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.8.3",
-        "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
+      "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.8.3",
+        "@babel/template": "^7.8.3",
+        "@babel/traverse": "^7.8.3",
+        "@babel/types": "^7.8.3"
       }
     },
     "@babel/helpers": {
@@ -2056,135 +1291,6 @@
         "@babel/template": "^7.8.3",
         "@babel/traverse": "^7.9.6",
         "@babel/types": "^7.9.6"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        }
       }
     },
     "@babel/highlight": {
@@ -2206,6 +1312,12 @@
         }
       }
     },
+    "@babel/parser": {
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+      "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
+      "dev": true
+    },
     "@babel/plugin-proposal-async-generator-functions": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz",
@@ -2432,85 +1544,6 @@
         "@babel/helper-replace-supers": "^7.8.6",
         "@babel/helper-split-export-declaration": "^7.8.3",
         "globals": "^11.1.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/plugin-transform-computed-properties": {
@@ -2577,76 +1610,6 @@
       "requires": {
         "@babel/helper-function-name": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/plugin-transform-literals": {
@@ -2748,28 +1711,6 @@
       "requires": {
         "@babel/helper-get-function-arity": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3"
-      },
-      "dependencies": {
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        }
       }
     },
     "@babel/plugin-transform-property-literals": {
@@ -2922,68 +1863,152 @@
         "invariant": "^2.2.2",
         "levenary": "^1.1.1",
         "semver": "^5.5.0"
+      }
+    },
+    "@babel/preset-modules": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
+      "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.0.0",
+        "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+        "@babel/plugin-transform-dotall-regex": "^7.4.4",
+        "@babel/types": "^7.4.4",
+        "esutils": "^2.0.2"
+      }
+    },
+    "@babel/runtime": {
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
+      "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
+      "dev": true,
+      "requires": {
+        "regenerator-runtime": "^0.13.2"
       },
       "dependencies": {
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+        "regenerator-runtime": {
+          "version": "0.13.3",
+          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+          "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/template": {
+      "version": "7.8.6",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
+      "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.8.3",
+        "@babel/parser": "^7.8.6",
+        "@babel/types": "^7.8.6"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.8.3",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
           "dev": true,
           "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
+            "@babel/highlight": "^7.8.3"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
           }
         }
       }
     },
-    "@babel/preset-modules": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
-      "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
-        "@babel/plugin-transform-dotall-regex": "^7.4.4",
-        "@babel/types": "^7.4.4",
-        "esutils": "^2.0.2"
-      }
-    },
-    "@babel/runtime": {
-      "version": "7.8.4",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
-      "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
+    "@babel/traverse": {
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+      "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
       "dev": true,
       "requires": {
-        "regenerator-runtime": "^0.13.2"
+        "@babel/code-frame": "^7.8.3",
+        "@babel/generator": "^7.9.6",
+        "@babel/helper-function-name": "^7.9.5",
+        "@babel/helper-split-export-declaration": "^7.8.3",
+        "@babel/parser": "^7.9.6",
+        "@babel/types": "^7.9.6",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0",
+        "lodash": "^4.17.13"
       },
       "dependencies": {
-        "regenerator-runtime": {
-          "version": "0.13.3",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
-          "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+        "@babel/code-frame": {
+          "version": "7.8.3",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.8.3"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.9.6",
+            "jsesc": "^2.5.1",
+            "lodash": "^4.17.13",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.9.0",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "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
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
           "dev": true
         }
       }
     },
     "@babel/types": {
-      "version": "7.5.5",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
-      "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+      "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
       "dev": true,
       "requires": {
-        "esutils": "^2.0.2",
+        "@babel/helper-validator-identifier": "^7.9.5",
         "lodash": "^4.17.13",
         "to-fast-properties": "^2.0.0"
-      },
-      "dependencies": {
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
       }
     },
     "@braintree/sanitize-url": {
@@ -3397,18 +2422,6 @@
         "schema-utils": "^2.6.4"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
         "convert-source-map": {
           "version": "1.7.0",
           "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
@@ -3418,12 +2431,6 @@
             "safe-buffer": "~5.1.1"
           }
         },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
         "json5": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
@@ -3453,16 +2460,6 @@
             "source-map": "^0.6.1"
           }
         },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -3482,12 +2479,12 @@
       }
     },
     "@ngtools/webpack": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.4.tgz",
-      "integrity": "sha512-CDlQzMnWraxf/dT3G5L+0N0VniWHWdzjLRP8pWBoyV0xlzWS1yL/lj8Mas2jEIuaUxZ8bi29mE7xa8prqewtBQ==",
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.5.tgz",
+      "integrity": "sha512-6VzmlXRnf7phwLOiy0WrxHFHD5TuNQgVVpD/VFkZjtCTOsZyGQYGVPfaqxvn13M4Mm8bjrN4mk06VowCFm2oHw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.4",
+        "@angular-devkit/core": "9.1.5",
         "enhanced-resolve": "4.1.1",
         "rxjs": "6.5.4",
         "webpack-sources": "1.4.3"
@@ -3511,23 +2508,23 @@
       "dev": true
     },
     "@schematics/angular": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.4.tgz",
-      "integrity": "sha512-7nbiYBRgXc+f0sa5iXTcF6/VMy/Xq0wyKKnDFiLCb2aFYR7EXRHWF2GuwDIg2bvFugLuCBDoNnXeddLE1TXGWg==",
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.5.tgz",
+      "integrity": "sha512-kMscfnwd9TGLo8V+dE/Pzu4wNxZej/6F6z5XzMOQVFTbL+RqMDvtkHf9CarhiKBd5ogm4npfKV8ToNTUecFJkA==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.4",
-        "@angular-devkit/schematics": "9.1.4"
+        "@angular-devkit/core": "9.1.5",
+        "@angular-devkit/schematics": "9.1.5"
       }
     },
     "@schematics/update": {
-      "version": "0.901.4",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.4.tgz",
-      "integrity": "sha512-jCtZY2Fbj502gKN5gdu1brnRy/ssyzTrWm69Ty73V+t8uL7nLr+/hny/VBJ8CiQnKQvxcgVl1xgvI1cXzpysVA==",
+      "version": "0.901.5",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.5.tgz",
+      "integrity": "sha512-JmB+AuU6C9eM8x/CxeBEDigRuypzuWx7gnloK9D5i2gP9r39clFNtWT7eM3YW3kl4uyEMzrQHx6esMWNUScVBw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.4",
-        "@angular-devkit/schematics": "9.1.4",
+        "@angular-devkit/core": "9.1.5",
+        "@angular-devkit/schematics": "9.1.5",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
         "npm-package-arg": "^8.0.0",
@@ -3680,9 +2677,9 @@
       "integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew=="
     },
     "@types/node": {
-      "version": "13.13.4",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.4.tgz",
-      "integrity": "sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA==",
+      "version": "13.13.5",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.5.tgz",
+      "integrity": "sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g==",
       "dev": true
     },
     "@types/pako": {
@@ -4476,6 +3473,14 @@
         "bn.js": "^4.0.0",
         "inherits": "^2.0.1",
         "minimalistic-assert": "^1.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "assert": {
@@ -4927,9 +3932,9 @@
       }
     },
     "bn.js": {
-      "version": "4.11.8",
-      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz",
+      "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==",
       "dev": true
     },
     "body-parser": {
@@ -5271,21 +4276,49 @@
       "requires": {
         "bn.js": "^4.1.0",
         "randombytes": "^2.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "browserify-sign": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
-      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz",
+      "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==",
       "dev": true,
       "requires": {
-        "bn.js": "^4.1.1",
-        "browserify-rsa": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "create-hmac": "^1.1.2",
-        "elliptic": "^6.0.0",
-        "inherits": "^2.0.1",
-        "parse-asn1": "^5.0.0"
+        "bn.js": "^5.1.1",
+        "browserify-rsa": "^4.0.1",
+        "create-hash": "^1.2.0",
+        "create-hmac": "^1.1.7",
+        "elliptic": "^6.5.2",
+        "inherits": "^2.0.4",
+        "parse-asn1": "^5.1.5",
+        "readable-stream": "^3.6.0"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+          "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
       }
     },
     "browserify-zlib": {
@@ -5546,15 +4579,6 @@
           "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
           "dev": true
         },
-        "p-map": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
-          "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
-          "dev": true,
-          "requires": {
-            "aggregate-error": "^3.0.0"
-          }
-        },
         "yallist": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -5688,9 +4712,9 @@
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30001051",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001051.tgz",
-      "integrity": "sha512-sw8UUnTlRevawTMZKN7vpfwSjCBVoiMPlYd8oT2VwNylyPCBdMAUmLGUApnYYTtIm5JXsQegUAY7GPHqgfDzjw==",
+      "version": "1.0.30001055",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz",
+      "integrity": "sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==",
       "dev": true
     },
     "canonical-path": {
@@ -6648,6 +5672,17 @@
           "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
           "dev": true
         },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
         "semver": {
           "version": "5.7.1",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -7311,6 +6346,14 @@
       "requires": {
         "bn.js": "^4.1.0",
         "elliptic": "^6.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "create-error-class": {
@@ -7454,24 +6497,6 @@
         "semver": "^6.3.0"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
         "json5": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
@@ -7498,16 +6523,6 @@
           "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
           "dev": true
         },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
-        },
         "semver": {
           "version": "6.3.0",
           "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -8251,6 +7266,12 @@
             "path-is-inside": "^1.0.2"
           }
         },
+        "p-map": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+          "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+          "dev": true
+        },
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -8359,6 +7380,14 @@
         "bn.js": "^4.1.0",
         "miller-rabin": "^4.0.0",
         "randombytes": "^2.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "dir-glob": {
@@ -8849,9 +7878,9 @@
       }
     },
     "electron-to-chromium": {
-      "version": "1.3.428",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.428.tgz",
-      "integrity": "sha512-u3+5jEfgLKq/hGO96YfAoOAM1tgFnRDTCD5mLuev44tttcXix+INtVegAkmGzUcfDsnzkPt51XXurXZLLwXt0w==",
+      "version": "1.3.432",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.432.tgz",
+      "integrity": "sha512-/GdNhXyLP5Yl2322CUX/+Xi8NhdHBqL6lD9VJVKjH6CjoPGakvwZ5CpKgj/oOlbzuWWjOvMjDw1bBuAIRCNTlw==",
       "dev": true
     },
     "elementtree": {
@@ -8882,6 +7911,14 @@
         "inherits": "^2.0.1",
         "minimalistic-assert": "^1.0.0",
         "minimalistic-crypto-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "emoji-regex": {
@@ -8952,6 +7989,17 @@
           "requires": {
             "ms": "2.0.0"
           }
+        },
+        "ws": {
+          "version": "3.3.3",
+          "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+          "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+          "dev": true,
+          "requires": {
+            "async-limiter": "~1.0.0",
+            "safe-buffer": "~5.1.0",
+            "ultron": "~1.1.0"
+          }
         }
       }
     },
@@ -8982,6 +8030,17 @@
           "requires": {
             "ms": "2.0.0"
           }
+        },
+        "ws": {
+          "version": "3.3.3",
+          "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+          "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+          "dev": true,
+          "requires": {
+            "async-limiter": "~1.0.0",
+            "safe-buffer": "~5.1.0",
+            "ultron": "~1.1.0"
+          }
         }
       }
     },
@@ -9007,18 +8066,6 @@
         "graceful-fs": "^4.1.2",
         "memory-fs": "^0.5.0",
         "tapable": "^1.0.0"
-      },
-      "dependencies": {
-        "memory-fs": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
-          "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
-          "dev": true,
-          "requires": {
-            "errno": "^0.1.3",
-            "readable-stream": "^2.0.1"
-          }
-        }
       }
     },
     "ent": {
@@ -9299,9 +8346,9 @@
       }
     },
     "eventemitter3": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
-      "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.1.tgz",
+      "integrity": "sha512-MnI0l35oYL2C/c80rjJN7qu50MDx39yYE7y7oYck2YA3v+y7EaAenY8IU8AP4d1RWqE8VAKWFGSh3rfP87ll3g==",
       "dev": true
     },
     "events": {
@@ -9829,49 +8876,19 @@
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
       "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5"
-      }
-    },
-    "file-loader": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz",
-      "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^2.0.0",
-        "schema-utils": "^2.6.5"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
-        }
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "^1.0.5"
+      }
+    },
+    "file-loader": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz",
+      "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^2.6.5"
       }
     },
     "file-saver": {
@@ -10043,9 +9060,9 @@
       }
     },
     "follow-redirects": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.8.1.tgz",
-      "integrity": "sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==",
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz",
+      "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==",
       "dev": true,
       "requires": {
         "debug": "^3.0.0"
@@ -11068,9 +10085,9 @@
       "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
     },
     "handle-thing": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
-      "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+      "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
       "dev": true
     },
     "handlebars": {
@@ -11234,9 +10251,9 @@
           }
         },
         "safe-buffer": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
-          "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
           "dev": true
         }
       }
@@ -11405,12 +10422,12 @@
       "dev": true
     },
     "http-proxy": {
-      "version": "1.17.0",
-      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
-      "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
+      "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
       "dev": true,
       "requires": {
-        "eventemitter3": "^3.0.0",
+        "eventemitter3": "^4.0.0",
         "follow-redirects": "^1.0.0",
         "requires-port": "^1.0.0"
       }
@@ -11840,9 +10857,9 @@
       }
     },
     "is-absolute-url": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
-      "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
       "dev": true
     },
     "is-accessor-descriptor": {
@@ -12204,9 +11221,9 @@
       "dev": true
     },
     "isbinaryfile": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.4.tgz",
-      "integrity": "sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ==",
+      "version": "4.0.6",
+      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz",
+      "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==",
       "dev": true
     },
     "isexe": {
@@ -12233,152 +11250,22 @@
       "dev": true
     },
     "istanbul-lib-instrument": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz",
-      "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+      "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
       "dev": true,
       "requires": {
         "@babel/core": "^7.7.5",
-        "@babel/parser": "^7.7.5",
-        "@babel/template": "^7.7.4",
-        "@babel/traverse": "^7.7.4",
         "@istanbuljs/schema": "^0.1.2",
         "istanbul-lib-coverage": "^3.0.0",
         "semver": "^6.3.0"
       },
       "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.8.3"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.9.6",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
-            "source-map": "^0.5.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.9.5",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-          "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.8.3",
-            "@babel/template": "^7.8.3",
-            "@babel/types": "^7.9.5"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-          "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-          "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.8.3"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
-            "chalk": "^2.0.0",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-          "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.8.6",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
-          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/parser": "^7.8.6",
-            "@babel/types": "^7.8.6"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-          "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.8.3",
-            "@babel/generator": "^7.9.6",
-            "@babel/helper-function-name": "^7.9.5",
-            "@babel/helper-split-export-declaration": "^7.8.3",
-            "@babel/parser": "^7.9.6",
-            "@babel/types": "^7.9.6",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.13"
-          }
-        },
-        "@babel/types": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-validator-identifier": "^7.9.5",
-            "lodash": "^4.17.13",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "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": "6.3.0",
           "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
           "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
           "dev": true
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
         }
       }
     },
@@ -12725,9 +11612,9 @@
       }
     },
     "karma": {
-      "version": "5.0.4",
-      "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.4.tgz",
-      "integrity": "sha512-UGqTe2LBiGQBXRN+Fygeiq63tbfOX45639SKSbPkLpARwnxROWJZg+froGkpHxr84FXCe8UGCf+1PITM6frT5w==",
+      "version": "5.0.5",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.5.tgz",
+      "integrity": "sha512-Q4Su7kNwkTgqS+KbSCYgH0p4a/0JIxVLyp7qKNV7vgPNhIF4kIoh0GlUfMKpw67BrR3hgPQSJoxgF7xnzUtPpg==",
       "dev": true,
       "requires": {
         "body-parser": "^1.16.1",
@@ -13437,6 +12324,12 @@
         }
       }
     },
+    "loglevel": {
+      "version": "1.6.8",
+      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
+      "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==",
+      "dev": true
+    },
     "loglevel-plugin-prefix": {
       "version": "0.8.4",
       "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz",
@@ -13703,9 +12596,9 @@
       }
     },
     "memory-fs": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
-      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+      "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
       "dev": true,
       "requires": {
         "errno": "^0.1.3",
@@ -13800,6 +12693,14 @@
       "requires": {
         "bn.js": "^4.0.0",
         "brorand": "^1.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "mime": {
@@ -13878,6 +12779,17 @@
             "query-string": "^4.1.0",
             "sort-keys": "^1.0.0"
           }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
         }
       }
     },
@@ -14245,6 +13157,12 @@
         "safe-buffer": "^5.1.1"
       }
     },
+    "node-forge": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
+      "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
+      "dev": true
+    },
     "node-libs-browser": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
@@ -14285,9 +13203,9 @@
       }
     },
     "node-releases": {
-      "version": "1.1.54",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.54.tgz",
-      "integrity": "sha512-tLzytKpgwKQr37yw9CEODjNM9lnmsNxzlv575GzOZ16AgMvPcJis/DgrJX4UEV1KIYoXk6XoVfY6YaMOPJESAQ==",
+      "version": "1.1.55",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz",
+      "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==",
       "dev": true
     },
     "nopt": {
@@ -14477,9 +13395,9 @@
           }
         },
         "safe-buffer": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
-          "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
           "dev": true
         },
         "yallist": {
@@ -15075,10 +13993,13 @@
       }
     },
     "p-map": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
-      "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
-      "dev": true
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+      "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
+      "dev": true,
+      "requires": {
+        "aggregate-error": "^3.0.0"
+      }
     },
     "p-retry": {
       "version": "3.0.1",
@@ -15622,6 +14543,34 @@
       "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==",
       "dev": true
     },
+    "portfinder": {
+      "version": "1.0.26",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz",
+      "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==",
+      "dev": true,
+      "requires": {
+        "async": "^2.6.2",
+        "debug": "^3.1.1",
+        "mkdirp": "^0.5.1"
+      },
+      "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
+        }
+      }
+    },
     "posix-character-classes": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@@ -15794,6 +14743,17 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
         }
       }
     },
@@ -16137,12 +15097,6 @@
         "postcss-value-parser": "^3.0.0"
       },
       "dependencies": {
-        "is-absolute-url": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
-          "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
-          "dev": true
-        },
         "postcss-value-parser": {
           "version": "3.3.1",
           "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
@@ -16565,6 +15519,14 @@
         "parse-asn1": "^5.0.0",
         "randombytes": "^2.0.1",
         "safe-buffer": "^5.1.2"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.8",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "dev": true
+        }
       }
     },
     "pump": {
@@ -16760,24 +15722,6 @@
         "schema-utils": "^2.5.0"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
         "json5": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
@@ -16797,16 +15741,6 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
-        },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
         }
       }
     },
@@ -17365,24 +16299,6 @@
         "semver": "^6.3.0"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
         "json5": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
@@ -17409,16 +16325,6 @@
           "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
           "dev": true
         },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
-        },
         "semver": {
           "version": "6.3.0",
           "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -17427,32 +16333,51 @@
         }
       }
     },
-    "saucelabs": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
-      "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
-      "dev": true,
-      "requires": {
-        "https-proxy-agent": "^2.2.1"
-      }
-    },
-    "sax": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
-      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
-      "dev": true
-    },
-    "schema-utils": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
-      "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.1.0",
-        "ajv-errors": "^1.0.0",
-        "ajv-keywords": "^3.1.0"
-      }
-    },
+    "saucelabs": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
+      "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+      "dev": true
+    },
+    "schema-utils": {
+      "version": "2.6.6",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+      "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.12.0",
+        "ajv-keywords": "^3.4.1"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "dev": true
+        }
+      }
+    },
     "scope-analyzer": {
       "version": "2.0.5",
       "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.0.5.tgz",
@@ -17517,6 +16442,15 @@
         }
       }
     },
+    "selfsigned": {
+      "version": "1.10.7",
+      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
+      "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
+      "dev": true,
+      "requires": {
+        "node-forge": "0.9.0"
+      }
+    },
     "semver": {
       "version": "5.5.1",
       "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
@@ -18018,6 +16952,46 @@
         "uuid": "^3.0.1"
       }
     },
+    "sockjs-client": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
+      "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.2.5",
+        "eventsource": "^1.0.7",
+        "faye-websocket": "~0.11.1",
+        "inherits": "^2.0.3",
+        "json3": "^3.3.2",
+        "url-parse": "^1.4.3"
+      },
+      "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"
+          }
+        },
+        "faye-websocket": {
+          "version": "0.11.3",
+          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+          "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+          "dev": true,
+          "requires": {
+            "websocket-driver": ">=0.5.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
+        }
+      }
+    },
     "socks": {
       "version": "2.3.3",
       "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz",
@@ -18178,9 +17152,9 @@
       "dev": true
     },
     "spdy": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz",
-      "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==",
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+      "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
       "dev": true,
       "requires": {
         "debug": "^4.1.0",
@@ -18237,9 +17211,9 @@
           "dev": true
         },
         "readable-stream": {
-          "version": "3.4.0",
-          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
-          "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
           "dev": true,
           "requires": {
             "inherits": "^2.0.3",
@@ -18917,24 +17891,6 @@
         "schema-utils": "^2.6.4"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
         "json5": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
@@ -18954,16 +17910,6 @@
             "emojis-list": "^3.0.0",
             "json5": "^1.0.1"
           }
-        },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
         }
       }
     },
@@ -19380,18 +18326,6 @@
         "webpack-sources": "^1.4.3"
       },
       "dependencies": {
-        "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
         "cacache": {
           "version": "13.0.1",
           "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
@@ -19418,12 +18352,6 @@
             "unique-filename": "^1.1.1"
           }
         },
-        "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
-          "dev": true
-        },
         "glob": {
           "version": "7.1.6",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -19462,25 +18390,6 @@
             "p-try": "^2.0.0"
           }
         },
-        "p-map": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
-          "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
-          "dev": true,
-          "requires": {
-            "aggregate-error": "^3.0.0"
-          }
-        },
-        "schema-utils": {
-          "version": "2.6.6",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.12.0",
-            "ajv-keywords": "^3.4.1"
-          }
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -19532,9 +18441,9 @@
       }
     },
     "thunky": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
-      "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+      "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
       "dev": true
     },
     "time-stamp": {
@@ -19782,9 +18691,9 @@
       }
     },
     "tslib": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
-      "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+      "version": "1.11.2",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz",
+      "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg=="
     },
     "tslint": {
       "version": "6.1.2",
@@ -20828,6 +19737,16 @@
             "semver": "^5.6.0"
           }
         },
+        "memory-fs": {
+          "version": "0.4.1",
+          "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+          "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+          "dev": true,
+          "requires": {
+            "errno": "^0.1.3",
+            "readable-stream": "^2.0.1"
+          }
+        },
         "neo-async": {
           "version": "2.6.1",
           "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
@@ -20840,6 +19759,17 @@
           "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
           "dev": true
         },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
         "semver": {
           "version": "5.7.1",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -20899,6 +19829,16 @@
         "webpack-log": "^2.0.0"
       },
       "dependencies": {
+        "memory-fs": {
+          "version": "0.4.1",
+          "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+          "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+          "dev": true,
+          "requires": {
+            "errno": "^0.1.3",
+            "readable-stream": "^2.0.1"
+          }
+        },
         "mime": {
           "version": "2.4.5",
           "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
@@ -20908,9 +19848,9 @@
       }
     },
     "webpack-dev-server": {
-      "version": "3.10.3",
-      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz",
-      "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==",
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz",
+      "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==",
       "dev": true,
       "requires": {
         "ansi-html": "0.0.7",
@@ -20921,33 +19861,39 @@
         "debug": "^4.1.1",
         "del": "^4.1.1",
         "express": "^4.17.1",
-        "html-entities": "^1.2.1",
+        "html-entities": "^1.3.1",
         "http-proxy-middleware": "0.19.1",
         "import-local": "^2.0.0",
         "internal-ip": "^4.3.0",
         "ip": "^1.1.5",
         "is-absolute-url": "^3.0.3",
         "killable": "^1.0.1",
-        "loglevel": "^1.6.6",
+        "loglevel": "^1.6.8",
         "opn": "^5.5.0",
         "p-retry": "^3.0.1",
-        "portfinder": "^1.0.25",
+        "portfinder": "^1.0.26",
         "schema-utils": "^1.0.0",
         "selfsigned": "^1.10.7",
         "semver": "^6.3.0",
         "serve-index": "^1.9.1",
-        "sockjs": "0.3.19",
+        "sockjs": "0.3.20",
         "sockjs-client": "1.4.0",
-        "spdy": "^4.0.1",
+        "spdy": "^4.0.2",
         "strip-ansi": "^3.0.1",
         "supports-color": "^6.1.0",
         "url": "^0.11.0",
         "webpack-dev-middleware": "^3.7.2",
         "webpack-log": "^2.0.0",
         "ws": "^6.2.1",
-        "yargs": "12.0.5"
+        "yargs": "^13.3.2"
       },
       "dependencies": {
+        "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
+        },
         "chokidar": {
           "version": "2.1.8",
           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
@@ -20968,6 +19914,28 @@
             "upath": "^1.1.1"
           }
         },
+        "cliui": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+          "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+          "dev": true,
+          "requires": {
+            "string-width": "^3.1.0",
+            "strip-ansi": "^5.2.0",
+            "wrap-ansi": "^5.1.0"
+          },
+          "dependencies": {
+            "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,
+              "requires": {
+                "ansi-regex": "^4.1.0"
+              }
+            }
+          }
+        },
         "debug": {
           "version": "4.1.1",
           "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -20977,25 +19945,28 @@
             "ms": "^2.1.1"
           }
         },
-        "faye-websocket": {
-          "version": "0.11.3",
-          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
-          "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
-          "dev": true,
-          "requires": {
-            "websocket-driver": ">=0.5.1"
-          }
+        "emoji-regex": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+          "dev": true
         },
-        "loglevel": {
-          "version": "1.6.6",
-          "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz",
-          "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==",
+        "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
         },
-        "mime": {
-          "version": "2.4.4",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+        "html-entities": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz",
+          "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==",
+          "dev": true
+        },
+        "is-absolute-url": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+          "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
           "dev": true
         },
         "ms": {
@@ -21004,106 +19975,131 @@
           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
           "dev": true
         },
-        "node-forge": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
-          "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
-          "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
         },
-        "portfinder": {
-          "version": "1.0.25",
-          "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",
-          "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==",
+        "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
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        },
+        "sockjs": {
+          "version": "0.3.20",
+          "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz",
+          "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==",
+          "dev": true,
+          "requires": {
+            "faye-websocket": "^0.10.0",
+            "uuid": "^3.4.0",
+            "websocket-driver": "0.6.5"
+          }
+        },
+        "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,
           "requires": {
-            "async": "^2.6.2",
-            "debug": "^3.1.1",
-            "mkdirp": "^0.5.1"
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
           },
           "dependencies": {
-            "debug": {
-              "version": "3.2.6",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-              "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+            "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,
               "requires": {
-                "ms": "^2.1.1"
+                "ansi-regex": "^4.1.0"
               }
             }
           }
         },
-        "selfsigned": {
-          "version": "1.10.7",
-          "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
-          "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
+        "uuid": {
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+          "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+          "dev": true
+        },
+        "websocket-driver": {
+          "version": "0.6.5",
+          "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
+          "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
           "dev": true,
           "requires": {
-            "node-forge": "0.9.0"
+            "websocket-extensions": ">=0.1.1"
           }
         },
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        },
-        "sockjs-client": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
-          "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
+        "wrap-ansi": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+          "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
           "dev": true,
           "requires": {
-            "debug": "^3.2.5",
-            "eventsource": "^1.0.7",
-            "faye-websocket": "~0.11.1",
-            "inherits": "^2.0.3",
-            "json3": "^3.3.2",
-            "url-parse": "^1.4.3"
+            "ansi-styles": "^3.2.0",
+            "string-width": "^3.0.0",
+            "strip-ansi": "^5.0.0"
           },
           "dependencies": {
-            "debug": {
-              "version": "3.2.6",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-              "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+            "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,
               "requires": {
-                "ms": "^2.1.1"
+                "ansi-regex": "^4.1.0"
               }
             }
           }
         },
-        "upath": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
-          "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
-          "dev": true
-        },
-        "webpack-dev-middleware": {
-          "version": "3.7.2",
-          "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz",
-          "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==",
+        "yargs": {
+          "version": "13.3.2",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+          "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
           "dev": true,
           "requires": {
-            "memory-fs": "^0.4.1",
-            "mime": "^2.4.4",
-            "mkdirp": "^0.5.1",
-            "range-parser": "^1.2.1",
-            "webpack-log": "^2.0.0"
+            "cliui": "^5.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^3.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^13.1.2"
           }
         },
-        "ws": {
-          "version": "6.2.1",
-          "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
-          "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+        "yargs-parser": {
+          "version": "13.1.2",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+          "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
           "dev": true,
           "requires": {
-            "async-limiter": "~1.0.0"
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
           }
         }
       }
@@ -21345,9 +20341,9 @@
       }
     },
     "worker-plugin": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-4.0.2.tgz",
-      "integrity": "sha512-V+1zSZMOOKk+uBzKyNIODLQLsx59zSIOaI75J1EMS0iR1qy+KQR3y/pQ3T0vIhvPfDFapGRMsoMvQNEL3okqSA==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-4.0.3.tgz",
+      "integrity": "sha512-7hFDYWiKcE3yHZvemsoM9lZis/PzurHAEX1ej8PLCu818Rt6QqUAiDdxHPCKZctzmhqzPpcFSgvMCiPbtooqAg==",
       "dev": true,
       "requires": {
         "loader-utils": "^1.1.0"
@@ -21424,14 +20420,12 @@
       }
     },
     "ws": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
-      "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+      "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
       "dev": true,
       "requires": {
-        "async-limiter": "~1.0.0",
-        "safe-buffer": "~5.1.0",
-        "ultron": "~1.1.0"
+        "async-limiter": "~1.0.0"
       }
     },
     "xdg-basedir": {
diff --git a/package.json b/package.json
index 7f39c893d..a7b29cd94 100644
--- a/package.json
+++ b/package.json
@@ -36,17 +36,17 @@
   },
   "private": true,
   "dependencies": {
-    "@angular/animations": "^9.1.1",
-    "@angular/cdk": "^9.2.1",
-    "@angular/common": "^9.1.1",
-    "@angular/compiler": "^9.1.1",
-    "@angular/core": "^9.1.1",
+    "@angular/animations": "^9.1.6",
+    "@angular/cdk": "^9.2.3",
+    "@angular/common": "^9.1.6",
+    "@angular/compiler": "^9.1.6",
+    "@angular/core": "^9.1.6",
     "@angular/flex-layout": "^9.0.0-beta.29",
-    "@angular/forms": "^9.1.1",
-    "@angular/material": "^9.2.1",
-    "@angular/platform-browser": "^9.1.1",
-    "@angular/platform-browser-dynamic": "^9.1.1",
-    "@angular/router": "^9.1.1",
+    "@angular/forms": "^9.1.6",
+    "@angular/material": "^9.2.3",
+    "@angular/platform-browser": "^9.1.6",
+    "@angular/platform-browser-dynamic": "^9.1.6",
+    "@angular/router": "^9.1.6",
     "@types/pako": "^1.0.1",
     "@types/sprintf-js": "^1.1.2",
     "angular2-chartjs": "^0.5.1",
@@ -79,20 +79,20 @@
     "rxjs": "^6.5.5",
     "screenfull": "^5.0.2",
     "svg-pan-zoom": "^3.6.1",
-    "tslib": "^1.11.1",
+    "tslib": "^1.11.2",
     "xlsx": "^0.16.0",
     "zone.js": "^0.10.3"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "^0.901.4",
-    "@angular/cli": "^9.1.4",
-    "@angular/compiler-cli": "^9.1.4",
-    "@angular/language-service": "^9.1.4",
+    "@angular-devkit/build-angular": "^0.901.5",
+    "@angular/cli": "^9.1.5",
+    "@angular/compiler-cli": "^9.1.6",
+    "@angular/language-service": "^9.1.6",
     "@compodoc/compodoc": "^1.1.11",
     "@types/file-saver": "^2.0.1",
     "@types/jasmine": "^3.5.10",
     "@types/jasminewd2": "^2.0.8",
-    "@types/node": "^13.13.4",
+    "@types/node": "^13.13.5",
     "codelyzer": "^5.2.2",
     "cordova": "^9.0.0",
     "electron": "^8.2.5",
@@ -100,7 +100,7 @@
     "fs-extra": "^9.0.0",
     "jasmine-core": "^3.5.0",
     "jasmine-spec-reporter": "^5.0.2",
-    "karma": "^5.0.4",
+    "karma": "^5.0.5",
     "karma-chrome-launcher": "^3.1.0",
     "karma-cli": "~2.0.0",
     "karma-coverage-istanbul-reporter": "^3.0.2",
@@ -110,7 +110,7 @@
     "ts-node": "^8.10.1",
     "tslint": "^6.1.2",
     "typescript": "~3.7.5",
-    "webpack-dev-server": "^3.10.3"
+    "webpack-dev-server": "^3.11.0"
   },
   "cordova": {
     "plugins": {
-- 
GitLab


From bf2e9c9c905e30fab4b1ad896040bd5770ec60f3 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 11 May 2020 11:20:52 +0200
Subject: [PATCH 049/101] Translations for Verificateur : MRC crossable width

---
 src/locale/messages.en.json | 2 ++
 src/locale/messages.fr.json | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 728fc8d75..cb3e4c301 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -610,8 +610,10 @@
     "ERROR_VERIF_MR_VMAX": "Maximum speed %V% too high (maximum: %maxV%)",
     "ERROR_VERIF_MR_YMIN": "Water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "None of the aprons is crossable",
+    "ERROR_VERIF_MRC_CROSSABLE_WIDTH": "Crossable width %width% m is lower than the width of a block pattern %patternWidth% m",
     "WARNING_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
+    "INFO_VERIF_MRC_CROSSABLE_WIDTH": "Maximum crossable width is %width% m",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
     "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 9a77d60bd..bf68ad175 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -613,8 +613,10 @@
     "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
     "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
+    "ERROR_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable %width% m est inférieure à la largeur d'un motif de blocs %patternWidth% m",
     "WARNING_VERIF_MRC_VMAX_APRON_N": "Radier n°%N%&nbsp;: vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N%&nbsp;: tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
+    "INFO_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable maximale est %width% m",
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
     "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N%&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
-- 
GitLab


From 8a2d919c5aec5a4540e1ae2b000a4371793e10bd Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 11 May 2020 15:36:38 +0200
Subject: [PATCH 050/101] Translations for Verificateur : PVMax

---
 src/app/calculators/espece/config.json | 10 ++++++++++
 src/app/calculators/espece/en.json     |  5 ++++-
 src/app/calculators/espece/fr.json     |  5 ++++-
 src/locale/messages.en.json            |  3 +++
 src/locale/messages.fr.json            | 11 +++++++----
 5 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index 096e616f0..e3718104c 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -1,4 +1,14 @@
 [
+    {
+        "id": "fs_param_common",
+        "type": "fieldset",
+        "fields": [
+            {
+                "id": "PVMax",
+                "allowEmpty": true
+            }
+        ]
+    },
     {
         "id": "fs_param_pab_s",
         "type": "fieldset",
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index 11f45ce1a..cedf49fdf 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -1,4 +1,5 @@
 {
+    "fs_param_common": "Common parameters",
     "fs_param_pab_s": "Fish ladders, surface jets or orifices",
     "fs_param_pab_p": "Fish ladders, diving jets",
     "fs_param_pam": "Rock-ramp fishpasses",
@@ -16,6 +17,7 @@
     "VMax": "Maximal flow velocity",
     "YMinSB": "Minimal water level on superactive baffles",
     "YMinPB": "Minimal water level on plane baffles",
+    "PVMax": "Maximal dissipated power",
 
     "UNIT_DHMaxS": "m",
     "UNIT_DHMaxP": "m",
@@ -28,5 +30,6 @@
     "UNIT_YMin": "m",
     "UNIT_VMax": "m/s",
     "UNIT_YMinSB": "m",
-    "UNIT_YMinPB": "m"
+    "UNIT_YMinPB": "m",
+    "UNIT_PVMax": "W/m³"
 }
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index 2c2ae4107..7654d4ce9 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -1,4 +1,5 @@
 {
+    "fs_param_common": "Paramètres communs",
     "fs_param_pab_s": "Passes à bassins, jets de surface et orifices",
     "fs_param_pab_p": "Passes à bassins, jets plongeants",
     "fs_param_pam": "Passes à macrorugosités",
@@ -16,6 +17,7 @@
     "VMax": "Vitesse d'écoulement maximale",
     "YMinSB": "Tirant d'eau minimal sur les ralentisseurs suractifs de fond",
     "YMinPB": "Tirant d'eau minimal sur les ralentisseurs plans",
+    "PVMax": "Puissance volumique dissipée maximale",
 
     "UNIT_DHMaxS": "m",
     "UNIT_DHMaxP": "m",
@@ -28,5 +30,6 @@
     "UNIT_YMin": "m",
     "UNIT_VMax": "m/s",
     "UNIT_YMinSB": "m",
-    "UNIT_YMinPB": "m"
+    "UNIT_YMinPB": "m",
+    "UNIT_PVMax": "W/m³"
 }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index cb3e4c301..cf6f8349c 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -608,10 +608,12 @@
     "INFO_PARENT_PREFIX_DOWNWALL": "downwall: ",
     "ERROR_VERIF_ERRORS_IN_PASS": "Pass to verify contains errors",
     "ERROR_VERIF_MR_VMAX": "Maximum speed %V% too high (maximum: %maxV%)",
+    "ERROR_VERIF_MR_PVMAX": "Dissipated power %PV% too high (maximum: %maxPV%)",
     "ERROR_VERIF_MR_YMIN": "Water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "None of the aprons is crossable",
     "ERROR_VERIF_MRC_CROSSABLE_WIDTH": "Crossable width %width% m is lower than the width of a block pattern %patternWidth% m",
     "WARNING_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
+    "WARNING_VERIF_MRC_PVMAX_APRON_N": "Apron #%N%: dissipated power %PV% too high (maximum: %maxPV%)",
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
     "INFO_VERIF_MRC_CROSSABLE_WIDTH": "Maximum crossable width is %width% m",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
@@ -641,6 +643,7 @@
     "WARNING_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
     "ERROR_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
     "WARNING_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
+    "ERROR_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% too high (maximum: %maxPV%)",
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index bf68ad175..9883598a3 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -611,10 +611,12 @@
     "ERROR_VERIF_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs",
     "ERROR_VERIF_VARYING_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs à l'itération %i%",
     "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
+    "ERROR_VERIF_MR_PVMAX": "Puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%)",
     "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
     "ERROR_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable %width% m est inférieure à la largeur d'un motif de blocs %patternWidth% m",
     "WARNING_VERIF_MRC_VMAX_APRON_N": "Radier n°%N%&nbsp;: vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
+    "WARNING_VERIF_MRC_PVMAX_APRON_N": "Puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%) dans le radier %N%",
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N%&nbsp;: tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "INFO_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable maximale est %width% m",
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
@@ -635,15 +637,16 @@
     "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "WARNING_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
-    "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
-    "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
-    "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
-    "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum: %minS%)",
+    "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
     "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum pour jet de surface&nbsp;: %minPBS%, minimum pour jet plongeant&nbsp;: %minPBP%)",
     "ERROR_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
     "WARNING_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
     "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
     "WARNING_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
+    "ERROR_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%)",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
-- 
GitLab


From 5545ea5de82e194902a50e363a1e73f0f3aaeff8 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 11 May 2020 16:34:23 +0200
Subject: [PATCH 051/101] Translation for Verificateur

---
 src/locale/messages.en.json | 1 +
 src/locale/messages.fr.json | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index cf6f8349c..a5a2a62fc 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -645,6 +645,7 @@
     "WARNING_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
     "ERROR_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% too high (maximum: %maxPV%)",
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
+    "ERROR_VERIF_PAR_SLOPE": "Slope %S% too high (maximum: %maxS%)",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 9883598a3..5b9cc4524 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -648,6 +648,7 @@
     "WARNING_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
     "ERROR_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%)",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
+    "ERROR_VERIF_PAR_SLOPE": "La pente %S% m est trop élevée (maximum&nbsp;: %maxS% m)",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
     "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe",
-- 
GitLab


From d2309e0b11e540154b9925e2b00ee3b4cf5e7407 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Mon, 18 May 2020 09:35:11 +0200
Subject: [PATCH 052/101] Simplified ServiceFactory singleton

---
 src/app/app.component.ts                      | 12 +++---
 .../base-param-input.component.ts             |  4 +-
 .../calculator-list.component.ts              | 30 +++++++-------
 .../dialog-load-session.component.ts          |  2 +-
 .../fixedvar-results/results.component.ts     |  2 +-
 .../param-field-line.component.ts             |  6 +--
 .../jalhyd-model-validation.directive.ts      |  8 ++--
 .../formulaire/definition/form-definition.ts  |  4 +-
 src/app/formulaire/definition/form-section.ts |  2 +-
 .../definition/form-verificateur.ts           |  2 +-
 .../formulaire/elements/formulaire-element.ts |  2 +-
 src/app/formulaire/elements/ngparam.ts        |  4 +-
 .../elements/select-field-custom.ts           |  8 ++--
 src/app/formulaire/elements/select-field.ts   |  4 +-
 src/app/results/calculator-results.ts         |  6 +--
 src/app/results/macrorugo-compound-results.ts |  2 +-
 src/app/results/pab-results.ts                |  2 +-
 src/app/results/plottable-pab-results.ts      |  2 +-
 src/app/results/remous-results.ts             |  2 +-
 src/app/results/var-results.ts                | 14 +++----
 .../services/internationalisation.service.ts  |  2 +-
 src/app/services/service-factory.ts           | 41 +++++++++----------
 src/app/util.ts                               |  2 +-
 23 files changed, 80 insertions(+), 83 deletions(-)

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index e90029baf..f308e323b 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -97,11 +97,11 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
     private matomoInjector: MatomoInjector,
     private matomoTracker: MatomoTracker
   ) {
-    ServiceFactory.instance.httpService = httpService;
-    ServiceFactory.instance.applicationSetupService = appSetupService;
-    ServiceFactory.instance.i18nService = intlService;
-    ServiceFactory.instance.formulaireService = formulaireService;
-    ServiceFactory.instance.notificationsService = notificationsService;
+    ServiceFactory.httpService = httpService;
+    ServiceFactory.applicationSetupService = appSetupService;
+    ServiceFactory.i18nService = intlService;
+    ServiceFactory.formulaireService = formulaireService;
+    ServiceFactory.notificationsService = notificationsService;
 
     if (! isDevMode()) {
       // évite de mettre en place un bandeau RGPD
@@ -150,7 +150,7 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
    */
   public static onHotkey(func: any, that: any) {
     return (event: KeyboardEvent): boolean => {
-      if (ServiceFactory.instance.applicationSetupService.enableHotkeys) {
+      if (ServiceFactory.applicationSetupService.enableHotkeys) {
         func.call(that);
         return false; // Prevent bubbling
       } else {
diff --git a/src/app/components/base-param-input/base-param-input.component.ts b/src/app/components/base-param-input/base-param-input.component.ts
index aab6cebb6..25573571b 100644
--- a/src/app/components/base-param-input/base-param-input.component.ts
+++ b/src/app/components/base-param-input/base-param-input.component.ts
@@ -69,7 +69,7 @@ export class NgBaseParam extends Observable {
 
         if (v === null || v === "") {
             // NULL values are always invalid
-            msg = ServiceFactory.instance.i18nService.localizeText("ERROR_PARAM_NULL");
+            msg = ServiceFactory.i18nService.localizeText("ERROR_PARAM_NULL");
         } else {
             try {
                 this._param.checkValueAgainstDomain(v);
@@ -77,7 +77,7 @@ export class NgBaseParam extends Observable {
             } catch (e) {
                 if (e instanceof Message) {
                     // ici au début le service de localisation n'a pas encore chargé ses messages…
-                    msg = ServiceFactory.instance.i18nService.localizeMessage(e);
+                    msg = ServiceFactory.i18nService.localizeMessage(e);
                 } else {
                     msg = "invalid value";
                 }
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index de8820b9d..e3c286fbe 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -31,15 +31,15 @@ export class CalculatorListComponent implements OnInit {
         private intlService: I18nService,
         private appSetupService: ApplicationSetupService
     ) {
-        ServiceFactory.instance.i18nService.addObserver(this);
-        ServiceFactory.instance.applicationSetupService.addObserver(this);
+        ServiceFactory.i18nService.addObserver(this);
+        ServiceFactory.applicationSetupService.addObserver(this);
     }
 
     /** triggered on init */
     private loadCalculatorsThemes() {
         this._items = [];
         const unusedCalculators = EnumEx.getValues(CalculatorType);
-        const themes = ServiceFactory.instance.applicationSetupService.themes;
+        const themes = ServiceFactory.applicationSetupService.themes;
         if (themes) {
             // group by themes
             for (const theme of themes) {
@@ -47,10 +47,10 @@ export class CalculatorListComponent implements OnInit {
                     // get theme details from config
                     const themeTitleKey = "INFO_THEME_" + theme.name + "_TITRE";
                     const themeDescriptionKey = "INFO_THEME_" + theme.name + "_DESCRIPTION";
-                    const credits = ServiceFactory.instance.i18nService.localizeText("INFO_THEME_CREDITS");
+                    const credits = ServiceFactory.i18nService.localizeText("INFO_THEME_CREDITS");
                     const item = {
-                        title: ServiceFactory.instance.i18nService.localizeText(themeTitleKey),
-                        description: ServiceFactory.instance.i18nService.localizeText(themeDescriptionKey),
+                        title: ServiceFactory.i18nService.localizeText(themeTitleKey),
+                        description: ServiceFactory.i18nService.localizeText(themeDescriptionKey),
                         image: {
                             path: "assets/images/themes/" + theme.image.path,
                             credits: credits + " : " + theme.image.credits
@@ -61,7 +61,7 @@ export class CalculatorListComponent implements OnInit {
                     for (const calcType of theme.calculators) {
                         item.calculators.push({
                             type: calcType,
-                            label: ServiceFactory.instance.formulaireService.getLocalisedTitleFromCalculatorType(calcType),
+                            label: ServiceFactory.formulaireService.getLocalisedTitleFromCalculatorType(calcType),
                             buttonId: "create-calc-" + calcType
                         });
                         // mark as used
@@ -79,8 +79,8 @@ export class CalculatorListComponent implements OnInit {
                 const unusedThemeConfig = themes.find(i => i.name === undefined);
                 const unusedTheme: any = {};
                 unusedTheme.calculators = [];
-                unusedTheme.title = ServiceFactory.instance.i18nService.localizeText("INFO_THEME_MODULES_INUTILISES_TITRE");
-                unusedTheme.description = ServiceFactory.instance.i18nService.localizeText("INFO_THEME_MODULES_INUTILISES_DESCRIPTION");
+                unusedTheme.title = ServiceFactory.i18nService.localizeText("INFO_THEME_MODULES_INUTILISES_TITRE");
+                unusedTheme.description = ServiceFactory.i18nService.localizeText("INFO_THEME_MODULES_INUTILISES_DESCRIPTION");
                 unusedTheme.image = {
                     path: "assets/images/themes/" + unusedThemeConfig.image.path
                 };
@@ -94,7 +94,7 @@ export class CalculatorListComponent implements OnInit {
                     ) {
                         unusedTheme.calculators.push({
                             type: t,
-                            label: ServiceFactory.instance.formulaireService.getLocalisedTitleFromCalculatorType(t),
+                            label: ServiceFactory.formulaireService.getLocalisedTitleFromCalculatorType(t),
                             buttonId: "create-calc-" + t
                         });
                     }
@@ -107,7 +107,7 @@ export class CalculatorListComponent implements OnInit {
     }
 
     public create(t: CalculatorType) {
-        const p: Promise<FormulaireDefinition> = ServiceFactory.instance.formulaireService.createFormulaire(t);
+        const p: Promise<FormulaireDefinition> = ServiceFactory.formulaireService.createFormulaire(t);
         p.then(f => {
             this.router.navigate(["/calculator", f.uid]);
             return f;
@@ -210,19 +210,19 @@ export class CalculatorListComponent implements OnInit {
     }
 
     public get uitextWelcomeSubtitle() {
-        return ServiceFactory.instance.i18nService.localizeText("INFO_WELCOME_SUBTITLE");
+        return ServiceFactory.i18nService.localizeText("INFO_WELCOME_SUBTITLE");
     }
 
     public get uitextWelcomeContent() {
-        return ServiceFactory.instance.i18nService.localizeText("INFO_WELCOME_CONTENT");
+        return ServiceFactory.i18nService.localizeText("INFO_WELCOME_CONTENT");
     }
 
     public get uitextExamplesTitle() {
-        return ServiceFactory.instance.i18nService.localizeText("INFO_EXAMPLES_TITLE");
+        return ServiceFactory.i18nService.localizeText("INFO_EXAMPLES_TITLE");
     }
 
     public get uitextExamplesSubtitle() {
-        return ServiceFactory.instance.i18nService.localizeText("INFO_EXAMPLES_SUBTITLE");
+        return ServiceFactory.i18nService.localizeText("INFO_EXAMPLES_SUBTITLE");
     }
 
     public onKC() {
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 a8f7aa817..35db621eb 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
@@ -148,7 +148,7 @@ export class DialogLoadSessionComponent {
         this.loadingError = false;
         this.loadingComplete = false;
 
-        const formService = ServiceFactory.instance.formulaireService;
+        const formService = ServiceFactory.formulaireService;
         formService.calculatorInfosFromSessionFile(this.file).then(
           calcInfos => {
             this.fileFormatVersion = calcInfos.formatVersion;
diff --git a/src/app/components/fixedvar-results/results.component.ts b/src/app/components/fixedvar-results/results.component.ts
index 550cff912..8ba53061a 100644
--- a/src/app/components/fixedvar-results/results.component.ts
+++ b/src/app/components/fixedvar-results/results.component.ts
@@ -102,7 +102,7 @@ export class ResultsComponentDirective {
         } else if (typeof p === "number") {
             originalValue = p;
         }
-        const nDigits = ServiceFactory.instance.applicationSetupService.displayPrecision;
+        const nDigits = ServiceFactory.applicationSetupService.displayPrecision;
         const minRenderableNumber = Number("1E-" + nDigits);
         // if required precision is too low, avoid rendering only zeroes
         if (originalValue < minRenderableNumber) {
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 a9dae488e..f0601b32a 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
@@ -22,8 +22,8 @@ import { ParamValuesComponent } from "../param-values/param-values.component";
 export class ParamFieldLineComponent implements OnChanges {
 
     constructor() {
-        this.intlService = ServiceFactory.instance.i18nService;
-        this._formService = ServiceFactory.instance.formulaireService;
+        this.intlService = ServiceFactory.i18nService;
+        this._formService = ServiceFactory.formulaireService;
         this.valid = new EventEmitter();
         this.inputChange = new EventEmitter();
     }
@@ -80,7 +80,7 @@ export class ParamFieldLineComponent implements OnChanges {
     }
 
     public get formHasResults(): boolean {
-        return ServiceFactory.instance.formulaireService.currentFormHasResults;
+        return ServiceFactory.formulaireService.currentFormHasResults;
     }
 
     @Input()
diff --git a/src/app/directives/jalhyd-model-validation.directive.ts b/src/app/directives/jalhyd-model-validation.directive.ts
index 71445d72f..758242ff9 100644
--- a/src/app/directives/jalhyd-model-validation.directive.ts
+++ b/src/app/directives/jalhyd-model-validation.directive.ts
@@ -110,7 +110,7 @@ export function jalhydModelValidatorMin(ngParam: NgParameter): ValidatorFn {
                 "jalhydModelMin": {
                     value: control.value,
                     message: sprintf(
-                        ServiceFactory.instance.i18nService.localizeText("ERROR_MINMAXSTEP_MIN"),
+                        ServiceFactory.i18nService.localizeText("ERROR_MINMAXSTEP_MIN"),
                         ngParam.domain.minValue,
                         ngParam.maxValue
                     )
@@ -130,7 +130,7 @@ export function jalhydModelValidatorMax(ngParam: NgParameter): ValidatorFn {
                 "jalhydModelMax": {
                     value: control.value,
                     message: sprintf(
-                        ServiceFactory.instance.i18nService.localizeText("ERROR_MINMAXSTEP_MAX"),
+                        ServiceFactory.i18nService.localizeText("ERROR_MINMAXSTEP_MAX"),
                         ngParam.minValue,
                         ngParam.domain.maxValue
                     )
@@ -153,8 +153,8 @@ export function jalhydModelValidatorStep(ngParam: NgParameter): ValidatorFn {
                 "jalhydModelStep": {
                     value: control.value,
                     message: sprintf(
-                        // ServiceFactory.instance.i18nService.localizeText("ERROR_MINMAXSTEP_STEP"),
-                        ServiceFactory.instance.i18nService.localizeText("ERROR_PARAM_MUST_BE_POSITIVE"),
+                        // ServiceFactory.i18nService.localizeText("ERROR_MINMAXSTEP_STEP"),
+                        ServiceFactory.i18nService.localizeText("ERROR_PARAM_MUST_BE_POSITIVE"),
                         ngParam.stepRefValue.toString()
                     )
                 }
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 7de69e2b6..140741beb 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -108,7 +108,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
             "name": name
         }, this);
         // convenient trick to notify param-link components
-        ServiceFactory.instance.formulaireService.propagateFormNameChange(this, name);
+        ServiceFactory.formulaireService.propagateFormNameChange(this, name);
     }
 
     public get jsonConfig(): {} {
@@ -493,7 +493,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         // reset model results
         this.currentNub.resetResult();
         // reset the result panels of all forms depending on this one
-        ServiceFactory.instance.formulaireService.resetAllDependingFormsResults(this, visited, symbol, forceResetAllDependencies);
+        ServiceFactory.formulaireService.resetAllDependingFormsResults(this, visited, symbol, forceResetAllDependencies);
     }
 
     protected abstract compute();
diff --git a/src/app/formulaire/definition/form-section.ts b/src/app/formulaire/definition/form-section.ts
index 30cdd2c40..fd45ceb50 100644
--- a/src/app/formulaire/definition/form-section.ts
+++ b/src/app/formulaire/definition/form-section.ts
@@ -21,7 +21,7 @@ export class FormulaireSection extends FormulaireFixedVar {
             // show / hide dependent fields
             this.refreshFieldsets();
             // empty fields ? only those belonging to the specific section type
-            if (ServiceFactory.instance.applicationSetupService.enableEmptyFieldsOnFormInit) {
+            if (ServiceFactory.applicationSetupService.enableEmptyFieldsOnFormInit) {
                 // "LargeurBerge" is hackily used as LargeurFond in Rectangular and Trapez sections, omit it here
                 this.emptyFields([ "Ks", "Q", "If", "YB", "iPrec", "Y" ]);
             }
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index ad7f3fffc..217298e80 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -39,7 +39,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
     protected findPassVariatedParameters(): NgParameter[] {
         let pvp = []
         const passUid = this.verificateurNub.nubToVerify.uid;
-        const passForm = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(passUid);
+        const passForm = ServiceFactory.formulaireService.getFormulaireFromNubId(passUid);
         pvp = passForm.getVariatedParameters();
         return pvp;
     }
diff --git a/src/app/formulaire/elements/formulaire-element.ts b/src/app/formulaire/elements/formulaire-element.ts
index ae565987e..95c14c76d 100644
--- a/src/app/formulaire/elements/formulaire-element.ts
+++ b/src/app/formulaire/elements/formulaire-element.ts
@@ -30,7 +30,7 @@ export abstract class FormulaireElement extends FormulaireNode {
     constructor(parent: FormulaireNode) {
         super(parent);
         this._isDisplayed = true;
-        this.intlService = ServiceFactory.instance.i18nService;
+        this.intlService = ServiceFactory.i18nService;
     }
 
     get isDisplayed(): boolean {
diff --git a/src/app/formulaire/elements/ngparam.ts b/src/app/formulaire/elements/ngparam.ts
index 183c4e241..063bd5796 100644
--- a/src/app/formulaire/elements/ngparam.ts
+++ b/src/app/formulaire/elements/ngparam.ts
@@ -44,7 +44,7 @@ export class NgParameter extends InputField implements Observer {
      */
     public static preview(p: ParamDefinition, compact: boolean = false): string {
         let valuePreview: string;
-        const i18n = ServiceFactory.instance.i18nService;
+        const i18n = ServiceFactory.i18nService;
 
         switch (p.valueMode) {
             case ParamValueMode.SINGLE:
@@ -102,7 +102,7 @@ export class NgParameter extends InputField implements Observer {
      */
     public static linkedValuePreview(ref: LinkedValue): string {
         let valuePreview: string;
-        const i18n = ServiceFactory.instance.i18nService;
+        const i18n = ServiceFactory.i18nService;
 
         if (ref.isParameter()) {
             const targetParam = (ref.element as ParamDefinition);
diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 47a73730d..7044c06d2 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -57,7 +57,7 @@ export class SelectFieldCustom extends SelectField {
      * Populates entries with available options
      */
     protected populate() {
-        const fs = ServiceFactory.instance.formulaireService;
+        const fs = ServiceFactory.formulaireService;
         let candidateNubs: any[];
         switch (this.source) {
 
@@ -133,8 +133,8 @@ export class SelectFieldCustom extends SelectField {
                             this._entriesBaseId + en.uid,
                             en.uid,
                             sprintf(
-                                ServiceFactory.instance.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
-                                ServiceFactory.instance.formulaireService.getFormulaireFromNubId(en.uid).calculatorName
+                                ServiceFactory.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
+                                ServiceFactory.formulaireService.getFormulaireFromNubId(en.uid).calculatorName
                             )
                         )
                     );
@@ -146,7 +146,7 @@ export class SelectFieldCustom extends SelectField {
                         new SelectEntry(
                             this._entriesBaseId + spgId,
                             FishSpecies[j],
-                            ServiceFactory.instance.i18nService.localizeText("INFO_ENUM_" + FishSpecies[j])
+                            ServiceFactory.i18nService.localizeText("INFO_ENUM_" + FishSpecies[j])
                         )
                     );
                 }
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 70d1bf2d1..d80ba9707 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -158,7 +158,7 @@ export class SelectField extends Field {
                 // 1. calculated param
                 const ntc = (nub as Solveur).nubToCalculate;
                 if (ntc !== undefined && ntc.calculatedParam !== undefined) { // some nubs have no calculatedParam, for ex. SectionParam
-                    const varName = ServiceFactory.instance.formulaireService.expandVariableName(ntc.calcType, ntc.calculatedParam.symbol);
+                    const varName = ServiceFactory.formulaireService.expandVariableName(ntc.calcType, ntc.calculatedParam.symbol);
                     this.addEntry(new SelectEntry(
                         this._entriesBaseId + "none",
                         "",
@@ -168,7 +168,7 @@ export class SelectField extends Field {
                 // 2. extra results
                 if (ntc !== undefined && ntc.resultsFamilies !== undefined) {
                     for (const er of Object.keys(ntc.resultsFamilies)) {
-                        const varName = ServiceFactory.instance.formulaireService.expandVariableName(ntc.calcType, er);
+                        const varName = ServiceFactory.formulaireService.expandVariableName(ntc.calcType, er);
                         const e: SelectEntry = new SelectEntry(
                             this._entriesBaseId + er,
                             er,
diff --git a/src/app/results/calculator-results.ts b/src/app/results/calculator-results.ts
index e4b420907..36c23bbf9 100644
--- a/src/app/results/calculator-results.ts
+++ b/src/app/results/calculator-results.ts
@@ -24,10 +24,10 @@ export abstract class CalculatorResults {
             const children = referenceNub.getChildren();
             const parameterNub = p.paramDefinition.parentNub;
             if (children.includes(parameterNub)) {
-                const cn = capitalize(ServiceFactory.instance.i18nService.childName(parameterNub.parent));
+                const cn = capitalize(ServiceFactory.i18nService.childName(parameterNub.parent));
                 isChildParam = true;
                 const pos = parameterNub.findPositionInParent() + 1;
-                res = sprintf(ServiceFactory.instance.i18nService.localizeText("INFO_STUFF_N"), cn) + pos + " : ";
+                res = sprintf(ServiceFactory.i18nService.localizeText("INFO_STUFF_N"), cn) + pos + " : ";
             }
         }
         if (displaySymbol && ! isChildParam) {
@@ -58,7 +58,7 @@ export abstract class CalculatorResults {
     public getHelpLink(symbol: string): string {
         // add help link if any
         if (this.helpLinks !== undefined && this.helpLinks[symbol] !== undefined) {
-            const helpURL = "assets/docs/" + ServiceFactory.instance.applicationSetupService.language
+            const helpURL = "assets/docs/" + ServiceFactory.applicationSetupService.language
                 + "/calculators/" + this.helpLinks[symbol];
             // pseudo-<mat-icon> dirty trick because <mat-icon> renderer cannot be
             // triggered when code is set through innerHTML
diff --git a/src/app/results/macrorugo-compound-results.ts b/src/app/results/macrorugo-compound-results.ts
index a5c609205..8aba75366 100644
--- a/src/app/results/macrorugo-compound-results.ts
+++ b/src/app/results/macrorugo-compound-results.ts
@@ -52,7 +52,7 @@ export class MacrorugoCompoundResults extends MultiDimensionResults {
                     unit = p.unit;
                 }
             } catch (e) { /* silent fail */ }
-            let label = ServiceFactory.instance.formulaireService.expandVariableNameAndUnit(ct , h, unit);
+            let label = ServiceFactory.formulaireService.expandVariableNameAndUnit(ct , h, unit);
             label += this.getHelpLink(h);
             return label;
         });
diff --git a/src/app/results/pab-results.ts b/src/app/results/pab-results.ts
index bcf4b2b68..d08b381f1 100644
--- a/src/app/results/pab-results.ts
+++ b/src/app/results/pab-results.ts
@@ -52,7 +52,7 @@ export class PabResults extends MultiDimensionResults {
             if (sn.parent) {
                 ct = sn.parent.calcType;
             }
-            let label = ServiceFactory.instance.formulaireService.expandVariableNameAndUnit(ct , h);
+            let label = ServiceFactory.formulaireService.expandVariableNameAndUnit(ct , h);
             label += this.getHelpLink(h);
             return label;
         });
diff --git a/src/app/results/plottable-pab-results.ts b/src/app/results/plottable-pab-results.ts
index 7f52a5717..0d45afb05 100644
--- a/src/app/results/plottable-pab-results.ts
+++ b/src/app/results/plottable-pab-results.ts
@@ -31,7 +31,7 @@ export class PlottablePabResults implements PlottableData {
      */
     public getChartAxisLabel(symbol: string): string {
         if (symbol === "x") { // specific case for wall abscissa
-            return ServiceFactory.instance.i18nService.localizeText("INFO_LIB_ABSCISSE_CLOISON");
+            return ServiceFactory.i18nService.localizeText("INFO_LIB_ABSCISSE_CLOISON");
         } else {
             return this.pabResults.headers[this.pabResults.columns.indexOf(symbol)];
         }
diff --git a/src/app/results/remous-results.ts b/src/app/results/remous-results.ts
index a96934ca7..c6c9e3b8a 100644
--- a/src/app/results/remous-results.ts
+++ b/src/app/results/remous-results.ts
@@ -86,7 +86,7 @@ export class RemousResults extends CalculatorResults {
         // série de valeurs de X
         this._xValues = new ParamDefinition(
             p,
-            ServiceFactory.instance.i18nService.localizeText("INFO_REMOUSRESULTS_ABSCISSE"),
+            ServiceFactory.i18nService.localizeText("INFO_REMOUSRESULTS_ABSCISSE"),
             ParamDomainValue.POS_NULL
         );
     }
diff --git a/src/app/results/var-results.ts b/src/app/results/var-results.ts
index a6322e0f6..6e73b5d03 100644
--- a/src/app/results/var-results.ts
+++ b/src/app/results/var-results.ts
@@ -136,10 +136,10 @@ export class VarResults extends CalculatedParamResults implements PlottableData
             const pos = +match[1];
             // only parent translation file is loaded; look for children translations in it // ct = sn.getChildren()[pos].calcType;
             symbol = match[2];
-            const cn = capitalize(ServiceFactory.instance.i18nService.childName(sn));
-            ret += sprintf(ServiceFactory.instance.i18nService.localizeText("INFO_STUFF_N"), cn) + (pos + 1) + " : ";
+            const cn = capitalize(ServiceFactory.i18nService.childName(sn));
+            ret += sprintf(ServiceFactory.i18nService.localizeText("INFO_STUFF_N"), cn) + (pos + 1) + " : ";
         }
-        ret += ServiceFactory.instance.formulaireService.expandVariableNameAndUnit(ct, symbol);
+        ret += ServiceFactory.formulaireService.expandVariableNameAndUnit(ct, symbol);
         return ret;
     }
 
@@ -378,19 +378,19 @@ export class VarResults extends CalculatedParamResults implements PlottableData
                     unit = p.unit;
                 }
             } catch (e) { /* silent fail */ }
-            let rh = ServiceFactory.instance.formulaireService.expandVariableNameAndUnit(ct, k, unit);
+            let rh = ServiceFactory.formulaireService.expandVariableNameAndUnit(ct, k, unit);
             rh += this.getHelpLink(k);
             this._resultHeaders.push(rh);
         }
         // entêtes des résultats des enfants
         for (const c of sn.getChildren()) {
             if (c.result) {
-                const cn = capitalize(ServiceFactory.instance.i18nService.childName(sn));
+                const cn = capitalize(ServiceFactory.i18nService.childName(sn));
                 // using latest ResultElement; results count / types are supposed to be the same on every iteration
                 for (const k of c.result.resultElement.keys) {
-                    let rh = sprintf(ServiceFactory.instance.i18nService.localizeText("INFO_STUFF_N"), cn)
+                    let rh = sprintf(ServiceFactory.i18nService.localizeText("INFO_STUFF_N"), cn)
                         + (c.findPositionInParent() + 1) + " : "
-                        + ServiceFactory.instance.formulaireService.expandVariableNameAndUnit(ct, k);
+                        + ServiceFactory.formulaireService.expandVariableNameAndUnit(ct, k);
                     rh += this.getHelpLink(k);
                     this._resultHeaders.push(rh);
                 }
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 321b572e0..7774b0069 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -176,7 +176,7 @@ export class I18nService extends Observable implements Observer {
         // replace "FORM_ID_X" by form name in current session, if any
         m = m.replace(/FORM_ID_(\w{6})/g, (match, p1) => {
             // cannot inject FormulaireService => cyclic dependency :/
-            const form = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(p1);
+            const form = ServiceFactory.formulaireService.getFormulaireFromNubId(p1);
             let formName = "**UNKNOWN_FORM**";
             if (form !== undefined) {
                 formName = form.calculatorName;
diff --git a/src/app/services/service-factory.ts b/src/app/services/service-factory.ts
index 78d182b91..6d3c7b4ed 100644
--- a/src/app/services/service-factory.ts
+++ b/src/app/services/service-factory.ts
@@ -4,25 +4,22 @@ import { I18nService } from "./internationalisation.service";
 import { HttpService } from "./http.service";
 import { NotificationsService } from "./notifications.service";
 
-export class ServiceFactory {
-    private static _instance: ServiceFactory; // instance pour le pattern singleton
-
-    private constructor() { }
-
-    public applicationSetupService: ApplicationSetupService;
-
-    public formulaireService: FormulaireService;
-
-    public i18nService: I18nService;
-
-    public httpService: HttpService;
-
-    public notificationsService: NotificationsService;
-
-    public static get instance() {
-        if (ServiceFactory._instance === undefined) {
-            ServiceFactory._instance = new ServiceFactory();
-        }
-        return ServiceFactory._instance;
-    }
-}
+ /**
+  * A "Singleton" the TS way, that holds pointers to all services, to be accessed
+  * at any time by classes that do not support injection; fed by AppComponent at
+  * construction time
+  */
+ export const ServiceFactory: {
+    applicationSetupService: ApplicationSetupService;
+    formulaireService: FormulaireService;
+    i18nService: I18nService;
+    httpService: HttpService;
+    notificationsService: NotificationsService;
+ } = {
+    applicationSetupService: undefined,
+    formulaireService: undefined,
+    i18nService: undefined,
+    httpService: undefined,
+    notificationsService: undefined
+ };
+ 
\ No newline at end of file
diff --git a/src/app/util.ts b/src/app/util.ts
index 146002b23..48b0981cc 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -26,7 +26,7 @@ export function fv(p: NgParameter | number): string {
     } else if (typeof p === "number") {
         value = p;
     }
-    const nDigits = ServiceFactory.instance.applicationSetupService.displayPrecision;
+    const nDigits = ServiceFactory.applicationSetupService.displayPrecision;
 
     return formattedValue(value, nDigits);
 }
-- 
GitLab


From c16714af896ecf8faf48812edad6d5ad273db336 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 24 Jun 2020 16:09:16 +0200
Subject: [PATCH 053/101] Fix bug in ServiceFactory call

---
 src/app/services/internationalisation.service.ts | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 7774b0069..971508c2b 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -193,8 +193,7 @@ export class I18nService extends Observable implements Observer {
 
         // replace "FORM_ID_X" by form name in current session, if any
         m = m.replace(/FORM_ID_(\w{6})/g, (match, p1) => {
-            // cannot inject FormulaireService => cyclic dependency :/
-            const form = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(p1);
+            const form = ServiceFactory.formulaireService.getFormulaireFromNubId(p1); // cannot inject FormulaireService => cyclic dependency :/
             let formName = "**UNKNOWN_FORM**";
             if (form !== undefined) {
                 formName = form.calculatorName;
-- 
GitLab


From 1212974977e80786ce5bf885b10742760bd76c34 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Thu, 14 May 2020 11:48:38 +0200
Subject: [PATCH 054/101] Fix #404 - add Cunge (1980) to Walls, update doc

---
 src/locale/messages.en.json | 2 ++
 src/locale/messages.fr.json | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index a5a2a62fc..faaad8191 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -357,6 +357,8 @@
     "INFO_LINKED_VALUE_RESULT": "%s (%s)",
     "INFO_LINKED_VALUE_SECTION_RESULT": "%s (%s, section)",
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
+    "INFO_LOG_HIDE_DETAILS": "hide details",
+    "INFO_LOG_SHOW_DETAILS": "show details",
     "INFO_MACRORUGO_TITRE_COURT": "Rock-ramp",
     "INFO_MACRORUGO_TITRE": "Rock-ramp fishpasses",
     "INFO_MENU_DIAGRAM_TITLE": "Modules diagram",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 5b9cc4524..b1e5adfb3 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -358,6 +358,8 @@
     "INFO_LINKED_VALUE_RESULT": "%s (%s)",
     "INFO_LINKED_VALUE_SECTION_RESULT": "%s (%s, section)",
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
+    "INFO_LOG_HIDE_DETAILS": "masquer les details",
+    "INFO_LOG_SHOW_DETAILS": "montrer les details",
     "INFO_MACRORUGO_TITRE_COURT": "Macro-rugo.",
     "INFO_MACRORUGO_TITRE": "Passe à macro-rugosités",
     "INFO_MENU_DIAGRAM_TITLE": "Diagramme des modules",
-- 
GitLab


From 1ee3491c8f4f12c62c72c521f6c9947b3efac314 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 22 Jul 2020 15:02:21 +0200
Subject: [PATCH 055/101] Fix rebase error

---
 src/app/formulaire/elements/select-field.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index d80ba9707..9be231395 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -116,7 +116,7 @@ export class SelectField extends Field {
             // some Select fields already have a translated label at this time; translate others
             if (e.label === undefined) {
                 const aId = e.id.split("_");
-                e.label = ServiceFactory.instance.i18nService.localizeText(`${aId[1].toUpperCase()}_${aId[2]}`, loc);
+                e.label = ServiceFactory.i18nService.localizeText(`${aId[1].toUpperCase()}_${aId[2]}`, loc);
             }
         }
     }
-- 
GitLab


From a36f63470cff432b05cb1f33af6d09da8f92d84d Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 29 Jul 2020 12:09:39 +0200
Subject: [PATCH 056/101] Fix #426 - HTML entities in translated messages

---
 src/app/services/internationalisation.service.ts | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 971508c2b..d8ddcb808 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -119,16 +119,16 @@ export class I18nService extends Observable implements Observer {
             return `*** messages not loaded: ${this._currentLanguage} ***`;
         }
         if (messages[textKey] !== undefined) {
-            return messages[textKey];
+            return decodeHtml(messages[textKey]);
         } else {
             // try general message
-            if(msg !== undefined && this._Messages["INFO_LIB_"+textKey.toUpperCase()] !== undefined) {
-                return this._Messages["INFO_LIB_"+textKey.toUpperCase()];
+            if (msg !== undefined && this._Messages["INFO_LIB_" + textKey.toUpperCase()] !== undefined) {
+                return decodeHtml(this._Messages["INFO_LIB_" + textKey.toUpperCase()]);
             }
             if (!isDevMode()) {
                 // try fallback language before giving up
                 if (this._fallbackMessages[textKey] !== undefined) {
-                    return this._fallbackMessages[textKey];
+                    return decodeHtml(this._fallbackMessages[textKey]);
                 }
             }
             return `*** message not found: ${textKey} ***`;
@@ -193,7 +193,8 @@ export class I18nService extends Observable implements Observer {
 
         // replace "FORM_ID_X" by form name in current session, if any
         m = m.replace(/FORM_ID_(\w{6})/g, (match, p1) => {
-            const form = ServiceFactory.formulaireService.getFormulaireFromNubId(p1); // cannot inject FormulaireService => cyclic dependency :/
+            // cannot inject FormulaireService => cyclic dependency :/
+            const form = ServiceFactory.formulaireService.getFormulaireFromNubId(p1);
             let formName = "**UNKNOWN_FORM**";
             if (form !== undefined) {
                 formName = form.calculatorName;
-- 
GitLab


From 2549a1ef64fad92b85cde7c9b983cd0cca0367d5 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 29 Jul 2020 15:27:35 +0200
Subject: [PATCH 057/101] Verificateur: add theme image

---
 src/app/config.json                       |   2 +-
 src/assets/images/themes/verification.jpg | Bin 34221 -> 76235 bytes
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/config.json b/src/app/config.json
index 13f3cc083..35925d769 100644
--- a/src/app/config.json
+++ b/src/app/config.json
@@ -37,7 +37,7 @@
             "name": "VERIFICATION",
             "image": {
                 "path": "verification.jpg",
-                "credits": "????"
+                "credits": "S. Richard / OFB"
             },
             "calculators": [ 31, 30 ]
         },
diff --git a/src/assets/images/themes/verification.jpg b/src/assets/images/themes/verification.jpg
index 3cfe11de2b2ab17adb9a1f2eda7e2d92e79cf013..e38b8356a431c7260d930a82cab1211db5bb871a 100644
GIT binary patch
literal 76235
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

literal 34221
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
HDXIV2$;*b1

-- 
GitLab


From 559e4369e251e4511c1f3a1aac77ee3694e723b8 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 29 Jul 2020 15:28:56 +0200
Subject: [PATCH 058/101] Fix jalhyd#248 - load predefined Espece criteria

---
 src/app/app.module.ts                         |  3 +
 ...alog-load-predefined-espece.component.html | 25 ++++++++
 ...alog-load-predefined-espece.component.scss |  7 +++
 ...dialog-load-predefined-espece.component.ts | 61 +++++++++++++++++++
 .../calculator.component.html                 |  5 ++
 .../calculator.component.scss                 |  4 ++
 .../calculator.component.ts                   | 37 ++++++++++-
 .../formulaire/definition/form-fixedvar.ts    |  2 +-
 src/locale/messages.en.json                   |  1 +
 src/locale/messages.fr.json                   |  1 +
 10 files changed, 144 insertions(+), 2 deletions(-)
 create mode 100644 src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html
 create mode 100644 src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.scss
 create mode 100644 src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.ts

diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 51dceda8d..b25a7887f 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -102,6 +102,7 @@ import { DialogEditParamComputedComponent } from "./components/dialog-edit-param
 import { DialogEditParamValuesComponent } from "./components/dialog-edit-param-values/dialog-edit-param-values.component";
 import { DialogGeneratePABComponent } from "./components/dialog-generate-pab/dialog-generate-pab.component";
 import { DialogGeneratePARSimulationComponent } from "./components/dialog-generate-par-simulation/dialog-generate-par-simulation.component";
+import { DialogLoadPredefinedEspeceComponent } from "./components/dialog-load-predefined-espece/dialog-load-predefined-espece.component";
 import { DialogLoadSessionComponent } from "./components/dialog-load-session/dialog-load-session.component";
 import { DialogLogEntriesDetailsComponent } from "./components/dialog-log-entries-details/dialog-log-entries-details.component";
 import { DialogSaveSessionComponent } from "./components/dialog-save-session/dialog-save-session.component";
@@ -192,6 +193,7 @@ const appRoutes: Routes = [
     DialogEditParamValuesComponent,
     DialogGeneratePABComponent,
     DialogGeneratePARSimulationComponent,
+    DialogLoadPredefinedEspeceComponent,
     DialogLoadSessionComponent,
     DialogLogEntriesDetailsComponent,
     DialogSaveSessionComponent,
@@ -245,6 +247,7 @@ const appRoutes: Routes = [
     DialogEditParamValuesComponent,
     DialogGeneratePABComponent,
     DialogGeneratePARSimulationComponent,
+    DialogLoadPredefinedEspeceComponent,
     DialogSaveSessionComponent,
     DialogLoadSessionComponent,
     DialogLogEntriesDetailsComponent
diff --git a/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html
new file mode 100644
index 000000000..13e394591
--- /dev/null
+++ b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html
@@ -0,0 +1,25 @@
+<h1 mat-dialog-title [innerHTML]="uitextLoadPredefinedEspece"></h1>
+
+<form id="form-load-predefined-espece">
+
+  <div mat-dialog-content>
+    <mat-form-field>
+        <mat-select id="select-combination" [placeholder]="label" [(value)]="selectedValue">
+            <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
+                {{ entryLabel(e) }}
+            </mat-option>
+        </mat-select>
+    </mat-form-field>
+  </div>
+
+  <div mat-dialog-actions [attr.align]="'end'">
+    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+      {{ uitextCancel }}
+    </button>
+    <button mat-raised-button type="submit" color="warn" (click)="loadPredefinedEspece()" id="do-load"
+      [disabled]="">
+      {{ uitextLoad }}
+    </button>
+  </div>
+
+</form>
diff --git a/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.scss b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.scss
new file mode 100644
index 000000000..afeb091e7
--- /dev/null
+++ b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.scss
@@ -0,0 +1,7 @@
+#form-load-predefined-espece {
+    max-width: 500px;
+}
+
+mat-form-field {
+    width: 100%;
+}
diff --git a/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.ts b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.ts
new file mode 100644
index 000000000..afebdcecb
--- /dev/null
+++ b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.ts
@@ -0,0 +1,61 @@
+import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
+import { Inject, Component } from "@angular/core";
+
+import { I18nService } from "../../services/internationalisation.service";
+
+import { FishSpecies } from "jalhyd";
+
+@Component({
+    selector: "dialog-load-predefined-espece",
+    templateUrl: "dialog-load-predefined-espece.component.html",
+    styleUrls: ["dialog-load-predefined-espece.component.scss"]
+})
+export class DialogLoadPredefinedEspeceComponent {
+
+    public selectedValue: number;
+
+    constructor(
+        public dialogRef: MatDialogRef<DialogLoadPredefinedEspeceComponent>,
+        private intlService: I18nService,
+        @Inject(MAT_DIALOG_DATA) public data: any
+    ) {
+        this.selectedValue = 1;
+    }
+
+    public loadPredefinedEspece() {
+        this.dialogRef.close({
+            load: true,
+            selected: this.selectedValue
+        });
+    }
+
+    public get uitextLoadPredefinedEspece() {
+        return this.intlService.localizeText("INFO_CALCULATOR_LOAD_PREDEFINED_ESPECE");
+    }
+
+    public get uitextLoad() {
+        return this.intlService.localizeText("INFO_OPTION_LOAD");
+    }
+
+    public get uitextCancel() {
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
+    }
+
+    public get entries(): number[] {
+        const ret: number[] = [];
+        for (let j = 1; j < Object.keys(FishSpecies).length / 2; j++) { // exclude "0" (SPECIES_CUSTOM)
+            // const spgId = FishSpecies[j].substring(FishSpecies[j].lastIndexOf("_") + 1);
+            ret.push(j);
+        }
+        return ret;
+    }
+
+    protected entryLabel(index: number): string {
+        return this.intlService.localizeText("INFO_ENUM_" + FishSpecies[index]);
+    }
+
+    public get label() {
+        return this.intlService.localizeText("INFO_ESPECE_TITRE_COURT");
+    }
+
+}
diff --git a/src/app/components/generic-calculator/calculator.component.html b/src/app/components/generic-calculator/calculator.component.html
index 7b46d2c9e..ed13135ee 100644
--- a/src/app/components/generic-calculator/calculator.component.html
+++ b/src/app/components/generic-calculator/calculator.component.html
@@ -47,6 +47,11 @@
             <!-- nom du module de calcul -->
             <calc-name id="calculator-name" [title]="uitextCalculatorName"></calc-name>
 
+            <button mat-raised-button type="button" color="accent" id="load-predefined-espece" *ngIf="isEspece"
+              (click)="loadPredefinedEspece()" [title]="uitextLoadPredefinedEspece">
+                {{ uitextLoadPredefinedEspece }}
+            </button>
+
             <div id="calc-cards-container" class="container"
               [fxLayout]="isWide ? 'column' : 'row wrap'"
               [fxLayoutAlign]="isWide ? 'space-around stretch' : 'space-around start'">
diff --git a/src/app/components/generic-calculator/calculator.component.scss b/src/app/components/generic-calculator/calculator.component.scss
index 8507212be..1aa9e9e26 100644
--- a/src/app/components/generic-calculator/calculator.component.scss
+++ b/src/app/components/generic-calculator/calculator.component.scss
@@ -22,6 +22,10 @@
     margin-top: -54px;
 }
 
+#load-predefined-espece {
+    margin-bottom: 1em;
+}
+
 mat-card {
     margin-bottom: 2em;
 
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index d9d8f93ce..0e35ac269 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -18,7 +18,8 @@ import {
     RegimeUniforme,
     Par,
     ParSimulationParams,
-    ParSimulation
+    ParSimulation,
+    Espece
 } from "jalhyd";
 
 import { generateValuesCombination } from "../../util";
@@ -41,9 +42,11 @@ import { MatDialog } from "@angular/material/dialog";
 import { DialogConfirmCloseCalcComponent } from "../dialog-confirm-close-calc/dialog-confirm-close-calc.component";
 import { DialogGeneratePABComponent } from "../dialog-generate-pab/dialog-generate-pab.component";
 import { DialogGeneratePARSimulationComponent } from "../dialog-generate-par-simulation/dialog-generate-par-simulation.component";
+import { DialogLoadPredefinedEspeceComponent } from "../dialog-load-predefined-espece/dialog-load-predefined-espece.component";
 import { PabTable } from "../../formulaire/elements/pab-table";
 import { MultiDimensionResults } from "../../results/multidimension-results";
 import { NgParameter } from "../../formulaire/elements/ngparam";
+import { FormulaireFixedVar } from "../../formulaire/definition/form-fixedvar";
 
 import { HotkeysService, Hotkey } from "angular2-hotkeys";
 
@@ -128,6 +131,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         private confirmCloseCalcDialog: MatDialog,
         private generatePABDialog: MatDialog,
         private generatePARSimulationDialog: MatDialog,
+        private loadPredefinedEspeceDialog: MatDialog,
         private _elementRef: ElementRef,
         private hotkeysService: HotkeysService,
         private appSetupService: ApplicationSetupService,
@@ -231,6 +235,10 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         return this.intlService.localizeText("INFO_CALCULATOR_RESULTS_GENERATE_PAR_SIMULATION");
     }
 
+    public get uitextLoadPredefinedEspece(): string {
+        return this.intlService.localizeText("INFO_CALCULATOR_LOAD_PREDEFINED_ESPECE");
+    }
+
     public get uitextOpenHelp() {
         return this.intlService.localizeText("INFO_CALCULATOR_OPEN_HELP");
     }
@@ -618,6 +626,11 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         return this.is(CalculatorType.Par);
     }
 
+    // true if current Nub is Espece
+    public get isEspece() {
+        return this.is(CalculatorType.Espece);
+    }
+
     /**
      * Returns true if no parameter is varying; ignores parameters having
      * one of the given {except} symbols, if any
@@ -975,6 +988,28 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         );
     }
 
+    /**
+     * Opens a modal that allows to choose a predefined Espece
+     * and load its values in current Espece module
+     */
+    public loadPredefinedEspece() {
+        const dialogRef = this.loadPredefinedEspeceDialog.open(
+            DialogLoadPredefinedEspeceComponent,
+            {
+                data: { },
+                disableClose: false
+            }
+        );
+        dialogRef.afterClosed().subscribe(result => {
+            if (result && result.load) {
+                const form = this._formulaire as FormulaireFixedVar;
+                const nub = (form.currentNub as Espece);
+                nub.loadPredefinedSpecies(result.selected);
+                form.refreshFieldsets();
+            }
+        });
+    }
+
     public saveCalculator() {
         this.formulaireService.saveForm(this._formulaire);
     }
diff --git a/src/app/formulaire/definition/form-fixedvar.ts b/src/app/formulaire/definition/form-fixedvar.ts
index ca74b364d..87b008f0c 100644
--- a/src/app/formulaire/definition/form-fixedvar.ts
+++ b/src/app/formulaire/definition/form-fixedvar.ts
@@ -144,7 +144,7 @@ export class FormulaireFixedVar extends FormulaireDefinition {
     /**
      * Forces all fieldsets to update all their fields
      */
-    protected refreshFieldsets() {
+    public refreshFieldsets() {
         for (const fs of this.allFieldsets) {
             fs.updateFields();
         }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index faaad8191..92186a745 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -70,6 +70,7 @@
     "INFO_CALCULATOR_CALCULER": "Compute",
     "INFO_CALCULATOR_CLONE": "Duplicate",
     "INFO_CALCULATOR_CLOSE": "Close",
+    "INFO_CALCULATOR_LOAD_PREDEFINED_ESPECE": "Load predefined species",
     "INFO_CALCULATOR_OPEN_HELP": "Help",
     "INFO_CALCULATOR_PARAMFIXES": "Fixed parameters",
     "INFO_CALCULATOR_RESULTS_GENERATE_PAB": "Generate a fish ladder",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index b1e5adfb3..5788a49dc 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -70,6 +70,7 @@
     "INFO_CALCULATOR_CALCULER": "Calculer",
     "INFO_CALCULATOR_CLONE": "Dupliquer",
     "INFO_CALCULATOR_CLOSE": "Fermer",
+    "INFO_CALCULATOR_LOAD_PREDEFINED_ESPECE": "Charger une espèce prédéfinie",
     "INFO_CALCULATOR_OPEN_HELP": "Aide",
     "INFO_CALCULATOR_PARAMFIXES": "Paramètres fixés",
     "INFO_CALCULATOR_RESULTS_GENERATE_PAB": "Générer une passe à bassins",
-- 
GitLab


From b18d047346be17d0970d8e532fec476f4689bfcd Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 30 Jul 2020 09:23:31 +0200
Subject: [PATCH 059/101] Translation for jalhyd#254

---
 src/app/calculators/espece/config.json |  2 +-
 src/app/calculators/espece/en.json     | 16 +---------------
 src/app/calculators/espece/fr.json     | 16 +---------------
 src/locale/messages.en.json            | 14 ++++++++++++++
 src/locale/messages.fr.json            | 14 ++++++++++++++
 5 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index e3718104c..6b0f67aac 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -62,7 +62,7 @@
                 "allowEmpty": true
             },
             {
-                "id": "VMax",
+                "id": "VeMax",
                 "allowEmpty": true
             }
         ]
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index cedf49fdf..4dfbd866c 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -5,20 +5,6 @@
     "fs_param_pam": "Rock-ramp fishpasses",
     "fs_param_par": "Humpback fishways",
 
-    "DHMaxS": "Maximal fall",
-    "DHMaxP": "Maximal fall",
-    "BMin": "Minimal slot or weir width",
-    "PMinS": "Minimal basin width",
-    "PMinP": "Minimal basin width",
-    "LMinS": "Minimal basin length",
-    "LMinP": "Minimal basin length",
-    "HMin": "Minimal head on weir",
-    "YMin": "Minimal water level",
-    "VMax": "Maximal flow velocity",
-    "YMinSB": "Minimal water level on superactive baffles",
-    "YMinPB": "Minimal water level on plane baffles",
-    "PVMax": "Maximal dissipated power",
-
     "UNIT_DHMaxS": "m",
     "UNIT_DHMaxP": "m",
     "UNIT_BMin": "m",
@@ -28,7 +14,7 @@
     "UNIT_LMinP": "m",
     "UNIT_HMin": "m",
     "UNIT_YMin": "m",
-    "UNIT_VMax": "m/s",
+    "UNIT_VeMax": "m/s",
     "UNIT_YMinSB": "m",
     "UNIT_YMinPB": "m",
     "UNIT_PVMax": "W/m³"
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index 7654d4ce9..55a20157d 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -5,20 +5,6 @@
     "fs_param_pam": "Passes à macrorugosités",
     "fs_param_par": "Passes à ralentisseurs",
 
-    "DHMaxS": "Chute maximale",
-    "DHMaxP": "Chute maximale",
-    "BMin": "Largeur minimale de fente ou échancrure latérale",
-    "PMinS": "Profondeur minimale de bassin",
-    "PMinP": "Profondeur minimale de bassin",
-    "LMinS": "Longueur minimale de bassin",
-    "LMinP": "Longueur minimale de bassin",
-    "HMin": "Charge minimale sur l'échancrure",
-    "YMin": "Tirant d'eau minimal",
-    "VMax": "Vitesse d'écoulement maximale",
-    "YMinSB": "Tirant d'eau minimal sur les ralentisseurs suractifs de fond",
-    "YMinPB": "Tirant d'eau minimal sur les ralentisseurs plans",
-    "PVMax": "Puissance volumique dissipée maximale",
-
     "UNIT_DHMaxS": "m",
     "UNIT_DHMaxP": "m",
     "UNIT_BMin": "m",
@@ -28,7 +14,7 @@
     "UNIT_LMinP": "m",
     "UNIT_HMin": "m",
     "UNIT_YMin": "m",
-    "UNIT_VMax": "m/s",
+    "UNIT_VeMax": "m/s",
     "UNIT_YMinSB": "m",
     "UNIT_YMinPB": "m",
     "UNIT_PVMax": "W/m³"
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 92186a745..c5095aacb 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -351,6 +351,19 @@
     "INFO_LIB_ZRAM": "Upstream apron elevation",
     "INFO_LIB_ZRMB": "Downstream basin bottom elevation",
     "INFO_LIB_ZT": "Triangle top elevation",
+    "INFO_LIB_DHMAXS": "Maximal fall",
+    "INFO_LIB_DHMAXP": "Maximal fall",
+    "INFO_LIB_BMIN": "Minimal slot or weir width",
+    "INFO_LIB_PMINS": "Minimal basin width",
+    "INFO_LIB_PMINP": "Minimal basin width",
+    "INFO_LIB_LMINS": "Minimal basin length",
+    "INFO_LIB_LMINP": "Minimal basin length",
+    "INFO_LIB_HMIN": "Minimal head on weir",
+    "INFO_LIB_YMIN": "Minimal water level",
+    "INFO_LIB_VEMAX": "Maximal flow velocity",
+    "INFO_LIB_YMINSB": "Minimal water level on superactive baffles",
+    "INFO_LIB_YMINPB": "Minimal water level on plane baffles",
+    "INFO_LIB_PVMAX": "Maximal dissipated power",
     "INFO_LIB_PAB_CHART_SEUILS": "Weirs (%s)",
     "INFO_LINKED_VALUE_CHILD": "%s (%s, %s %s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT_OF": "%s (%s)",
@@ -610,6 +623,7 @@
     "INFO_PARENT_PREFIX": "%name% #%position%: ",
     "INFO_PARENT_PREFIX_DOWNWALL": "downwall: ",
     "ERROR_VERIF_ERRORS_IN_PASS": "Pass to verify contains errors",
+    "ERROR_VERIF_MISSING_CRITERION": "Criterion %var_criterion% must be defined",
     "ERROR_VERIF_MR_VMAX": "Maximum speed %V% too high (maximum: %maxV%)",
     "ERROR_VERIF_MR_PVMAX": "Dissipated power %PV% too high (maximum: %maxPV%)",
     "ERROR_VERIF_MR_YMIN": "Water level %Y% too low (minimum: %minY%)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 5788a49dc..6714a5327 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -352,6 +352,19 @@
     "INFO_LIB_ZRAM": "Cote du radier amont",
     "INFO_LIB_ZRMB": "Cote de radier mi-bassin",
     "INFO_LIB_ZT": "Cote haute du triangle",
+    "INFO_LIB_DHMAXS": "Chute maximale",
+    "INFO_LIB_DHMAXP": "Chute maximale",
+    "INFO_LIB_BMIN": "Largeur minimale de fente ou échancrure latérale",
+    "INFO_LIB_PMINS": "Profondeur minimale de bassin",
+    "INFO_LIB_PMINP": "Profondeur minimale de bassin",
+    "INFO_LIB_LMINS": "Longueur minimale de bassin",
+    "INFO_LIB_LMINP": "Longueur minimale de bassin",
+    "INFO_LIB_HMIN": "Charge minimale sur l'échancrure",
+    "INFO_LIB_YMIN": "Tirant d'eau minimal",
+    "INFO_LIB_VEMAX": "Vitesse d'écoulement maximale",
+    "INFO_LIB_YMINSB": "Tirant d'eau minimal sur les ralentisseurs suractifs de fond",
+    "INFO_LIB_YMINPB": "Tirant d'eau minimal sur les ralentisseurs plans",
+    "INFO_LIB_PVMAX": "Puissance volumique dissipée maximale",
     "INFO_LIB_PAB_CHART_SEUILS": "Seuils (%s)",
     "INFO_LINKED_VALUE_CHILD": "%s (%s, %s %s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT_OF": "%s (%s)",
@@ -613,6 +626,7 @@
     "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : ",
     "ERROR_VERIF_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs",
     "ERROR_VERIF_VARYING_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs à l'itération %i%",
+    "ERROR_VERIF_MISSING_CRITERION": "Le critère %var_criterion% doit être défini",
     "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
     "ERROR_VERIF_MR_PVMAX": "Puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%)",
     "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
-- 
GitLab


From d67e7759c597047514538e90005d12a80752cd61 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 30 Jul 2020 09:47:20 +0200
Subject: [PATCH 060/101] Update Espece config for jalhyd#235

---
 src/app/calculators/espece/config.json | 2 +-
 src/app/calculators/espece/en.json     | 2 +-
 src/app/calculators/espece/fr.json     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index 6b0f67aac..b5af5ca11 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -1,6 +1,6 @@
 [
     {
-        "id": "fs_param_common",
+        "id": "fs_param_pab",
         "type": "fieldset",
         "fields": [
             {
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index 4dfbd866c..cd76f2b62 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -1,5 +1,5 @@
 {
-    "fs_param_common": "Common parameters",
+    "fs_param_pab": "Fish ladders",
     "fs_param_pab_s": "Fish ladders, surface jets or orifices",
     "fs_param_pab_p": "Fish ladders, diving jets",
     "fs_param_pam": "Rock-ramp fishpasses",
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index 55a20157d..b451dd4fd 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -1,5 +1,5 @@
 {
-    "fs_param_common": "Paramètres communs",
+    "fs_param_pab": "Passes à bassins",
     "fs_param_pab_s": "Passes à bassins, jets de surface et orifices",
     "fs_param_pab_p": "Passes à bassins, jets plongeants",
     "fs_param_pam": "Passes à macrorugosités",
-- 
GitLab


From f9d4de5c22cd4af38d5d02ef2ecb822a9dcfa184 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 30 Jul 2020 10:56:08 +0200
Subject: [PATCH 061/101] Update config and translation for jalhyd#239

---
 src/app/calculators/espece/config.json | 6 +++++-
 src/locale/messages.en.json            | 3 +++
 src/locale/messages.fr.json            | 3 +++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index b5af5ca11..8764eee37 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -4,7 +4,11 @@
         "type": "fieldset",
         "fields": [
             {
-                "id": "PVMax",
+                "id": "PVMaxPrec",
+                "allowEmpty": true
+            },
+            {
+                "id": "PVMaxLim",
                 "allowEmpty": true
             }
         ]
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index c5095aacb..f50f324af 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -364,6 +364,8 @@
     "INFO_LIB_YMINSB": "Minimal water level on superactive baffles",
     "INFO_LIB_YMINPB": "Minimal water level on plane baffles",
     "INFO_LIB_PVMAX": "Maximal dissipated power",
+    "INFO_LIB_PVMAXPREC": "Recommanded maximal dissipated power",
+    "INFO_LIB_PVMAXLIM": "Limit maximal dissipated power",
     "INFO_LIB_PAB_CHART_SEUILS": "Weirs (%s)",
     "INFO_LINKED_VALUE_CHILD": "%s (%s, %s %s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT_OF": "%s (%s)",
@@ -666,6 +668,7 @@
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities",
+    "WARNING_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% very high (recommanded: %maxPV%)",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings",
     "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 6714a5327..ca2bce694 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -365,6 +365,8 @@
     "INFO_LIB_YMINSB": "Tirant d'eau minimal sur les ralentisseurs suractifs de fond",
     "INFO_LIB_YMINPB": "Tirant d'eau minimal sur les ralentisseurs plans",
     "INFO_LIB_PVMAX": "Puissance volumique dissipée maximale",
+    "INFO_LIB_PVMAXPREC": "Puissance volumique dissipée maximale recommandée",
+    "INFO_LIB_PVMAXLIM": "Puissance volumique dissipée maximale limite",
     "INFO_LIB_PAB_CHART_SEUILS": "Seuils (%s)",
     "INFO_LINKED_VALUE_CHILD": "%s (%s, %s %s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT_OF": "%s (%s)",
@@ -670,6 +672,7 @@
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
     "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe",
     "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible",
+    "WARNING_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% très élevée (recommandée&nbsp;: %maxPV%)",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements",
     "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK",
     "ERROR_VERIF_SPECIES_NUB_KO": "FORM_ID_%uid%&nbsp;: franchissement impossible",
-- 
GitLab


From 235432d2edb517df1c344d4ffa0cde461fad6001 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 30 Jul 2020 15:59:27 +0200
Subject: [PATCH 062/101] GUI for jalhyd#237

---
 src/app/calculators/espece/config.json        |  7 +++
 src/app/calculators/espece/en.json            |  5 ++
 src/app/calculators/espece/fr.json            |  5 ++
 .../calculator.component.ts                   |  1 +
 .../generic-input/generic-input.component.ts  | 25 ++++------
 src/app/formulaire/definition/form-espece.ts  | 46 +++++++++++++++++++
 .../definition/form-macrorugo-compound.ts     |  1 -
 .../definition/form-parallel-structures.ts    |  1 -
 .../definition/form-verificateur.ts           |  2 +-
 src/app/formulaire/elements/ngparam.ts        |  4 ++
 src/app/services/formulaire.service.ts        |  5 ++
 src/locale/messages.en.json                   |  4 ++
 src/locale/messages.fr.json                   |  4 ++
 13 files changed, 91 insertions(+), 19 deletions(-)
 create mode 100644 src/app/formulaire/definition/form-espece.ts

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index 8764eee37..33f7af908 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -10,6 +10,12 @@
             {
                 "id": "PVMaxLim",
                 "allowEmpty": true
+            },
+            {
+                "id": "select_divingjetsupported",
+                "type": "select",
+                "property": "divingJetSupported",
+                "default": "NOT_SUPPORTED"
             }
         ]
     },
@@ -88,6 +94,7 @@
     {
         "type": "options",
         "help": "verification/espece.html",
+        "selectIds": [ "select_divingjetsupported" ],
         "calculateDisabled": true
     }
 ]
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index cd76f2b62..0934829af 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -5,6 +5,11 @@
     "fs_param_pam": "Rock-ramp fishpasses",
     "fs_param_par": "Humpback fishways",
 
+    "select_divingjetsupported": "Diving jets support",
+
+    "DIVINGJETSUPPORTED_0": "Not supported",
+    "DIVINGJETSUPPORTED_1": "Supported",
+
     "UNIT_DHMaxS": "m",
     "UNIT_DHMaxP": "m",
     "UNIT_BMin": "m",
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index b451dd4fd..9f8fc5034 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -5,6 +5,11 @@
     "fs_param_pam": "Passes à macrorugosités",
     "fs_param_par": "Passes à ralentisseurs",
 
+    "select_divingjetsupported": "Support des jets plongeants",
+
+    "DIVINGJETSUPPORTED_0": "Non supportés",
+    "DIVINGJETSUPPORTED_1": "Supportés",
+
     "UNIT_DHMaxS": "m",
     "UNIT_DHMaxP": "m",
     "UNIT_BMin": "m",
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 0e35ac269..8a328a71e 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -1005,6 +1005,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
                 const form = this._formulaire as FormulaireFixedVar;
                 const nub = (form.currentNub as Espece);
                 nub.loadPredefinedSpecies(result.selected);
+                console.log("================ espèce chargée, refresh tout");
                 form.refreshFieldsets();
             }
         });
diff --git a/src/app/components/generic-input/generic-input.component.ts b/src/app/components/generic-input/generic-input.component.ts
index 1af5e5859..3d9472e3b 100644
--- a/src/app/components/generic-input/generic-input.component.ts
+++ b/src/app/components/generic-input/generic-input.component.ts
@@ -18,25 +18,14 @@ import { ApplicationSetupService } from "../../services/app-setup.service";
  */
 @Directive()
 export abstract class GenericInputComponentDirective implements OnChanges {
-    /**
-     * entité mémoire gérée
-     */
-    protected _model: NgParameter | FormulaireDefinition; // CalcName utilise un FormDefinition ici !?
 
-    /**
-     * flag de désactivation de l'input
-     */
-    @Input()
-    private _inputDisabled = false;
+    /** entité mémoire gérée */
+    protected _model: NgParameter | FormulaireDefinition; // CalcName utilise un FormDefinition ici !?
 
-    /**
-     * flag d'affichage du message d'erreur
-     */
+    /** flag d'affichage du message d'erreur */
     public showError = true;
 
-    /**
-     * id de l'input, utilisé notamment pour les tests
-     */
+    /** id de l'input, utilisé notamment pour les tests */
     public get inputId() {
         let id = "error-in-inputId";
         if (this._model) {
@@ -110,7 +99,11 @@ export abstract class GenericInputComponentDirective implements OnChanges {
     ) { }
 
     public get isDisabled(): boolean {
-        return this._inputDisabled;
+        if (this._model instanceof NgParameter) {
+            return this._model.disabled;
+        } else {
+            return false;
+        }
     }
 
     /**
diff --git a/src/app/formulaire/definition/form-espece.ts b/src/app/formulaire/definition/form-espece.ts
new file mode 100644
index 000000000..5c1893776
--- /dev/null
+++ b/src/app/formulaire/definition/form-espece.ts
@@ -0,0 +1,46 @@
+import { IObservable, DivingJetSupport } from "jalhyd";
+
+import { FormulaireFixedVar } from "./form-fixedvar";
+import { NgParameter } from "../elements/ngparam";
+
+/**
+ * Formulaire pour les espèces (critères de franchissement)
+ */
+export class FormulaireEspece extends FormulaireFixedVar {
+
+    protected completeParse(firstNotif: boolean = true) {
+        super.completeParse(firstNotif);
+        this.updateDivingJetCriteriaInputs(this.currentNub.properties.getPropValue("divingJetSupported"));
+    }
+
+    /**
+     * Enable or disable inputs related to diving jet PAB criteria
+     */
+    public updateDivingJetCriteriaInputs(supported: DivingJetSupport) {
+        const fsPABDivingJet = this.getFormulaireNodeById("fs_param_pab_p");
+        if (fsPABDivingJet !== undefined) {
+            console.log("> got the fieldset");
+            for (const e of fsPABDivingJet.allFormElements) {
+                if (e instanceof NgParameter) {
+                    console.log(">> setting parameter disabled " + e.symbol + " to", supported === DivingJetSupport.NOT_SUPPORTED);
+                    e.disabled = (supported === DivingJetSupport.NOT_SUPPORTED);
+                }
+            }
+        }
+    }
+
+    // interface Observer
+
+    public update(sender: IObservable, data: any) {
+        super.update(sender, data);
+        console.log("XXX property changed !!", sender.constructor.name, data);
+        if (data.action === "propertyChange") {
+            switch (data.name) {
+                case "divingJetSupported":
+                    this.updateDivingJetCriteriaInputs(data.value);
+                    this.reset();
+                    break;
+            }
+        }
+    }
+}
diff --git a/src/app/formulaire/definition/form-macrorugo-compound.ts b/src/app/formulaire/definition/form-macrorugo-compound.ts
index 9ab7b18dd..f04e6ccfe 100644
--- a/src/app/formulaire/definition/form-macrorugo-compound.ts
+++ b/src/app/formulaire/definition/form-macrorugo-compound.ts
@@ -57,7 +57,6 @@ export class FormulaireMacrorugoCompound extends FormulaireRepeatableFieldset {
         if (firstNotif) {
             this.updateApronState(this.currentNub.properties.getPropValue("inclinedApron"));
         }
-        this.helpLinks = this._resultsHelpLinks;
     }
 
     protected get fieldsetContainer(): FieldsetContainer {
diff --git a/src/app/formulaire/definition/form-parallel-structures.ts b/src/app/formulaire/definition/form-parallel-structures.ts
index 87b347930..eaffb9f33 100644
--- a/src/app/formulaire/definition/form-parallel-structures.ts
+++ b/src/app/formulaire/definition/form-parallel-structures.ts
@@ -95,7 +95,6 @@ export class FormulaireParallelStructure extends FormulaireRepeatableFieldset {
     protected completeParse(firstNotif: boolean = true) {
         super.completeParse(firstNotif);
         this.fieldsetContainer.addObserver(this);
-        this.helpLinks = this._resultsHelpLinks;
     }
 
     protected get fieldsetContainer(): FieldsetContainer {
diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 217298e80..1f712ada6 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -37,7 +37,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
     }
 
     protected findPassVariatedParameters(): NgParameter[] {
-        let pvp = []
+        let pvp = [];
         const passUid = this.verificateurNub.nubToVerify.uid;
         const passForm = ServiceFactory.formulaireService.getFormulaireFromNubId(passUid);
         pvp = passForm.getVariatedParameters();
diff --git a/src/app/formulaire/elements/ngparam.ts b/src/app/formulaire/elements/ngparam.ts
index 063bd5796..457e68976 100644
--- a/src/app/formulaire/elements/ngparam.ts
+++ b/src/app/formulaire/elements/ngparam.ts
@@ -31,11 +31,15 @@ export class NgParameter extends InputField implements Observer {
     private _allowEmpty = false;
 
     public unit: string;
+
     public radioConfig: ParamRadioConfig;
 
+    public disabled: boolean;
+
     constructor(private _paramDef: ParamDefinition, parent: FormulaireNode) {
         super(parent);
         this.radioConfig = this.radioState;
+        this.disabled = false;
     }
 
     /**
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index dac713d05..71b4dee0c 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -42,6 +42,7 @@ import { FormulaireFixedVar } from "../formulaire/definition/form-fixedvar";
 import { FormulaireSection } from "../formulaire/definition/form-section";
 import { FormulairePAR } from "../formulaire/definition/form-par";
 import { FormulaireVerificateur } from "../formulaire/definition/form-verificateur";
+import { FormulaireEspece } from "../formulaire/definition/form-espece";
 
 @Injectable()
 export class FormulaireService extends Observable {
@@ -318,6 +319,10 @@ export class FormulaireService extends Observable {
                 f = new FormulaireVerificateur();
                 break;
 
+            case CalculatorType.Espece:
+                f = new FormulaireEspece();
+                break;
+
             default:
                 f = new FormulaireFixedVar();
         }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index f50f324af..b91a4dcb7 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -636,6 +636,10 @@
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
     "INFO_VERIF_MRC_CROSSABLE_WIDTH": "Maximum crossable width is %width% m",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
+    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%N%: diving jet not supported",
+    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall: diving jet not supported",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%NC%, structure %NS%: diving jet not supported",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall, structure %NS%: diving jet not supported",
     "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index ca2bce694..5d4a10cff 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -639,6 +639,10 @@
     "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N%&nbsp;: tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "INFO_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable maximale est %width% m",
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
+    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%N%&nbsp;: jet plongeant non supporté",
+    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval&nbsp;: jet plongeant non supporté",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%NC%, ouvrage %NS%&nbsp;: jet plongeant non supporté",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval, ouvrage %NS%&nbsp;: jet plongeant non supporté",
     "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N%&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
-- 
GitLab


From 0f02ce0f4d4e7f0777efb5bcd7cd330f0fe851a5 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 30 Jul 2020 16:23:35 +0200
Subject: [PATCH 063/101] Remove debug message

---
 src/app/formulaire/definition/form-espece.ts | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/app/formulaire/definition/form-espece.ts b/src/app/formulaire/definition/form-espece.ts
index 5c1893776..10ded3b83 100644
--- a/src/app/formulaire/definition/form-espece.ts
+++ b/src/app/formulaire/definition/form-espece.ts
@@ -19,10 +19,8 @@ export class FormulaireEspece extends FormulaireFixedVar {
     public updateDivingJetCriteriaInputs(supported: DivingJetSupport) {
         const fsPABDivingJet = this.getFormulaireNodeById("fs_param_pab_p");
         if (fsPABDivingJet !== undefined) {
-            console.log("> got the fieldset");
             for (const e of fsPABDivingJet.allFormElements) {
                 if (e instanceof NgParameter) {
-                    console.log(">> setting parameter disabled " + e.symbol + " to", supported === DivingJetSupport.NOT_SUPPORTED);
                     e.disabled = (supported === DivingJetSupport.NOT_SUPPORTED);
                 }
             }
@@ -33,7 +31,6 @@ export class FormulaireEspece extends FormulaireFixedVar {
 
     public update(sender: IObservable, data: any) {
         super.update(sender, data);
-        console.log("XXX property changed !!", sender.constructor.name, data);
         if (data.action === "propertyChange") {
             switch (data.name) {
                 case "divingJetSupported":
-- 
GitLab


From ca3ba2a571da73c5208ac485c86d02146a172d1e Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 31 Jul 2020 11:27:46 +0200
Subject: [PATCH 064/101] Translation for jalhyd#249

---
 src/locale/messages.en.json | 2 ++
 src/locale/messages.fr.json | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index b91a4dcb7..a26a0ba49 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -673,6 +673,8 @@
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities",
     "WARNING_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% very high (recommanded: %maxPV%)",
+    "WARNING_VERIF_PAB_ORIFICE": "Wall #%NC%, structure %NS%: uninsured passage over an orifice",
+    "WARNING_VERIF_PAB_ORIFICE_DW": "Downwall, structure %NS%: uninsured passage over an orifice",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings",
     "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 5d4a10cff..b04310d27 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -677,6 +677,8 @@
     "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe",
     "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible",
     "WARNING_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% très élevée (recommandée&nbsp;: %maxPV%)",
+    "WARNING_VERIF_PAB_ORIFICE": "Cloison n°%NC%, ouvrage %NS%&nbsp;: franchissement non assuré sur un orifice",
+    "WARNING_VERIF_PAB_ORIFICE_DW": "Cloison aval, ouvrage %NS%&nbsp;: franchissement non assuré sur un orifice",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements",
     "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK",
     "ERROR_VERIF_SPECIES_NUB_KO": "FORM_ID_%uid%&nbsp;: franchissement impossible",
-- 
GitLab


From 6a9f5a619811b3d09a1c7af8c4a823f937a0e9f0 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 11 Aug 2020 15:31:24 +0200
Subject: [PATCH 065/101] Remove obsolete translations

---
 src/locale/messages.en.json | 2 --
 src/locale/messages.fr.json | 2 --
 2 files changed, 4 deletions(-)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index a26a0ba49..dd8ed0e17 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -653,8 +653,6 @@
     "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum for surface jet: %minLBS%, minimum for diving jet: %minLBS%)",
     "ERROR_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
     "WARNING_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
-    "ERROR_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
-    "ERROR_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "WARNING_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "WARNING_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
     "ERROR_VERIF_PAB_SMIN": "Wall #%NC%, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index b04310d27..5572d2603 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -656,8 +656,6 @@
     "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum pour jet de surface&nbsp;: %minLBS%, minimum pour jet plongeant&nbsp;: %minLBP%)",
     "ERROR_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
     "WARNING_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
-    "ERROR_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
-    "ERROR_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "WARNING_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
     "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-- 
GitLab


From 19f04a549c722552c557d5608b3892c5ede3bcae Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 11 Aug 2020 16:07:34 +0200
Subject: [PATCH 066/101] Espece: move Hmin to common PAB criteria

---
 src/app/calculators/espece/config.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/app/calculators/espece/config.json b/src/app/calculators/espece/config.json
index 33f7af908..83e69323d 100644
--- a/src/app/calculators/espece/config.json
+++ b/src/app/calculators/espece/config.json
@@ -11,6 +11,10 @@
                 "id": "PVMaxLim",
                 "allowEmpty": true
             },
+            {
+                "id": "HMin",
+                "allowEmpty": true
+            },
             {
                 "id": "select_divingjetsupported",
                 "type": "select",
@@ -56,10 +60,6 @@
             {
                 "id": "LMinP",
                 "allowEmpty": true
-            },
-            {
-                "id": "HMin",
-                "allowEmpty": true
             }
         ]
     },
-- 
GitLab


From ec18a0cbb1da7234eb8f81a168853a1aa787fdc6 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 11 Aug 2020 16:50:42 +0200
Subject: [PATCH 067/101] Fix #402 - cannot load Verificateur before Espece

---
 src/app/formulaire/elements/select-field-custom.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/app/formulaire/elements/select-field-custom.ts b/src/app/formulaire/elements/select-field-custom.ts
index 7044c06d2..a9f28c9c6 100644
--- a/src/app/formulaire/elements/select-field-custom.ts
+++ b/src/app/formulaire/elements/select-field-custom.ts
@@ -128,13 +128,14 @@ export class SelectFieldCustom extends SelectField {
                 // add UIDs of all Espece type Nubs in the session
                 const especeNubs = Session.getInstance().getAllNubs().filter((element) => element.calcType === CalculatorType.Espece);
                 for (const en of especeNubs) {
+                    const form = ServiceFactory.formulaireService.getFormulaireFromNubId(en.uid);
                     this.addEntry(
                         new SelectEntry(
                             this._entriesBaseId + en.uid,
                             en.uid,
                             sprintf(
                                 ServiceFactory.i18nService.localizeText("INFO_VERIFICATEUR_CUSTOM_SPECIES"),
-                                ServiceFactory.formulaireService.getFormulaireFromNubId(en.uid).calculatorName
+                                form ? form.calculatorName : "*** form not loaded yet ***"
                             )
                         )
                     );
-- 
GitLab


From 50f4a6be4c2e7c45795bc5bfaf042494651406b6 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 12 Aug 2020 09:29:47 +0200
Subject: [PATCH 068/101] Update translations for Verificateur

---
 src/locale/messages.en.json | 28 ++++++++++++++--------------
 src/locale/messages.fr.json | 28 ++++++++++++++--------------
 2 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index dd8ed0e17..927f0081d 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -638,27 +638,27 @@
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
     "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%N%: diving jet not supported",
     "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall: diving jet not supported",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%NC%, structure %NS%: diving jet not supported",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall, structure %NS%: diving jet not supported",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%NC%, structure #%NS%: diving jet not supported",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall, structure #%NS%: diving jet not supported",
     "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
     "ERROR_VERIF_PAB_DHMAX_JET_DW":"Downwall: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
     "WARNING_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
     "WARNING_VERIF_PAB_DHMAX_JET_DW": "Downwall: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "WARNING_VERIF_PAB_BMIN": "Wall #%NC%, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "WARNING_VERIF_PAB_BMIN_DW": "Downwall, structure %NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "WARNING_VERIF_PAB_BMIN": "Wall #%NC%, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
+    "WARNING_VERIF_PAB_BMIN_DW": "Downwall, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
     "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum for surface jet: %minLBS%, minimum for diving jet: %minLBS%)",
     "ERROR_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
     "WARNING_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
-    "WARNING_VERIF_PAB_HMIN": "Wall #%NC%, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
-    "WARNING_VERIF_PAB_HMIN_DW": "Downwall, structure %NS%: head on weir %h1% too low (minimum: %minH%)",
-    "ERROR_VERIF_PAB_SMIN": "Wall #%NC%, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "ERROR_VERIF_PAB_SMIN_DW": "Downwall, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "WARNING_VERIF_PAB_SMIN": "Wall #%NC%, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "WARNING_VERIF_PAB_SMIN_DW": "Downwall, structure %NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "WARNING_VERIF_PAB_HMIN": "Wall #%NC%, structure #%NS%: head on weir %h1% too low (minimum: %minH%)",
+    "WARNING_VERIF_PAB_HMIN_DW": "Downwall, structure #%NS%: head on weir %h1% too low (minimum: %minH%)",
+    "ERROR_VERIF_PAB_SMIN": "Wall #%NC%, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "ERROR_VERIF_PAB_SMIN_DW": "Downwall, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Wall #%NC%, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN_DW": "Downwall, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
     "ERROR_VERIF_PAB_YMOY": "Wall #%N%: basin depth %PB% too low (minimum for surface jet: %minPBS%, minimum for diving jet: %minPBP%)",
     "ERROR_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
     "WARNING_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
@@ -671,8 +671,8 @@
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities",
     "WARNING_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% very high (recommanded: %maxPV%)",
-    "WARNING_VERIF_PAB_ORIFICE": "Wall #%NC%, structure %NS%: uninsured passage over an orifice",
-    "WARNING_VERIF_PAB_ORIFICE_DW": "Downwall, structure %NS%: uninsured passage over an orifice",
+    "WARNING_VERIF_PAB_ORIFICE": "Wall #%NC%, structure #%NS%: uninsured passage over an orifice",
+    "WARNING_VERIF_PAB_ORIFICE_DW": "Downwall, structure #%NS%: uninsured passage over an orifice",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings",
     "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 5572d2603..d24d53920 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -641,27 +641,27 @@
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
     "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%N%&nbsp;: jet plongeant non supporté",
     "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval&nbsp;: jet plongeant non supporté",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%NC%, ouvrage %NS%&nbsp;: jet plongeant non supporté",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval, ouvrage %NS%&nbsp;: jet plongeant non supporté",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: jet plongeant non supporté",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: jet plongeant non supporté",
     "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N%&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
     "ERROR_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
     "ERROR_VERIF_PAB_DHMAX_JET_DW":"Cloison aval&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
     "WARNING_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
     "WARNING_VERIF_PAB_DHMAX_JET_DW": "Cloison aval&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
-    "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "WARNING_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "WARNING_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "WARNING_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "WARNING_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
     "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum pour jet de surface&nbsp;: %minLBS%, minimum pour jet plongeant&nbsp;: %minLBP%)",
     "ERROR_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
     "WARNING_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
-    "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
-    "WARNING_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
-    "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage %NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "WARNING_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
     "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum pour jet de surface&nbsp;: %minPBS%, minimum pour jet plongeant&nbsp;: %minPBP%)",
     "ERROR_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
     "WARNING_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
@@ -675,8 +675,8 @@
     "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe",
     "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible",
     "WARNING_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% très élevée (recommandée&nbsp;: %maxPV%)",
-    "WARNING_VERIF_PAB_ORIFICE": "Cloison n°%NC%, ouvrage %NS%&nbsp;: franchissement non assuré sur un orifice",
-    "WARNING_VERIF_PAB_ORIFICE_DW": "Cloison aval, ouvrage %NS%&nbsp;: franchissement non assuré sur un orifice",
+    "WARNING_VERIF_PAB_ORIFICE": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: franchissement non assuré sur un orifice",
+    "WARNING_VERIF_PAB_ORIFICE_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: franchissement non assuré sur un orifice",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements",
     "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK",
     "ERROR_VERIF_SPECIES_NUB_KO": "FORM_ID_%uid%&nbsp;: franchissement impossible",
-- 
GitLab


From 1362c5e8acdd407223f3328b81418570809e1480 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 12 Aug 2020 14:58:45 +0200
Subject: [PATCH 069/101] Fix #417 - read parameters and results units from
 model whenever possible

---
 src/app/calculators/cloisons/en.json          |  3 --
 src/app/calculators/cloisons/fr.json          |  3 --
 .../calculators/concentrationblocs/en.json    |  7 +----
 .../calculators/concentrationblocs/fr.json    |  7 +----
 .../calculators/conduitedistributrice/en.json |  1 -
 src/app/calculators/courberemous/en.json      |  1 -
 src/app/calculators/dever/en.json             |  4 +--
 src/app/calculators/dever/fr.json             |  4 +--
 src/app/calculators/espece/en.json            | 16 +---------
 src/app/calculators/espece/fr.json            | 16 +---------
 src/app/calculators/grille/en.json            | 27 +----------------
 src/app/calculators/grille/fr.json            | 27 +----------------
 src/app/calculators/jet/en.json               | 15 +---------
 src/app/calculators/jet/fr.json               | 15 +---------
 src/app/calculators/macrorugo/en.json         |  7 +----
 src/app/calculators/macrorugo/fr.json         |  7 +----
 src/app/calculators/macrorugocompound/en.json |  8 +----
 src/app/calculators/macrorugocompound/fr.json |  8 +----
 src/app/calculators/pab/en.json               |  1 +
 src/app/calculators/pab/fr.json               |  1 +
 src/app/calculators/pabnombre/en.json         |  6 +---
 src/app/calculators/pabnombre/fr.json         |  6 +---
 src/app/calculators/par/en.json               | 28 +-----------------
 src/app/calculators/par/fr.json               | 28 +-----------------
 src/app/calculators/parsimulation/en.json     | 29 +------------------
 src/app/calculators/parsimulation/fr.json     | 29 +------------------
 src/app/calculators/regimeuniforme/en.json    |  4 +--
 src/app/calculators/regimeuniforme/fr.json    |  4 +--
 src/app/calculators/sectionparametree/en.json |  1 +
 src/app/calculators/sectionparametree/fr.json |  1 +
 src/app/services/formulaire.service.ts        | 17 +++++++++--
 31 files changed, 40 insertions(+), 291 deletions(-)

diff --git a/src/app/calculators/cloisons/en.json b/src/app/calculators/cloisons/en.json
index 04c177e8d..22a43f9ac 100644
--- a/src/app/calculators/cloisons/en.json
+++ b/src/app/calculators/cloisons/en.json
@@ -6,11 +6,8 @@
     "PB": "Pool mean depth",
     "h1": "Head",
 
-	"UNIT_PV": "W/m³",
 	"UNIT_Q": "m³/s",
     "UNIT_YMOY": "m",
-    "UNIT_ZRAM": "m",
-    "UNIT_ZRMB": "m",
     "UNIT_ZDV": "m",
     "UNIT_P": "m"
 }
\ No newline at end of file
diff --git a/src/app/calculators/cloisons/fr.json b/src/app/calculators/cloisons/fr.json
index ec7b04772..54fed4e39 100644
--- a/src/app/calculators/cloisons/fr.json
+++ b/src/app/calculators/cloisons/fr.json
@@ -3,11 +3,8 @@
     "P": "Pelle",
     "W": "Ouverture de vanne",
 
-	"UNIT_PV": "W/m³",
 	"UNIT_Q": "m³/s",
     "UNIT_YMOY": "m",
-    "UNIT_ZRAM": "m",
-    "UNIT_ZRMB": "m",
     "UNIT_ZDV": "m",
     "UNIT_P": "m"
 }
\ No newline at end of file
diff --git a/src/app/calculators/concentrationblocs/en.json b/src/app/calculators/concentrationblocs/en.json
index 8c407122e..0fa3e17b5 100644
--- a/src/app/calculators/concentrationblocs/en.json
+++ b/src/app/calculators/concentrationblocs/en.json
@@ -13,10 +13,5 @@
     "AXB": "Pattern width, downwards harmonization",
     "AXH": "Pattern width, upwards harmonization",
     "CB": "Concentration, downwards harmonization",
-    "CH": "Concentration, upwards harmonization",
-
-    "UNIT_AX": "m",
-    "UNIT_R": "m",
-    "UNIT_AXB": "m",
-    "UNIT_AXH": "m"
+    "CH": "Concentration, upwards harmonization"
 }
diff --git a/src/app/calculators/concentrationblocs/fr.json b/src/app/calculators/concentrationblocs/fr.json
index 1d0a9f3a5..c8967f33e 100644
--- a/src/app/calculators/concentrationblocs/fr.json
+++ b/src/app/calculators/concentrationblocs/fr.json
@@ -13,10 +13,5 @@
     "AXB": "Largeur d'un motif, harmonisation vers le bas",
     "AXH": "Largeur d'un motif, harmonisation vers le haut",
     "CB": "Concentration, harmonisation vers le bas",
-    "CH": "Concentration, harmonisation vers le haut",
-
-    "UNIT_AX": "m",
-    "UNIT_R": "m",
-    "UNIT_AXB": "m",
-    "UNIT_AXH": "m"
+    "CH": "Concentration, harmonisation vers le haut"
 }
diff --git a/src/app/calculators/conduitedistributrice/en.json b/src/app/calculators/conduitedistributrice/en.json
index 04771763c..ab51a0562 100644
--- a/src/app/calculators/conduitedistributrice/en.json
+++ b/src/app/calculators/conduitedistributrice/en.json
@@ -1,6 +1,5 @@
 {
     "fs_hydraulique": "Hydraulic features",
-    "Q": "Flow",
     "D": "Pipe diameter",
     "J": "Head drop",
     "Lg": "Pipe length",
diff --git a/src/app/calculators/courberemous/en.json b/src/app/calculators/courberemous/en.json
index f3d964669..f965d3e9f 100644
--- a/src/app/calculators/courberemous/en.json
+++ b/src/app/calculators/courberemous/en.json
@@ -20,7 +20,6 @@
     "fs_condlim": "Boundary conditions",
     "Q": "Upstream flow",
     "S": "Wet surface",
-    "fs_param_calc": "Calculation parameters",
     "Dx": "Discretisation step",
     "select_resolution": "Resolution method",
     "Z1": "Upstream water elevation",
diff --git a/src/app/calculators/dever/en.json b/src/app/calculators/dever/en.json
index 4e82de4dd..2f43fbfd8 100644
--- a/src/app/calculators/dever/en.json
+++ b/src/app/calculators/dever/en.json
@@ -5,7 +5,5 @@
     "L": "Width of the weir",
     "Cd": "Discharge coefficient",
 
-	"UNIT_Q": "m³/s",
-    "UNIT_EC": "m",
-    "UNIT_V": "m/s"
+	"UNIT_Q": "m³/s"
 }
\ No newline at end of file
diff --git a/src/app/calculators/dever/fr.json b/src/app/calculators/dever/fr.json
index 78cdc5ad6..4a5f1a8d7 100644
--- a/src/app/calculators/dever/fr.json
+++ b/src/app/calculators/dever/fr.json
@@ -5,7 +5,5 @@
     "L": "Largeur du déversoir",
     "Cd": "Coefficient de débit",
 
-	"UNIT_Q": "m³/s",
-    "UNIT_EC": "m",
-    "UNIT_V": "m/s"
+	"UNIT_Q": "m³/s"
 }
\ No newline at end of file
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index 0934829af..ec2bfea67 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -8,19 +8,5 @@
     "select_divingjetsupported": "Diving jets support",
 
     "DIVINGJETSUPPORTED_0": "Not supported",
-    "DIVINGJETSUPPORTED_1": "Supported",
-
-    "UNIT_DHMaxS": "m",
-    "UNIT_DHMaxP": "m",
-    "UNIT_BMin": "m",
-    "UNIT_PMinS": "m",
-    "UNIT_PMinP": "m",
-    "UNIT_LMinS": "m",
-    "UNIT_LMinP": "m",
-    "UNIT_HMin": "m",
-    "UNIT_YMin": "m",
-    "UNIT_VeMax": "m/s",
-    "UNIT_YMinSB": "m",
-    "UNIT_YMinPB": "m",
-    "UNIT_PVMax": "W/m³"
+    "DIVINGJETSUPPORTED_1": "Supported"
 }
diff --git a/src/app/calculators/espece/fr.json b/src/app/calculators/espece/fr.json
index 9f8fc5034..98bfd5344 100644
--- a/src/app/calculators/espece/fr.json
+++ b/src/app/calculators/espece/fr.json
@@ -8,19 +8,5 @@
     "select_divingjetsupported": "Support des jets plongeants",
 
     "DIVINGJETSUPPORTED_0": "Non supportés",
-    "DIVINGJETSUPPORTED_1": "Supportés",
-
-    "UNIT_DHMaxS": "m",
-    "UNIT_DHMaxP": "m",
-    "UNIT_BMin": "m",
-    "UNIT_PMinS": "m",
-    "UNIT_PMinP": "m",
-    "UNIT_LMinS": "m",
-    "UNIT_LMinP": "m",
-    "UNIT_HMin": "m",
-    "UNIT_YMin": "m",
-    "UNIT_VeMax": "m/s",
-    "UNIT_YMinSB": "m",
-    "UNIT_YMinPB": "m",
-    "UNIT_PVMax": "W/m³"
+    "DIVINGJETSUPPORTED_1": "Supportés"
 }
diff --git a/src/app/calculators/grille/en.json b/src/app/calculators/grille/en.json
index 5b57793c0..f372fc545 100644
--- a/src/app/calculators/grille/en.json
+++ b/src/app/calculators/grille/en.json
@@ -57,30 +57,5 @@
     "DH45": "Loss of charge - clogging rate 45%",
     "DH50": "Loss of charge - clogging rate 50%",
     "DH55": "Loss of charge - clogging rate 55%",
-    "DH60": "Loss of charge - clogging rate 60%",
-
-    "UNIT_H": "m",
-    "UNIT_HG": "m",
-    "UNIT_S": "m²",
-    "UNIT_SPDG": "m²",
-    "UNIT_VA": "m/s",
-    "UNIT_VAPDG": "m/s",
-    "UNIT_LG": "m",
-    "UNIT_D": "m",
-    "UNIT_DG": "m",
-    "UNIT_SG": "m²",
-    "UNIT_VN": "m/s",
-    "UNIT_DH00": "cm",
-    "UNIT_DH05": "cm",
-    "UNIT_DH10": "cm",
-    "UNIT_DH15": "cm",
-    "UNIT_DH20": "cm",
-    "UNIT_DH25": "cm",
-    "UNIT_DH30": "cm",
-    "UNIT_DH35": "cm",
-    "UNIT_DH40": "cm",
-    "UNIT_DH45": "cm",
-    "UNIT_DH50": "cm",
-    "UNIT_DH55": "cm",
-    "UNIT_DH60": "cm"
+    "DH60": "Loss of charge - clogging rate 60%"
 }
\ No newline at end of file
diff --git a/src/app/calculators/grille/fr.json b/src/app/calculators/grille/fr.json
index f575fc88e..a3510f391 100644
--- a/src/app/calculators/grille/fr.json
+++ b/src/app/calculators/grille/fr.json
@@ -57,30 +57,5 @@
     "DH45": "Perte de charge - taux de colmatage 45%",
     "DH50": "Perte de charge - taux de colmatage 50%",
     "DH55": "Perte de charge - taux de colmatage 55%",
-    "DH60": "Perte de charge - taux de colmatage 60%",
-
-    "UNIT_H": "m",
-    "UNIT_HG": "m",
-    "UNIT_S": "m²",
-    "UNIT_SPDG": "m²",
-    "UNIT_VA": "m/s",
-    "UNIT_VAPDG": "m/s",
-    "UNIT_LG": "m",
-    "UNIT_D": "m",
-    "UNIT_DG": "m",
-    "UNIT_SG": "m²",
-    "UNIT_VN": "m/s",
-    "UNIT_DH00": "cm",
-    "UNIT_DH05": "cm",
-    "UNIT_DH10": "cm",
-    "UNIT_DH15": "cm",
-    "UNIT_DH20": "cm",
-    "UNIT_DH25": "cm",
-    "UNIT_DH30": "cm",
-    "UNIT_DH35": "cm",
-    "UNIT_DH40": "cm",
-    "UNIT_DH45": "cm",
-    "UNIT_DH50": "cm",
-    "UNIT_DH55": "cm",
-    "UNIT_DH60": "cm"
+    "DH60": "Perte de charge - taux de colmatage 60%"
 }
\ No newline at end of file
diff --git a/src/app/calculators/jet/en.json b/src/app/calculators/jet/en.json
index beaa71924..c8342e323 100644
--- a/src/app/calculators/jet/en.json
+++ b/src/app/calculators/jet/en.json
@@ -13,18 +13,5 @@
     "t": "Flight time",
     "Vx": "Horizontal speed at impact",
     "Vz": "Vertical speed at impact",
-    "Vt": "Speed at impact",
-
-    "UNIT_V0": "m/s",
-    "UNIT_S": "m/m",
-    "UNIT_D": "m",
-    "UNIT_ZJ": "m",
-    "UNIT_ZW": "m",
-    "UNIT_ZF": "m",
-    "UNIT_H": "m",
-    "UNIT_Y": "m",
-    "UNIT_T": "s",
-    "UNIT_VX": "m/s",
-    "UNIT_VZ": "m/s",
-    "UNIT_VT": "m/s"
+    "Vt": "Speed at impact"
 }
\ No newline at end of file
diff --git a/src/app/calculators/jet/fr.json b/src/app/calculators/jet/fr.json
index ba180820d..1cbe67acb 100644
--- a/src/app/calculators/jet/fr.json
+++ b/src/app/calculators/jet/fr.json
@@ -13,18 +13,5 @@
     "t": "Temps de vol",
     "Vx": "Vitesse horizontale à l'impact",
     "Vz": "Vitesse verticale à l'impact",
-    "Vt": "Vitesse à l'impact",
-
-    "UNIT_V0": "m/s",
-    "UNIT_S": "m/m",
-    "UNIT_D": "m",
-    "UNIT_ZJ": "m",
-    "UNIT_ZW": "m",
-    "UNIT_ZF": "m",
-    "UNIT_H": "m",
-    "UNIT_Y": "m",
-    "UNIT_T": "s",
-    "UNIT_VX": "m/s",
-    "UNIT_VZ": "m/s",
-    "UNIT_VT": "m/s"
+    "Vt": "Vitesse à l'impact"
 }
\ No newline at end of file
diff --git a/src/app/calculators/macrorugo/en.json b/src/app/calculators/macrorugo/en.json
index 664b14ac8..a7193a6b5 100644
--- a/src/app/calculators/macrorugo/en.json
+++ b/src/app/calculators/macrorugo/en.json
@@ -12,10 +12,5 @@
     "PBD": "Diameter",
     "PBH": "Height",
     "Cd0": "Shape (1 for round, 2 for square)",
-    "Strickler": "Equivalent strickler",
-    "UNIT_PV": "W/m³",
-    "UNIT_VDEB": "m/s",
-    "UNIT_VMAX": "m/s",
-    "UNIT_ZF2": "m",
-    "UNIT_STRICKLER": "SI"
+    "Strickler": "Equivalent strickler"
 }
\ No newline at end of file
diff --git a/src/app/calculators/macrorugo/fr.json b/src/app/calculators/macrorugo/fr.json
index 1a1b35ef8..f1f5698c9 100644
--- a/src/app/calculators/macrorugo/fr.json
+++ b/src/app/calculators/macrorugo/fr.json
@@ -12,10 +12,5 @@
     "PBD": "Diamètre",
     "PBH": "Hauteur",
     "Cd0": "Forme (1 pour rond, 2 pour carré)",
-    "Strickler": "Strickler équivalent",
-    "UNIT_PV": "W/m³",
-    "UNIT_VDEB": "m/s",
-    "UNIT_VMAX": "m/s",
-    "UNIT_ZF2": "m",
-    "UNIT_STRICKLER": "SI"
+    "Strickler": "Strickler équivalent"
 }
\ No newline at end of file
diff --git a/src/app/calculators/macrorugocompound/en.json b/src/app/calculators/macrorugocompound/en.json
index 4c2a22213..9644c91aa 100644
--- a/src/app/calculators/macrorugocompound/en.json
+++ b/src/app/calculators/macrorugocompound/en.json
@@ -22,11 +22,5 @@
     "xCenter": "Mid-apron abscissa",
 
     "PASSTYPE_0": "Multiple aprons",
-    "PASSTYPE_1": "Inclined apron",
-
-    "UNIT_Q": "m³/s",
-    "UNIT_PV": "W/m³",
-    "UNIT_VDEB": "m/s",
-    "UNIT_VMAX": "m/s",
-    "UNIT_ZF2": "m"
+    "PASSTYPE_1": "Inclined apron"
 }
\ No newline at end of file
diff --git a/src/app/calculators/macrorugocompound/fr.json b/src/app/calculators/macrorugocompound/fr.json
index d72e543e6..e33f5fa74 100644
--- a/src/app/calculators/macrorugocompound/fr.json
+++ b/src/app/calculators/macrorugocompound/fr.json
@@ -22,11 +22,5 @@
     "xCenter": "Abscisse du milieu du radier",
 
     "PASSTYPE_0": "Radiers multiples",
-    "PASSTYPE_1": "Radier incliné",
-
-    "UNIT_Q": "m³/s",
-    "UNIT_PV": "W/m³",
-    "UNIT_VDEB": "m/s",
-    "UNIT_VMAX": "m/s",
-    "UNIT_ZF2": "m"
+    "PASSTYPE_1": "Radier incliné"
 }
\ No newline at end of file
diff --git a/src/app/calculators/pab/en.json b/src/app/calculators/pab/en.json
index dbd6d321e..db6cefb8a 100644
--- a/src/app/calculators/pab/en.json
+++ b/src/app/calculators/pab/en.json
@@ -14,6 +14,7 @@
     "bassin_container": "Basins",
     "select_modele_cloisons": "Cross walls model",
     "select_modele_cloison_aval": "Downstream wall model",
+
     "UNIT_LB": "m",
     "UNIT_BB": "m",
     "UNIT_DH": "m",
diff --git a/src/app/calculators/pab/fr.json b/src/app/calculators/pab/fr.json
index 481a202be..c08b87e1f 100644
--- a/src/app/calculators/pab/fr.json
+++ b/src/app/calculators/pab/fr.json
@@ -14,6 +14,7 @@
     "bassin_container": "Bassins",
     "select_modele_cloisons": "Modèle de cloisons",
     "select_modele_cloison_aval": "Modèle de la cloison aval",
+
     "UNIT_LB": "m",
     "UNIT_BB": "m",
     "UNIT_DH": "m",
diff --git a/src/app/calculators/pabnombre/en.json b/src/app/calculators/pabnombre/en.json
index 067c48901..148b87adc 100644
--- a/src/app/calculators/pabnombre/en.json
+++ b/src/app/calculators/pabnombre/en.json
@@ -6,9 +6,5 @@
     "NB": "Number of falls, downwards harmonization",
     "NH": "Number of falls, upwards harmonization",
     "DHB": "Fall between basins, downwards harmonization",
-    "DHH": "Fall between basins, upwards harmonization",
-
-    "UNIT_DHR": "m",
-    "UNIT_DHB": "m",
-    "UNIT_DHH": "m"
+    "DHH": "Fall between basins, upwards harmonization"
 }
\ No newline at end of file
diff --git a/src/app/calculators/pabnombre/fr.json b/src/app/calculators/pabnombre/fr.json
index 1b2d01917..6a4baca55 100644
--- a/src/app/calculators/pabnombre/fr.json
+++ b/src/app/calculators/pabnombre/fr.json
@@ -6,9 +6,5 @@
     "NB": "Nombre de chutes, harmonisation vers le bas",
     "NH": "Nombre de chutes, harmonisation vers le haut",
     "DHB": "Chute entre bassins, harmonisation vers le bas",
-    "DHH": "Chute entre bassins, harmonisation vers le haut",
-
-    "UNIT_DHR": "m",
-    "UNIT_DHB": "m",
-    "UNIT_DHH": "m"
+    "DHH": "Chute entre bassins, harmonisation vers le haut"
 }
\ No newline at end of file
diff --git a/src/app/calculators/par/en.json b/src/app/calculators/par/en.json
index c84e38dc5..fc7eddd2d 100644
--- a/src/app/calculators/par/en.json
+++ b/src/app/calculators/par/en.json
@@ -38,31 +38,5 @@
     "PARTYPE_0": "Plane baffles",
     "PARTYPE_1": "Fatou",
     "PARTYPE_2": "Superactive",
-    "PARTYPE_3": "Mixed / chevrons",
-
-    "UNIT_ZD1": "m",
-    "UNIT_S": "m/m",
-    "UNIT_P": "m",
-	"UNIT_L": "m",
-    "UNIT_a": "m",
-	"UNIT_N": "",
-    "UNIT_M": "",
- 
-    "UNIT_H": "m",
-    "UNIT_HA": "m",
-    "UNIT_QSTAR": "m³/s",
-    "UNIT_V": "m/s",
-    "UNIT_ZM": "m",
-    "UNIT_ZR1": "m",
-    "UNIT_A": "m",
-    "UNIT_B": "m",
-    "UNIT_C": "m",
-    "UNIT_D": "m",
-    "UNIT_HMIN": "m",
-    "UNIT_HMAX": "m",
-    "UNIT_NB": "",
-    "UNIT_ZD2": "m",
-    "UNIT_ZR2": "m",
-    "UNIT_LPI": "m",
-    "UNIT_LPH": "m"
+    "PARTYPE_3": "Mixed / chevrons"
 }
\ No newline at end of file
diff --git a/src/app/calculators/par/fr.json b/src/app/calculators/par/fr.json
index 992593b5c..4d38734ca 100644
--- a/src/app/calculators/par/fr.json
+++ b/src/app/calculators/par/fr.json
@@ -34,31 +34,5 @@
     "PARTYPE_0": "Ralentisseurs plans",
     "PARTYPE_1": "Fatou",
     "PARTYPE_2": "Ralentisseurs suractifs",
-    "PARTYPE_3": "Mixte / chevrons",
-
-    "UNIT_ZD1": "m",
-    "UNIT_S": "m/m",
-    "UNIT_P": "m",
-	"UNIT_L": "m",
-    "UNIT_a": "m",
-	"UNIT_N": "",
-    "UNIT_M": "",
- 
-    "UNIT_H": "m",
-    "UNIT_HA": "m",
-    "UNIT_QSTAR": "m³/s",
-    "UNIT_V": "m/s",
-    "UNIT_ZM": "m",
-    "UNIT_ZR1": "m",
-    "UNIT_A": "m",
-    "UNIT_B": "m",
-    "UNIT_C": "m",
-    "UNIT_D": "m",
-    "UNIT_HMIN": "m",
-    "UNIT_HMAX": "m",
-    "UNIT_NB": "",
-    "UNIT_ZD2": "m",
-    "UNIT_ZR2": "m",
-    "UNIT_LPI": "m",
-    "UNIT_LPH": "m"
+    "PARTYPE_3": "Mixte / chevrons"
 }
\ No newline at end of file
diff --git a/src/app/calculators/parsimulation/en.json b/src/app/calculators/parsimulation/en.json
index d7ff7f55e..a5b752e21 100644
--- a/src/app/calculators/parsimulation/en.json
+++ b/src/app/calculators/parsimulation/en.json
@@ -38,32 +38,5 @@
     "PARTYPE_0": "Plane baffles",
     "PARTYPE_1": "Fatou",
     "PARTYPE_2": "Superactive",
-    "PARTYPE_3": "Mixed / chevrons",
-
-    "UNIT_ZD1": "m",
-    "UNIT_S": "m/m",
-    "UNIT_P": "m",
-    "UNIT_NB": "",
-    "UNIT_L": "m",
-    "UNIT_a": "m",
-    "UNIT_N": "",
-    "UNIT_M": "",
- 
-    "UNIT_H": "m",
-    "UNIT_HA": "m",
-    "UNIT_QSTAR": "m³/s",
-    "UNIT_V": "m/s",
-    "UNIT_ZM": "m",
-    "UNIT_ZR1": "m",
-    "UNIT_A": "m",
-    "UNIT_B": "m",
-    "UNIT_C": "m",
-    "UNIT_D": "m",
-    "UNIT_HMIN": "m",
-    "UNIT_HMAX": "m",
-    "UNIT_ZD2": "m",
-    "UNIT_ZR2": "m",
-    "UNIT_LPI": "m",
-    "UNIT_LPH": "m",
-    "UNIT_DH": "m"
+    "PARTYPE_3": "Mixed / chevrons"
 }
diff --git a/src/app/calculators/parsimulation/fr.json b/src/app/calculators/parsimulation/fr.json
index 0c37ad399..59cdeef4f 100644
--- a/src/app/calculators/parsimulation/fr.json
+++ b/src/app/calculators/parsimulation/fr.json
@@ -34,32 +34,5 @@
     "PARTYPE_0": "Ralentisseurs plans",
     "PARTYPE_1": "Fatou",
     "PARTYPE_2": "Ralentisseurs suractifs",
-    "PARTYPE_3": "Mixte / chevrons",
-
-    "UNIT_ZD1": "m",
-    "UNIT_S": "m/m",
-    "UNIT_P": "m",
-    "UNIT_NB": "",
-    "UNIT_L": "m",
-    "UNIT_a": "m",
-    "UNIT_N": "",
-    "UNIT_M": "",
- 
-    "UNIT_H": "m",
-    "UNIT_HA": "m",
-    "UNIT_QSTAR": "m³/s",
-    "UNIT_V": "m/s",
-    "UNIT_ZM": "m",
-    "UNIT_ZR1": "m",
-    "UNIT_A": "m",
-    "UNIT_B": "m",
-    "UNIT_C": "m",
-    "UNIT_D": "m",
-    "UNIT_HMIN": "m",
-    "UNIT_HMAX": "m",
-    "UNIT_ZD2": "m",
-    "UNIT_ZR2": "m",
-    "UNIT_LPI": "m",
-    "UNIT_LPH": "m",
-    "UNIT_DH": "m"
+    "PARTYPE_3": "Mixte / chevrons"
 }
diff --git a/src/app/calculators/regimeuniforme/en.json b/src/app/calculators/regimeuniforme/en.json
index 88f2143d8..4a5a3327a 100644
--- a/src/app/calculators/regimeuniforme/en.json
+++ b/src/app/calculators/regimeuniforme/en.json
@@ -17,7 +17,5 @@
     "If": "Bottom slope",
     "YB": "Embankment elevation",
     "fs_hydraulique": "Hydraulic features",
-    "Y": "Draft",
-
-    "UNIT_V": "m/s"
+    "Y": "Draft"
 }
\ No newline at end of file
diff --git a/src/app/calculators/regimeuniforme/fr.json b/src/app/calculators/regimeuniforme/fr.json
index 84787f04e..1363f6303 100644
--- a/src/app/calculators/regimeuniforme/fr.json
+++ b/src/app/calculators/regimeuniforme/fr.json
@@ -17,7 +17,5 @@
     "If": "Pente du fond",
     "YB": "Hauteur de berge",
     "fs_hydraulique": "Caractéristiques hydrauliques",
-    "Y": "Tirant d'eau",
-
-    "UNIT_V": "m/s"
+    "Y": "Tirant d'eau"
 }
\ No newline at end of file
diff --git a/src/app/calculators/sectionparametree/en.json b/src/app/calculators/sectionparametree/en.json
index 8e5b6226c..943320f64 100644
--- a/src/app/calculators/sectionparametree/en.json
+++ b/src/app/calculators/sectionparametree/en.json
@@ -36,6 +36,7 @@
     "I-J": "Linear variation of specific energy",
     "Imp": "Impulse",
     "Tau0": "Tractive force",
+
     "UNIT_B": "m",
     "UNIT_HS": "m",
     "UNIT_HSC": "m",
diff --git a/src/app/calculators/sectionparametree/fr.json b/src/app/calculators/sectionparametree/fr.json
index 2615fd823..769792403 100644
--- a/src/app/calculators/sectionparametree/fr.json
+++ b/src/app/calculators/sectionparametree/fr.json
@@ -35,6 +35,7 @@
     "I-J": "Variation linéaire de l'énergie spécifique",
     "Imp": "Impulsion",
     "Tau0": "Force tractrice",
+
     "UNIT_B": "m",
     "UNIT_HS": "m",
     "UNIT_HSC": "m",
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 71b4dee0c..486a296de 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -216,9 +216,20 @@ export class FormulaireService extends Observable {
         if (forceUnit) {
             unit = forceUnit;
         } else {
-            const unitKey = "UNIT_" + symbolBase;
-            if (langCache && langCache[unitKey] !== undefined) {
-                unit = this.intlService.localizeText(unitKey, langCache);
+            // create dummy Nub from CalcType just to get results units
+            let dummyNub: Nub;
+            try {
+                dummyNub = Session.getInstance().createNub(new Props({ "calcType": calcType }));
+            } catch (e) {
+                // silent fail
+            }
+            if (dummyNub?.resultsUnits && dummyNub.resultsUnits[symbol]) {
+                unit = dummyNub.resultsUnits[symbol];
+            } else {
+                const unitKey = "UNIT_" + symbolBase;
+                if (langCache && langCache[unitKey] !== undefined) {
+                    unit = this.intlService.localizeText(unitKey, langCache);
+                }
             }
         }
         if (unit) {
-- 
GitLab


From b415be00e348cd28b719d33a8cd467486e47840a Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 13 Aug 2020 10:32:49 +0200
Subject: [PATCH 070/101] autoformat e2e - #409

---
 e2e/app.e2e-spec.ts                          |  18 +-
 e2e/app.po.ts                                |   6 +-
 e2e/calc-all-examples.e2e-spec.ts            |  88 +--
 e2e/calculate-all-params.e2e-spec.ts         | 138 ++---
 e2e/calculate-linked-params.e2e-spec.ts      | 564 +++++++++---------
 e2e/calculator.e2e-spec.ts                   |  36 +-
 e2e/calculator.po.ts                         | 588 +++++++++----------
 e2e/check-translations.e2e-spec.ts           | 134 ++---
 e2e/cloisons.e2e-spec.ts                     |  92 +--
 e2e/clone-all-calc.e2e-spec.ts               |  94 +--
 e2e/clone-calc.e2e-spec.ts                   | 130 ++--
 e2e/compute-reset-chained-links.e2e-spec.ts  | 334 +++++------
 e2e/link-parallel-devices.e2e-spec.ts        |  72 +--
 e2e/list.e2e-spec.ts                         |  18 +-
 e2e/list.po.ts                               | 102 ++--
 e2e/load-linked-params.e2e-spec.ts           | 154 ++---
 e2e/load-malformed-files.e2e-spec.ts         |  98 ++--
 e2e/load-save-session.e2e-spec.ts            | 164 +++---
 e2e/monkey-test/monkey.e2e-spec.ts           |   4 +-
 e2e/navbar.po.ts                             | 132 ++---
 e2e/navigate-through-calculators.e2e-spec.ts |  60 +-
 e2e/pab.e2e-spec.ts                          | 562 +++++++++---------
 e2e/preferences.e2e-spec.ts                  | 104 ++--
 e2e/preferences.po.ts                        |  96 +--
 e2e/remous.e2e-spec.ts                       |  78 +--
 e2e/sidenav.po.ts                            |  86 +--
 e2e/solveur.e2e-spec.ts                      | 276 ++++-----
 27 files changed, 2114 insertions(+), 2114 deletions(-)

diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts
index 673034353..66fc56982 100644
--- a/e2e/app.e2e-spec.ts
+++ b/e2e/app.e2e-spec.ts
@@ -5,15 +5,15 @@ import { browser } from "protractor";
  * Start app
  */
 describe("ngHyd − start page", () => {
-  let page: AppPage;
+    let page: AppPage;
 
-  beforeEach(() => {
-    page = new AppPage();
-  });
+    beforeEach(() => {
+        page = new AppPage();
+    });
 
-  it("when app starts, user should be redirected to /list page", async () => {
-    await page.navigateTo();
-    const url = await browser.driver.getCurrentUrl();
-    expect(url).toContain("/list");
-  });
+    it("when app starts, user should be redirected to /list page", async () => {
+        await page.navigateTo();
+        const url = await browser.driver.getCurrentUrl();
+        expect(url).toContain("/list");
+    });
 });
diff --git a/e2e/app.po.ts b/e2e/app.po.ts
index 8a58a9466..308423637 100644
--- a/e2e/app.po.ts
+++ b/e2e/app.po.ts
@@ -1,7 +1,7 @@
 import { browser } from "protractor";
 
 export class AppPage {
-  navigateTo() {
-    return browser.get("/");
-  }
+    navigateTo() {
+        return browser.get("/");
+    }
 }
diff --git a/e2e/calc-all-examples.e2e-spec.ts b/e2e/calc-all-examples.e2e-spec.ts
index 7f6fbc861..957364fc6 100644
--- a/e2e/calc-all-examples.e2e-spec.ts
+++ b/e2e/calc-all-examples.e2e-spec.ts
@@ -8,50 +8,50 @@ import { browser, by, element } from "protractor";
  */
 describe("ngHyd − example sessions −", async () => {
 
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-
-  beforeAll(() => {
-    jasmine.DEFAULT_TIMEOUT_INTERVAL = 100 * 1000;
-  });
-
-  it("calcul de tous les modules de tous les exemples −", async () => {
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navbar = new Navbar();
-    listPage = new ListPage();
-
-    // for each calculator
-    let lastExampleFound = true;
-    let i = 0;
-    while (lastExampleFound) {
-      await listPage.navigateTo();
-
-      const examples = await element.all(by.css("#examples-list .load-example"));
-      if (examples.length > i) {
-        // click example #i
-        await examples[i].click();
-        await browser.sleep(50);
-
-        const nbModules = await navbar.getCalculatorEntriesCount();
-        for (let j = 0; j < nbModules; j++) {
-          // select module
-          await navbar.openNthCalculator(j);
-          await browser.sleep(50);
-          // calculate module
-          await calcPage.getCalculateButton().click();
-          // check results
-          const hasResults = await calcPage.hasValidResults();
-          expect(hasResults).toBe(true, `example ${i + 1}, module ${j + 1} (starting at 1)`);
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+
+    beforeAll(() => {
+        jasmine.DEFAULT_TIMEOUT_INTERVAL = 100 * 1000;
+    });
+
+    it("calcul de tous les modules de tous les exemples −", async () => {
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        listPage = new ListPage();
+
+        // for each calculator
+        let lastExampleFound = true;
+        let i = 0;
+        while (lastExampleFound) {
+            await listPage.navigateTo();
+
+            const examples = await element.all(by.css("#examples-list .load-example"));
+            if (examples.length > i) {
+                // click example #i
+                await examples[i].click();
+                await browser.sleep(50);
+
+                const nbModules = await navbar.getCalculatorEntriesCount();
+                for (let j = 0; j < nbModules; j++) {
+                    // select module
+                    await navbar.openNthCalculator(j);
+                    await browser.sleep(50);
+                    // calculate module
+                    await calcPage.getCalculateButton().click();
+                    // check results
+                    const hasResults = await calcPage.hasValidResults();
+                    expect(hasResults).toBe(true, `example ${i + 1}, module ${j + 1} (starting at 1)`);
+                }
+            } else {
+                // no more examples
+                lastExampleFound = false;
+            }
+            i++;
         }
-      } else {
-        // no more examples
-        lastExampleFound = false;
-      }
-      i++;
-    }
-
-  });
+
+    });
 
 });
diff --git a/e2e/calculate-all-params.e2e-spec.ts b/e2e/calculate-all-params.e2e-spec.ts
index e250d6aac..d8fafc252 100644
--- a/e2e/calculate-all-params.e2e-spec.ts
+++ b/e2e/calculate-all-params.e2e-spec.ts
@@ -10,80 +10,80 @@ import { testedCalcTypes } from "./tested_calctypes";
  * is set to CAL mode, trigger the calculation, check that result is not empty
  */
 describe("ngHyd − calculate all parameters of all calculators", async () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navBar: Navbar;
-  let prefPage: PreferencesPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navBar: Navbar;
+    let prefPage: PreferencesPage;
 
-  beforeEach(() => {
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    prefPage = new PreferencesPage();
-    navBar = new Navbar();
-  });
+    beforeEach(() => {
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        prefPage = new PreferencesPage();
+        navBar = new Navbar();
+    });
 
-  // get calculators list (IDs) @TODO read it from config, but can't import jalhyd here :/
-  const calcTypes = testedCalcTypes;
+    // get calculators list (IDs) @TODO read it from config, but can't import jalhyd here :/
+    const calcTypes = testedCalcTypes;
 
-  beforeAll(async () => {
-    prefPage = new PreferencesPage();
-    navBar = new Navbar();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
+    beforeAll(async () => {
+        prefPage = new PreferencesPage();
+        navBar = new Navbar();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
 
-  // for each calculator
-  for (const ct of calcTypes) {
-    if (ct === 22) {
-      // omit 22 - Solveur is not calculated here because it is not independent
-      continue;
-    }
-    describe(" − calculate all parameters of calculator type [" + ct + "]", async () => {
-      it("", async () => {
-        // go to list page
-        await navBar.clickNewCalculatorButton();
+    // for each calculator
+    for (const ct of calcTypes) {
+        if (ct === 22) {
+            // omit 22 - Solveur is not calculated here because it is not independent
+            continue;
+        }
+        describe(" − calculate all parameters of calculator type [" + ct + "]", async () => {
+            it("", async () => {
+                // go to list page
+                await navBar.clickNewCalculatorButton();
 
-        // click calculator button (instanciate)
-        await listPage.clickMenuEntryForCalcType(ct);
-        // get all parameters IDs
-        const inputs = await calcPage.getParamInputsHavingCalcMode();
+                // click calculator button (instanciate)
+                await listPage.clickMenuEntryForCalcType(ct);
+                // get all parameters IDs
+                const inputs = await calcPage.getParamInputsHavingCalcMode();
 
-        if (inputs.length > 0) {
-          // for each param
-          for (let i = 0; i < inputs.length; i++) {
-            // grab input again because calculating the module just refreshed all the fieldsets
-            const input = (await calcPage.getParamInputsHavingCalcMode())[i];
-            // click "calc" mode button for this parameter
-            await calcPage.setParamMode(input, "cal");
-            // check that only 1 button is in "calc" state
-            const nbParamsCalc = await calcPage.getCheckedCalcModeButtons().count();
-            expect(nbParamsCalc).toBe(1);
-            // check that "compute" button is active
-            const calcButton = calcPage.getCalculateButton();
-            const disabledState = await calcButton.getAttribute("disabled");
-            expect(disabledState).not.toBe("true");
-            // click "compute" button
-            await calcButton.click();
-            // check that result is not empty
-            const hasResults = await calcPage.hasResults();
-            expect(hasResults).toBe(true);
-          }
-        } else {
-          // module has no calculable params, just click the "compute" button
-          // check that "compute" button is active
-          const calcButton = calcPage.getCalculateButton();
-          const disabledState = await calcButton.getAttribute("disabled");
-          expect(disabledState).not.toBe("true");
-          // click "compute" button
-          await calcButton.click();
-          // check that result is not empty
-          const hasResults = await calcPage.hasResults();
-          expect(hasResults).toBe(true);
-        }
-      });
-    });
-  }
+                if (inputs.length > 0) {
+                    // for each param
+                    for (let i = 0; i < inputs.length; i++) {
+                        // grab input again because calculating the module just refreshed all the fieldsets
+                        const input = (await calcPage.getParamInputsHavingCalcMode())[i];
+                        // click "calc" mode button for this parameter
+                        await calcPage.setParamMode(input, "cal");
+                        // check that only 1 button is in "calc" state
+                        const nbParamsCalc = await calcPage.getCheckedCalcModeButtons().count();
+                        expect(nbParamsCalc).toBe(1);
+                        // check that "compute" button is active
+                        const calcButton = calcPage.getCalculateButton();
+                        const disabledState = await calcButton.getAttribute("disabled");
+                        expect(disabledState).not.toBe("true");
+                        // click "compute" button
+                        await calcButton.click();
+                        // check that result is not empty
+                        const hasResults = await calcPage.hasResults();
+                        expect(hasResults).toBe(true);
+                    }
+                } else {
+                    // module has no calculable params, just click the "compute" button
+                    // check that "compute" button is active
+                    const calcButton = calcPage.getCalculateButton();
+                    const disabledState = await calcButton.getAttribute("disabled");
+                    expect(disabledState).not.toBe("true");
+                    // click "compute" button
+                    await calcButton.click();
+                    // check that result is not empty
+                    const hasResults = await calcPage.hasResults();
+                    expect(hasResults).toBe(true);
+                }
+            });
+        });
+    }
 
 });
diff --git a/e2e/calculate-linked-params.e2e-spec.ts b/e2e/calculate-linked-params.e2e-spec.ts
index a10a97ebe..443e7939b 100644
--- a/e2e/calculate-linked-params.e2e-spec.ts
+++ b/e2e/calculate-linked-params.e2e-spec.ts
@@ -22,288 +22,288 @@ import { PreferencesPage } from "./preferences.po";
  *     is also a linked parameter)
  */
 describe("ngHyd − calculate with linked parameters", () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navBar: Navbar;
-  let sidenav: SideNav;
-  let prefPage: PreferencesPage;
-
-  beforeEach(async () => {
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navBar = new Navbar();
-    prefPage = new PreferencesPage();
-    sidenav = new SideNav();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
-
-  async function computeAndCheckPresenceOfResults() {
-    // check that "compute" button is active
-    const calcButton = calcPage.getCalculateButton();
-    const disabledState = await calcButton.getAttribute("disabled");
-    expect(disabledState).not.toBe("true");
-    // click "compute" button
-    await calcButton.click();
-    // check that result is not empty
-    const hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-  }
-
-  it(" − direct links : parameter linked to a single parameter", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-
-    // create a PAB : dimensions
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(5);
-    // link Y to Y (R uniforme)
-    const Y = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y, "link");
-    const sel = await calcPage.getLinkedValueSelect(Y);
-    await calcPage.changeSelectValue(sel, 0);
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a single parameter, plus local variated parameter", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-
-    // create a PAB : dimensions
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(5);
-    // link Y to Y (R uniforme)
-    const Y = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y, "link");
-    const sel = await calcPage.getLinkedValueSelect(Y);
-    await calcPage.changeSelectValue(sel, 0);
-    // vary W
-    const W = calcPage.getInputById("W");
-    await calcPage.setParamMode(W, "var");
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a variated parameter", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-    // vary Y
-    const Y1 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y1, "var");
-
-    // create a PAB : dimensions
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(5);
-    // link Y to Y (R uniforme)
-    const Y2 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y2, "link");
-    const sel = await calcPage.getLinkedValueSelect(Y2);
-    await calcPage.changeSelectValue(sel, 0);
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a single result", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-    // calculate Y
-    const Y1 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y1, "cal");
-
-    // create a PAB : dimensions
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(5);
-    // link Y to Y (R uniforme)
-    const Y2 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y2, "link");
-    const sel = await calcPage.getLinkedValueSelect(Y2);
-    await calcPage.changeSelectValue(sel, 0);
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a single result, plus local variated parameter", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-    // calculate Y
-    const Y1 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y1, "cal");
-
-    // create a PAB : dimensions
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(5);
-    // link Y to Y (R uniforme)
-    const Y2 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y2, "link");
-    const sel = await calcPage.getLinkedValueSelect(Y2);
-    await calcPage.changeSelectValue(sel, 0);
-    // vary W
-    const W = calcPage.getInputById("W");
-    await calcPage.setParamMode(W, "var");
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a variated result", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-    // vary Q
-    const Q = calcPage.getInputById("Q");
-    await calcPage.setParamMode(Q, "var");
-    // calculate Y
-    const Y1 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y1, "cal");
-
-    // create a PAB : dimensions
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(5);
-    // link Y to Y (R uniforme)
-    const Y2 = calcPage.getInputById("Y");
-    await calcPage.setParamMode(Y2, "link");
-    const sel = await calcPage.getLinkedValueSelect(Y2);
-    await calcPage.changeSelectValue(sel, 0);
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a single extra result", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-
-    // create a Jet
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(18);
-    // link V0 to V (Régime uniforme)
-    const V0 = calcPage.getInputById("V0");
-    await calcPage.setParamMode(V0, "link");
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a single extra result, plus local variated parameter", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-
-    // create a Jet
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(18);
-    // link V0 to V (Régime uniforme)
-    const V0 = calcPage.getInputById("V0");
-    await calcPage.setParamMode(V0, "link");
-    // vary ZJ
-    const ZJ = calcPage.getInputById("ZJ");
-    await calcPage.setParamMode(ZJ, "var");
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − direct links : parameter linked to a variated extra result", async () => {
-    // create a Régime uniforme
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(3);
-    // vary LargeurBerge
-    const LargeurBerge = calcPage.getInputById("LargeurBerge");
-    await calcPage.setParamMode(LargeurBerge, "var");
-
-    // create a Jet
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(18);
-    // link V0 to V (Régime uniforme)
-    const V0 = calcPage.getInputById("V0");
-    await calcPage.setParamMode(V0, "link");
-
-    await computeAndCheckPresenceOfResults();
-  });
-
-  it(" − multiple variated parameters, including a linked one (#253)", async () => {
-    // load session file
-    await navBar.clickNewCalculatorButton();
-    await navBar.clickMenuButton();
-    await browser.sleep(200);
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-    await sidenav.loadSessionFile("./session/session-multivar-link.json");
-    await browser.sleep(500);
-    expect(await navBar.getAllCalculatorTabs().count()).toBe(2);
-
-    // calculate
-    await navBar.clickCalculatorTab(0);
-    const calcButton = calcPage.getCalculateButton();
-    await calcButton.click();
-
-    // check that result is not empty
-    const hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-
-    // check that there are 6 parameters columns in the variated results table :
-    // Q, Z2, Z1, + 4 for device #1
-    expect(await calcPage.getAllVariatedResultsTableHeaders().count()).toBe(7);
-
-    // check that number of rows in the variated results table equals number of variated values
-    const varRows = calcPage.getAllVariatedResultsRows();
-    const nbRows = await varRows.count();
-    expect(nbRows).toBe(191); // boundaries are included
-
-    // check that all parameters have values for all iterations (Z2 might miss some if repeat strategy is not applied)
-    const lastRow = varRows.get(nbRows - 1);
-    const tds = await lastRow.all(by.css("td"));
-    tds.forEach((td) => {
-      expect(td.getText()).not.toBe("");
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navBar: Navbar;
+    let sidenav: SideNav;
+    let prefPage: PreferencesPage;
+
+    beforeEach(async () => {
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navBar = new Navbar();
+        prefPage = new PreferencesPage();
+        sidenav = new SideNav();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
+
+    async function computeAndCheckPresenceOfResults() {
+        // check that "compute" button is active
+        const calcButton = calcPage.getCalculateButton();
+        const disabledState = await calcButton.getAttribute("disabled");
+        expect(disabledState).not.toBe("true");
+        // click "compute" button
+        await calcButton.click();
+        // check that result is not empty
+        const hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+    }
+
+    it(" − direct links : parameter linked to a single parameter", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+
+        // create a PAB : dimensions
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(5);
+        // link Y to Y (R uniforme)
+        const Y = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y, "link");
+        const sel = await calcPage.getLinkedValueSelect(Y);
+        await calcPage.changeSelectValue(sel, 0);
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a single parameter, plus local variated parameter", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+
+        // create a PAB : dimensions
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(5);
+        // link Y to Y (R uniforme)
+        const Y = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y, "link");
+        const sel = await calcPage.getLinkedValueSelect(Y);
+        await calcPage.changeSelectValue(sel, 0);
+        // vary W
+        const W = calcPage.getInputById("W");
+        await calcPage.setParamMode(W, "var");
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a variated parameter", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+        // vary Y
+        const Y1 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y1, "var");
+
+        // create a PAB : dimensions
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(5);
+        // link Y to Y (R uniforme)
+        const Y2 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y2, "link");
+        const sel = await calcPage.getLinkedValueSelect(Y2);
+        await calcPage.changeSelectValue(sel, 0);
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a single result", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+        // calculate Y
+        const Y1 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y1, "cal");
+
+        // create a PAB : dimensions
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(5);
+        // link Y to Y (R uniforme)
+        const Y2 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y2, "link");
+        const sel = await calcPage.getLinkedValueSelect(Y2);
+        await calcPage.changeSelectValue(sel, 0);
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a single result, plus local variated parameter", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+        // calculate Y
+        const Y1 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y1, "cal");
+
+        // create a PAB : dimensions
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(5);
+        // link Y to Y (R uniforme)
+        const Y2 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y2, "link");
+        const sel = await calcPage.getLinkedValueSelect(Y2);
+        await calcPage.changeSelectValue(sel, 0);
+        // vary W
+        const W = calcPage.getInputById("W");
+        await calcPage.setParamMode(W, "var");
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a variated result", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+        // vary Q
+        const Q = calcPage.getInputById("Q");
+        await calcPage.setParamMode(Q, "var");
+        // calculate Y
+        const Y1 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y1, "cal");
+
+        // create a PAB : dimensions
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(5);
+        // link Y to Y (R uniforme)
+        const Y2 = calcPage.getInputById("Y");
+        await calcPage.setParamMode(Y2, "link");
+        const sel = await calcPage.getLinkedValueSelect(Y2);
+        await calcPage.changeSelectValue(sel, 0);
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a single extra result", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+
+        // create a Jet
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(18);
+        // link V0 to V (Régime uniforme)
+        const V0 = calcPage.getInputById("V0");
+        await calcPage.setParamMode(V0, "link");
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a single extra result, plus local variated parameter", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+
+        // create a Jet
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(18);
+        // link V0 to V (Régime uniforme)
+        const V0 = calcPage.getInputById("V0");
+        await calcPage.setParamMode(V0, "link");
+        // vary ZJ
+        const ZJ = calcPage.getInputById("ZJ");
+        await calcPage.setParamMode(ZJ, "var");
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − direct links : parameter linked to a variated extra result", async () => {
+        // create a Régime uniforme
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(3);
+        // vary LargeurBerge
+        const LargeurBerge = calcPage.getInputById("LargeurBerge");
+        await calcPage.setParamMode(LargeurBerge, "var");
+
+        // create a Jet
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(18);
+        // link V0 to V (Régime uniforme)
+        const V0 = calcPage.getInputById("V0");
+        await calcPage.setParamMode(V0, "link");
+
+        await computeAndCheckPresenceOfResults();
+    });
+
+    it(" − multiple variated parameters, including a linked one (#253)", async () => {
+        // load session file
+        await navBar.clickNewCalculatorButton();
+        await navBar.clickMenuButton();
+        await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+        await sidenav.loadSessionFile("./session/session-multivar-link.json");
+        await browser.sleep(500);
+        expect(await navBar.getAllCalculatorTabs().count()).toBe(2);
+
+        // calculate
+        await navBar.clickCalculatorTab(0);
+        const calcButton = calcPage.getCalculateButton();
+        await calcButton.click();
+
+        // check that result is not empty
+        const hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+
+        // check that there are 6 parameters columns in the variated results table :
+        // Q, Z2, Z1, + 4 for device #1
+        expect(await calcPage.getAllVariatedResultsTableHeaders().count()).toBe(7);
+
+        // check that number of rows in the variated results table equals number of variated values
+        const varRows = calcPage.getAllVariatedResultsRows();
+        const nbRows = await varRows.count();
+        expect(nbRows).toBe(191); // boundaries are included
+
+        // check that all parameters have values for all iterations (Z2 might miss some if repeat strategy is not applied)
+        const lastRow = varRows.get(nbRows - 1);
+        const tds = await lastRow.all(by.css("td"));
+        tds.forEach((td) => {
+            expect(td.getText()).not.toBe("");
+        });
+    });
+
+    it(" − bug nghyd#329 : unexpected ERR in results table", async () => {
+        await navBar.clickNewCalculatorButton();
+        // load session
+        await navBar.clickMenuButton();
+        await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+        await sidenav.loadSessionFile("./session/session-pab-chain-nghyd-329.json");
+        await browser.sleep(200);
+        expect(await navBar.getAllCalculatorTabs().count()).toBe(3);
+
+        // calculate PAB-Dimensions
+        await navBar.clickCalculatorTab(2);
+        await browser.sleep(200);
+        // click "compute" button
+        const calcButton = calcPage.getCalculateButton();
+        await calcButton.click();
+        // check that result is not empty
+        expect(await calcPage.hasResults()).toBe(true);
+
+        // check that ERR is not present in Volume line of results table
+        let frt = calcPage.getFixedResultsTable();
+        let volumeRow = calcPage.getNthRow(frt, 3);
+        let volumeCol = calcPage.getNthColumn(volumeRow, 2);
+        let volume = await volumeCol.getText();
+        expect(Number(volume)).toBeCloseTo(44.565, 3);
+
+        // click PAB-Nombre tab
+        await navBar.clickCalculatorTab(0);
+        await browser.sleep(200);
+
+        // go back to PAB-Dimensions
+        await navBar.clickCalculatorTab(2);
+        await browser.sleep(200);
+
+        // check that ERR is not present in Volume line of results table
+        frt = calcPage.getFixedResultsTable();
+        volumeRow = calcPage.getNthRow(frt, 3);
+        volumeCol = calcPage.getNthColumn(volumeRow, 2);
+        volume = await volumeCol.getText();
+        expect(Number(volume)).toBeCloseTo(44.565, 3);
     });
-  });
-
-  it(" − bug nghyd#329 : unexpected ERR in results table", async () => {
-    await navBar.clickNewCalculatorButton();
-    // load session
-    await navBar.clickMenuButton();
-    await browser.sleep(200);
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-    await sidenav.loadSessionFile("./session/session-pab-chain-nghyd-329.json");
-    await browser.sleep(200);
-    expect(await navBar.getAllCalculatorTabs().count()).toBe(3);
-
-    // calculate PAB-Dimensions
-    await navBar.clickCalculatorTab(2);
-    await browser.sleep(200);
-    // click "compute" button
-    const calcButton = calcPage.getCalculateButton();
-    await calcButton.click();
-    // check that result is not empty
-    expect(await calcPage.hasResults()).toBe(true);
-
-    // check that ERR is not present in Volume line of results table
-    let frt = calcPage.getFixedResultsTable();
-    let volumeRow = calcPage.getNthRow(frt, 3);
-    let volumeCol = calcPage.getNthColumn(volumeRow, 2);
-    let volume = await volumeCol.getText();
-    expect(Number(volume)).toBeCloseTo(44.565, 3);
-
-    // click PAB-Nombre tab
-    await navBar.clickCalculatorTab(0);
-    await browser.sleep(200);
-
-    // go back to PAB-Dimensions
-    await navBar.clickCalculatorTab(2);
-    await browser.sleep(200);
-
-    // check that ERR is not present in Volume line of results table
-    frt = calcPage.getFixedResultsTable();
-    volumeRow = calcPage.getNthRow(frt, 3);
-    volumeCol = calcPage.getNthColumn(volumeRow, 2);
-    volume = await volumeCol.getText();
-    expect(Number(volume)).toBeCloseTo(44.565, 3);
-  });
 
 });
diff --git a/e2e/calculator.e2e-spec.ts b/e2e/calculator.e2e-spec.ts
index 835e71536..3c42955ec 100644
--- a/e2e/calculator.e2e-spec.ts
+++ b/e2e/calculator.e2e-spec.ts
@@ -5,26 +5,26 @@ import { ListPage } from "./list.po";
  * Create a random calculator
  */
 describe("ngHyd − calculator page", () => {
-  let page: CalculatorPage;
-  let listPage: ListPage;
+    let page: CalculatorPage;
+    let listPage: ListPage;
 
-  beforeEach(() => {
-    page = new CalculatorPage();
-    listPage = new ListPage();
-  });
+    beforeEach(() => {
+        page = new CalculatorPage();
+        listPage = new ListPage();
+    });
 
-  it("when a calculator name is clicked on list page, a calculator should be opened", async () => {
-    await listPage.navigateTo();
-    await listPage.clickRandomCalculatorMenuEntry();
-    const text = await page.getHeader1().getText();
-    expect(text.length).toBeGreaterThan(0);
-  });
+    it("when a calculator name is clicked on list page, a calculator should be opened", async () => {
+        await listPage.navigateTo();
+        await listPage.clickRandomCalculatorMenuEntry();
+        const text = await page.getHeader1().getText();
+        expect(text.length).toBeGreaterThan(0);
+    });
 
-  it("when a calculator is open, no active label should be empty", async () => {
-    const labels = page.getInputLabels();
-    await labels.each(async (l) => {
-      const label = await l.getText();
-      expect(label.length).toBeGreaterThan(0);
+    it("when a calculator is open, no active label should be empty", async () => {
+        const labels = page.getInputLabels();
+        await labels.each(async (l) => {
+            const label = await l.getText();
+            expect(label.length).toBeGreaterThan(0);
+        });
     });
-  });
 });
diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts
index fb065df26..7fe9dfb7a 100644
--- a/e2e/calculator.po.ts
+++ b/e2e/calculator.po.ts
@@ -2,299 +2,299 @@ import { by, element, ElementFinder, browser } from "protractor";
 
 export class CalculatorPage {
 
-  getInputLabels() {
-    return element.all(by.css("ngparam-input input:not([disabled]) label"));
-  }
-
-  getParamInputs() {
-    return element.all(by.css("ngparam-input input.form-control"));
-  }
-
-  async getParamInputsHavingCalcMode() {
-    const ret = [];
-    const inputs = this.getParamInputs();
-    await inputs.each(async (i) => {
-      if (await this.inputHasCalcModeButton(i)) {
-        ret.push(i);
-      }
-    });
-    return ret;
-  }
-
-  getHeader1() {
-    return element(by.css("h1"));
-  }
-
-  getSelectById(id: string) {
-    return element(by.id(id));
-  }
-
-  async getSelectValueText(select: ElementFinder) {
-    return await select.element(by.css(".mat-select-value-text > span")).getText();
-  }
-
-  async isSelectEmpty(select: ElementFinder) {
-    try {
-      const text = select.element(by.css(".mat-select-value-text > span"));
-      await text.getAttribute("outerHTML"); // await anything trigger the error
-      return false;
-    } catch (e) { // should be NoSuchElementError
-      return true;
-    }
-  }
-
-  getInputById(id: string) {
-    return element(by.id(id));
-  }
-
-  getSaveSessionButton() {
-    return element(by.css("dialog-save-session button[type=submit]"));
-  }
-
-  getCalculateButton() {
-    return element(by.css("button#trigger-calculate"));
-  }
-
-  getGeneratePabButton() {
-    return element(by.css("button#generate-pab"));
-  }
-
-  getCheckedCalcModeButtons() {
-    return element.all(by.css(`mat-button-toggle.radio_cal[ng-reflect-checked="true"]`));
-  }
-
-  getAddStructureButton() {
-    return element(by.css("fieldset-container .hyd-window-btns button.add-structure"));
-  }
-
-  getAllLinkButtons() {
-    return element.all(by.css("mat-button-toggle.radio_link"));
-  }
-
-  getPabResultsTable() {
-    return element(by.css(".pab-results-table-inner-container table"));
-  }
-
-  getVariatedResultsTable() {
-    return element(by.css(".var-results-inner-container table"));
-  }
-
-  getAllVariatedResultsTableHeaders() {
-    return element.all(by.css("var-results table thead th"));
-  }
-
-  getAllVariatedResultsRows() {
-    return element.all(by.css("var-results table tbody tr"));
-  }
-
-  scrollTo(elt: ElementFinder) {
-    browser.controlFlow().execute(function() {
-      browser.executeScript("arguments[0].scrollIntoView(true)", elt.getWebElement());
-    });
-  }
-
-  getFixedResultsTable() {
-    return element(by.css(".fixed-results-inner-container table"));
-  }
-
-  getAllFixedResultsRows() {
-    return element.all(by.css("fixed-results table tbody tr"));
-  }
-
-  /** return nth <tr> of given <table>, starting at 1 */
-  getNthRow(table: ElementFinder, n: number) {
-    return table.element(by.css("tbody > tr:nth-of-type(" + n + ")"));
-  }
-
-  /** return nth <td> of given <tr>, starting at 1 */
-  getNthColumn(tr: ElementFinder, n: number) {
-    return tr.element(by.css("td:nth-of-type(" + n + ")"));
-  }
-
-  async inputHasCalcModeButton(input: ElementFinder) {
-    // get parent (div.container)
-    const container = await this.findParentContainer(input);
-    // find radio buttons
-    const button: ElementFinder = container.element(by.css("mat-button-toggle.radio_cal > button"));
-    return await button.isPresent();
-  }
-
-  async hasResults() {
-    return (
-      await this.presentAndVisible("fixedvar-results fixed-results > .fixed-results-container")
-      ||
-      await this.presentAndVisible("fixedvar-results results-chart > chart-results-container")
-      ||
-      await this.presentAndVisible("section-results fixed-results > .fixed-results-container")
-      ||
-      await this.presentAndVisible("remous-results #main-chart")
-      ||
-      await this.presentAndVisible("pab-results pab-results-table")
-      ||
-      await this.presentAndVisible("macrorugo-compound-results macrorugo-compound-results-table")
-      ||
-      await this.presentAndVisible("jet-results .fixed-results-container")
-    );
-  }
-
-  async presentAndVisible(selector: string): Promise<boolean> {
-    const elt = element(by.css(selector));
-    return await elt.isPresent() && await elt.isDisplayed();
-  }
-
-  /**
-   * For a given <table> element, check that values of all cells of all rows in <tbody> are
-   * different from "NaN", "ERR" and optionally ""
-   * @param table a <table> ElementFinder
-   * @param allowEmpty if true, empty "" values will be considered valid
-   */
-  async allRowsHaveValidResults(table: ElementFinder, allowEmpty: boolean = false): Promise<boolean> {
-    let n = 0;
-    let ok = true;
-    const invalidValues = [ "ERR", "NaN" ];
-    if (! allowEmpty) {
-      invalidValues.push("");
-    }
-
-    const nbCols = await table.all(by.css("thead th")).count();
-    const rows = await table.all(by.css("tbody tr"));
-
-    for (const row of rows) {
-      for (let i = 0; i < nbCols; i++) {
-        // get i_th column of n_th row
-        const val = await row.element(by.css("td:nth-of-type(" + (i + 1) + ")")).getText();
-        // console.log(`TABLE VAL ${n}/${i}=>`, val);
-        ok = ok && ! invalidValues.includes(val);
-      }
-      n++;
-    }
-    return ok;
-  }
-
-  /**
-   * Returns true if this.hasResults() is true, and if results table are
-   * not empty and contain only valid values (no "NaN", no "", no "ERR")
-   */
-  async hasValidResults(): Promise<boolean> {
-    let ok = false;
-    if (await this.hasResults()) {
-      ok = true;
-      // check fixed results
-      const frt = this.getFixedResultsTable();
-      if (await frt.isPresent() && await frt.isDisplayed()) {
-        ok = ok && await this.allRowsHaveValidResults(frt);
-      }
-      // check variated results
-      const vrt = this.getVariatedResultsTable();
-      if (await vrt.isPresent() && await vrt.isDisplayed()) {
-        ok = ok && await this.allRowsHaveValidResults(vrt);
-      }
-      // check PAB results
-      const prt = this.getPabResultsTable();
-      if (await prt.isPresent() && await prt.isDisplayed()) {
-        ok = ok && await this.allRowsHaveValidResults(prt, true);
-      }
-    }
-    return ok;
-  }
-
-  async hasLog() {
-    return await this.nbLogEntries() > 0;
-  }
-
-  async nbLogEntries() {
-    return await element.all(by.css("log-entry")).count();
-  }
-
-  async clickSaveCalcButton() {
-    return await element(by.css("#save-calc")).click();
-  }
-
-  async clickCloneCalcButton() {
-    const cloneButton = element(by.css("#clone-calc"));
-    return await cloneButton.click();
-  }
-
-  async changeSelectValue(elt: ElementFinder, index: number) {
-    await elt.click();
-    const options = (await elt.getAttribute("aria-owns")).split(" ");
-    const optId = options[index];
-    const option = element(by.id(optId));
-    await option.click();
-  }
-
-  // find parent element of elt having class "container"
-  async findParentContainer(elt: ElementFinder): Promise<ElementFinder> {
-    let i = 8; // garde fous
-    while ((await elt.getAttribute("class") !== "container") && (i >= 0)) {
-      elt = elt.element(by.xpath(".."));
-      i--;
-    }
-    return elt;
-  }
-
-  /**
-   * @param elt an <input> element
-   * @param mode "fix", "var", "cal" or "link"
-   */
-  async setParamMode(elt: ElementFinder, mode: string) {
-    // get parent (div.container)
-    const container = await this.findParentContainer(elt);
-    // find radio buttons
-    const button = container.element(by.css("mat-button-toggle.radio_" + mode + " > button"));
-    await browser.executeScript("window.scrollTo(0, 0);"); // sometimes button slides behind navbar and click() fails
-    await button.click();
-    // for "var" mode, close the modal
-    if (mode === "var") {
-      await browser.sleep(500); // wait for the modal to appear
-      await element(by.css("dialog-edit-param-values .mat-dialog-actions button")).click();
-      await browser.sleep(500); // wait for the navbar to reappear after modal dismissal
-    }
-  }
-
-  /**
-   * @param elt an <input> element
-   */
-  async getLinkedValueSelect(elt: ElementFinder): Promise<ElementFinder> {
-    // get parent (div.container)
-    const container = await this.findParentContainer(elt) as ElementFinder;
-    // find <select>
-    const select = container.element(by.css("param-link mat-select"));
-    return select;
-  }
-
-  /**
-   * Returns an object containing all the calculator's inputs values, indexed
-   * by parameter ID
-   */
-  async storeAllInputValues() {
-    const inputs = this.getParamInputs();
-    const values = {};
-    await inputs.each(async (i) => {
-      const inputId = await i.getAttribute("id");
-      const inputValue = await i.getAttribute("value");
-      values[inputId] = +inputValue; // cast to number to avoid false negative (integers starting with 0)
-    });
-    return values;
-  }
-
-  /**
-   * Modifies all the calculator's editable inputs values by adding a random digit other than 0 at the end
-   */
-  async modifyAllInputValues() {
-    const inputs = this.getParamInputs();
-    await inputs.each(async (i) => {
-      if (await i.isDisplayed()) {
-        // N in YAXN child of SPP module must not be float
-        const isN = (await i.getAttribute("id")).includes("_N"); // @TODO strengthen this clodo test
-        const hasDot = (await i.getAttribute("value")).includes(".");
-        const hasExponent = (await i.getAttribute("value")).includes("e");
-        let keys = "" + Math.floor(Math.random() * 9) + 1;
-        if (! hasDot && ! hasExponent && ! isN) {
-          keys = "." + keys;
+    getInputLabels() {
+        return element.all(by.css("ngparam-input input:not([disabled]) label"));
+    }
+
+    getParamInputs() {
+        return element.all(by.css("ngparam-input input.form-control"));
+    }
+
+    async getParamInputsHavingCalcMode() {
+        const ret = [];
+        const inputs = this.getParamInputs();
+        await inputs.each(async (i) => {
+            if (await this.inputHasCalcModeButton(i)) {
+                ret.push(i);
+            }
+        });
+        return ret;
+    }
+
+    getHeader1() {
+        return element(by.css("h1"));
+    }
+
+    getSelectById(id: string) {
+        return element(by.id(id));
+    }
+
+    async getSelectValueText(select: ElementFinder) {
+        return await select.element(by.css(".mat-select-value-text > span")).getText();
+    }
+
+    async isSelectEmpty(select: ElementFinder) {
+        try {
+            const text = select.element(by.css(".mat-select-value-text > span"));
+            await text.getAttribute("outerHTML"); // await anything trigger the error
+            return false;
+        } catch (e) { // should be NoSuchElementError
+            return true;
         }
-        await i.sendKeys(keys);
-      }
-    });
-  }
+    }
+
+    getInputById(id: string) {
+        return element(by.id(id));
+    }
+
+    getSaveSessionButton() {
+        return element(by.css("dialog-save-session button[type=submit]"));
+    }
+
+    getCalculateButton() {
+        return element(by.css("button#trigger-calculate"));
+    }
+
+    getGeneratePabButton() {
+        return element(by.css("button#generate-pab"));
+    }
+
+    getCheckedCalcModeButtons() {
+        return element.all(by.css(`mat-button-toggle.radio_cal[ng-reflect-checked="true"]`));
+    }
+
+    getAddStructureButton() {
+        return element(by.css("fieldset-container .hyd-window-btns button.add-structure"));
+    }
+
+    getAllLinkButtons() {
+        return element.all(by.css("mat-button-toggle.radio_link"));
+    }
+
+    getPabResultsTable() {
+        return element(by.css(".pab-results-table-inner-container table"));
+    }
+
+    getVariatedResultsTable() {
+        return element(by.css(".var-results-inner-container table"));
+    }
+
+    getAllVariatedResultsTableHeaders() {
+        return element.all(by.css("var-results table thead th"));
+    }
+
+    getAllVariatedResultsRows() {
+        return element.all(by.css("var-results table tbody tr"));
+    }
+
+    scrollTo(elt: ElementFinder) {
+        browser.controlFlow().execute(function () {
+            browser.executeScript("arguments[0].scrollIntoView(true)", elt.getWebElement());
+        });
+    }
+
+    getFixedResultsTable() {
+        return element(by.css(".fixed-results-inner-container table"));
+    }
+
+    getAllFixedResultsRows() {
+        return element.all(by.css("fixed-results table tbody tr"));
+    }
+
+    /** return nth <tr> of given <table>, starting at 1 */
+    getNthRow(table: ElementFinder, n: number) {
+        return table.element(by.css("tbody > tr:nth-of-type(" + n + ")"));
+    }
+
+    /** return nth <td> of given <tr>, starting at 1 */
+    getNthColumn(tr: ElementFinder, n: number) {
+        return tr.element(by.css("td:nth-of-type(" + n + ")"));
+    }
+
+    async inputHasCalcModeButton(input: ElementFinder) {
+        // get parent (div.container)
+        const container = await this.findParentContainer(input);
+        // find radio buttons
+        const button: ElementFinder = container.element(by.css("mat-button-toggle.radio_cal > button"));
+        return await button.isPresent();
+    }
+
+    async hasResults() {
+        return (
+            await this.presentAndVisible("fixedvar-results fixed-results > .fixed-results-container")
+            ||
+            await this.presentAndVisible("fixedvar-results results-chart > chart-results-container")
+            ||
+            await this.presentAndVisible("section-results fixed-results > .fixed-results-container")
+            ||
+            await this.presentAndVisible("remous-results #main-chart")
+            ||
+            await this.presentAndVisible("pab-results pab-results-table")
+            ||
+            await this.presentAndVisible("macrorugo-compound-results macrorugo-compound-results-table")
+            ||
+            await this.presentAndVisible("jet-results .fixed-results-container")
+        );
+    }
+
+    async presentAndVisible(selector: string): Promise<boolean> {
+        const elt = element(by.css(selector));
+        return await elt.isPresent() && await elt.isDisplayed();
+    }
+
+    /**
+     * For a given <table> element, check that values of all cells of all rows in <tbody> are
+     * different from "NaN", "ERR" and optionally ""
+     * @param table a <table> ElementFinder
+     * @param allowEmpty if true, empty "" values will be considered valid
+     */
+    async allRowsHaveValidResults(table: ElementFinder, allowEmpty: boolean = false): Promise<boolean> {
+        let n = 0;
+        let ok = true;
+        const invalidValues = ["ERR", "NaN"];
+        if (!allowEmpty) {
+            invalidValues.push("");
+        }
+
+        const nbCols = await table.all(by.css("thead th")).count();
+        const rows = await table.all(by.css("tbody tr"));
+
+        for (const row of rows) {
+            for (let i = 0; i < nbCols; i++) {
+                // get i_th column of n_th row
+                const val = await row.element(by.css("td:nth-of-type(" + (i + 1) + ")")).getText();
+                // console.log(`TABLE VAL ${n}/${i}=>`, val);
+                ok = ok && !invalidValues.includes(val);
+            }
+            n++;
+        }
+        return ok;
+    }
+
+    /**
+     * Returns true if this.hasResults() is true, and if results table are
+     * not empty and contain only valid values (no "NaN", no "", no "ERR")
+     */
+    async hasValidResults(): Promise<boolean> {
+        let ok = false;
+        if (await this.hasResults()) {
+            ok = true;
+            // check fixed results
+            const frt = this.getFixedResultsTable();
+            if (await frt.isPresent() && await frt.isDisplayed()) {
+                ok = ok && await this.allRowsHaveValidResults(frt);
+            }
+            // check variated results
+            const vrt = this.getVariatedResultsTable();
+            if (await vrt.isPresent() && await vrt.isDisplayed()) {
+                ok = ok && await this.allRowsHaveValidResults(vrt);
+            }
+            // check PAB results
+            const prt = this.getPabResultsTable();
+            if (await prt.isPresent() && await prt.isDisplayed()) {
+                ok = ok && await this.allRowsHaveValidResults(prt, true);
+            }
+        }
+        return ok;
+    }
+
+    async hasLog() {
+        return await this.nbLogEntries() > 0;
+    }
+
+    async nbLogEntries() {
+        return await element.all(by.css("log-entry")).count();
+    }
+
+    async clickSaveCalcButton() {
+        return await element(by.css("#save-calc")).click();
+    }
+
+    async clickCloneCalcButton() {
+        const cloneButton = element(by.css("#clone-calc"));
+        return await cloneButton.click();
+    }
+
+    async changeSelectValue(elt: ElementFinder, index: number) {
+        await elt.click();
+        const options = (await elt.getAttribute("aria-owns")).split(" ");
+        const optId = options[index];
+        const option = element(by.id(optId));
+        await option.click();
+    }
+
+    // find parent element of elt having class "container"
+    async findParentContainer(elt: ElementFinder): Promise<ElementFinder> {
+        let i = 8; // garde fous
+        while ((await elt.getAttribute("class") !== "container") && (i >= 0)) {
+            elt = elt.element(by.xpath(".."));
+            i--;
+        }
+        return elt;
+    }
+
+    /**
+     * @param elt an <input> element
+     * @param mode "fix", "var", "cal" or "link"
+     */
+    async setParamMode(elt: ElementFinder, mode: string) {
+        // get parent (div.container)
+        const container = await this.findParentContainer(elt);
+        // find radio buttons
+        const button = container.element(by.css("mat-button-toggle.radio_" + mode + " > button"));
+        await browser.executeScript("window.scrollTo(0, 0);"); // sometimes button slides behind navbar and click() fails
+        await button.click();
+        // for "var" mode, close the modal
+        if (mode === "var") {
+            await browser.sleep(500); // wait for the modal to appear
+            await element(by.css("dialog-edit-param-values .mat-dialog-actions button")).click();
+            await browser.sleep(500); // wait for the navbar to reappear after modal dismissal
+        }
+    }
+
+    /**
+     * @param elt an <input> element
+     */
+    async getLinkedValueSelect(elt: ElementFinder): Promise<ElementFinder> {
+        // get parent (div.container)
+        const container = await this.findParentContainer(elt) as ElementFinder;
+        // find <select>
+        const select = container.element(by.css("param-link mat-select"));
+        return select;
+    }
+
+    /**
+     * Returns an object containing all the calculator's inputs values, indexed
+     * by parameter ID
+     */
+    async storeAllInputValues() {
+        const inputs = this.getParamInputs();
+        const values = {};
+        await inputs.each(async (i) => {
+            const inputId = await i.getAttribute("id");
+            const inputValue = await i.getAttribute("value");
+            values[inputId] = +inputValue; // cast to number to avoid false negative (integers starting with 0)
+        });
+        return values;
+    }
+
+    /**
+     * Modifies all the calculator's editable inputs values by adding a random digit other than 0 at the end
+     */
+    async modifyAllInputValues() {
+        const inputs = this.getParamInputs();
+        await inputs.each(async (i) => {
+            if (await i.isDisplayed()) {
+                // N in YAXN child of SPP module must not be float
+                const isN = (await i.getAttribute("id")).includes("_N"); // @TODO strengthen this clodo test
+                const hasDot = (await i.getAttribute("value")).includes(".");
+                const hasExponent = (await i.getAttribute("value")).includes("e");
+                let keys = "" + Math.floor(Math.random() * 9) + 1;
+                if (!hasDot && !hasExponent && !isN) {
+                    keys = "." + keys;
+                }
+                await i.sendKeys(keys);
+            }
+        });
+    }
 }
diff --git a/e2e/check-translations.e2e-spec.ts b/e2e/check-translations.e2e-spec.ts
index e74d7f210..ee07f746e 100644
--- a/e2e/check-translations.e2e-spec.ts
+++ b/e2e/check-translations.e2e-spec.ts
@@ -11,83 +11,83 @@ import { testedCalcTypes } from "./tested_calctypes";
  * is set to CAL mode, trigger the calculation, check that result is not empty
  */
 describe("ngHyd − check translation of all calculators", () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navBar: Navbar;
-  let prefPage: PreferencesPage;
-  let sideNav: SideNav;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navBar: Navbar;
+    let prefPage: PreferencesPage;
+    let sideNav: SideNav;
 
-  beforeAll(() => {
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navBar = new Navbar();
-    prefPage = new PreferencesPage();
-    sideNav = new SideNav();
-  });
+    beforeAll(() => {
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navBar = new Navbar();
+        prefPage = new PreferencesPage();
+        sideNav = new SideNav();
+    });
 
-  // get calculators list (IDs) @TODO read it from config, but can't import jalhyd here :/
-  const calcTypes = testedCalcTypes;
+    // get calculators list (IDs) @TODO read it from config, but can't import jalhyd here :/
+    const calcTypes = testedCalcTypes;
 
-  // options of "Language" selector on preferences page
-  const langs = [ "English", "Français" ];
+    // options of "Language" selector on preferences page
+    const langs = ["English", "Français"];
 
-  // for each language
-  for (let i = 0; i < langs.length; i++) {
-    describe("language " + langs[i] + " − ", async () => {
+    // for each language
+    for (let i = 0; i < langs.length; i++) {
+        describe("language " + langs[i] + " − ", async () => {
 
-      beforeAll(async () => {
-        await prefPage.navigateTo();
-        await prefPage.changeLanguage(i);
-        await browser.sleep(200);
-        await navBar.clickNewCalculatorButton();
-      });
+            beforeAll(async () => {
+                await prefPage.navigateTo();
+                await prefPage.changeLanguage(i);
+                await browser.sleep(200);
+                await navBar.clickNewCalculatorButton();
+            });
 
-      beforeEach(function () {
-        jasmine.addMatchers({
-          toContain: function () {
-              return {
-                compare: function (actual, expected) {
-                  const result = {
-                    pass: actual.includes(expected),
-                    message: "error" // short message to avoid whole page source being dumped on expect() failure
-                  };
-                  return result;
-                }
-              };
-          }
-        });
-      });
+            beforeEach(function () {
+                jasmine.addMatchers({
+                    toContain: function () {
+                        return {
+                            compare: function (actual, expected) {
+                                const result = {
+                                    pass: actual.includes(expected),
+                                    message: "error" // short message to avoid whole page source being dumped on expect() failure
+                                };
+                                return result;
+                            }
+                        };
+                    }
+                });
+            });
 
-      // for each calculator
-      for (const ct of calcTypes) {
-        it(" − check translations of calculator type [" + ct + "]", async () => {
-          // click calculator button (instanciate)
-          await listPage.clickMenuEntryForCalcType(ct);
+            // for each calculator
+            for (const ct of calcTypes) {
+                it(" − check translations of calculator type [" + ct + "]", async () => {
+                    // click calculator button (instanciate)
+                    await listPage.clickMenuEntryForCalcType(ct);
 
-          // just click the "compute" button with default values
-          // check that "compute" button is active
-          const calcButton = calcPage.getCalculateButton();
-          const disabledState = await calcButton.getAttribute("disabled");
-          if (! disabledState) {
-            // click "compute" button
-            await calcButton.click();
-            // check that result is not empty
-            const hasResults = await calcPage.hasResults();
-            expect(hasResults).toBe(true);
-          }
+                    // just click the "compute" button with default values
+                    // check that "compute" button is active
+                    const calcButton = calcPage.getCalculateButton();
+                    const disabledState = await calcButton.getAttribute("disabled");
+                    if (!disabledState) {
+                        // click "compute" button
+                        await calcButton.click();
+                        // check that result is not empty
+                        const hasResults = await calcPage.hasResults();
+                        expect(hasResults).toBe(true);
+                    }
 
-          // check absence of "*** message not found" in whole DOM
-          expect(await browser.getPageSource()).not.toContain("*** message not found", "missing translations found");
+                    // check absence of "*** message not found" in whole DOM
+                    expect(await browser.getPageSource()).not.toContain("*** message not found", "missing translations found");
 
-          // empty session
-          await navBar.clickMenuButton();
-          await browser.sleep(200);
-          await sideNav.clickNewSessionButton();
-          browser.sleep(200);
-        });
-      }
+                    // empty session
+                    await navBar.clickMenuButton();
+                    await browser.sleep(200);
+                    await sideNav.clickNewSessionButton();
+                    browser.sleep(200);
+                });
+            }
 
-    });
-  }
+        });
+    }
 
 });
diff --git a/e2e/cloisons.e2e-spec.ts b/e2e/cloisons.e2e-spec.ts
index eb6b07ff7..2febdc57e 100644
--- a/e2e/cloisons.e2e-spec.ts
+++ b/e2e/cloisons.e2e-spec.ts
@@ -8,50 +8,50 @@ import { PreferencesPage } from "./preferences.po";
  * Cloisons - différents tests qui n'ont pas tant de rapport que ça avec les cloisons :)
  */
 describe("ngHyd − cloisons", () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navBar: Navbar;
-  let prefPage: PreferencesPage;
-
-  beforeEach(async () => {
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navBar = new Navbar();
-    prefPage = new PreferencesPage();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
-
-  it("when all parent Nub parameters are linked, Structure parameter modes should be alterable without problem", async () => {
-    await navBar.clickNewCalculatorButton();
-
-    // 1. create target module for linked parameters
-    await listPage.clickMenuEntryForCalcType(10); // Cloisons
-    await browser.sleep(300);
-    // 2. create module to test
-    await calcPage.clickCloneCalcButton();
-    await browser.sleep(300);
-
-    // 3. link every parameter except Structure ones
-    await calcPage.setParamMode(calcPage.getInputById("calc_Q"), "link");
-    await calcPage.setParamMode(calcPage.getInputById("Z1"), "link");
-    await calcPage.setParamMode(calcPage.getInputById("LB"), "link");
-    await calcPage.setParamMode(calcPage.getInputById("BB"), "link");
-    await calcPage.setParamMode(calcPage.getInputById("PB"), "link");
-    await calcPage.setParamMode(calcPage.getInputById("DH"), "link");
-    await browser.sleep(300);
-
-    // 4. change LoiDebit
-    await calcPage.changeSelectValue(calcPage.getSelectById("select_loidebit"), 1);
-    await browser.sleep(300);
-
-    // 5. check number of inputs in CALC mode
-    expect(await calcPage.getCheckedCalcModeButtons().count()).toBe(1);
-
-    // 6. try calculating the module
-    await calcPage.getCalculateButton().click();
-    expect(calcPage.hasResults()).toBe(true);
-  });
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navBar: Navbar;
+    let prefPage: PreferencesPage;
+
+    beforeEach(async () => {
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navBar = new Navbar();
+        prefPage = new PreferencesPage();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
+
+    it("when all parent Nub parameters are linked, Structure parameter modes should be alterable without problem", async () => {
+        await navBar.clickNewCalculatorButton();
+
+        // 1. create target module for linked parameters
+        await listPage.clickMenuEntryForCalcType(10); // Cloisons
+        await browser.sleep(300);
+        // 2. create module to test
+        await calcPage.clickCloneCalcButton();
+        await browser.sleep(300);
+
+        // 3. link every parameter except Structure ones
+        await calcPage.setParamMode(calcPage.getInputById("calc_Q"), "link");
+        await calcPage.setParamMode(calcPage.getInputById("Z1"), "link");
+        await calcPage.setParamMode(calcPage.getInputById("LB"), "link");
+        await calcPage.setParamMode(calcPage.getInputById("BB"), "link");
+        await calcPage.setParamMode(calcPage.getInputById("PB"), "link");
+        await calcPage.setParamMode(calcPage.getInputById("DH"), "link");
+        await browser.sleep(300);
+
+        // 4. change LoiDebit
+        await calcPage.changeSelectValue(calcPage.getSelectById("select_loidebit"), 1);
+        await browser.sleep(300);
+
+        // 5. check number of inputs in CALC mode
+        expect(await calcPage.getCheckedCalcModeButtons().count()).toBe(1);
+
+        // 6. try calculating the module
+        await calcPage.getCalculateButton().click();
+        expect(calcPage.hasResults()).toBe(true);
+    });
 });
diff --git a/e2e/clone-all-calc.e2e-spec.ts b/e2e/clone-all-calc.e2e-spec.ts
index 3373fe3a3..e55c8b3f4 100644
--- a/e2e/clone-all-calc.e2e-spec.ts
+++ b/e2e/clone-all-calc.e2e-spec.ts
@@ -9,61 +9,61 @@ import { testedCalcTypes } from "./tested_calctypes";
  * Clone calculators
  */
 describe("ngHyd − clone all calculators with all possible <select> values", () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let prefPage: PreferencesPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let prefPage: PreferencesPage;
 
-  beforeEach(async () => {
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navbar = new Navbar();
-    prefPage = new PreferencesPage();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
+    beforeEach(async () => {
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        prefPage = new PreferencesPage();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
 
-  const calcTypes = testedCalcTypes;
+    const calcTypes = testedCalcTypes;
 
-  // for each calculator
-  for (const ct of calcTypes) {
-    if (ct === 22) {
-      // omit 22 - Solveur is not tested here because it is not independent
-      continue;
-    }
-    describe(" − clone all variations of calculator type [" + ct + "]", async () => {
-      it("", async () => {
-        await navbar.clickNewCalculatorButton();
-        // click calculator button (instanciate)
-        await listPage.clickMenuEntryForCalcType(ct);
+    // for each calculator
+    for (const ct of calcTypes) {
+        if (ct === 22) {
+            // omit 22 - Solveur is not tested here because it is not independent
+            continue;
+        }
+        describe(" − clone all variations of calculator type [" + ct + "]", async () => {
+            it("", async () => {
+                await navbar.clickNewCalculatorButton();
+                // click calculator button (instanciate)
+                await listPage.clickMenuEntryForCalcType(ct);
 
-        // get all select IDs outside Structures
-        // get select IDs inside Structures
-        // @TODO set configuration to every combination of <select> options
+                // get all select IDs outside Structures
+                // get select IDs inside Structures
+                // @TODO set configuration to every combination of <select> options
 
-        // modify all <input> values and store them
-        await calcPage.modifyAllInputValues();
-        const sourceValues = await calcPage.storeAllInputValues();
+                // modify all <input> values and store them
+                await calcPage.modifyAllInputValues();
+                const sourceValues = await calcPage.storeAllInputValues();
 
-        // clone calculator
-        await browser.executeScript("window.scrollTo(0, 0);");
-        await calcPage.clickCloneCalcButton();
-        await browser.sleep(300);
+                // clone calculator
+                await browser.executeScript("window.scrollTo(0, 0);");
+                await calcPage.clickCloneCalcButton();
+                await browser.sleep(300);
 
-        // check existence of the cloned module
-        expect(await navbar.getAllCalculatorTabs().count()).toBe(2);
+                // check existence of the cloned module
+                expect(await navbar.getAllCalculatorTabs().count()).toBe(2);
 
-        // @TODO check <select> values
+                // @TODO check <select> values
 
-        // read all <input> values and compare them to stored ones
-        const cloneValues = await calcPage.storeAllInputValues();
-        for (const k in cloneValues) {
-          expect(cloneValues[k]).toBeCloseTo(sourceValues[k]);
-        }
-      });
-    });
-  }
+                // read all <input> values and compare them to stored ones
+                const cloneValues = await calcPage.storeAllInputValues();
+                for (const k in cloneValues) {
+                    expect(cloneValues[k]).toBeCloseTo(sourceValues[k]);
+                }
+            });
+        });
+    }
 
 });
diff --git a/e2e/clone-calc.e2e-spec.ts b/e2e/clone-calc.e2e-spec.ts
index 599d3cf9a..c09edd3c8 100644
--- a/e2e/clone-calc.e2e-spec.ts
+++ b/e2e/clone-calc.e2e-spec.ts
@@ -9,79 +9,79 @@ import { PreferencesPage } from "./preferences.po";
  * Clone calculators
  */
 describe("ngHyd − clone a calculator", () => {
-  let startPage: AppPage;
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let prefPage: PreferencesPage;
+    let startPage: AppPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let prefPage: PreferencesPage;
 
-  beforeEach(() => {
-    startPage = new AppPage();
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-  });
+    beforeEach(() => {
+        startPage = new AppPage();
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+    });
+
+    beforeAll(async () => {
+        prefPage = new PreferencesPage();
+        navbar = new Navbar();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
 
-  beforeAll(async () => {
-    prefPage = new PreferencesPage();
-    navbar = new Navbar();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
+    it("when cloning a calculator, the clone should have the same values for all parameters", async () => {
+        await navbar.clickNewCalculatorButton();
+        // 1. create target modules for linked parameter
+        await listPage.clickMenuEntryForCalcType(3); // Régime uniforme
+        await browser.sleep(500);
+        const debitRU = calcPage.getInputById("calc_Q"); // "Débit" is calculated by default
+        await calcPage.setParamMode(debitRU, "fix");
+        await browser.sleep(500);
 
-  it("when cloning a calculator, the clone should have the same values for all parameters", async () => {
-    await navbar.clickNewCalculatorButton();
-    // 1. create target modules for linked parameter
-    await listPage.clickMenuEntryForCalcType(3); // Régime uniforme
-    await browser.sleep(500);
-    const debitRU = calcPage.getInputById("calc_Q"); // "Débit" is calculated by default
-    await calcPage.setParamMode(debitRU, "fix");
-    await browser.sleep(500);
+        await navbar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(4); // Courbe de remous
+        await browser.sleep(500);
 
-    await navbar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(4); // Courbe de remous
-    await browser.sleep(500);
+        // 2. create source module to clone
+        await navbar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(2); // Section paramétrée
+        await browser.sleep(500);
 
-    // 2. create source module to clone
-    await navbar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(2); // Section paramétrée
-    await browser.sleep(500);
+        // 3. change and store source parameter values
+        const sourceValues = {
+            k: 0.6,
+            Ks: 42
+        };
+        await calcPage.changeSelectValue(calcPage.getSelectById("select_section"), 3); // mode "parabolique"
+        await calcPage.getInputById("k").clear();
+        await calcPage.getInputById("k").sendKeys(sourceValues["k"]);
+        await calcPage.getInputById("Ks").clear();
+        await calcPage.getInputById("Ks").sendKeys(sourceValues["Ks"]);
+        // link "Débit" to "Courbe de remous"
+        const debitSP = calcPage.getInputById("Q");
+        await calcPage.setParamMode(debitSP, "link");
+        await browser.sleep(500);
+        await calcPage.changeSelectValue(calcPage.getSelectById("linked_Q"), 1); // "Courbe de remous"
+        await browser.sleep(500);
 
-    // 3. change and store source parameter values
-    const sourceValues = {
-      k: 0.6,
-      Ks: 42
-    };
-    await calcPage.changeSelectValue(calcPage.getSelectById("select_section"), 3); // mode "parabolique"
-    await calcPage.getInputById("k").clear();
-    await calcPage.getInputById("k").sendKeys(sourceValues["k"]);
-    await calcPage.getInputById("Ks").clear();
-    await calcPage.getInputById("Ks").sendKeys(sourceValues["Ks"]);
-    // link "Débit" to "Courbe de remous"
-    const debitSP = calcPage.getInputById("Q");
-    await calcPage.setParamMode(debitSP, "link");
-    await browser.sleep(500);
-    await calcPage.changeSelectValue(calcPage.getSelectById("linked_Q"), 1); // "Courbe de remous"
-    await browser.sleep(500);
+        // otherwise clickCloneCalcButton() fails with "Element is not clickable at point"
+        await browser.executeScript("window.scrollTo(0, 0);");
+        await calcPage.clickCloneCalcButton();
+        await browser.sleep(500);
 
-    // otherwise clickCloneCalcButton() fails with "Element is not clickable at point"
-    await browser.executeScript("window.scrollTo(0, 0);");
-    await calcPage.clickCloneCalcButton();
-    await browser.sleep(500);
+        // 4. check existence of the cloned module
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(4);
+        await navbar.clickCalculatorTab(3); // n°3 should be the latest
+        await browser.sleep(500);
 
-    // 4. check existence of the cloned module
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(4);
-    await navbar.clickCalculatorTab(3); // n°3 should be the latest
-    await browser.sleep(500);
+        // 5. compare values
+        Object.keys(sourceValues).forEach(async (k) => {
+            const v = sourceValues[k];
+            const displayedVal = await calcPage.getInputById(k).getAttribute("value");
+            expect(displayedVal).toBe("" + v);
+        });
 
-    // 5. compare values
-    Object.keys(sourceValues).forEach(async (k) => {
-      const v = sourceValues[k];
-      const displayedVal = await calcPage.getInputById(k).getAttribute("value");
-      expect(displayedVal).toBe("" + v);
+        // @TODO check linked value (see above)
     });
-
-    // @TODO check linked value (see above)
-  });
 });
diff --git a/e2e/compute-reset-chained-links.e2e-spec.ts b/e2e/compute-reset-chained-links.e2e-spec.ts
index 75ac102b9..2767c9d96 100644
--- a/e2e/compute-reset-chained-links.e2e-spec.ts
+++ b/e2e/compute-reset-chained-links.e2e-spec.ts
@@ -12,173 +12,173 @@ import { browser } from "protractor";
  * linked to results.
  */
 describe("ngHyd − compute then reset chained results − ", () => {
-  let startPage: AppPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let sidenav: SideNav;
-
-  function init() {
-      startPage = new AppPage();
-      calcPage = new CalculatorPage();
-      navbar = new Navbar();
-      sidenav = new SideNav();
-  }
-  beforeEach(init);
-
-  it("when loading session-cascade-params.json, computation should not be chained, but results reset should be", async () => {
-    // load session file
-    await startPage.navigateTo();
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-    await sidenav.loadSessionFile("./session/session-cascade-params.json");
-    await browser.sleep(500);
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
-
-    // 1. get down-most module
-    await navbar.clickCalculatorTabForUid("Y2l2Y3");
-
-    // click "compute" button
-    const calcButton = calcPage.getCalculateButton();
-    await calcButton.click();
-
-    // down-most module should have results
-    let hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-    // up-most should not
-    await navbar.clickCalculatorTabForUid("ZTFxeW");
-    hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(false);
-    await navbar.clickCalculatorTabForUid("Z3EwY2");
-    // middle one should
-    hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-
-    // 2. get up-most module
-    await navbar.clickCalculatorTabForUid("ZTFxeW");
-
-    // modify an input that is not linked
-    await calcPage.getInputById("Ks").clear();
-    await calcPage.getInputById("Ks").sendKeys("42");
-
-    // other 2 modules should still have their results
-    for (let i = 1; i < 3; i++) {
-      await navbar.clickCalculatorTab(i);
-      hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
+    let startPage: AppPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let sidenav: SideNav;
+
+    function init() {
+        startPage = new AppPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        sidenav = new SideNav();
     }
-
-    // 3. get up-most module again
-    await navbar.clickCalculatorTabForUid("ZTFxeW");
-
-    // modify input that is linked
-    await calcPage.getInputById("LargeurBerge").clear();
-    await calcPage.getInputById("LargeurBerge").sendKeys("2.6");
-
-    // check all 3 modules for absence of results
-    for (let i = 0; i < 3; i++) {
-      await navbar.clickCalculatorTab(i);
-      hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(false);
-    }
-  });
-
-  it("when loading session-cascade-results.json, computation and results reset should be chained", async () => {
-    // load session file
-    await startPage.navigateTo();
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-    await sidenav.loadSessionFile("./session/session-cascade-results.json");
-    await browser.sleep(500);
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
-
-    // dirty hack : get unwanted module first to prevent Calc button
-    // of PAB Dimensions to be greyed-out @WTF
-    await navbar.clickCalculatorTabForUid("Y2s1cG");
-    // 1. get down-most module (PAB Dimensions)
-    await navbar.clickCalculatorTabForUid("eHh5YX");
-
-    // click "compute" button
-    const calcButton = calcPage.getCalculateButton();
-    await calcButton.click();
-
-    // check all 3 modules for results
-    for (let i = 0; i < 3; i++) {
-      await navbar.clickCalculatorTab(i);
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
-    }
-
-    // 2. get up-most module (Macro-rugo)
-    await navbar.clickCalculatorTabForUid("MGg5OH");
-
-    // modify any input (for ex. "Ks")
-    await calcPage.getInputById("Ks").clear();
-    await calcPage.getInputById("Ks").sendKeys("42");
-
-    // check all 3 modules for absence of results
-    for (let i = 0; i < 3; i++) {
-      await navbar.clickCalculatorTab(i);
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(false);
-    }
-  });
-
-  it("when loading session-results-invalidation.json, results reset should not be triggered on calculation", async () => {
-    // load session file
-    await startPage.navigateTo();
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-    await sidenav.loadSessionFile("./session/session-results-invalidation.json");
-    await browser.sleep(500);
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(2);
-
-    // get down-most module (Ouvrages)
-    await navbar.clickCalculatorTabForUid("amd2OG");
-
-    // click "compute" button
-    const calcButton = calcPage.getCalculateButton();
-    await calcButton.click();
-    const hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-
-    // 2. get up-most module (Ouvrages 1)
-    await navbar.clickCalculatorTabForUid("aTgwMm");
-
-    // modify an input that is not linked
-    await calcPage.getInputById("Z2").clear();
-    await calcPage.getInputById("Z2").sendKeys("101.8");
-
-    // the down-most module should still have its results
-    await navbar.clickCalculatorTabForUid("amd2OG");
-    const hasResults2 = await calcPage.hasResults();
-    expect(hasResults2).toBe(true);
-
-    // calculate the upmost module
-    await navbar.clickCalculatorTabForUid("aTgwMm");
-    const calcButton2 = calcPage.getCalculateButton();
-    await calcButton2.click();
-
-    // the down-most module should still have its results
-    await navbar.clickCalculatorTabForUid("amd2OG");
-    const hasResults3 = await calcPage.hasResults();
-    expect(hasResults3).toBe(true);
-
-    // modify an input that is linked
-    await navbar.clickCalculatorTabForUid("aTgwMm");
-    await calcPage.getInputById("0_ZDV").clear();
-    await calcPage.getInputById("0_ZDV").sendKeys("101");
-
-    // the down-most module should not have its results anymore
-    await navbar.clickCalculatorTabForUid("amd2OG");
-    const hasResults4 = await calcPage.hasResults();
-    expect(hasResults4).toBe(false);
-
-  });
+    beforeEach(init);
+
+    it("when loading session-cascade-params.json, computation should not be chained, but results reset should be", async () => {
+        // load session file
+        await startPage.navigateTo();
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+        await sidenav.loadSessionFile("./session/session-cascade-params.json");
+        await browser.sleep(500);
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
+
+        // 1. get down-most module
+        await navbar.clickCalculatorTabForUid("Y2l2Y3");
+
+        // click "compute" button
+        const calcButton = calcPage.getCalculateButton();
+        await calcButton.click();
+
+        // down-most module should have results
+        let hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+        // up-most should not
+        await navbar.clickCalculatorTabForUid("ZTFxeW");
+        hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(false);
+        await navbar.clickCalculatorTabForUid("Z3EwY2");
+        // middle one should
+        hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+
+        // 2. get up-most module
+        await navbar.clickCalculatorTabForUid("ZTFxeW");
+
+        // modify an input that is not linked
+        await calcPage.getInputById("Ks").clear();
+        await calcPage.getInputById("Ks").sendKeys("42");
+
+        // other 2 modules should still have their results
+        for (let i = 1; i < 3; i++) {
+            await navbar.clickCalculatorTab(i);
+            hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+        }
+
+        // 3. get up-most module again
+        await navbar.clickCalculatorTabForUid("ZTFxeW");
+
+        // modify input that is linked
+        await calcPage.getInputById("LargeurBerge").clear();
+        await calcPage.getInputById("LargeurBerge").sendKeys("2.6");
+
+        // check all 3 modules for absence of results
+        for (let i = 0; i < 3; i++) {
+            await navbar.clickCalculatorTab(i);
+            hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(false);
+        }
+    });
+
+    it("when loading session-cascade-results.json, computation and results reset should be chained", async () => {
+        // load session file
+        await startPage.navigateTo();
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+        await sidenav.loadSessionFile("./session/session-cascade-results.json");
+        await browser.sleep(500);
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
+
+        // dirty hack : get unwanted module first to prevent Calc button
+        // of PAB Dimensions to be greyed-out @WTF
+        await navbar.clickCalculatorTabForUid("Y2s1cG");
+        // 1. get down-most module (PAB Dimensions)
+        await navbar.clickCalculatorTabForUid("eHh5YX");
+
+        // click "compute" button
+        const calcButton = calcPage.getCalculateButton();
+        await calcButton.click();
+
+        // check all 3 modules for results
+        for (let i = 0; i < 3; i++) {
+            await navbar.clickCalculatorTab(i);
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+        }
+
+        // 2. get up-most module (Macro-rugo)
+        await navbar.clickCalculatorTabForUid("MGg5OH");
+
+        // modify any input (for ex. "Ks")
+        await calcPage.getInputById("Ks").clear();
+        await calcPage.getInputById("Ks").sendKeys("42");
+
+        // check all 3 modules for absence of results
+        for (let i = 0; i < 3; i++) {
+            await navbar.clickCalculatorTab(i);
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(false);
+        }
+    });
+
+    it("when loading session-results-invalidation.json, results reset should not be triggered on calculation", async () => {
+        // load session file
+        await startPage.navigateTo();
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+        await sidenav.loadSessionFile("./session/session-results-invalidation.json");
+        await browser.sleep(500);
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(2);
+
+        // get down-most module (Ouvrages)
+        await navbar.clickCalculatorTabForUid("amd2OG");
+
+        // click "compute" button
+        const calcButton = calcPage.getCalculateButton();
+        await calcButton.click();
+        const hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+
+        // 2. get up-most module (Ouvrages 1)
+        await navbar.clickCalculatorTabForUid("aTgwMm");
+
+        // modify an input that is not linked
+        await calcPage.getInputById("Z2").clear();
+        await calcPage.getInputById("Z2").sendKeys("101.8");
+
+        // the down-most module should still have its results
+        await navbar.clickCalculatorTabForUid("amd2OG");
+        const hasResults2 = await calcPage.hasResults();
+        expect(hasResults2).toBe(true);
+
+        // calculate the upmost module
+        await navbar.clickCalculatorTabForUid("aTgwMm");
+        const calcButton2 = calcPage.getCalculateButton();
+        await calcButton2.click();
+
+        // the down-most module should still have its results
+        await navbar.clickCalculatorTabForUid("amd2OG");
+        const hasResults3 = await calcPage.hasResults();
+        expect(hasResults3).toBe(true);
+
+        // modify an input that is linked
+        await navbar.clickCalculatorTabForUid("aTgwMm");
+        await calcPage.getInputById("0_ZDV").clear();
+        await calcPage.getInputById("0_ZDV").sendKeys("101");
+
+        // the down-most module should not have its results anymore
+        await navbar.clickCalculatorTabForUid("amd2OG");
+        const hasResults4 = await calcPage.hasResults();
+        expect(hasResults4).toBe(false);
+
+    });
 
 });
diff --git a/e2e/link-parallel-devices.e2e-spec.ts b/e2e/link-parallel-devices.e2e-spec.ts
index d4b190c7a..7d104289d 100644
--- a/e2e/link-parallel-devices.e2e-spec.ts
+++ b/e2e/link-parallel-devices.e2e-spec.ts
@@ -5,45 +5,45 @@ import { PreferencesPage } from "./preferences.po";
 import { Navbar } from "./navbar.po";
 
 describe("ngHyd − parallel structures with multiple linked parameters − ", () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let prefPage: PreferencesPage;
-  let navBar: Navbar;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let prefPage: PreferencesPage;
+    let navBar: Navbar;
 
-  async function init() {
-      calcPage = new CalculatorPage();
-      listPage = new ListPage();
-      prefPage = new PreferencesPage();
-      navBar = new Navbar();
-      // disable evil option "empty fields on module creation"
-      await prefPage.navigateTo();
-      await prefPage.disableEvilEmptyFields();
-      await browser.sleep(200);
-  }
-  beforeEach(init);
+    async function init() {
+        calcPage = new CalculatorPage();
+        listPage = new ListPage();
+        prefPage = new PreferencesPage();
+        navBar = new Navbar();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    }
+    beforeEach(init);
 
-  it("when creating Parallel Structures, devices should be linkable to one another", async () => {
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(8);
-    await calcPage.getAddStructureButton().click();
-    const nb1 = await calcPage.getAllLinkButtons().count();
-    expect(nb1).toBe(8); // link buttons on children but not on parent
-  });
+    it("when creating Parallel Structures, devices should be linkable to one another", async () => {
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(8);
+        await calcPage.getAddStructureButton().click();
+        const nb1 = await calcPage.getAllLinkButtons().count();
+        expect(nb1).toBe(8); // link buttons on children but not on parent
+    });
 
-  it("when creating Cloisons, devices should be linkable to one another", async () => {
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(10);
-    await calcPage.getAddStructureButton().click();
-    const nb2 = await calcPage.getAllLinkButtons().count();
-    expect(nb2).toBe(6); // link buttons on children but not on parent
-  });
+    it("when creating Cloisons, devices should be linkable to one another", async () => {
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(10);
+        await calcPage.getAddStructureButton().click();
+        const nb2 = await calcPage.getAllLinkButtons().count();
+        expect(nb2).toBe(6); // link buttons on children but not on parent
+    });
 
-  it("when creating Dever, devices should be linkable to one another", async () => {
-    await navBar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(9);
-    await calcPage.getAddStructureButton().click();
-    const nb3 = await calcPage.getAllLinkButtons().count();
-    expect(nb3).toBe(6); // link buttons on children but not on parent
-  });
+    it("when creating Dever, devices should be linkable to one another", async () => {
+        await navBar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(9);
+        await calcPage.getAddStructureButton().click();
+        const nb3 = await calcPage.getAllLinkButtons().count();
+        expect(nb3).toBe(6); // link buttons on children but not on parent
+    });
 
 });
diff --git a/e2e/list.e2e-spec.ts b/e2e/list.e2e-spec.ts
index 3100e7274..d53a34e99 100644
--- a/e2e/list.e2e-spec.ts
+++ b/e2e/list.e2e-spec.ts
@@ -4,15 +4,15 @@ import { ListPage } from "./list.po";
  * Show calculators list (home page)
  */
 describe("ngHyd − list page", () => {
-  let page: ListPage;
+    let page: ListPage;
 
-  beforeEach(() => {
-    page = new ListPage();
-  });
+    beforeEach(() => {
+        page = new ListPage();
+    });
 
-  it("when list is open, user should see the list of available compute nodes", async () => {
-    await page.navigateTo();
-    expect(page.getThemesCardsLength()).toBeGreaterThan(4);
-    expect(page.getCalculatorsMenuLength()).toBeGreaterThan(8);
-  });
+    it("when list is open, user should see the list of available compute nodes", async () => {
+        await page.navigateTo();
+        expect(page.getThemesCardsLength()).toBeGreaterThan(4);
+        expect(page.getCalculatorsMenuLength()).toBeGreaterThan(8);
+    });
 });
diff --git a/e2e/list.po.ts b/e2e/list.po.ts
index ce64e022e..52c574577 100644
--- a/e2e/list.po.ts
+++ b/e2e/list.po.ts
@@ -1,55 +1,55 @@
 import { browser, by, element } from "protractor";
 
 export class ListPage {
-  navigateTo() {
-    return browser.get("/#/list");
-  }
-
-  getThemesCards() {
-    return element.all(by.css("mat-card.compute-nodes-theme"));
-  }
-
-  async getThemesCardsLength() {
-    return await this.getThemesCards().count();
-  }
-
-  getCalculatorsMenuEntries() {
-    return element.all(by.css("mat-card.compute-nodes-theme button.theme-calculator"));
-  }
-
-  async getCalculatorsMenuLength() {
-    return await this.getCalculatorsMenuEntries().count();
-  }
-
-  async getAvailableCalcTypes() {
-    const ids = [];
-    const menuEntries = this.getCalculatorsMenuEntries();
-    await menuEntries.each(async (elt, i) => {
-      const eltid = await elt.getAttribute("id");
-      const ct = eltid.replace("create-calc-", "");
-      const nct = Number(ct);
-      // remove duplicates
-      if (! ids.includes(nct)) {
-        ids.push(nct);
-      }
-    });
-    return ids;
-  }
-
-  async clickRandomCalculatorMenuEntry() {
-    const menuEntries = this.getCalculatorsMenuEntries();
-    const l = await menuEntries.count();
-    const r = Math.min((Math.floor(Math.random() * l)), (l - 1));
-    return menuEntries.get(r).click();
-  }
-
-  async clickMenuEntryForCalcType(type: number) {
-    const but = element(by.css("#create-calc-" + type));
-    return but.click();
-  }
-
-  async getCalcMenuTextForCalcType(type: number): Promise<string> {
-    const but = element(by.css("#create-calc-" + type));
-    return but.getText();
-  }
+    navigateTo() {
+        return browser.get("/#/list");
+    }
+
+    getThemesCards() {
+        return element.all(by.css("mat-card.compute-nodes-theme"));
+    }
+
+    async getThemesCardsLength() {
+        return await this.getThemesCards().count();
+    }
+
+    getCalculatorsMenuEntries() {
+        return element.all(by.css("mat-card.compute-nodes-theme button.theme-calculator"));
+    }
+
+    async getCalculatorsMenuLength() {
+        return await this.getCalculatorsMenuEntries().count();
+    }
+
+    async getAvailableCalcTypes() {
+        const ids = [];
+        const menuEntries = this.getCalculatorsMenuEntries();
+        await menuEntries.each(async (elt, i) => {
+            const eltid = await elt.getAttribute("id");
+            const ct = eltid.replace("create-calc-", "");
+            const nct = Number(ct);
+            // remove duplicates
+            if (!ids.includes(nct)) {
+                ids.push(nct);
+            }
+        });
+        return ids;
+    }
+
+    async clickRandomCalculatorMenuEntry() {
+        const menuEntries = this.getCalculatorsMenuEntries();
+        const l = await menuEntries.count();
+        const r = Math.min((Math.floor(Math.random() * l)), (l - 1));
+        return menuEntries.get(r).click();
+    }
+
+    async clickMenuEntryForCalcType(type: number) {
+        const but = element(by.css("#create-calc-" + type));
+        return but.click();
+    }
+
+    async getCalcMenuTextForCalcType(type: number): Promise<string> {
+        const but = element(by.css("#create-calc-" + type));
+        return but.getText();
+    }
 }
diff --git a/e2e/load-linked-params.e2e-spec.ts b/e2e/load-linked-params.e2e-spec.ts
index 8df13e041..81a1651bd 100644
--- a/e2e/load-linked-params.e2e-spec.ts
+++ b/e2e/load-linked-params.e2e-spec.ts
@@ -11,82 +11,82 @@ import { browser } from "protractor";
  * @TODO les valeurs des Select sont comparées au français, pas très générique :/
  */
 describe("ngHyd − load session with multiple linked parameters − ", () => {
-  let startPage: AppPage;
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let sidenav: SideNav;
-
-  function init() {
-      startPage = new AppPage();
-      calcPage = new CalculatorPage();
-      navbar = new Navbar();
-      sidenav = new SideNav();
-      listPage = new ListPage();
-  }
-  beforeEach(init);
-
-   it("when loading session-liens-spaghetti.json, all links should point to the right target", async () => {
-    await startPage.navigateTo();
-
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-
-    await sidenav.loadSessionFile("./session/session-liens-spaghetti.json");
-    await browser.sleep(500);
-
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(5);
-
-    // 1. check Section paramétrée
-    await navbar.clickCalculatorTab(0);
-    await browser.sleep(500);
-
-    // check target params values
-    const sp_lb = calcPage.getSelectById("linked_LargeurBerge");
-    const sp_lbv = await calcPage.getSelectValueText(sp_lb);
-    expect(sp_lbv).toContain("Largeur du déversoir (Ouvrages, ouvrage 3)");
-
-    // 2. check Passe à macro-rugosités
-    await navbar.clickCalculatorTab(1);
-    await browser.sleep(500);
-
-    // check target params values
-    const mr_zf1 = calcPage.getSelectById("linked_ZF1");
-    const mr_zf1v = await calcPage.getSelectValueText(mr_zf1);
-    expect(mr_zf1v).toContain("Cote de l'eau amont (Ouvrages)");
-
-    const mr_q = calcPage.getSelectById("linked_Q");
-    const mr_qv = await calcPage.getSelectValueText(mr_q);
-    expect(mr_qv).toContain("Débit (Sec. param., section)");
-
-    // 3. check Lois d'ouvrages
-    await navbar.clickCalculatorTab(2);
-    await browser.sleep(500);
-
-    // check target params values
-    const lo_z2 = calcPage.getSelectById("linked_Z2");
-    const lo_z2v = await calcPage.getSelectValueText(lo_z2);
-    expect(lo_z2v).toContain("Cote de fond aval (Macro-rugo.)");
-
-    const lo_l = calcPage.getSelectById("1_linked_L");
-    const lo_lv = await calcPage.getSelectValueText(lo_l);
-    expect(lo_lv).toContain("Largeur au miroir (Sec. param.)");
-
-    const lo_w = calcPage.getSelectById("2_linked_W");
-    const lo_wv = await calcPage.getSelectValueText(lo_w);
-    expect(lo_wv).toContain("Ouverture de vanne (Ouvrages, ouvrage 2)");
-
-    // 5. check Déver. dénoyés
-    await navbar.clickCalculatorTab(4);
-    await browser.sleep(500);
-
-    // check target params values
-    const lo_br = calcPage.getSelectById("linked_BR");
-    const lo_brv = await calcPage.getSelectValueText(lo_br);
-    expect(lo_brv).toContain("Largeur au miroir (Sec. param.)");
-  });
+    let startPage: AppPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let sidenav: SideNav;
+
+    function init() {
+        startPage = new AppPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        sidenav = new SideNav();
+        listPage = new ListPage();
+    }
+    beforeEach(init);
+
+    it("when loading session-liens-spaghetti.json, all links should point to the right target", async () => {
+        await startPage.navigateTo();
+
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+
+        await sidenav.loadSessionFile("./session/session-liens-spaghetti.json");
+        await browser.sleep(500);
+
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(5);
+
+        // 1. check Section paramétrée
+        await navbar.clickCalculatorTab(0);
+        await browser.sleep(500);
+
+        // check target params values
+        const sp_lb = calcPage.getSelectById("linked_LargeurBerge");
+        const sp_lbv = await calcPage.getSelectValueText(sp_lb);
+        expect(sp_lbv).toContain("Largeur du déversoir (Ouvrages, ouvrage 3)");
+
+        // 2. check Passe à macro-rugosités
+        await navbar.clickCalculatorTab(1);
+        await browser.sleep(500);
+
+        // check target params values
+        const mr_zf1 = calcPage.getSelectById("linked_ZF1");
+        const mr_zf1v = await calcPage.getSelectValueText(mr_zf1);
+        expect(mr_zf1v).toContain("Cote de l'eau amont (Ouvrages)");
+
+        const mr_q = calcPage.getSelectById("linked_Q");
+        const mr_qv = await calcPage.getSelectValueText(mr_q);
+        expect(mr_qv).toContain("Débit (Sec. param., section)");
+
+        // 3. check Lois d'ouvrages
+        await navbar.clickCalculatorTab(2);
+        await browser.sleep(500);
+
+        // check target params values
+        const lo_z2 = calcPage.getSelectById("linked_Z2");
+        const lo_z2v = await calcPage.getSelectValueText(lo_z2);
+        expect(lo_z2v).toContain("Cote de fond aval (Macro-rugo.)");
+
+        const lo_l = calcPage.getSelectById("1_linked_L");
+        const lo_lv = await calcPage.getSelectValueText(lo_l);
+        expect(lo_lv).toContain("Largeur au miroir (Sec. param.)");
+
+        const lo_w = calcPage.getSelectById("2_linked_W");
+        const lo_wv = await calcPage.getSelectValueText(lo_w);
+        expect(lo_wv).toContain("Ouverture de vanne (Ouvrages, ouvrage 2)");
+
+        // 5. check Déver. dénoyés
+        await navbar.clickCalculatorTab(4);
+        await browser.sleep(500);
+
+        // check target params values
+        const lo_br = calcPage.getSelectById("linked_BR");
+        const lo_brv = await calcPage.getSelectValueText(lo_br);
+        expect(lo_brv).toContain("Largeur au miroir (Sec. param.)");
+    });
 
 });
diff --git a/e2e/load-malformed-files.e2e-spec.ts b/e2e/load-malformed-files.e2e-spec.ts
index d561129dc..e022c9021 100644
--- a/e2e/load-malformed-files.e2e-spec.ts
+++ b/e2e/load-malformed-files.e2e-spec.ts
@@ -12,71 +12,71 @@ import { browser, element, by } from "protractor";
  * @WARNING error messages are tested in french
  */
 describe("ngHyd − load malformed session files − ", () => {
-  let startPage: AppPage;
-  let navbar: Navbar;
-  let sidenav: SideNav;
+    let startPage: AppPage;
+    let navbar: Navbar;
+    let sidenav: SideNav;
 
-  function init() {
-      startPage = new AppPage();
-      navbar = new Navbar();
-      sidenav = new SideNav();
-  }
-  beforeEach(init);
+    function init() {
+        startPage = new AppPage();
+        navbar = new Navbar();
+        sidenav = new SideNav();
+    }
+    beforeEach(init);
 
-   it("when loading session-bad-syntax.json, displayed error should be relevant", async () => {
-    await startPage.navigateTo();
+    it("when loading session-bad-syntax.json, displayed error should be relevant", async () => {
+        await startPage.navigateTo();
 
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
 
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
 
-    await sidenav.loadSessionFile("./session/session-bad-syntax.json");
-    const err = element(by.css(".file-problem .mat-list-item-content"));
-    expect(await err.getText()).toContain("La syntaxe du fichier semble incorrecte");
-  });
+        await sidenav.loadSessionFile("./session/session-bad-syntax.json");
+        const err = element(by.css(".file-problem .mat-list-item-content"));
+        expect(await err.getText()).toContain("La syntaxe du fichier semble incorrecte");
+    });
 
-  it("when loading session-missing-info.json, displayed error should be relevant", async () => {
-   await startPage.navigateTo();
+    it("when loading session-missing-info.json, displayed error should be relevant", async () => {
+        await startPage.navigateTo();
 
-   await navbar.clickMenuButton();
-   await browser.sleep(200);
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
 
-   await sidenav.clickLoadSessionButton();
-   await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
 
-   await sidenav.loadSessionFile("./session/session-missing-info.json");
-   const err = element(by.css(".file-problem .mat-list-item-content"));
-   expect(await err.getText()).toContain("La syntaxe du fichier semble incorrecte");
- });
+        await sidenav.loadSessionFile("./session/session-missing-info.json");
+        const err = element(by.css(".file-problem .mat-list-item-content"));
+        expect(await err.getText()).toContain("La syntaxe du fichier semble incorrecte");
+    });
 
- it("when loading session-empty-modules-list.json, displayed error should be relevant", async () => {
-  await startPage.navigateTo();
+    it("when loading session-empty-modules-list.json, displayed error should be relevant", async () => {
+        await startPage.navigateTo();
 
-  await navbar.clickMenuButton();
-  await browser.sleep(200);
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
 
-  await sidenav.clickLoadSessionButton();
-  await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
 
-  await sidenav.loadSessionFile("./session/session-empty-modules-list.json");
-  const err = element(by.css(".file-problem .mat-list-item-content"));
-  expect(await err.getText()).toContain("Le fichier ne contient aucun module");
-});
+        await sidenav.loadSessionFile("./session/session-empty-modules-list.json");
+        const err = element(by.css(".file-problem .mat-list-item-content"));
+        expect(await err.getText()).toContain("Le fichier ne contient aucun module");
+    });
 
-it("when loading session-format-too-old.json, displayed error should be relevant", async () => {
- await startPage.navigateTo();
+    it("when loading session-format-too-old.json, displayed error should be relevant", async () => {
+        await startPage.navigateTo();
 
- await navbar.clickMenuButton();
- await browser.sleep(200);
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
 
- await sidenav.clickLoadSessionButton();
- await browser.sleep(200);
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
 
- await sidenav.loadSessionFile("./session/session-format-too-old.json", false);
- const err = element(by.css(".file-problem .mat-list-item-content"));
- expect(await err.getText()).toContain("Mauvaise version du format de fichier");
-});
+        await sidenav.loadSessionFile("./session/session-format-too-old.json", false);
+        const err = element(by.css(".file-problem .mat-list-item-content"));
+        expect(await err.getText()).toContain("Mauvaise version du format de fichier");
+    });
 
 });
diff --git a/e2e/load-save-session.e2e-spec.ts b/e2e/load-save-session.e2e-spec.ts
index f8b6ef80c..6535d3265 100644
--- a/e2e/load-save-session.e2e-spec.ts
+++ b/e2e/load-save-session.e2e-spec.ts
@@ -10,87 +10,87 @@ import { PreferencesPage } from "./preferences.po";
  * Save and load (serialise and unserialise) calculators to/from JSON files
  */
 describe("ngHyd − save and load sessions", () => {
-  let startPage: AppPage;
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let sidenav: SideNav;
-  let prefPage: PreferencesPage;
-
-  beforeEach(() => {
-    startPage = new AppPage();
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navbar = new Navbar();
-    sidenav = new SideNav();
-    prefPage = new PreferencesPage();
-  });
-
-  it("when loading session-6-calc.test.json file from home page, 6 calculators should be loaded", async () => {
-    await startPage.navigateTo();
-
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-
-    await sidenav.loadSessionFile("./session/session-6-calc.test.json");
-    await browser.sleep(200);
-
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(6);
-  });
-
-  it("when loading session-optional-params.test.json file from home page, the calculator should be loaded", async () => {
-    await startPage.navigateTo();
-
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-
-    await sidenav.loadSessionFile("./session/session-optional-params.test.json");
-    await browser.sleep(200);
-
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(1);
-  });
-
-  it("when saving a calculator, the current parameter values should be found in the file", async () => {
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-    await navbar.clickNewCalculatorButton();
-
-    await listPage.clickMenuEntryForCalcType(2); // Section paramétrée
-    await browser.sleep(500);
-
-    await calcPage.changeSelectValue(calcPage.getSelectById("select_section"), 2); // mode "trapezoidal"
-
-    await calcPage.getInputById("Ks").clear(); // coefficient de Strickler
-    await browser.sleep(1000);
-    await calcPage.getInputById("Ks").sendKeys("42");
-    await browser.sleep(1000);
-
-    await calcPage.clickSaveCalcButton();
-
-    // see: https://stackoverflow.com/questions/21935696/protractor-e2e-test-case-for-downloading-pdf-file
-    const fs = require("fs");
-    const path = require("path");
-    const os = require("os");
-    const filename = path.resolve(os.homedir(), "Téléchargements/session.json");
-    if (fs.existsSync(filename)) {
-        // Make sure the browser doesn't have to rename the download.
-        fs.unlinkSync(filename);
-    }
-
-    await calcPage.getSaveSessionButton().click();
-    await browser.sleep(1000);
-    const fileContent = fs.readFileSync(filename, { encoding: "utf8" });
-
-    expect(fileContent).toContain(`"nodeType":"SectionTrapeze"`);
-    expect(fileContent).toContain(`{"symbol":"Ks","mode":"SINGLE","value":42}`);
-  });
+    let startPage: AppPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let sidenav: SideNav;
+    let prefPage: PreferencesPage;
+
+    beforeEach(() => {
+        startPage = new AppPage();
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        sidenav = new SideNav();
+        prefPage = new PreferencesPage();
+    });
+
+    it("when loading session-6-calc.test.json file from home page, 6 calculators should be loaded", async () => {
+        await startPage.navigateTo();
+
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+
+        await sidenav.loadSessionFile("./session/session-6-calc.test.json");
+        await browser.sleep(200);
+
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(6);
+    });
+
+    it("when loading session-optional-params.test.json file from home page, the calculator should be loaded", async () => {
+        await startPage.navigateTo();
+
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+
+        await sidenav.loadSessionFile("./session/session-optional-params.test.json");
+        await browser.sleep(200);
+
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(1);
+    });
+
+    it("when saving a calculator, the current parameter values should be found in the file", async () => {
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+        await navbar.clickNewCalculatorButton();
+
+        await listPage.clickMenuEntryForCalcType(2); // Section paramétrée
+        await browser.sleep(500);
+
+        await calcPage.changeSelectValue(calcPage.getSelectById("select_section"), 2); // mode "trapezoidal"
+
+        await calcPage.getInputById("Ks").clear(); // coefficient de Strickler
+        await browser.sleep(1000);
+        await calcPage.getInputById("Ks").sendKeys("42");
+        await browser.sleep(1000);
+
+        await calcPage.clickSaveCalcButton();
+
+        // see: https://stackoverflow.com/questions/21935696/protractor-e2e-test-case-for-downloading-pdf-file
+        const fs = require("fs");
+        const path = require("path");
+        const os = require("os");
+        const filename = path.resolve(os.homedir(), "Téléchargements/session.json");
+        if (fs.existsSync(filename)) {
+            // Make sure the browser doesn't have to rename the download.
+            fs.unlinkSync(filename);
+        }
+
+        await calcPage.getSaveSessionButton().click();
+        await browser.sleep(1000);
+        const fileContent = fs.readFileSync(filename, { encoding: "utf8" });
+
+        expect(fileContent).toContain(`"nodeType":"SectionTrapeze"`);
+        expect(fileContent).toContain(`{"symbol":"Ks","mode":"SINGLE","value":42}`);
+    });
 
 });
diff --git a/e2e/monkey-test/monkey.e2e-spec.ts b/e2e/monkey-test/monkey.e2e-spec.ts
index dba016217..7166aca40 100644
--- a/e2e/monkey-test/monkey.e2e-spec.ts
+++ b/e2e/monkey-test/monkey.e2e-spec.ts
@@ -11,8 +11,8 @@ let navBar: Navbar;
 describe("Monkey test with Gremlins.js −", async () => {
 
     beforeEach(() => {
-      prefPage = new PreferencesPage();
-      navBar = new Navbar();
+        prefPage = new PreferencesPage();
+        navBar = new Navbar();
     });
 
     // keep greater than setTimeout() in GremlinHelper.ts (twice as much sounds good)
diff --git a/e2e/navbar.po.ts b/e2e/navbar.po.ts
index 05273efde..739d5bd0a 100644
--- a/e2e/navbar.po.ts
+++ b/e2e/navbar.po.ts
@@ -1,82 +1,82 @@
 import { by, element, protractor } from "protractor";
 
 export class Navbar {
-  getAllCalculatorTabs() {
-    return element.all(by.css("#tabs-container button.calculator-button"));
-  }
+    getAllCalculatorTabs() {
+        return element.all(by.css("#tabs-container button.calculator-button"));
+    }
 
-  /**
-   * Robust method that returns number of calculator entries,
-   * whether they are buttons or dropdown select options
-   */
-  async getCalculatorEntriesCount() {
-    // if dropDown calculators select is visible
-    const dropDown = element(by.css("mat-select#selectCalculator"));
-    if (await dropDown.isPresent() && await dropDown.isDisplayed()) {
-      await dropDown.click();
-      const options = (await dropDown.getAttribute("aria-owns")).split(" ");
-      await dropDown.sendKeys(protractor.Key.ESCAPE); // close dropdown
-      return options.length;
-    } else {
-      return (await element.all(by.css("#tabs-container button.calculator-button"))).length;
+    /**
+     * Robust method that returns number of calculator entries,
+     * whether they are buttons or dropdown select options
+     */
+    async getCalculatorEntriesCount() {
+        // if dropDown calculators select is visible
+        const dropDown = element(by.css("mat-select#selectCalculator"));
+        if (await dropDown.isPresent() && await dropDown.isDisplayed()) {
+            await dropDown.click();
+            const options = (await dropDown.getAttribute("aria-owns")).split(" ");
+            await dropDown.sendKeys(protractor.Key.ESCAPE); // close dropdown
+            return options.length;
+        } else {
+            return (await element.all(by.css("#tabs-container button.calculator-button"))).length;
+        }
     }
-  }
 
-  /**
-   * Robust method that opens the nth calculator, whether the
-   * calculator selector is a list of buttons or a dropdown select
-   */
-  async openNthCalculator(n: number) {
-    // if dropDown calculators select is visible
-    const dropDown = element(by.css("mat-select#selectCalculator"));
-    if (await dropDown.isPresent() && await dropDown.isDisplayed()) {
-      await dropDown.click();
-      const options = (await dropDown.getAttribute("aria-owns")).split(" ");
-      const optId = options[n];
-      const option = element(by.id(optId));
-      await option.click();
-    } else {
-      const tabs = this.getAllCalculatorTabs();
-      await tabs.get(n).click();
+    /**
+     * Robust method that opens the nth calculator, whether the
+     * calculator selector is a list of buttons or a dropdown select
+     */
+    async openNthCalculator(n: number) {
+        // if dropDown calculators select is visible
+        const dropDown = element(by.css("mat-select#selectCalculator"));
+        if (await dropDown.isPresent() && await dropDown.isDisplayed()) {
+            await dropDown.click();
+            const options = (await dropDown.getAttribute("aria-owns")).split(" ");
+            const optId = options[n];
+            const option = element(by.id(optId));
+            await option.click();
+        } else {
+            const tabs = this.getAllCalculatorTabs();
+            await tabs.get(n).click();
+        }
     }
-  }
 
-  getCalculatorTabForUid(uid: string) {
-    return element(by.css("#tabs-container button.calculator-button.calculator-uid-" + uid));
-  }
+    getCalculatorTabForUid(uid: string) {
+        return element(by.css("#tabs-container button.calculator-button.calculator-uid-" + uid));
+    }
 
-  getNewCalculatorButton() {
-    return element(by.css("#new-calculator"));
-  }
+    getNewCalculatorButton() {
+        return element(by.css("#new-calculator"));
+    }
 
-  getMenuButton() {
-    return element(by.css("#open-menu"));
-  }
+    getMenuButton() {
+        return element(by.css("#open-menu"));
+    }
 
-  async clickCalculatorTab(n: number) {
-    const tabs = this.getAllCalculatorTabs();
-    await tabs.get(n).click();
-  }
+    async clickCalculatorTab(n: number) {
+        const tabs = this.getAllCalculatorTabs();
+        await tabs.get(n).click();
+    }
 
-  async clickCalculatorTabForUid(uid: string) {
-    const tab = this.getCalculatorTabForUid(uid);
-    await tab.click();
-  }
+    async clickCalculatorTabForUid(uid: string) {
+        const tab = this.getCalculatorTabForUid(uid);
+        await tab.click();
+    }
 
-  async clickRandomCalculatorTab(n: number) {
-    const tabs = this.getAllCalculatorTabs();
-    const l = await tabs.count();
-    const r = Math.min((Math.floor(Math.random() * l)), (l - 1));
-    await tabs.get(r).click();
-  }
+    async clickRandomCalculatorTab(n: number) {
+        const tabs = this.getAllCalculatorTabs();
+        const l = await tabs.count();
+        const r = Math.min((Math.floor(Math.random() * l)), (l - 1));
+        await tabs.get(r).click();
+    }
 
-  async clickNewCalculatorButton() {
-    const ncb = this.getNewCalculatorButton();
-    await ncb.click();
-  }
+    async clickNewCalculatorButton() {
+        const ncb = this.getNewCalculatorButton();
+        await ncb.click();
+    }
 
-  async clickMenuButton() {
-    const ncb = this.getMenuButton();
-    await ncb.click();
-  }
+    async clickMenuButton() {
+        const ncb = this.getMenuButton();
+        await ncb.click();
+    }
 }
diff --git a/e2e/navigate-through-calculators.e2e-spec.ts b/e2e/navigate-through-calculators.e2e-spec.ts
index ae2dd503f..8383a7493 100644
--- a/e2e/navigate-through-calculators.e2e-spec.ts
+++ b/e2e/navigate-through-calculators.e2e-spec.ts
@@ -7,36 +7,36 @@ import { browser } from "protractor";
  * Use navbar buttons to navigate from one open calculator to another
  */
 describe("ngHyd − create calculators and navigate among them", () => {
-  let listPage: ListPage;
-  let calculatorPage: CalculatorPage;
-  let navbar: Navbar;
+    let listPage: ListPage;
+    let calculatorPage: CalculatorPage;
+    let navbar: Navbar;
 
-  beforeEach(() => {
-    listPage = new ListPage();
-    calculatorPage = new CalculatorPage();
-    navbar = new Navbar();
-  });
+    beforeEach(() => {
+        listPage = new ListPage();
+        calculatorPage = new CalculatorPage();
+        navbar = new Navbar();
+    });
 
-  it("when many calculators are open, navigating among them should not fail (all active labels should be visible)", async () => {
-    await listPage.navigateTo();
-    // open 8 calculators
-    for (let i = 0; i < 6; i++) {
-      if (i > 0) {
-        await navbar.clickNewCalculatorButton();
-        await browser.sleep(200);
-      }
-      await listPage.clickRandomCalculatorMenuEntry();
-    }
-    // navigate among them
-    for (let i = 0; i < 10; i++) {
-      await navbar.clickRandomCalculatorTab(i);
-      // test all form labels
-      const labels = calculatorPage.getInputLabels();
-      await labels.each(async (l) => {
-        const label = await l.getText();
-        expect(label.length).toBeGreaterThan(0);
-      });
-    }
-    // expect no error ?
-  });
+    it("when many calculators are open, navigating among them should not fail (all active labels should be visible)", async () => {
+        await listPage.navigateTo();
+        // open 8 calculators
+        for (let i = 0; i < 6; i++) {
+            if (i > 0) {
+                await navbar.clickNewCalculatorButton();
+                await browser.sleep(200);
+            }
+            await listPage.clickRandomCalculatorMenuEntry();
+        }
+        // navigate among them
+        for (let i = 0; i < 10; i++) {
+            await navbar.clickRandomCalculatorTab(i);
+            // test all form labels
+            const labels = calculatorPage.getInputLabels();
+            await labels.each(async (l) => {
+                const label = await l.getText();
+                expect(label.length).toBeGreaterThan(0);
+            });
+        }
+        // expect no error ?
+    });
 });
diff --git a/e2e/pab.e2e-spec.ts b/e2e/pab.e2e-spec.ts
index 7d2e76faf..2f75f8df9 100644
--- a/e2e/pab.e2e-spec.ts
+++ b/e2e/pab.e2e-spec.ts
@@ -10,298 +10,298 @@ import { PreferencesPage } from "./preferences.po";
  * Clone calculators
  */
 describe("ngHyd − Passe à Bassins", () => {
-  let startPage: AppPage;
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let sidenav: SideNav;
-  let prefPage: PreferencesPage;
-
-  beforeEach(() => {
-    startPage = new AppPage();
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navbar = new Navbar();
-    sidenav = new SideNav();
-    prefPage = new PreferencesPage();
-  });
-
-  describe("create PAB - ", async () => {
-
-    beforeEach(async () => {
-      // disable evil option "empty fields on module creation"
-      await prefPage.navigateTo();
-      await prefPage.disableEvilEmptyFields();
-      await browser.sleep(200);
+    let startPage: AppPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let sidenav: SideNav;
+    let prefPage: PreferencesPage;
+
+    beforeEach(() => {
+        startPage = new AppPage();
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        sidenav = new SideNav();
+        prefPage = new PreferencesPage();
     });
 
-    it("when PAB is created from scratch", async() => {
-      // create PAB
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(15);
-      // check that pab-table is present
-      const innerFieldsets = element.all(by.css(".pab-data-table"));
-      expect(await innerFieldsets.count()).toBe(1);
-
-      // calculate PAB
-      const calcButton = calcPage.getCalculateButton();
-      await calcButton.click();
-      // check that result is not empty
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
-
-      // check absence of logs
-      expect(await calcPage.nbLogEntries()).toBe(0);
-    });
+    describe("create PAB - ", async () => {
+
+        beforeEach(async () => {
+            // disable evil option "empty fields on module creation"
+            await prefPage.navigateTo();
+            await prefPage.disableEvilEmptyFields();
+            await browser.sleep(200);
+        });
+
+        it("when PAB is created from scratch", async () => {
+            // create PAB
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(15);
+            // check that pab-table is present
+            const innerFieldsets = element.all(by.css(".pab-data-table"));
+            expect(await innerFieldsets.count()).toBe(1);
+
+            // calculate PAB
+            const calcButton = calcPage.getCalculateButton();
+            await calcButton.click();
+            // check that result is not empty
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+
+            // check absence of logs
+            expect(await calcPage.nbLogEntries()).toBe(0);
+        });
+
+        it("complete example of all PAB modules", async () => {
+            // PAB - chute
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(12);
+            const c_Z1 = calcPage.getInputById("Z1");
+            await c_Z1.clear();
+            await c_Z1.sendKeys("78.27");
+            const c_Z2 = calcPage.getInputById("Z1");
+            await c_Z2.clear();
+            await c_Z2.sendKeys("74.86");
+
+            // PAB - nombre
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(13);
+            const n_DHT = calcPage.getInputById("DHT");
+            await calcPage.setParamMode(n_DHT, "link");
+            const n_DH = calcPage.getInputById("DH");
+            await calcPage.setParamMode(n_DH, "cal");
+            const n_N = calcPage.getInputById("N");
+            await n_N.clear();
+            await n_N.sendKeys("15");
+
+            // PAB - dimensions
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(5);
+            const d_V = calcPage.getInputById("V");
+            await calcPage.setParamMode(d_V, "cal");
+            const d_Y = calcPage.getInputById("Y");
+            await d_Y.clear();
+            await d_Y.sendKeys("1.5");
+            const d_L = calcPage.getInputById("L");
+            await d_L.clear();
+            await d_L.sendKeys("3.100");
+            const d_W = calcPage.getInputById("W");
+            await d_W.clear();
+            await d_W.sendKeys("2.5");
+
+            // PAB - puissance dissipée (volume)
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(6);
+            const p_DH = calcPage.getInputById("DH");
+            await calcPage.setParamMode(p_DH, "link");
+            const p_Q = calcPage.getInputById("Q");
+            await calcPage.setParamMode(p_Q, "cal");
+            const p_V = calcPage.getInputById("V");
+            await calcPage.setParamMode(p_V, "link");
+            const p_PV = calcPage.getInputById("PV");
+            await p_PV.clear();
+            await p_PV.sendKeys("150");
+
+            // PAB - cloisons
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(10);
+            const cl_LB = calcPage.getInputById("LB");
+            await calcPage.setParamMode(cl_LB, "link");
+            const cl_BB = calcPage.getInputById("BB");
+            await calcPage.setParamMode(cl_BB, "link");
+            const cl_DH = calcPage.getInputById("DH");
+            await calcPage.setParamMode(cl_DH, "link");
+            const cl_Z1 = calcPage.getInputById("Z1");
+            await calcPage.setParamMode(cl_Z1, "link");
+            const cl_PB = calcPage.getInputById("PB");
+            await cl_PB.clear();
+            await cl_PB.sendKeys("1.5");
+
+            // calculate Cloisons
+            const calcButtonCl = calcPage.getCalculateButton();
+            await calcButtonCl.click();
+
+            // make sure "Generate PAB" button is visible (it might be hidden behind navbar)
+            await browser.executeScript("window.scrollTo(0, 0);");
+            // generate PAB
+            const genButton = calcPage.getGeneratePabButton();
+            await genButton.isPresent();
+            await genButton.isDisplayed();
+            await genButton.click();
+            const nbBassins = calcPage.getInputById("generatePabNbBassins");
+            await nbBassins.clear();
+            await nbBassins.sendKeys("9");
+
+            // click "Generate"
+            await element(by.css("dialog-generate-pab button#do-generate")).click();
+            await browser.sleep(1000);
+
+            // calculate PAB
+            const calcButtonPAB = calcPage.getCalculateButton();
+            await calcButtonPAB.click();
+            // check that result is not empty
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+        });
 
-    it("complete example of all PAB modules", async() => {
-      // PAB - chute
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(12);
-      const c_Z1 = calcPage.getInputById("Z1");
-      await c_Z1.clear();
-      await c_Z1.sendKeys("78.27");
-      const c_Z2 = calcPage.getInputById("Z1");
-      await c_Z2.clear();
-      await c_Z2.sendKeys("74.86");
-
-      // PAB - nombre
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(13);
-      const n_DHT = calcPage.getInputById("DHT");
-      await calcPage.setParamMode(n_DHT, "link");
-      const n_DH = calcPage.getInputById("DH");
-      await calcPage.setParamMode(n_DH, "cal");
-      const n_N = calcPage.getInputById("N");
-      await n_N.clear();
-      await n_N.sendKeys("15");
-
-      // PAB - dimensions
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(5);
-      const d_V = calcPage.getInputById("V");
-      await calcPage.setParamMode(d_V, "cal");
-      const d_Y = calcPage.getInputById("Y");
-      await d_Y.clear();
-      await d_Y.sendKeys("1.5");
-      const d_L = calcPage.getInputById("L");
-      await d_L.clear();
-      await d_L.sendKeys("3.100");
-      const d_W = calcPage.getInputById("W");
-      await d_W.clear();
-      await d_W.sendKeys("2.5");
-
-      // PAB - puissance dissipée (volume)
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(6);
-      const p_DH = calcPage.getInputById("DH");
-      await calcPage.setParamMode(p_DH, "link");
-      const p_Q = calcPage.getInputById("Q");
-      await calcPage.setParamMode(p_Q, "cal");
-      const p_V = calcPage.getInputById("V");
-      await calcPage.setParamMode(p_V, "link");
-      const p_PV = calcPage.getInputById("PV");
-      await p_PV.clear();
-      await p_PV.sendKeys("150");
-
-      // PAB - cloisons
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(10);
-      const cl_LB = calcPage.getInputById("LB");
-      await calcPage.setParamMode(cl_LB, "link");
-      const cl_BB = calcPage.getInputById("BB");
-      await calcPage.setParamMode(cl_BB, "link");
-      const cl_DH = calcPage.getInputById("DH");
-      await calcPage.setParamMode(cl_DH, "link");
-      const cl_Z1 = calcPage.getInputById("Z1");
-      await calcPage.setParamMode(cl_Z1, "link");
-      const cl_PB = calcPage.getInputById("PB");
-      await cl_PB.clear();
-      await cl_PB.sendKeys("1.5");
-
-      // calculate Cloisons
-      const calcButtonCl = calcPage.getCalculateButton();
-      await calcButtonCl.click();
-
-      // make sure "Generate PAB" button is visible (it might be hidden behind navbar)
-      await browser.executeScript("window.scrollTo(0, 0);");
-      // generate PAB
-      const genButton = calcPage.getGeneratePabButton();
-      await genButton.isPresent();
-      await genButton.isDisplayed();
-      await genButton.click();
-      const nbBassins = calcPage.getInputById("generatePabNbBassins");
-      await nbBassins.clear();
-      await nbBassins.sendKeys("9");
-
-      // click "Generate"
-      await element(by.css("dialog-generate-pab button#do-generate")).click();
-      await browser.sleep(1000);
-
-      // calculate PAB
-      const calcButtonPAB = calcPage.getCalculateButton();
-      await calcButtonPAB.click();
-      // check that result is not empty
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
     });
 
-  });
-
-  describe("generate PAB - ", async () => {
+    describe("generate PAB - ", async () => {
+
+        beforeEach(async () => {
+            // disable evil option "empty fields on module creation"
+            await prefPage.navigateTo();
+            await prefPage.disableEvilEmptyFields();
+            await browser.sleep(200);
+        });
+
+        it("from a Cloisons among many", async () => {
+            // create many Cloisons
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(10);
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(10);
+            await navbar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(10);
+            // choose one of them and change its parameters
+            await navbar.clickCalculatorTab(1);
+            const Z1 = calcPage.getInputById("Z1");
+            await Z1.clear();
+            await Z1.sendKeys("114");
+            const LB = calcPage.getInputById("LB");
+            await LB.clear();
+            await LB.sendKeys("11.5");
+            const DH = calcPage.getInputById("DH");
+            await DH.clear();
+            await DH.sendKeys("0.72");
+
+            // calculate Cloisons
+            const calcButtonCl = calcPage.getCalculateButton();
+            await calcButtonCl.click();
+
+            // make sure "Generate PAB" button is visible (it might be hidden behind navbar)
+            await browser.executeScript("window.scrollTo(0, 0);");
+            // create PAB from it, changing modal parameters
+            const genButton = calcPage.getGeneratePabButton();
+            await genButton.click();
+            const debit = calcPage.getInputById("generatePabDebit");
+            expect(await debit.getAttribute("value")).toBe("0.564");
+            await debit.clear();
+            await browser.sleep(300);
+            // send "1.6" in 3 movements, because "." triggers an error and Angular can't cope with the subsequent keys
+            await debit.sendKeys("1");
+            await browser.sleep(300);
+            await debit.sendKeys(".");
+            await browser.sleep(300);
+            await debit.sendKeys("6");
+            await browser.sleep(300);
+            const coteAmont = calcPage.getInputById("generatePabCoteAmont");
+            expect(await coteAmont.getAttribute("value")).toBe("114");
+            await coteAmont.clear();
+            await coteAmont.sendKeys("115");
+            const nbBassins = calcPage.getInputById("generatePabNbBassins");
+            expect(await nbBassins.getAttribute("value")).toBe("6");
+            await nbBassins.clear();
+            await nbBassins.sendKeys("5");
+
+            // click "Generate"
+            await element(by.css("dialog-generate-pab button#do-generate")).click();
+            await browser.sleep(1000);
+
+            // check parameters values
+            const P_Q = calcPage.getInputById("Q");
+            expect(await P_Q.getAttribute("value")).toBe("1.6");
+            const P_Z2 = calcPage.getInputById("Z2");
+            expect(await P_Z2.getAttribute("value")).toBe("111.4");
+
+            // check number of basins
+            const innerFieldsets = element.all(by.css("td.basin_number"));
+            expect(await innerFieldsets.count()).toBe(5);
+
+            // calculate PAB
+            const calcButton = calcPage.getCalculateButton();
+            await calcButton.click();
+            // check that result is not empty
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+        });
 
-    beforeEach(async () => {
-      // disable evil option "empty fields on module creation"
-      await prefPage.navigateTo();
-      await prefPage.disableEvilEmptyFields();
-      await browser.sleep(200);
     });
 
-    it("from a Cloisons among many", async() => {
-      // create many Cloisons
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(10);
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(10);
-      await navbar.clickNewCalculatorButton();
-      await listPage.clickMenuEntryForCalcType(10);
-      // choose one of them and change its parameters
-      await navbar.clickCalculatorTab(1);
-      const Z1 = calcPage.getInputById("Z1");
-      await Z1.clear();
-      await Z1.sendKeys("114");
-      const LB = calcPage.getInputById("LB");
-      await LB.clear();
-      await LB.sendKeys("11.5");
-      const DH = calcPage.getInputById("DH");
-      await DH.clear();
-      await DH.sendKeys("0.72");
-
-      // calculate Cloisons
-      const calcButtonCl = calcPage.getCalculateButton();
-      await calcButtonCl.click();
-
-      // make sure "Generate PAB" button is visible (it might be hidden behind navbar)
-      await browser.executeScript("window.scrollTo(0, 0);");
-      // create PAB from it, changing modal parameters
-      const genButton = calcPage.getGeneratePabButton();
-      await genButton.click();
-      const debit = calcPage.getInputById("generatePabDebit");
-      expect(await debit.getAttribute("value")).toBe("0.564");
-      await debit.clear();
-      await browser.sleep(300);
-      // send "1.6" in 3 movements, because "." triggers an error and Angular can't cope with the subsequent keys
-      await debit.sendKeys("1");
-      await browser.sleep(300);
-      await debit.sendKeys(".");
-      await browser.sleep(300);
-      await debit.sendKeys("6");
-      await browser.sleep(300);
-      const coteAmont = calcPage.getInputById("generatePabCoteAmont");
-      expect(await coteAmont.getAttribute("value")).toBe("114");
-      await coteAmont.clear();
-      await coteAmont.sendKeys("115");
-      const nbBassins = calcPage.getInputById("generatePabNbBassins");
-      expect(await nbBassins.getAttribute("value")).toBe("6");
-      await nbBassins.clear();
-      await nbBassins.sendKeys("5");
-
-      // click "Generate"
-      await element(by.css("dialog-generate-pab button#do-generate")).click();
-      await browser.sleep(1000);
-
-      // check parameters values
-      const P_Q = calcPage.getInputById("Q");
-      expect(await P_Q.getAttribute("value")).toBe("1.6");
-      const P_Z2 = calcPage.getInputById("Z2");
-      expect(await P_Z2.getAttribute("value")).toBe("111.4");
-
-      // check number of basins
-      const innerFieldsets = element.all(by.css("td.basin_number"));
-      expect(await innerFieldsets.count()).toBe(5);
-
-      // calculate PAB
-      const calcButton = calcPage.getCalculateButton();
-      await calcButton.click();
-      // check that result is not empty
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
-    });
+    describe("load session files - ", async () => {
+
+        it("complete example of all PAB modules", async () => {
+            await startPage.navigateTo();
+            // load
+            await navbar.clickMenuButton();
+            await browser.sleep(200);
+            await sidenav.clickLoadSessionButton();
+            await browser.sleep(200);
+            await sidenav.loadSessionFile("./session/session-pab-complete.json");
+            await browser.sleep(500);
+            // check existence of the loaded modules
+            expect(await navbar.getAllCalculatorTabs().count()).toBe(6);
+
+            // check parameters values
+            await navbar.clickCalculatorTab(5);
+            await browser.sleep(700);
+            const P_Q = calcPage.getInputById("Q");
+            expect(await P_Q.getAttribute("value")).toBe("0.275");
+            const P_Z2 = calcPage.getInputById("Z2");
+            expect(await P_Z2.getAttribute("value")).toBe("74.865");
+            // check number of basins
+            const innerFieldsets = element.all(by.css("td.basin_number"));
+            expect(await innerFieldsets.count()).toBe(15);
+
+            // calculate PAB
+            const calcButton = calcPage.getCalculateButton();
+            await calcButton.click();
+            // check that result is not empty
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+
+            // check absence of logs
+            expect(await calcPage.nbLogEntries()).toBe(0);
+        });
 
-  });
-
-  describe("load session files - ", async () => {
-
-    it("complete example of all PAB modules", async() => {
-      await startPage.navigateTo();
-      // load
-      await navbar.clickMenuButton();
-      await browser.sleep(200);
-      await sidenav.clickLoadSessionButton();
-      await browser.sleep(200);
-      await sidenav.loadSessionFile("./session/session-pab-complete.json");
-      await browser.sleep(500);
-      // check existence of the loaded modules
-      expect(await navbar.getAllCalculatorTabs().count()).toBe(6);
-
-      // check parameters values
-      await navbar.clickCalculatorTab(5);
-      await browser.sleep(700);
-      const P_Q = calcPage.getInputById("Q");
-      expect(await P_Q.getAttribute("value")).toBe("0.275");
-      const P_Z2 = calcPage.getInputById("Z2");
-      expect(await P_Z2.getAttribute("value")).toBe("74.865");
-      // check number of basins
-      const innerFieldsets = element.all(by.css("td.basin_number"));
-      expect(await innerFieldsets.count()).toBe(15);
-
-      // calculate PAB
-      const calcButton = calcPage.getCalculateButton();
-      await calcButton.click();
-      // check that result is not empty
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
-
-      // check absence of logs
-      expect(await calcPage.nbLogEntries()).toBe(0);
     });
 
-  });
-
-  describe("load regulated variated PAB with calc errors - ", async () => {
-
-    it("should display logs", async() => {
-      await startPage.navigateTo();
-      // load
-      await navbar.clickMenuButton();
-      await browser.sleep(200);
-      await sidenav.clickLoadSessionButton();
-      await browser.sleep(200);
-      await sidenav.loadSessionFile("./session/session-pab-regulee-variee.json");
-      await browser.sleep(500);
-      // check existence of the loaded module
-      expect(await navbar.getAllCalculatorTabs().count()).toBe(1);
-      await navbar.clickCalculatorTab(0);
-
-      // calculate
-      const calcButton = calcPage.getCalculateButton();
-      await calcButton.click();
-      // check that result is not empty
-      const hasResults = await calcPage.hasResults();
-      expect(hasResults).toBe(true);
-
-      // check presence of logs
-      await browser.sleep(300);
-      expect(await calcPage.nbLogEntries()).toBe(2);
-
-      // change iteration
-      const pve = calcPage.getSelectById("pab-variating-element");
-      calcPage.changeSelectValue(pve, 3);
-      await browser.sleep(300);
-      // check absence of logs
-      expect(await calcPage.nbLogEntries()).toBe(2);
-    });
+    describe("load regulated variated PAB with calc errors - ", async () => {
+
+        it("should display logs", async () => {
+            await startPage.navigateTo();
+            // load
+            await navbar.clickMenuButton();
+            await browser.sleep(200);
+            await sidenav.clickLoadSessionButton();
+            await browser.sleep(200);
+            await sidenav.loadSessionFile("./session/session-pab-regulee-variee.json");
+            await browser.sleep(500);
+            // check existence of the loaded module
+            expect(await navbar.getAllCalculatorTabs().count()).toBe(1);
+            await navbar.clickCalculatorTab(0);
+
+            // calculate
+            const calcButton = calcPage.getCalculateButton();
+            await calcButton.click();
+            // check that result is not empty
+            const hasResults = await calcPage.hasResults();
+            expect(hasResults).toBe(true);
+
+            // check presence of logs
+            await browser.sleep(300);
+            expect(await calcPage.nbLogEntries()).toBe(2);
+
+            // change iteration
+            const pve = calcPage.getSelectById("pab-variating-element");
+            calcPage.changeSelectValue(pve, 3);
+            await browser.sleep(300);
+            // check absence of logs
+            expect(await calcPage.nbLogEntries()).toBe(2);
+        });
 
-  });
+    });
 
 });
diff --git a/e2e/preferences.e2e-spec.ts b/e2e/preferences.e2e-spec.ts
index dcd4234ef..e2ac77205 100644
--- a/e2e/preferences.e2e-spec.ts
+++ b/e2e/preferences.e2e-spec.ts
@@ -5,67 +5,67 @@ import { browser } from "protractor";
  * Open app preferences, check the default values, the validators, the language change
  */
 describe("ngHyd − preferences page", () => {
-  let page: PreferencesPage;
+    let page: PreferencesPage;
 
-  beforeEach(() => {
-    page = new PreferencesPage();
-  });
+    beforeEach(() => {
+        page = new PreferencesPage();
+    });
 
-  it("when preferences are open, user should see a heading title", async () => {
-    await page.navigateTo();
-    const text = await page.getHeader1().getText();
-    expect(text.length).toBeGreaterThan(0);
-  });
+    it("when preferences are open, user should see a heading title", async () => {
+        await page.navigateTo();
+        const text = await page.getHeader1().getText();
+        expect(text.length).toBeGreaterThan(0);
+    });
 
-  it("when preferences are open, no label should be empty", async () => {
-    const labels = page.getInputLabels();
-    await labels.each(async (l) => {
-      const label = await l.getText();
-      expect(label.length).toBeGreaterThan(0);
+    it("when preferences are open, no label should be empty", async () => {
+        const labels = page.getInputLabels();
+        await labels.each(async (l) => {
+            const label = await l.getText();
+            expect(label.length).toBeGreaterThan(0);
+        });
     });
-  });
 
-  it("when preferences are open, no input field should be empty", async () => {
-    const numericFields = page.getNumericFormFields();
-    await numericFields.each(async (nf) => {
-      const input = page.getInputForField(nf);
-      const val = await input.getAttribute("value");
-      expect(val).toBeTruthy();
+    it("when preferences are open, no input field should be empty", async () => {
+        const numericFields = page.getNumericFormFields();
+        await numericFields.each(async (nf) => {
+            const input = page.getInputForField(nf);
+            const val = await input.getAttribute("value");
+            expect(val).toBeTruthy();
+        });
     });
-  });
 
-  it("when erroneous values are input, errors should appear", async () => {
-    const numericFields = page.getNumericFormFields();
-    await numericFields.each(async (nf) => {
-      // add a letter after the numerical value
-      await page.getInputForField(nf).sendKeys("d");
-      expect(page.getErrorsForField(nf).isPresent()).toBe(true);
-      // empty input
-      await page.getInputForField(nf).clear();
-      expect(page.getErrorsForField(nf).isPresent()).toBe(true);
-      // send bad value
-      await page.getInputForField(nf).sendKeys("50000");
-      expect(page.getErrorsForField(nf).isPresent()).toBe(true);
+    it("when erroneous values are input, errors should appear", async () => {
+        const numericFields = page.getNumericFormFields();
+        await numericFields.each(async (nf) => {
+            // add a letter after the numerical value
+            await page.getInputForField(nf).sendKeys("d");
+            expect(page.getErrorsForField(nf).isPresent()).toBe(true);
+            // empty input
+            await page.getInputForField(nf).clear();
+            expect(page.getErrorsForField(nf).isPresent()).toBe(true);
+            // send bad value
+            await page.getInputForField(nf).sendKeys("50000");
+            expect(page.getErrorsForField(nf).isPresent()).toBe(true);
+        });
     });
-  });
 
-  it("when correct values are input, errors should disappear", async () => {
-    const numericFields = page.getNumericFormFields();
-    await numericFields.each(async (nf) => {
-      // send correct value
-      await page.getInputForField(nf).clear();
-      await page.getInputForField(nf).sendKeys("1");
-      expect(page.getErrorsForField(nf).isPresent()).toBe(false);
+    it("when correct values are input, errors should disappear", async () => {
+        const numericFields = page.getNumericFormFields();
+        await numericFields.each(async (nf) => {
+            // send correct value
+            await page.getInputForField(nf).clear();
+            await page.getInputForField(nf).sendKeys("1");
+            expect(page.getErrorsForField(nf).isPresent()).toBe(false);
+        });
     });
-  });
 
-  it("when language is changed, language should change", async () => {
-    await page.changeLanguage(0);
-    await browser.sleep(200);
-    const val1 = await page.getHeader1().getText();
-    await page.changeLanguage(1);
-    await browser.sleep(200);
-    const val2 = await page.getHeader1().getText();
-    expect(val1).not.toEqual(val2);
-  });
+    it("when language is changed, language should change", async () => {
+        await page.changeLanguage(0);
+        await browser.sleep(200);
+        const val1 = await page.getHeader1().getText();
+        await page.changeLanguage(1);
+        await browser.sleep(200);
+        const val2 = await page.getHeader1().getText();
+        expect(val1).not.toEqual(val2);
+    });
 });
diff --git a/e2e/preferences.po.ts b/e2e/preferences.po.ts
index f5fe84248..038b2d18d 100644
--- a/e2e/preferences.po.ts
+++ b/e2e/preferences.po.ts
@@ -1,52 +1,52 @@
 import { browser, by, element, ElementFinder } from "protractor";
 
 export class PreferencesPage {
-  navigateTo() {
-    return browser.get("/#/setup");
-  }
-
-  getHeader1() {
-    return element(by.css("h1"));
-  }
-
-  getLanguageSelect() {
-    return element(by.css(`mat-select[data-testid="language-select"]`));
-  }
-
-  getEmptyFieldsCheckbox() {
-    return element(by.css(`mat-checkbox#cb_emptyFields`));
-  }
-
-  getInputLabels() {
-    return element.all(by.css("label.mat-form-field-label"));
-  }
-
-  getNumericFormFields() {
-    return element.all(by.css(`mat-form-field[data-testclass="numeric-input"]`));
-  }
-
-  getInputForField(ff: ElementFinder) {
-    return ff.element(by.css("input"));
-  }
-
-  getErrorsForField(ff: ElementFinder) {
-    return ff.element(by.css("mat-error"));
-  }
-
-  async changeLanguage(index: number) {
-    const select = this.getLanguageSelect();
-    await select.click();
-    const options = (await select.getAttribute("aria-owns")).split(" ");
-    const optId = options[index];
-    const option = element(by.id(optId));
-    await option.click();
-  }
-
-  async disableEvilEmptyFields() {
-    const cb = this.getEmptyFieldsCheckbox();
-    const underlyingCB = cb.element(by.css(`input.mat-checkbox-input`));
-    if (underlyingCB.isSelected()) {
-      await cb.click();
-    }
-  }
+    navigateTo() {
+        return browser.get("/#/setup");
+    }
+
+    getHeader1() {
+        return element(by.css("h1"));
+    }
+
+    getLanguageSelect() {
+        return element(by.css(`mat-select[data-testid="language-select"]`));
+    }
+
+    getEmptyFieldsCheckbox() {
+        return element(by.css(`mat-checkbox#cb_emptyFields`));
+    }
+
+    getInputLabels() {
+        return element.all(by.css("label.mat-form-field-label"));
+    }
+
+    getNumericFormFields() {
+        return element.all(by.css(`mat-form-field[data-testclass="numeric-input"]`));
+    }
+
+    getInputForField(ff: ElementFinder) {
+        return ff.element(by.css("input"));
+    }
+
+    getErrorsForField(ff: ElementFinder) {
+        return ff.element(by.css("mat-error"));
+    }
+
+    async changeLanguage(index: number) {
+        const select = this.getLanguageSelect();
+        await select.click();
+        const options = (await select.getAttribute("aria-owns")).split(" ");
+        const optId = options[index];
+        const option = element(by.id(optId));
+        await option.click();
+    }
+
+    async disableEvilEmptyFields() {
+        const cb = this.getEmptyFieldsCheckbox();
+        const underlyingCB = cb.element(by.css(`input.mat-checkbox-input`));
+        if (underlyingCB.isSelected()) {
+            await cb.click();
+        }
+    }
 }
diff --git a/e2e/remous.e2e-spec.ts b/e2e/remous.e2e-spec.ts
index 2db4e234a..5c4603946 100644
--- a/e2e/remous.e2e-spec.ts
+++ b/e2e/remous.e2e-spec.ts
@@ -8,43 +8,43 @@ import { PreferencesPage } from "./preferences.po";
  * Remous
  */
 describe("ngHyd − remous", () => {
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navBar: Navbar;
-  let prefPage: PreferencesPage;
-
-  beforeEach(async () => {
-    listPage = new ListPage();
-    prefPage = new PreferencesPage();
-    calcPage = new CalculatorPage();
-    navBar = new Navbar();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
-
-  it("when leaving calculated remous page then coming back to it, logs should not be duplicated", async () => {
-    await navBar.clickNewCalculatorButton();
-
-    // 1. create new Remous
-    await listPage.clickMenuEntryForCalcType(4);
-    await browser.sleep(300);
-
-    // 2. calculate it, there should be 6 messages in the log
-    await calcPage.getCalculateButton().click();
-    expect(await calcPage.nbLogEntries()).toBe(6);
-    await browser.sleep(300);
-
-    // 3. go to home page (simplest example)
-    await navBar.clickNewCalculatorButton();
-    await browser.sleep(300);
-
-    // 4. go back to Remous
-    await navBar.clickCalculatorTab(0);
-    await browser.sleep(300);
-
-    // 5. there should still be 6 messages in the log
-    expect(await calcPage.nbLogEntries()).toBe(6);
-  });
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navBar: Navbar;
+    let prefPage: PreferencesPage;
+
+    beforeEach(async () => {
+        listPage = new ListPage();
+        prefPage = new PreferencesPage();
+        calcPage = new CalculatorPage();
+        navBar = new Navbar();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
+
+    it("when leaving calculated remous page then coming back to it, logs should not be duplicated", async () => {
+        await navBar.clickNewCalculatorButton();
+
+        // 1. create new Remous
+        await listPage.clickMenuEntryForCalcType(4);
+        await browser.sleep(300);
+
+        // 2. calculate it, there should be 6 messages in the log
+        await calcPage.getCalculateButton().click();
+        expect(await calcPage.nbLogEntries()).toBe(6);
+        await browser.sleep(300);
+
+        // 3. go to home page (simplest example)
+        await navBar.clickNewCalculatorButton();
+        await browser.sleep(300);
+
+        // 4. go back to Remous
+        await navBar.clickCalculatorTab(0);
+        await browser.sleep(300);
+
+        // 5. there should still be 6 messages in the log
+        expect(await calcPage.nbLogEntries()).toBe(6);
+    });
 });
diff --git a/e2e/sidenav.po.ts b/e2e/sidenav.po.ts
index 8dc79467f..970a1e5b6 100644
--- a/e2e/sidenav.po.ts
+++ b/e2e/sidenav.po.ts
@@ -3,47 +3,47 @@ import * as path from "path";
 
 export class SideNav {
 
-  getLoadSessionButton() {
-    return element(by.css("#side-nav-load-session"));
-  }
-
-  getNewSessionButton() {
-    return element(by.css("#side-nav-empty-session"));
-  }
-
-  getFileInput() {
-    return element(by.css(`dialog-load-session input[type="file"]`));
-  }
-
-  getFileLoadButton() {
-    return element(by.css(`dialog-load-session button[type="submit"]`));
-  }
-
-  getConfirmNewSessionButton() {
-    return element(by.css(`button#confirm-new-session`));
-  }
-
-  async clickLoadSessionButton() {
-    const ncb = this.getLoadSessionButton();
-    await browser.sleep(500);
-    await ncb.click();
-  }
-
-  async clickNewSessionButton() {
-    const ncb = this.getNewSessionButton();
-    await browser.sleep(200);
-    await ncb.click();
-    await browser.sleep(200);
-    await this.getConfirmNewSessionButton().click();
-  }
-
-  async loadSessionFile(file: string, click: boolean = true) {
-    const absolutePath = path.resolve(__dirname, file);
-    const input = this.getFileInput();
-    await input.sendKeys(absolutePath);
-    await browser.sleep(500);
-    if (click) {
-      await this.getFileLoadButton().click();
-    }
-  }
+    getLoadSessionButton() {
+        return element(by.css("#side-nav-load-session"));
+    }
+
+    getNewSessionButton() {
+        return element(by.css("#side-nav-empty-session"));
+    }
+
+    getFileInput() {
+        return element(by.css(`dialog-load-session input[type="file"]`));
+    }
+
+    getFileLoadButton() {
+        return element(by.css(`dialog-load-session button[type="submit"]`));
+    }
+
+    getConfirmNewSessionButton() {
+        return element(by.css(`button#confirm-new-session`));
+    }
+
+    async clickLoadSessionButton() {
+        const ncb = this.getLoadSessionButton();
+        await browser.sleep(500);
+        await ncb.click();
+    }
+
+    async clickNewSessionButton() {
+        const ncb = this.getNewSessionButton();
+        await browser.sleep(200);
+        await ncb.click();
+        await browser.sleep(200);
+        await this.getConfirmNewSessionButton().click();
+    }
+
+    async loadSessionFile(file: string, click: boolean = true) {
+        const absolutePath = path.resolve(__dirname, file);
+        const input = this.getFileInput();
+        await input.sendKeys(absolutePath);
+        await browser.sleep(500);
+        if (click) {
+            await this.getFileLoadButton().click();
+        }
+    }
 }
diff --git a/e2e/solveur.e2e-spec.ts b/e2e/solveur.e2e-spec.ts
index 90d60c1d0..334625f50 100644
--- a/e2e/solveur.e2e-spec.ts
+++ b/e2e/solveur.e2e-spec.ts
@@ -10,142 +10,142 @@ import { PreferencesPage } from "./preferences.po";
  * Clone calculators
  */
 describe("Solveur - ", () => {
-  let startPage: AppPage;
-  let listPage: ListPage;
-  let calcPage: CalculatorPage;
-  let navbar: Navbar;
-  let sidenav: SideNav;
-  let prefPage: PreferencesPage;
-
-  beforeEach(async () => {
-    startPage = new AppPage();
-    prefPage = new PreferencesPage();
-    listPage = new ListPage();
-    calcPage = new CalculatorPage();
-    navbar = new Navbar();
-    sidenav = new SideNav();
-    // disable evil option "empty fields on module creation"
-    await prefPage.navigateTo();
-    await prefPage.disableEvilEmptyFields();
-    await browser.sleep(200);
-  });
-
-  it("load > calculate", async () => {
-    await navbar.clickNewCalculatorButton();
-
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-
-    await sidenav.loadSessionFile("./session/session-solveur-chutes.json");
-    await browser.sleep(200);
-
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(4);
-    await navbar.clickCalculatorTab(3); // n°3 should be the latest
-
-    // check input values
-    expect(await calcPage.getInputById("Xinit").getAttribute("value")).toBe("0.5");
-    expect(await calcPage.getInputById("Ytarget").getAttribute("value")).toBe("252");
-    // check Nub to calculate
-    const ntc = calcPage.getSelectById("select_target_nub");
-    const ntcV = await calcPage.getSelectValueText(ntc);
-    expect(ntcV).toContain("PAB : puissance / Puissance dissipée (PV)");
-    // check targetted result
-    const ntt = calcPage.getSelectById("select_target_result");
-    const nttV = await calcPage.getSelectValueText(ntt);
-    expect(nttV).toContain("Puissance dissipée (PV)");
-    // check searched Parameter
-    const sp = calcPage.getSelectById("select_searched_param");
-    const spV = await calcPage.getSelectValueText(sp);
-    expect(spV).toContain("Z2 - Cote aval (PAB : chute)");
-
-    // check that "compute" button is active
-    const calcButton = calcPage.getCalculateButton();
-    const disabledState = await calcButton.getAttribute("disabled");
-    expect(disabledState).not.toBe("true");
-    // click "compute" button
-    await calcButton.click();
-    // check that result is not empty
-    const hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-
-    // change targetted Nub, check that targetted result changes too
-    await calcPage.changeSelectValue(ntc, 0);
-    const nttV2 = await calcPage.getSelectValueText(ntt);
-    expect(nttV2).not.toContain("Puissance dissipée (PV)");
-  });
-
-  it("create > feed > calculate > clone > calculate clone", async () => {
-    await navbar.clickNewCalculatorButton();
-
-    // 1. create empty Solveur
-    await listPage.clickMenuEntryForCalcType(22); // Solveur
-    await browser.sleep(500);
-
-    // 2. create PAB:Chute, PAB:Nombre and PAB:Puissance linked to one another
-    await navbar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(12); // PAB:Chute
-    await browser.sleep(500);
-    await navbar.clickNewCalculatorButton();
-
-    await listPage.clickMenuEntryForCalcType(13); // PAB:Nombre
-    await browser.sleep(500);
-    // link DHT to PAB:Chute.DH
-    const dht = calcPage.getInputById("DHT");
-    await calcPage.setParamMode(dht, "link");
-    // Calculate DH
-    const dh_nombre = calcPage.getInputById("DH");
-    await calcPage.setParamMode(dh_nombre, "cal");
-
-    await navbar.clickNewCalculatorButton();
-    await listPage.clickMenuEntryForCalcType(6); // PAB:Puissance
-    await browser.sleep(500);
-    // link DH to PAB:Nombre.DH
-    const dh_puiss = calcPage.getInputById("DH");
-    await calcPage.setParamMode(dh_puiss, "link");
-
-    // Go back to Solveur
-    await navbar.clickCalculatorTab(0);
-
-    await calcPage.changeSelectValue(calcPage.getSelectById("select_target_nub"), 1); // "Puissance / PV"
-    await browser.sleep(500);
-    await calcPage.changeSelectValue(calcPage.getSelectById("select_searched_param"), 2); // "Chute / Z2"
-    await browser.sleep(500);
-    await calcPage.getInputById("Ytarget").sendKeys("318");
-
-    // check that "compute" button is active
-    const calcButton = calcPage.getCalculateButton();
-    const disabledState = await calcButton.getAttribute("disabled");
-    expect(disabledState).not.toBe("true");
-    // click "compute" button
-    await calcButton.click();
-    // check that result is not empty
-    const hasResults = await calcPage.hasResults();
-    expect(hasResults).toBe(true);
-
-    // otherwise clickCloneCalcButton() fails with "Element is not clickable at point"
-    await browser.executeScript("window.scrollTo(0, 0);");
-    await calcPage.clickCloneCalcButton();
-    await browser.sleep(500);
-
-    // 4. check existence of the cloned module
-    expect(await navbar.getAllCalculatorTabs().count()).toBe(5);
-    await navbar.clickCalculatorTab(4); // n°4 should be the latest
-
-    // check that result is empty
-    const hasResultsClone1 = await calcPage.hasResults();
-    expect(hasResultsClone1).toBe(false);
-
-    // check that "compute" button is active
-    const calcButtonClone = calcPage.getCalculateButton();
-    const disabledStateClone = await calcButtonClone.getAttribute("disabled");
-    expect(disabledStateClone).not.toBe("true");
-    // click "compute" button
-    await calcButtonClone.click();
-    // check that result is not empty
-    const hasResultsClone2 = await calcPage.hasResults();
-    expect(hasResultsClone2).toBe(true);
-  });
+    let startPage: AppPage;
+    let listPage: ListPage;
+    let calcPage: CalculatorPage;
+    let navbar: Navbar;
+    let sidenav: SideNav;
+    let prefPage: PreferencesPage;
+
+    beforeEach(async () => {
+        startPage = new AppPage();
+        prefPage = new PreferencesPage();
+        listPage = new ListPage();
+        calcPage = new CalculatorPage();
+        navbar = new Navbar();
+        sidenav = new SideNav();
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
+
+    it("load > calculate", async () => {
+        await navbar.clickNewCalculatorButton();
+
+        await navbar.clickMenuButton();
+        await browser.sleep(200);
+
+        await sidenav.clickLoadSessionButton();
+        await browser.sleep(200);
+
+        await sidenav.loadSessionFile("./session/session-solveur-chutes.json");
+        await browser.sleep(200);
+
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(4);
+        await navbar.clickCalculatorTab(3); // n°3 should be the latest
+
+        // check input values
+        expect(await calcPage.getInputById("Xinit").getAttribute("value")).toBe("0.5");
+        expect(await calcPage.getInputById("Ytarget").getAttribute("value")).toBe("252");
+        // check Nub to calculate
+        const ntc = calcPage.getSelectById("select_target_nub");
+        const ntcV = await calcPage.getSelectValueText(ntc);
+        expect(ntcV).toContain("PAB : puissance / Puissance dissipée (PV)");
+        // check targetted result
+        const ntt = calcPage.getSelectById("select_target_result");
+        const nttV = await calcPage.getSelectValueText(ntt);
+        expect(nttV).toContain("Puissance dissipée (PV)");
+        // check searched Parameter
+        const sp = calcPage.getSelectById("select_searched_param");
+        const spV = await calcPage.getSelectValueText(sp);
+        expect(spV).toContain("Z2 - Cote aval (PAB : chute)");
+
+        // check that "compute" button is active
+        const calcButton = calcPage.getCalculateButton();
+        const disabledState = await calcButton.getAttribute("disabled");
+        expect(disabledState).not.toBe("true");
+        // click "compute" button
+        await calcButton.click();
+        // check that result is not empty
+        const hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+
+        // change targetted Nub, check that targetted result changes too
+        await calcPage.changeSelectValue(ntc, 0);
+        const nttV2 = await calcPage.getSelectValueText(ntt);
+        expect(nttV2).not.toContain("Puissance dissipée (PV)");
+    });
+
+    it("create > feed > calculate > clone > calculate clone", async () => {
+        await navbar.clickNewCalculatorButton();
+
+        // 1. create empty Solveur
+        await listPage.clickMenuEntryForCalcType(22); // Solveur
+        await browser.sleep(500);
+
+        // 2. create PAB:Chute, PAB:Nombre and PAB:Puissance linked to one another
+        await navbar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(12); // PAB:Chute
+        await browser.sleep(500);
+        await navbar.clickNewCalculatorButton();
+
+        await listPage.clickMenuEntryForCalcType(13); // PAB:Nombre
+        await browser.sleep(500);
+        // link DHT to PAB:Chute.DH
+        const dht = calcPage.getInputById("DHT");
+        await calcPage.setParamMode(dht, "link");
+        // Calculate DH
+        const dh_nombre = calcPage.getInputById("DH");
+        await calcPage.setParamMode(dh_nombre, "cal");
+
+        await navbar.clickNewCalculatorButton();
+        await listPage.clickMenuEntryForCalcType(6); // PAB:Puissance
+        await browser.sleep(500);
+        // link DH to PAB:Nombre.DH
+        const dh_puiss = calcPage.getInputById("DH");
+        await calcPage.setParamMode(dh_puiss, "link");
+
+        // Go back to Solveur
+        await navbar.clickCalculatorTab(0);
+
+        await calcPage.changeSelectValue(calcPage.getSelectById("select_target_nub"), 1); // "Puissance / PV"
+        await browser.sleep(500);
+        await calcPage.changeSelectValue(calcPage.getSelectById("select_searched_param"), 2); // "Chute / Z2"
+        await browser.sleep(500);
+        await calcPage.getInputById("Ytarget").sendKeys("318");
+
+        // check that "compute" button is active
+        const calcButton = calcPage.getCalculateButton();
+        const disabledState = await calcButton.getAttribute("disabled");
+        expect(disabledState).not.toBe("true");
+        // click "compute" button
+        await calcButton.click();
+        // check that result is not empty
+        const hasResults = await calcPage.hasResults();
+        expect(hasResults).toBe(true);
+
+        // otherwise clickCloneCalcButton() fails with "Element is not clickable at point"
+        await browser.executeScript("window.scrollTo(0, 0);");
+        await calcPage.clickCloneCalcButton();
+        await browser.sleep(500);
+
+        // 4. check existence of the cloned module
+        expect(await navbar.getAllCalculatorTabs().count()).toBe(5);
+        await navbar.clickCalculatorTab(4); // n°4 should be the latest
+
+        // check that result is empty
+        const hasResultsClone1 = await calcPage.hasResults();
+        expect(hasResultsClone1).toBe(false);
+
+        // check that "compute" button is active
+        const calcButtonClone = calcPage.getCalculateButton();
+        const disabledStateClone = await calcButtonClone.getAttribute("disabled");
+        expect(disabledStateClone).not.toBe("true");
+        // click "compute" button
+        await calcButtonClone.click();
+        // check that result is not empty
+        const hasResultsClone2 = await calcPage.hasResults();
+        expect(hasResultsClone2).toBe(true);
+    });
 });
-- 
GitLab


From 66f6cbc36f2026ef4841e22bd32db12da2125e6b Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 13 Aug 2020 10:49:01 +0200
Subject: [PATCH 071/101] Fix #409 - autoformat

---
 src/app/app.component.ts                      | 1622 ++++++++---------
 src/app/app.module.ts                         |  306 ++--
 .../app-setup/app-setup.component.html        |  201 +-
 .../calculator-list.component.html            |   14 +-
 .../dialog-confirm-close-calc.component.html  |   32 +-
 .../dialog-confirm-close-calc.component.ts    |   14 +-
 ...ialog-confirm-empty-session.component.html |   16 +-
 .../dialog-confirm-empty-session.component.ts |    8 +-
 .../dialog-edit-pab.component.html            |  118 +-
 .../dialog-edit-pab.component.ts              |  338 ++--
 .../dialog-edit-param-computed.component.html |   24 +-
 .../dialog-edit-param-computed.component.ts   |   30 +-
 .../dialog-edit-param-values.component.html   |   81 +-
 .../dialog-generate-pab.component.html        |   90 +-
 .../dialog-generate-pab.component.ts          |  144 +-
 ...log-generate-par-simulation.component.html |   42 +-
 ...ialog-generate-par-simulation.component.ts |  184 +-
 ...alog-load-predefined-espece.component.html |   38 +-
 .../dialog-load-session.component.html        |  115 +-
 .../dialog-load-session.component.ts          |  270 +--
 .../dialog-log-entries-details.component.html |    8 +-
 .../dialog-log-entries-details.component.ts   |    4 +-
 .../dialog-save-session.component.html        |   78 +-
 .../dialog-save-session.component.ts          |  162 +-
 .../field-set/field-set.component.html        |   20 +-
 .../fixed-results.component.html              |    8 +-
 .../var-results.component.html                |    8 +-
 .../calculator.component.html                 |   61 +-
 .../generic-input.component.html              |    6 +-
 .../generic-select.component.html             |   17 +-
 .../jet-trajectory-chart.component.html       |    3 +-
 .../log-drawer/log-drawer.component.html      |    4 +-
 ...rugo-compound-results-table.component.html |    8 +-
 .../macrorugo-compound-results.component.html |   12 +-
 .../pab-profile-chart.component.html          |    3 +-
 .../pab-results-table.component.html          |    5 +-
 .../pab-results/pab-results.component.html    |    6 +-
 .../pab-table/pab-table.component.html        |   62 +-
 .../param-computed.component.html             |    8 +-
 .../param-field-line.component.html           |   37 +-
 .../param-field-line.component.ts             |    4 +-
 .../param-link/param-link.component.html      |    5 +-
 .../param-link/param-link.component.ts        |   82 +-
 .../param-values/param-values.component.html  |    6 +-
 .../quicknav/quicknav.component.html          |    6 +-
 .../remous-results.component.html             |   21 +-
 .../results-chart.component.html              |    5 +-
 .../section-results.component.html            |    8 +-
 .../session-properties.component.html         |    6 +-
 .../session-properties.component.ts           |    6 +-
 src/app/services/error.service.ts             |    2 +-
 src/app/services/formulaire.service.ts        |    6 +-
 src/environments/environment.prod.ts          |    2 +-
 53 files changed, 2198 insertions(+), 2168 deletions(-)

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index f308e323b..364b60d6b 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -44,839 +44,839 @@ declare let cordova: any;
 declare let device: any;
 
 @Component({
-  selector: "nghyd-app",
-  templateUrl: "./app.component.html",
-  styleUrls: ["./app.component.scss"],
-  providers: [ErrorService]
+    selector: "nghyd-app",
+    templateUrl: "./app.component.html",
+    styleUrls: ["./app.component.scss"],
+    providers: [ErrorService]
 })
 export class AppComponent implements OnInit, OnDestroy, Observer {
 
-  @ViewChild("sidenav")
-  public sidenav: MatSidenav;
-
-  @ViewChild("navbar")
-  public navbar: MatToolbar;
-
-  /** current calculator, inferred from _currentFormId by setActiveCalc() (used for navbar menu) */
-  public currentCalc: any;
-
-  /** shows or hides the progressbar under the navbar */
-  public showProgressBar = false;
-
-  /** liste des modules de calcul ouverts */
-  private _calculators: Array<{
-    title: string,
-    type: CalculatorType,
-    uid: string,
-    active?: boolean,
-    latestAnchor?: string
-  }> = [];
-
-  /**
-   * id du formulaire courant
-   * on utilise pas directement FormulaireService.currentFormId pour éviter l'erreur
-   * ExpressionChangedAfterItHasBeenCheckedError
-   */
-  private _currentFormId: string;
-
-  private _innerWidth: number;
-
-  constructor(
-    private intlService: I18nService,
-    private appSetupService: ApplicationSetupService,
-    private errorService: ErrorService,
-    private router: Router,
-    private formulaireService: FormulaireService,
-    private httpService: HttpService,
-    private notificationsService: NotificationsService,
-    private confirmEmptySessionDialog: MatDialog,
-    private saveSessionDialog: MatDialog,
-    private loadSessionDialog: MatDialog,
-    private confirmCloseCalcDialog: MatDialog,
-    private hotkeysService: HotkeysService,
-    private matomoInjector: MatomoInjector,
-    private matomoTracker: MatomoTracker
-  ) {
-    ServiceFactory.httpService = httpService;
-    ServiceFactory.applicationSetupService = appSetupService;
-    ServiceFactory.i18nService = intlService;
-    ServiceFactory.formulaireService = formulaireService;
-    ServiceFactory.notificationsService = notificationsService;
-
-    if (! isDevMode()) {
-      // évite de mettre en place un bandeau RGPD
-      this.matomoTracker.disableCookies();
-      // Set custom dimension for Electron / Cordova / pure Web browser
-      this.matomoTracker.setCustomDimension(1, this.getRunningPlatform());
-      // Matomo open-source Web analytics
-      this.matomoInjector.init("https://stasi.g-eau.fr/", 1);
-    }
-
-    this.router.events.subscribe((event: Event) => {
-      // close side navigation when clicking a calculator tab
-      if (event instanceof NavigationEnd) {
-        this.sidenav.close();
-        window.scrollTo(0, 0);
-      }
-      // [de]activate calc tabs depending on loaded route
-      if (event instanceof ActivationEnd) {
-        const path = event.snapshot.url[0].path;
-        if (path === "calculator") {
-          const calcUid = event.snapshot.params.uid;
-          if (this.calculatorExists(calcUid)) {
-            this.setActiveCalc(calcUid);
-          } else {
-            // if required calculator does not exist, redirect to list page
-            this.toList();
-          }
-        } else {
-          this.setActiveCalc(null);
+    @ViewChild("sidenav")
+    public sidenav: MatSidenav;
+
+    @ViewChild("navbar")
+    public navbar: MatToolbar;
+
+    /** current calculator, inferred from _currentFormId by setActiveCalc() (used for navbar menu) */
+    public currentCalc: any;
+
+    /** shows or hides the progressbar under the navbar */
+    public showProgressBar = false;
+
+    /** liste des modules de calcul ouverts */
+    private _calculators: Array<{
+        title: string,
+        type: CalculatorType,
+        uid: string,
+        active?: boolean,
+        latestAnchor?: string
+    }> = [];
+
+    /**
+     * id du formulaire courant
+     * on utilise pas directement FormulaireService.currentFormId pour éviter l'erreur
+     * ExpressionChangedAfterItHasBeenCheckedError
+     */
+    private _currentFormId: string;
+
+    private _innerWidth: number;
+
+    constructor(
+        private intlService: I18nService,
+        private appSetupService: ApplicationSetupService,
+        private errorService: ErrorService,
+        private router: Router,
+        private formulaireService: FormulaireService,
+        private httpService: HttpService,
+        private notificationsService: NotificationsService,
+        private confirmEmptySessionDialog: MatDialog,
+        private saveSessionDialog: MatDialog,
+        private loadSessionDialog: MatDialog,
+        private confirmCloseCalcDialog: MatDialog,
+        private hotkeysService: HotkeysService,
+        private matomoInjector: MatomoInjector,
+        private matomoTracker: MatomoTracker
+    ) {
+        ServiceFactory.httpService = httpService;
+        ServiceFactory.applicationSetupService = appSetupService;
+        ServiceFactory.i18nService = intlService;
+        ServiceFactory.formulaireService = formulaireService;
+        ServiceFactory.notificationsService = notificationsService;
+
+        if (!isDevMode()) {
+            // évite de mettre en place un bandeau RGPD
+            this.matomoTracker.disableCookies();
+            // Set custom dimension for Electron / Cordova / pure Web browser
+            this.matomoTracker.setCustomDimension(1, this.getRunningPlatform());
+            // Matomo open-source Web analytics
+            this.matomoInjector.init("https://stasi.g-eau.fr/", 1);
         }
-      }
-    });
-
-    // hotkeys listeners
-    this.hotkeysService.add(new Hotkey("alt+s", AppComponent.onHotkey(this.saveForm, this)));
-    this.hotkeysService.add(new Hotkey("alt+o", AppComponent.onHotkey(this.loadSession, this)));
-    this.hotkeysService.add(new Hotkey("alt+q", AppComponent.onHotkey(this.emptySession, this)));
-    this.hotkeysService.add(new Hotkey("alt+n", AppComponent.onHotkey(this.toList, this)));
-    this.hotkeysService.add(new Hotkey("alt+g", AppComponent.onHotkey(this.toDiagram, this)));
-  }
-
-  /**
-   * Wrapper for hotkeys triggers, that executes given function only if
-   * hotkeys are enabled in app preferences
-   * @param func function to execute when hotkey is entered
-   */
-  public static onHotkey(func: any, that: any) {
-    return (event: KeyboardEvent): boolean => {
-      if (ServiceFactory.applicationSetupService.enableHotkeys) {
-        func.call(that);
-        return false; // Prevent bubbling
-      } else {
-        console.log("Hotkeys are disabled in app preferences");
-      }
-    };
-  }
-
-  public static exportAsImage(canvas: HTMLCanvasElement) {
-    canvas.toBlob((blob) => {
-      AppComponent.download(blob, "chart.png", "image/png");
-    }); // defaults to image/png
-  }
-
-  /**
-   * Exports a results data table to XLSX format, and removes "help" mentions
-   * from the parameters names columns if needed
-   * @param table results data table
-   * @param namesInFirstCol if true, will look for parameters names in 1st column
-   *    (for fixed results), else in 1st row (variable results, by default)
-   */
-  public static exportAsSpreadsheet(table: ElementRef, namesInFirstCol: boolean = false) {
-    const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(table);
-
-    let regExCellKey;
-    if (namesInFirstCol) {
-      regExCellKey = new RegExp("^A\\d$");
-    } else {
-      regExCellKey = new RegExp("^\\w1$");
-    }
-    // browse all cells
-    for (const key in ws) {
-      // look for 1st row or 1st col
-      if (regExCellKey.test(key) === true) {
-        const regExCellName = new RegExp("help$");
-        const v: string = ws[key].v;
-        // remove "help" from cell name's ending
-        if (regExCellName.test(v) === true) {
-          const newV = v.substr(0, v.length - 4);
-          ws[key].v = newV;
+
+        this.router.events.subscribe((event: Event) => {
+            // close side navigation when clicking a calculator tab
+            if (event instanceof NavigationEnd) {
+                this.sidenav.close();
+                window.scrollTo(0, 0);
+            }
+            // [de]activate calc tabs depending on loaded route
+            if (event instanceof ActivationEnd) {
+                const path = event.snapshot.url[0].path;
+                if (path === "calculator") {
+                    const calcUid = event.snapshot.params.uid;
+                    if (this.calculatorExists(calcUid)) {
+                        this.setActiveCalc(calcUid);
+                    } else {
+                        // if required calculator does not exist, redirect to list page
+                        this.toList();
+                    }
+                } else {
+                    this.setActiveCalc(null);
+                }
+            }
+        });
+
+        // hotkeys listeners
+        this.hotkeysService.add(new Hotkey("alt+s", AppComponent.onHotkey(this.saveForm, this)));
+        this.hotkeysService.add(new Hotkey("alt+o", AppComponent.onHotkey(this.loadSession, this)));
+        this.hotkeysService.add(new Hotkey("alt+q", AppComponent.onHotkey(this.emptySession, this)));
+        this.hotkeysService.add(new Hotkey("alt+n", AppComponent.onHotkey(this.toList, this)));
+        this.hotkeysService.add(new Hotkey("alt+g", AppComponent.onHotkey(this.toDiagram, this)));
+    }
+
+    /**
+     * Wrapper for hotkeys triggers, that executes given function only if
+     * hotkeys are enabled in app preferences
+     * @param func function to execute when hotkey is entered
+     */
+    public static onHotkey(func: any, that: any) {
+        return (event: KeyboardEvent): boolean => {
+            if (ServiceFactory.applicationSetupService.enableHotkeys) {
+                func.call(that);
+                return false; // Prevent bubbling
+            } else {
+                console.log("Hotkeys are disabled in app preferences");
+            }
+        };
+    }
+
+    public static exportAsImage(canvas: HTMLCanvasElement) {
+        canvas.toBlob((blob) => {
+            AppComponent.download(blob, "chart.png", "image/png");
+        }); // defaults to image/png
+    }
+
+    /**
+     * Exports a results data table to XLSX format, and removes "help" mentions
+     * from the parameters names columns if needed
+     * @param table results data table
+     * @param namesInFirstCol if true, will look for parameters names in 1st column
+     *    (for fixed results), else in 1st row (variable results, by default)
+     */
+    public static exportAsSpreadsheet(table: ElementRef, namesInFirstCol: boolean = false) {
+        const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(table);
+
+        let regExCellKey;
+        if (namesInFirstCol) {
+            regExCellKey = new RegExp("^A\\d$");
+        } else {
+            regExCellKey = new RegExp("^\\w1$");
         }
-      }
-    }
-
-    const wb: XLSX.WorkBook = XLSX.utils.book_new();
-    XLSX.utils.book_append_sheet(wb, ws, "default");
-    const wopts: any = { bookType: "xlsx", bookSST: false, type: "array" };
-    const wbout = XLSX.write(wb, wopts);
-    AppComponent.download(
-      new Blob([wbout], {type: "application/octet-stream"}),
-      "cassiopee-results.xlsx",
-      "application/vnd.ms-excel"
-    );
-  }
-
-  /**
-   * Cordova-compatible file download method
-   * @see https://esstudio.site/2019/02/16/downloading-saving-and-opening-files-with-cordova.html
-   * @param blob binary object to download
-   * @param filename
-   * @param mimeType
-   */
-  public static download(blob: Blob, filename: string, mimeType: string) {
-    if (window.cordova && cordova.platformId !== "browser") {
-      document.addEventListener("deviceready", function () {
-        // save file using codova-plugin-file
-        let storageLocation = "";
-        switch (device.platform) {
-          case "Android":
-            storageLocation = cordova.file.externalDataDirectory;
-            break;
-          case "iOS":
-            storageLocation = cordova.file.documentsDirectory;
-            break;
+        // browse all cells
+        for (const key in ws) {
+            // look for 1st row or 1st col
+            if (regExCellKey.test(key) === true) {
+                const regExCellName = new RegExp("help$");
+                const v: string = ws[key].v;
+                // remove "help" from cell name's ending
+                if (regExCellName.test(v) === true) {
+                    const newV = v.substr(0, v.length - 4);
+                    ws[key].v = newV;
+                }
+            }
         }
-        const folderPath = storageLocation;
-        window.resolveLocalFileSystemURL(folderPath, (dir) => {
-            dir.getFile(
-              filename,
-              { create: true },
-              (file) => {
-                file.createWriter(
-                  function (fileWriter) {
-                    fileWriter.write(blob);
-                    fileWriter.onwriteend = () => {
-                      const url = file.toURL();
-                      cordova.plugins.fileOpener2.open(url, mimeType, {
-                        error: (err) => {
-                          console.error(err);
-                          alert(`No app found to handle type "${mimeType}"`);
+
+        const wb: XLSX.WorkBook = XLSX.utils.book_new();
+        XLSX.utils.book_append_sheet(wb, ws, "default");
+        const wopts: any = { bookType: "xlsx", bookSST: false, type: "array" };
+        const wbout = XLSX.write(wb, wopts);
+        AppComponent.download(
+            new Blob([wbout], { type: "application/octet-stream" }),
+            "cassiopee-results.xlsx",
+            "application/vnd.ms-excel"
+        );
+    }
+
+    /**
+     * Cordova-compatible file download method
+     * @see https://esstudio.site/2019/02/16/downloading-saving-and-opening-files-with-cordova.html
+     * @param blob binary object to download
+     * @param filename
+     * @param mimeType
+     */
+    public static download(blob: Blob, filename: string, mimeType: string) {
+        if (window.cordova && cordova.platformId !== "browser") {
+            document.addEventListener("deviceready", function () {
+                // save file using codova-plugin-file
+                let storageLocation = "";
+                switch (device.platform) {
+                    case "Android":
+                        storageLocation = cordova.file.externalDataDirectory;
+                        break;
+                    case "iOS":
+                        storageLocation = cordova.file.documentsDirectory;
+                        break;
+                }
+                const folderPath = storageLocation;
+                window.resolveLocalFileSystemURL(folderPath, (dir) => {
+                    dir.getFile(
+                        filename,
+                        { create: true },
+                        (file) => {
+                            file.createWriter(
+                                function (fileWriter) {
+                                    fileWriter.write(blob);
+                                    fileWriter.onwriteend = () => {
+                                        const url = file.toURL();
+                                        cordova.plugins.fileOpener2.open(url, mimeType, {
+                                            error: (err) => {
+                                                console.error(err);
+                                                alert(`No app found to handle type "${mimeType}"`);
+                                            },
+                                            success: () => {
+                                                console.log("success with opening the file");
+                                            }
+                                        });
+                                    };
+                                    fileWriter.onerror = function (err) {
+                                        console.error(err);
+                                    };
+                                },
+                                function (err) {
+                                    console.error(err);
+                                }
+                            );
                         },
-                        success: () => {
-                          console.log("success with opening the file");
+                        (err) => {
+                            console.error(err);
                         }
-                      });
-                    };
-                    fileWriter.onerror = function (err) {
-                      console.error(err);
-                    };
-                  },
-                  function (err) {
+                    );
+                }, (err) => {
                     console.error(err);
-                  }
+                }
                 );
-              },
-              (err) => {
-                console.error(err);
-              }
+            });
+        } else {
+            saveAs(blob, filename);
+        }
+    }
+
+    /**
+     * Triggered at app startup.
+     * Preferences are loaded by app setup service
+     * @see ApplicationSetupService.construct()
+     */
+    ngOnInit() {
+        this.formulaireService.addObserver(this);
+        this.subscribeErrorService();
+        this._innerWidth = window.innerWidth;
+    }
+
+    ngOnDestroy() {
+        this.unsubscribeErrorService();
+        this.formulaireService.removeObserver(this);
+    }
+
+    @HostListener("window:resize", ["$event"])
+    onResize(event) {
+        // keep track of window size for navbar tabs arrangement
+        this._innerWidth = window.innerWidth;
+    }
+
+    public get uitextSidenavNewCalc() {
+        return this.intlService.localizeText("INFO_MENU_NOUVELLE_CALC");
+    }
+
+    public get uitextSidenavParams() {
+        return this.intlService.localizeText("INFO_SETUP_TITLE");
+    }
+
+    public get uitextSidenavLoadSession() {
+        return this.intlService.localizeText("INFO_MENU_LOAD_SESSION_TITLE");
+    }
+
+    public get uitextSidenavSaveSession() {
+        return this.intlService.localizeText("INFO_MENU_SAVE_SESSION_TITLE");
+    }
+
+    public get uitextSidenavEmptySession() {
+        return this.intlService.localizeText("INFO_MENU_EMPTY_SESSION_TITLE");
+    }
+
+    public get uitextSidenavDiagram() {
+        return this.intlService.localizeText("INFO_MENU_DIAGRAM_TITLE");
+    }
+
+    public get uitextSidenavSessionProps() {
+        return this.intlService.localizeText("INFO_MENU_SESSION_PROPS");
+    }
+
+    public get uitextSidenavReportBug() {
+        return this.intlService.localizeText("INFO_MENU_REPORT_BUG");
+    }
+
+    public get uitextSidenavHelp() {
+        return this.intlService.localizeText("INFO_MENU_HELP_TITLE");
+    }
+
+    public get uitextSelectCalc() {
+        return this.intlService.localizeText("INFO_MENU_SELECT_CALC");
+    }
+
+    public getCalculatorLabel(t: CalculatorType) {
+        return decodeHtml(this.formulaireService.getLocalisedTitleFromCalculatorType(t));
+    }
+
+    public getFullCalculatorTitle(calc: { title: string, type: CalculatorType, active?: boolean }): string {
+        return decodeHtml(calc.title + " (" + this.getCalculatorLabel(calc.type) + ")");
+    }
+
+    public get calculators() {
+        return this._calculators;
+    }
+
+    public get currentFormId() {
+        return this._currentFormId;
+    }
+
+    public get currentRoute(): string {
+        return this.router.url;
+    }
+
+    public get currentCalcUid(): string {
+        return this.currentCalc ? this.currentCalc.uid : undefined;
+    }
+
+    public setActiveCalc(uid: string) {
+        this._calculators.forEach((calc) => {
+            calc.active = (calc.uid === uid);
+        });
+        // mark current calc for navbar menu
+        const index = this.getCalculatorIndexFromId(uid);
+        this.currentCalc = this._calculators[index];
+    }
+
+    /**
+     * Close calculator using middle click on tab
+     */
+    public onMouseUp(event: any, uid: string) {
+        if (event.which === 2) {
+            const dialogRef = this.confirmCloseCalcDialog.open(
+                DialogConfirmCloseCalcComponent,
+                {
+                    data: {
+                        uid: uid
+                    },
+                    disableClose: true
+                }
             );
-          }, (err) => {
-            console.error(err);
-          }
+            dialogRef.afterClosed().subscribe(result => {
+                if (result) {
+                    this.formulaireService.requestCloseForm(uid);
+                }
+            });
+        }
+    }
+
+    /**
+     * Returns true if sum of open calculator tabs witdh is lower than navbar
+     * available space (ie. if navbar is not overflowing), false otherwise
+     */
+    public get tabsFitInNavbar() {
+        // manual breakpoints
+        // @WARNING keep in sync with .calculator-buttons sizes in app.component.scss
+        let tabsLimit = 0;
+        if (this._innerWidth > 480) {
+            tabsLimit = 3;
+        }
+        if (this._innerWidth > 640) {
+            tabsLimit = 4;
+        }
+        if (this._innerWidth > 800) {
+            tabsLimit = 6;
+        }
+
+        const fits = this._calculators.length <= tabsLimit;
+        return fits;
+    }
+
+    /**
+     * abonnement au service d'erreurs
+     */
+    private subscribeErrorService() {
+        this.errorService.addObserver(this);
+    }
+
+    private unsubscribeErrorService() {
+        this.errorService.removeObserver(this);
+    }
+
+    public get enableHeaderDoc(): boolean {
+        return this.currentRoute === "/list" && this._calculators.length === 0;
+    }
+
+    public get enableSaveSessionMenu(): boolean {
+        return this._calculators.length > 0;
+    }
+
+    public get enableModulesDiagramMenu(): boolean {
+        return this._calculators.length > 0;
+    }
+
+    public get enableSessionPropertiesMenu(): boolean {
+        return this._calculators.length > 0;
+    }
+
+    public get enableEmptySessionMenu(): boolean {
+        return this._calculators.length > 0;
+    }
+
+    // interface Observer
+
+    public update(sender: any, data: any): void {
+        if (sender instanceof FormulaireService) {
+            switch (data["action"]) {
+                case "createForm":
+                    // add newly created form to calculators list
+                    const f: FormulaireDefinition = data["form"];
+                    this._calculators.push(
+                        {
+                            "title": f.calculatorName,
+                            "type": f.calculatorType,
+                            "uid": f.uid
+                        }
+                    );
+
+                    // abonnement en tant qu'observateur du nouveau formulaire
+                    f.addObserver(this);
+                    break;
+
+                case "invalidFormId":
+                    this.toList();
+                    break;
+
+                case "currentFormChanged":
+                    this._currentFormId = data["formId"];
+                    break;
+
+                case "saveForm":
+                    this.saveForm(data["form"]);
+                    break;
+
+                case "closeForm":
+                    const form: FormulaireDefinition = data["form"];
+                    this.closeCalculator(form);
+                    break;
+            }
+        } else if (sender instanceof FormulaireDefinition) {
+            switch (data["action"]) {
+                case "nameChanged":
+                    this.updateCalculatorTitle(sender, data["name"]);
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Returns true if a form having "formUid" as UID exists
+     * @param formId UID to look for
+     */
+    private calculatorExists(formId: string): boolean {
+        return (this.getCalculatorIndexFromId(formId) > -1);
+    }
+
+    private getCalculatorIndexFromId(formId: string) {
+        const index = this._calculators.reduce((resultIndex, calc, currIndex) => {
+            if (resultIndex === -1 && calc["uid"] === formId) {
+                resultIndex = currIndex;
+            }
+            return resultIndex;
+        }, -1);
+
+        return index;
+    }
+
+    private updateCalculatorTitle(f: FormulaireDefinition, title: string) {
+        const formIndex = this.getCalculatorIndexFromId(f.uid);
+        this._calculators[formIndex]["title"] = title;
+    }
+
+    /**
+     * Saves a JSON serialised session file, for one or more calc modules
+     * @param calcList modules to save
+     * @param filename
+     */
+    private saveSession(calcList: any[], filename: string) {
+        const session: string = this.buildSessionFile(calcList);
+        if (!isDevMode()) {
+            this.matomoTracker.trackEvent("userAction", "saveSession");
+        }
+        this.formulaireService.downloadTextFile(session, filename);
+    }
+
+    /**
+     * Builds a session file including Nubs, GUI-specific Nubs metadata,
+     * model settings, GUI settings
+     * @param calcList Nubs to save
+     */
+    private buildSessionFile(calcList: any[]): string {
+        const serialiseOptions: { [key: string]: {} } = {};
+        for (const c of calcList) {
+            if (c.selected) {
+                serialiseOptions[c.uid] = { // GUI-dependent metadata to add to the session file
+                    title: c.title
+                };
+            }
+        }
+        const settings = {
+            precision: this.appSetupService.computePrecision,
+            maxIterations: this.appSetupService.maxIterations,
+            displayPrecision: this.appSetupService.displayPrecision,
+        };
+        return Session.getInstance().serialise(serialiseOptions, settings);
+    }
+
+    /**
+     * Supprime un module de calcul **de l'interface**
+     * ATTENTION, ne supprime pas le module de calcul en mémoire !
+     * Pour cela, utiliser FormulaireService.requestCloseForm(form.uid);
+     * @param form module de calcul à fermer
+     */
+    private closeCalculator(form: FormulaireDefinition) {
+        const formId: string = form.uid;
+
+        // désabonnement en tant qu'observateur
+        form.removeObserver(this);
+        // recherche du module de calcul correspondant à formId
+        const closedIndex = this.getCalculatorIndexFromId(formId);
+
+        /*
+         * détermination du nouveau module de calcul à afficher :
+         * - celui après celui supprimé
+         * - ou celui avant celui supprimé si on supprime le dernier
+         */
+        let newId = null;
+        const l = this._calculators.length;
+        if (l > 1) {
+            if (closedIndex === l - 1) {
+                newId = this._calculators[closedIndex - 1]["uid"];
+            } else {
+                newId = this._calculators[closedIndex + 1]["uid"];
+            }
+        }
+
+        // suppression
+
+        this._calculators = this._calculators.filter(calc => {
+            return formId !== calc["uid"];
+        });
+
+        // MAJ affichage
+
+        if (newId === null) {
+            this.toList();
+            this._currentFormId = null;
+        } else {
+            this.toCalc(newId);
+        }
+    }
+
+    private toList() {
+        this.router.navigate(["/list"]);
+    }
+
+    public toDiagram() {
+        this.router.navigate(["/diagram"]);
+    }
+
+    public toCalc(id: string) {
+        this.router.navigate(["/calculator", id]);
+        this.setActiveCalc(id);
+        setTimeout(() => { // @WARNING clodo trick to wait for Angular refresh
+            this.scrollToLatestQuicknav(id);
+        }, 50);
+    }
+
+    /**
+     * restarts a fresh session by closing all calculators
+     */
+    public emptySession() {
+        const dialogRef = this.confirmEmptySessionDialog.open(
+            DialogConfirmEmptySessionComponent,
+            { disableClose: true }
         );
-      });
-    } else {
-      saveAs(blob, filename);
-    }
-  }
-
-  /**
-   * Triggered at app startup.
-   * Preferences are loaded by app setup service
-   * @see ApplicationSetupService.construct()
-   */
-  ngOnInit() {
-    this.formulaireService.addObserver(this);
-    this.subscribeErrorService();
-    this._innerWidth = window.innerWidth;
-  }
-
-  ngOnDestroy() {
-    this.unsubscribeErrorService();
-    this.formulaireService.removeObserver(this);
-  }
-
-  @HostListener("window:resize", ["$event"])
-  onResize(event) {
-    // keep track of window size for navbar tabs arrangement
-    this._innerWidth = window.innerWidth;
-  }
-
-  public get uitextSidenavNewCalc() {
-    return this.intlService.localizeText("INFO_MENU_NOUVELLE_CALC");
-  }
-
-  public get uitextSidenavParams() {
-    return this.intlService.localizeText("INFO_SETUP_TITLE");
-  }
-
-  public get uitextSidenavLoadSession() {
-    return this.intlService.localizeText("INFO_MENU_LOAD_SESSION_TITLE");
-  }
-
-  public get uitextSidenavSaveSession() {
-    return this.intlService.localizeText("INFO_MENU_SAVE_SESSION_TITLE");
-  }
-
-  public get uitextSidenavEmptySession() {
-    return this.intlService.localizeText("INFO_MENU_EMPTY_SESSION_TITLE");
-  }
-
-  public get uitextSidenavDiagram() {
-    return this.intlService.localizeText("INFO_MENU_DIAGRAM_TITLE");
-  }
-
-  public get uitextSidenavSessionProps() {
-    return this.intlService.localizeText("INFO_MENU_SESSION_PROPS");
-  }
-
-  public get uitextSidenavReportBug() {
-    return this.intlService.localizeText("INFO_MENU_REPORT_BUG");
-  }
-
-  public get uitextSidenavHelp() {
-    return this.intlService.localizeText("INFO_MENU_HELP_TITLE");
-  }
-
-  public get uitextSelectCalc() {
-    return this.intlService.localizeText("INFO_MENU_SELECT_CALC");
-  }
-
-  public getCalculatorLabel(t: CalculatorType) {
-    return decodeHtml(this.formulaireService.getLocalisedTitleFromCalculatorType(t));
-  }
-
-  public getFullCalculatorTitle(calc: { title: string, type: CalculatorType, active?: boolean }): string {
-    return decodeHtml(calc.title + " (" + this.getCalculatorLabel(calc.type) + ")");
-  }
-
-  public get calculators() {
-    return this._calculators;
-  }
-
-  public get currentFormId() {
-    return this._currentFormId;
-  }
-
-  public get currentRoute(): string {
-    return this.router.url;
-  }
-
-  public get currentCalcUid(): string {
-    return this.currentCalc ? this.currentCalc.uid : undefined;
-  }
-
-  public setActiveCalc(uid: string) {
-    this._calculators.forEach((calc) => {
-      calc.active = (calc.uid === uid);
-    });
-    // mark current calc for navbar menu
-    const index = this.getCalculatorIndexFromId(uid);
-    this.currentCalc = this._calculators[index];
-  }
-
-  /**
-   * Close calculator using middle click on tab
-   */
-  public onMouseUp(event: any, uid: string) {
-    if (event.which === 2) {
-      const dialogRef = this.confirmCloseCalcDialog.open(
-        DialogConfirmCloseCalcComponent,
-        {
-            data: {
-              uid: uid
+        dialogRef.afterClosed().subscribe(result => {
+            if (result) {
+                this.doEmptySession();
+            }
+        });
+    }
+
+    public doEmptySession() {
+        // temporarily disable notifications
+        const oldNotifState = this.appSetupService.enableNotifications;
+        this.appSetupService.enableNotifications = false;
+        // close all calculators
+        for (const c of this._calculators) {
+            const form = this.formulaireService.getFormulaireFromId(c.uid);
+            this.formulaireService.requestCloseForm(form.uid);
+        }
+        // just to be sure, get rid of any Nub possibly stuck in session without any form attached
+        Session.getInstance().clear();
+        Session.getInstance().documentation = "";
+        // restore notifications
+        this.appSetupService.enableNotifications = oldNotifState;
+    }
+
+    public loadSession() {
+        // création du dialogue de sélection des formulaires à sauver
+        const dialogRef = this.loadSessionDialog.open(
+            DialogLoadSessionComponent,
+            { disableClose: false }
+        );
+        dialogRef.afterClosed().subscribe(result => {
+            if (result) {
+                if (result.emptySession) {
+                    this.doEmptySession();
+                }
+                this.loadSessionFile(result.file, result.calculators);
+            }
+        });
+    }
+
+    public loadSessionFile(f: File, info?: any) {
+        // notes merge detection: was there already some notes ?
+        const existingNotes = Session.getInstance().documentation;
+        // load
+        this.formulaireService.loadSession(f, info)
+            .then((data) => {
+                if (data.hasErrors) {
+                    this.notificationsService.notify(this.intlService.localizeText("ERROR_PROBLEM_LOADING_SESSION"), 3500);
+                } else {
+                    if (data.loaded && data.loaded.length > 0) {
+                        if (!isDevMode()) {
+                            this.matomoTracker.trackEvent("userAction", "loadSession");
+                        }
+                        // notes merge detection: was there already some notes ?
+                        const currentNotes = Session.getInstance().documentation;
+                        if (existingNotes !== "" && currentNotes !== existingNotes) {
+                            this.notificationsService.notify(this.intlService.localizeText("WARNING_SESSION_LOAD_NOTES_MERGED"), 3500);
+                        }
+                        // go to calc or diagram depending on what was loaded
+                        if (data.loaded.length > 1) {
+                            this.toDiagram();
+                        } else {
+                            this.toCalc(data.loaded[0]);
+                        }
+                    }
+                }
+            })
+            .catch((err) => {
+                this.notificationsService.notify(this.intlService.localizeText("ERROR_LOADING_SESSION"), 3500);
+                console.error("error loading session - ", err);
+                // rollback to ensure session is clean
+                this.doEmptySession();
+            });
+    }
+
+    /**
+     * Demande au client d'envoyer un email (génère un lien mailto:), pré-rempli
+     * avec un texte standard, et le contenu de la session au format JSON
+     */
+    public reportBug() {
+        const recipient = "bug@cassiopee.g-eau.fr";
+        const subject = "[ISSUE] " + this.intlService.localizeText("INFO_REPORT_BUG_SUBJECT");
+        let body = this.intlService.localizeText("INFO_REPORT_BUG_BODY");
+
+        // add session description
+
+        // get all forms
+        const list = [];
+        for (const c of this._calculators) {
+            list.push({
+                title: c.title,
+                uid: c.uid,
+                selected: true
+            });
+        }
+        let session = this.buildSessionFile(list);
+
+        // compress
+        session = pako.deflate(session, { to: "string" }); // gzip (zlib)
+        session = btoa(session); // base64
+
+        body += session + "\n";
+        body = encodeURIComponent(body);
+
+        const mailtoURL = `mailto:${recipient}?subject=${subject}&body=${body}`;
+
+        // temporarily disable tab closing alert, as tab won't be closed for real
+        this.appSetupService.warnBeforeTabClose = false;
+        window.location.href = mailtoURL;
+        this.appSetupService.warnBeforeTabClose = true;
+    }
+
+    public get revisionInfo(): any {
+        return {
+            jalhyd: {
+                date: jalhydDateRev,
+                version: jalhydVersion,
             },
-            disableClose: true
+            nghyd: {
+                date: nghydDateRev,
+                version: nghydVersion
+            }
+        };
+    }
+
+    /**
+     * sauvegarde du/des formulaires
+     * @param form formulaire à sélectionner par défaut dans la liste
+     */
+    public saveForm(form?: FormulaireDefinition) {
+        // liste des formulaires
+        const list = [];
+        for (const c of this._calculators) {
+            const uid = c["uid"];
+            const nub = Session.getInstance().findNubByUid(uid);
+            let required = nub.getTargettedNubs().map((req) => {
+                return req.uid;
+            });
+            required = required.filter(
+                (item, index) => required.indexOf(item) === index // deduplicate
+            );
+            list.push({
+                "children": nub.getChildren().map((child) => {
+                    return child.uid;
+                }),
+                "requires": required,
+                "selected": form ? (uid === form.uid) : true,
+                "title": c["title"],
+                "uid": uid
+            });
         }
-      );
-      dialogRef.afterClosed().subscribe(result => {
-          if (result) {
-              this.formulaireService.requestCloseForm(uid);
-          }
-      });
-    }
-  }
-
-  /**
-   * Returns true if sum of open calculator tabs witdh is lower than navbar
-   * available space (ie. if navbar is not overflowing), false otherwise
-   */
-  public get tabsFitInNavbar() {
-    // manual breakpoints
-    // @WARNING keep in sync with .calculator-buttons sizes in app.component.scss
-    let tabsLimit = 0;
-    if (this._innerWidth > 480) {
-      tabsLimit = 3;
-    }
-    if (this._innerWidth > 640) {
-      tabsLimit = 4;
-    }
-    if (this._innerWidth > 800) {
-      tabsLimit = 6;
-    }
-
-    const fits = this._calculators.length <= tabsLimit;
-    return fits;
-  }
-
-  /**
-   * abonnement au service d'erreurs
-   */
-  private subscribeErrorService() {
-    this.errorService.addObserver(this);
-  }
-
-  private unsubscribeErrorService() {
-    this.errorService.removeObserver(this);
-  }
-
-  public get enableHeaderDoc(): boolean {
-    return this.currentRoute === "/list" && this._calculators.length === 0;
-  }
-
-  public get enableSaveSessionMenu(): boolean {
-    return this._calculators.length > 0;
-  }
-
-  public get enableModulesDiagramMenu(): boolean {
-    return this._calculators.length > 0;
-  }
-
-  public get enableSessionPropertiesMenu(): boolean {
-    return this._calculators.length > 0;
-  }
-
-  public get enableEmptySessionMenu(): boolean {
-    return this._calculators.length > 0;
-  }
-
-  // interface Observer
-
-  public update(sender: any, data: any): void {
-    if (sender instanceof FormulaireService) {
-      switch (data["action"]) {
-        case "createForm":
-        // add newly created form to calculators list
-          const f: FormulaireDefinition = data["form"];
-          this._calculators.push(
+        // dialogue de sélection des formulaires à sauver
+        const dialogRef = this.saveSessionDialog.open(
+            DialogSaveSessionComponent,
             {
-              "title": f.calculatorName,
-              "type": f.calculatorType,
-              "uid": f.uid
+                data: {
+                    calculators: list
+                },
+                disableClose: false
             }
-          );
-
-          // abonnement en tant qu'observateur du nouveau formulaire
-          f.addObserver(this);
-          break;
-
-        case "invalidFormId":
-          this.toList();
-          break;
-
-        case "currentFormChanged":
-          this._currentFormId = data["formId"];
-          break;
-
-        case "saveForm":
-          this.saveForm(data["form"]);
-          break;
-
-        case "closeForm":
-          const form: FormulaireDefinition = data["form"];
-          this.closeCalculator(form);
-          break;
-      }
-    } else if (sender instanceof FormulaireDefinition) {
-      switch (data["action"]) {
-        case "nameChanged":
-          this.updateCalculatorTitle(sender, data["name"]);
-          break;
-      }
-    }
-  }
-
-  /**
-   * Returns true if a form having "formUid" as UID exists
-   * @param formId UID to look for
-   */
-  private calculatorExists(formId: string): boolean {
-    return (this.getCalculatorIndexFromId(formId) > -1);
-  }
-
-  private getCalculatorIndexFromId(formId: string) {
-    const index = this._calculators.reduce((resultIndex, calc, currIndex) => {
-      if (resultIndex === -1 && calc["uid"] === formId) {
-        resultIndex = currIndex;
-      }
-      return resultIndex;
-    }, -1);
-
-    return index;
-  }
-
-  private updateCalculatorTitle(f: FormulaireDefinition, title: string) {
-    const formIndex = this.getCalculatorIndexFromId(f.uid);
-    this._calculators[formIndex]["title"] = title;
-  }
-
-  /**
-   * Saves a JSON serialised session file, for one or more calc modules
-   * @param calcList modules to save
-   * @param filename
-   */
-  private saveSession(calcList: any[], filename: string) {
-    const session: string = this.buildSessionFile(calcList);
-    if (! isDevMode()) {
-      this.matomoTracker.trackEvent("userAction", "saveSession");
-    }
-    this.formulaireService.downloadTextFile(session, filename);
-  }
-
-  /**
-   * Builds a session file including Nubs, GUI-specific Nubs metadata,
-   * model settings, GUI settings
-   * @param calcList Nubs to save
-   */
-  private buildSessionFile(calcList: any[]): string {
-    const serialiseOptions: { [key: string]: {} } = {};
-    for (const c of calcList) {
-      if (c.selected) {
-        serialiseOptions[c.uid] = { // GUI-dependent metadata to add to the session file
-          title: c.title
-        };
-      }
-    }
-    const settings = {
-      precision: this.appSetupService.computePrecision,
-      maxIterations: this.appSetupService.maxIterations,
-      displayPrecision: this.appSetupService.displayPrecision,
-    };
-    return Session.getInstance().serialise(serialiseOptions, settings);
-  }
-
-  /**
-   * Supprime un module de calcul **de l'interface**
-   * ATTENTION, ne supprime pas le module de calcul en mémoire !
-   * Pour cela, utiliser FormulaireService.requestCloseForm(form.uid);
-   * @param form module de calcul à fermer
-   */
-  private closeCalculator(form: FormulaireDefinition) {
-    const formId: string = form.uid;
-
-    // désabonnement en tant qu'observateur
-    form.removeObserver(this);
-    // recherche du module de calcul correspondant à formId
-    const closedIndex = this.getCalculatorIndexFromId(formId);
-
-    /*
-     * détermination du nouveau module de calcul à afficher :
-     * - celui après celui supprimé
-     * - ou celui avant celui supprimé si on supprime le dernier
+        );
+        dialogRef.afterClosed().subscribe(result => {
+            if (result) {
+                let name = result.filename;
+
+                // ajout extension ".json"
+                const re = /.+\.json/;
+                const match = re.exec(name.toLowerCase());
+                if (match === null) {
+                    name = name + ".json";
+                }
+
+                this.saveSession(result.calculators, name);
+            }
+        });
+    }
+
+    /**
+     * Moves the view to one of the Quicknav anchors in the page, and saves this anchor
+     * as the latest visited, in _calculators list
+     * @param itemId a Quicknav anchor id (ex: "input" or "results")
      */
-    let newId = null;
-    const l = this._calculators.length;
-    if (l > 1) {
-      if (closedIndex === l - 1) {
-        newId = this._calculators[closedIndex - 1]["uid"];
-      } else {
-        newId = this._calculators[closedIndex + 1]["uid"];
-      }
-    }
-
-    // suppression
-
-    this._calculators = this._calculators.filter(calc => {
-      return formId !== calc["uid"];
-    });
-
-    // MAJ affichage
-
-    if (newId === null) {
-      this.toList();
-      this._currentFormId = null;
-    } else {
-      this.toCalc(newId);
-    }
-  }
-
-  private toList() {
-    this.router.navigate(["/list"]);
-  }
-
-  public toDiagram() {
-    this.router.navigate(["/diagram"]);
-  }
-
-  public toCalc(id: string) {
-    this.router.navigate(["/calculator", id]);
-    this.setActiveCalc(id);
-    setTimeout(() => { // @WARNING clodo trick to wait for Angular refresh
-      this.scrollToLatestQuicknav(id);
-    }, 50);
-  }
-
-  /**
-   * restarts a fresh session by closing all calculators
-   */
-  public emptySession() {
-    const dialogRef = this.confirmEmptySessionDialog.open(
-      DialogConfirmEmptySessionComponent,
-      { disableClose: true }
-    );
-    dialogRef.afterClosed().subscribe(result => {
-      if (result) {
-        this.doEmptySession();
-      }
-    });
-  }
-
-  public doEmptySession() {
-    // temporarily disable notifications
-    const oldNotifState = this.appSetupService.enableNotifications;
-    this.appSetupService.enableNotifications = false;
-    // close all calculators
-    for (const c of this._calculators) {
-      const form = this.formulaireService.getFormulaireFromId(c.uid);
-      this.formulaireService.requestCloseForm(form.uid);
-    }
-    // just to be sure, get rid of any Nub possibly stuck in session without any form attached
-    Session.getInstance().clear();
-    Session.getInstance().documentation = "";
-    // restore notifications
-    this.appSetupService.enableNotifications = oldNotifState;
-  }
-
-  public loadSession() {
-    // création du dialogue de sélection des formulaires à sauver
-    const dialogRef = this.loadSessionDialog.open(
-      DialogLoadSessionComponent,
-      { disableClose: false }
-    );
-    dialogRef.afterClosed().subscribe(result => {
-      if (result) {
-        if (result.emptySession) {
-          this.doEmptySession();
+    public scrollToQuicknav(itemId: string, behavior: ScrollBehavior = "smooth") {
+        const idx = this.getCalculatorIndexFromId(this.currentFormId);
+        let succeeded = false;
+        if (idx > -1) {
+            const id = QuicknavComponent.prefix + itemId;
+            // Scroll https://stackoverflow.com/a/56391657/5986614
+            const element = document.getElementById(id);
+            if (element && element.offsetParent !== null) { // offsetParent is null when element is not visible
+                const yCoordinate = element.getBoundingClientRect().top + window.pageYOffset;
+                window.scrollTo({
+                    top: yCoordinate - 60, // substract a little more than navbar height
+                    behavior: behavior
+                });
+                succeeded = true;
+                // Save position
+                this._calculators[idx].latestAnchor = itemId;
+            }
         }
-        this.loadSessionFile(result.file, result.calculators);
-      }
-    });
-  }
-
-  public loadSessionFile(f: File, info?: any) {
-    // notes merge detection: was there already some notes ?
-    const existingNotes = Session.getInstance().documentation;
-    // load
-    this.formulaireService.loadSession(f, info)
-    .then((data) => {
-      if (data.hasErrors) {
-        this.notificationsService.notify(this.intlService.localizeText("ERROR_PROBLEM_LOADING_SESSION"), 3500);
-      } else {
-        if (data.loaded && data.loaded.length > 0) {
-          if (! isDevMode()) {
-            this.matomoTracker.trackEvent("userAction", "loadSession");
-          }
-          // notes merge detection: was there already some notes ?
-          const currentNotes = Session.getInstance().documentation;
-          if (existingNotes !== "" && currentNotes !== existingNotes) {
-            this.notificationsService.notify(this.intlService.localizeText("WARNING_SESSION_LOAD_NOTES_MERGED"), 3500);
-          }
-          // go to calc or diagram depending on what was loaded
-          if (data.loaded.length > 1) {
-            this.toDiagram();
-          } else {
-            this.toCalc(data.loaded[0]);
-          }
+        if (!succeeded) {
+            // throw an error so that caller CalculatorComponent.scrollToResults()
+            // switches to plan B, in case we're trying to scroll to results pane
+            // after a module is calculated
+            throw Error("unable to scroll to quicknav anchor");
         }
-      }
-    })
-    .catch((err) => {
-      this.notificationsService.notify(this.intlService.localizeText("ERROR_LOADING_SESSION"), 3500);
-      console.error("error loading session - ", err);
-      // rollback to ensure session is clean
-      this.doEmptySession();
-    });
-  }
-
-  /**
-   * Demande au client d'envoyer un email (génère un lien mailto:), pré-rempli
-   * avec un texte standard, et le contenu de la session au format JSON
-   */
-  public reportBug() {
-    const recipient = "bug@cassiopee.g-eau.fr";
-    const subject = "[ISSUE] " + this.intlService.localizeText("INFO_REPORT_BUG_SUBJECT");
-    let body = this.intlService.localizeText("INFO_REPORT_BUG_BODY");
-
-    // add session description
-
-    // get all forms
-    const list = [];
-    for (const c of this._calculators) {
-      list.push({
-        title: c.title,
-        uid: c.uid,
-        selected: true
-      });
-    }
-    let session = this.buildSessionFile(list);
-
-    // compress
-    session = pako.deflate(session, { to: "string" }); // gzip (zlib)
-    session = btoa(session); // base64
-
-    body += session + "\n";
-    body = encodeURIComponent(body);
-
-    const mailtoURL = `mailto:${recipient}?subject=${subject}&body=${body}`;
-
-    // temporarily disable tab closing alert, as tab won't be closed for real
-    this.appSetupService.warnBeforeTabClose = false;
-    window.location.href = mailtoURL;
-    this.appSetupService.warnBeforeTabClose = true;
-  }
-
-  public get revisionInfo(): any {
-    return {
-      jalhyd: {
-        date: jalhydDateRev,
-        version: jalhydVersion,
-      },
-      nghyd: {
-        date: nghydDateRev,
-        version: nghydVersion
-      }
-    };
-  }
-
-  /**
-   * sauvegarde du/des formulaires
-   * @param form formulaire à sélectionner par défaut dans la liste
-   */
-  public saveForm(form?: FormulaireDefinition) {
-    // liste des formulaires
-    const list = [];
-    for (const c of this._calculators) {
-      const uid = c["uid"];
-      const nub = Session.getInstance().findNubByUid(uid);
-      let required = nub.getTargettedNubs().map((req) => {
-        return req.uid;
-      });
-      required = required.filter(
-        (item, index) => required.indexOf(item) === index // deduplicate
-      );
-      list.push({
-        "children": nub.getChildren().map((child) => {
-          return child.uid;
-        }),
-        "requires": required,
-        "selected": form ? (uid === form.uid) : true,
-        "title": c["title"],
-        "uid": uid
-      });
-    }
-    // dialogue de sélection des formulaires à sauver
-    const dialogRef = this.saveSessionDialog.open(
-      DialogSaveSessionComponent,
-      {
-        data: {
-          calculators: list
-        },
-        disableClose: false
-      }
-    );
-    dialogRef.afterClosed().subscribe(result => {
-      if (result) {
-        let name = result.filename;
-
-        // ajout extension ".json"
-        const re = /.+\.json/;
-        const match = re.exec(name.toLowerCase());
-        if (match === null) {
-          name = name + ".json";
+    }
+
+    /**
+     * Moves the view to the latest known Quicknav anchor of the current module
+     */
+    public scrollToLatestQuicknav(formId: string) {
+        // Get position
+        const idx = this.getCalculatorIndexFromId(formId);
+        if (idx > -1) {
+            const itemId = this._calculators[idx].latestAnchor;
+            // Scroll
+            if (itemId) {
+                this.scrollToQuicknav(itemId, "auto");
+            }
         }
+    }
 
-        this.saveSession(result.calculators, name);
-      }
-    });
-  }
-
-  /**
-   * Moves the view to one of the Quicknav anchors in the page, and saves this anchor
-   * as the latest visited, in _calculators list
-   * @param itemId a Quicknav anchor id (ex: "input" or "results")
-   */
-  public scrollToQuicknav(itemId: string, behavior: ScrollBehavior = "smooth") {
-    const idx = this.getCalculatorIndexFromId(this.currentFormId);
-    let succeeded = false;
-    if (idx > -1) {
-      const id = QuicknavComponent.prefix + itemId;
-      // Scroll https://stackoverflow.com/a/56391657/5986614
-      const element = document.getElementById(id);
-      if (element && element.offsetParent !== null) { // offsetParent is null when element is not visible
-          const yCoordinate = element.getBoundingClientRect().top + window.pageYOffset;
-          window.scrollTo({
-              top: yCoordinate - 60, // substract a little more than navbar height
-              behavior: behavior
-          });
-          succeeded = true;
-          // Save position
-          this._calculators[idx].latestAnchor = itemId;
-      }
-    }
-    if (! succeeded) {
-      // throw an error so that caller CalculatorComponent.scrollToResults()
-      // switches to plan B, in case we're trying to scroll to results pane
-      // after a module is calculated
-      throw Error("unable to scroll to quicknav anchor");
-    }
-  }
-
-  /**
-   * Moves the view to the latest known Quicknav anchor of the current module
-   */
-  public scrollToLatestQuicknav(formId: string) {
-    // Get position
-    const idx = this.getCalculatorIndexFromId(formId);
-    if (idx > -1) {
-      const itemId = this._calculators[idx].latestAnchor;
-      // Scroll
-      if (itemId) {
-        this.scrollToQuicknav(itemId, "auto");
-      }
-    }
-  }
-
-  public dropCalcButton(event: CdkDragDrop<string[]>) {
-    moveItemInArray(this.calculators, event.previousIndex, event.currentIndex);
-  }
-
-  public get docIndexPath(): string {
-    return "assets/docs/" + this.appSetupService.language + "/index.html";
-  }
-
-  /**
-   * Returns a string representing the running platform :
-   * "cordova", "electron", or "browser"
-   */
-  public getRunningPlatform(): string {
-    let runningPlatform = "browser";
-    if (navigator.userAgent.toLowerCase().indexOf("electron") > -1) {
-      runningPlatform = "electron";
-    } else if (window.cordova) {
-      runningPlatform = "cordova";
-    }
-    // console.log(">> running platform: ", runningPlatform);
-    return runningPlatform;
-  }
-
-  /**
-   * détection de la fermeture de la page/navigateur et demande de confirmation
-   */
-  @HostListener("window:beforeunload", [ "$event" ]) confirmExit($event) {
-    if (
-      this.appSetupService.warnBeforeTabClose
-      && environment.production // otherwise prevents dev server to reload app after recompiling
-    ) {
-      // affecter une valeur différente de null provoque l'affichage d'un dialogue de confirmation, mais le texte n'est pas affiché
-      $event.returnValue = "Your data will be lost !";
+    public dropCalcButton(event: CdkDragDrop<string[]>) {
+        moveItemInArray(this.calculators, event.previousIndex, event.currentIndex);
     }
-  }
 
-  @HostListener("keydown", [ "$event" ]) onKeydown(event: any) {
-    if (event.which === 38 || event.which === 40) { // up / down arrow
-      if (event.srcElement.type === "number") {
-        event.preventDefault();
-      }
+    public get docIndexPath(): string {
+        return "assets/docs/" + this.appSetupService.language + "/index.html";
+    }
+
+    /**
+     * Returns a string representing the running platform :
+     * "cordova", "electron", or "browser"
+     */
+    public getRunningPlatform(): string {
+        let runningPlatform = "browser";
+        if (navigator.userAgent.toLowerCase().indexOf("electron") > -1) {
+            runningPlatform = "electron";
+        } else if (window.cordova) {
+            runningPlatform = "cordova";
+        }
+        // console.log(">> running platform: ", runningPlatform);
+        return runningPlatform;
+    }
+
+    /**
+     * détection de la fermeture de la page/navigateur et demande de confirmation
+     */
+    @HostListener("window:beforeunload", ["$event"]) confirmExit($event) {
+        if (
+            this.appSetupService.warnBeforeTabClose
+            && environment.production // otherwise prevents dev server to reload app after recompiling
+        ) {
+            // affecter une valeur différente de null provoque l'affichage d'un dialogue de confirmation, mais le texte n'est pas affiché
+            $event.returnValue = "Your data will be lost !";
+        }
+    }
+
+    @HostListener("keydown", ["$event"]) onKeydown(event: any) {
+        if (event.which === 38 || event.which === 40) { // up / down arrow
+            if (event.srcElement.type === "number") {
+                event.preventDefault();
+            }
+        }
     }
-  }
 }
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index b25a7887f..ca149bc7e 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -34,10 +34,10 @@ import { MarkdownModule, MarkedOptions } from "ngx-markdown";
 
 import { FlexLayoutModule } from "@angular/flex-layout";
 import {
-  CustomBreakPointsProvider,
-  FlexGtXxsShowHideDirective,
-  FlexXxsShowHideDirective,
-  FlexLtXsShowHideDirective
+    CustomBreakPointsProvider,
+    FlexGtXxsShowHideDirective,
+    FlexXxsShowHideDirective,
+    FlexLtXsShowHideDirective
 } from "./directives/flex-xxs.directive";
 
 import { HttpClientModule } from "@angular/common/http";
@@ -109,163 +109,163 @@ import { DialogSaveSessionComponent } from "./components/dialog-save-session/dia
 
 import { JalhydAsyncModelValidationDirective } from "./directives/jalhyd-async-model-validation.directive";
 import {
-  JalhydModelValidationDirective,
-  JalhydModelValidationMinDirective,
-  JalhydModelValidationMaxDirective,
-  JalhydModelValidationStepDirective
+    JalhydModelValidationDirective,
+    JalhydModelValidationMinDirective,
+    JalhydModelValidationMaxDirective,
+    JalhydModelValidationStepDirective
 } from "./directives/jalhyd-model-validation.directive";
 import { ImmediateErrorStateMatcher } from "./formulaire/immediate-error-state-matcher";
 
 const appRoutes: Routes = [
-  { path: "list", component: CalculatorListComponent },
-  { path: "calculator/:uid", component: GenericCalculatorComponent },
-  { path: "setup", component: ApplicationSetupComponent },
-  { path: "diagram", component: ModulesDiagramComponent },
-  { path: "properties", component: SessionPropertiesComponent },
-  { path: "**", redirectTo: "list", pathMatch: "full" }
+    { path: "list", component: CalculatorListComponent },
+    { path: "calculator/:uid", component: GenericCalculatorComponent },
+    { path: "setup", component: ApplicationSetupComponent },
+    { path: "diagram", component: ModulesDiagramComponent },
+    { path: "properties", component: SessionPropertiesComponent },
+    { path: "**", redirectTo: "list", pathMatch: "full" }
 ];
 
 @NgModule({
-  imports: [
-    FormsModule, // <-- import the FormsModule before binding with [(ngModel)]
-    ReactiveFormsModule,
-    BrowserAnimationsModule,
-    BrowserModule,
-    ChartModule,
-    DragDropModule,
-    FlexLayoutModule,
-    HotkeyModule.forRoot(),
-    HttpClientModule,
-    MarkdownModule.forRoot({
-      markedOptions: {
-        provide: MarkedOptions,
-        useValue: {
-          gfm: true,
-          breaks: true
+    imports: [
+        FormsModule, // <-- import the FormsModule before binding with [(ngModel)]
+        ReactiveFormsModule,
+        BrowserAnimationsModule,
+        BrowserModule,
+        ChartModule,
+        DragDropModule,
+        FlexLayoutModule,
+        HotkeyModule.forRoot(),
+        HttpClientModule,
+        MarkdownModule.forRoot({
+            markedOptions: {
+                provide: MarkedOptions,
+                useValue: {
+                    gfm: true,
+                    breaks: true
+                }
+            }
+        }),
+        MatBadgeModule,
+        MatButtonModule,
+        MatButtonToggleModule,
+        MatCardModule,
+        MatCheckboxModule,
+        MatDialogModule,
+        MaterialFileInputModule,
+        MatFormFieldModule,
+        MatIconModule,
+        MatInputModule,
+        MatListModule,
+        MatMenuModule,
+        MatProgressBarModule,
+        MatRadioModule,
+        MatSelectModule,
+        MatSidenavModule,
+        MatSnackBarModule,
+        MatTableModule,
+        MatTabsModule,
+        MatToolbarModule,
+        MatTooltipModule,
+        MatomoModule,
+        RouterModule.forRoot(
+            appRoutes,
+            {
+                useHash: true, // prevents reloading whole app when typing url in browser's navigation bar
+                enableTracing: false // debugging purposes only
+            }
+        ),
+        StorageServiceModule,
+        TableModule,
+        KonamiModule
+    ],
+    declarations: [ // composants, pipes et directives
+        AppComponent,
+        ApplicationSetupComponent,
+        BaseParamInputComponent,
+        CalcCanvasComponent,
+        CalculatorListComponent,
+        CalculatorNameComponent,
+        CalculatorResultsComponent,
+        DialogConfirmCloseCalcComponent,
+        DialogConfirmEmptySessionComponent,
+        DialogEditPabComponent,
+        DialogEditParamComputedComponent,
+        DialogEditParamValuesComponent,
+        DialogGeneratePABComponent,
+        DialogGeneratePARSimulationComponent,
+        DialogLoadPredefinedEspeceComponent,
+        DialogLoadSessionComponent,
+        DialogLogEntriesDetailsComponent,
+        DialogSaveSessionComponent,
+        FieldSetComponent,
+        FieldsetContainerComponent,
+        FixedResultsComponent,
+        FixedVarResultsComponent,
+        FlexGtXxsShowHideDirective,
+        FlexLtXsShowHideDirective,
+        FlexXxsShowHideDirective,
+        GenericCalculatorComponent,
+        ChartTypeSelectComponent,
+        JalhydAsyncModelValidationDirective,
+        JalhydModelValidationDirective,
+        JalhydModelValidationMinDirective,
+        JalhydModelValidationMaxDirective,
+        JalhydModelValidationStepDirective,
+        JetResultsComponent,
+        JetTrajectoryChartComponent,
+        LogComponent,
+        LogDrawerComponent,
+        LogEntryComponent,
+        ModulesDiagramComponent,
+        NgParamInputComponent,
+        PabProfileChartComponent,
+        PabResultsComponent,
+        VerificateurResultsComponent,
+        PabResultsTableComponent,
+        PabTableComponent,
+        VariableResultsSelectorComponent,
+        MacrorugoCompoundResultsComponent,
+        MacrorugoCompoundResultsTableComponent,
+        ParamComputedComponent,
+        ParamFieldLineComponent,
+        ParamLinkComponent,
+        ParamValuesComponent,
+        QuicknavComponent,
+        RemousResultsComponent,
+        ResultsChartComponent,
+        SectionCanvasComponent,
+        SectionResultsComponent,
+        SelectFieldLineComponent,
+        SessionPropertiesComponent,
+        VarResultsComponent
+    ],
+    entryComponents: [
+        DialogConfirmCloseCalcComponent,
+        DialogConfirmEmptySessionComponent,
+        DialogEditPabComponent,
+        DialogEditParamComputedComponent,
+        DialogEditParamValuesComponent,
+        DialogGeneratePABComponent,
+        DialogGeneratePARSimulationComponent,
+        DialogLoadPredefinedEspeceComponent,
+        DialogSaveSessionComponent,
+        DialogLoadSessionComponent,
+        DialogLogEntriesDetailsComponent
+    ],
+    providers: [ // services
+        ApplicationSetupService,
+        CustomBreakPointsProvider,
+        FormulaireService,
+        HttpService,
+        I18nService,
+        NotificationsService,
+        {
+            provide: ErrorStateMatcher,
+            useClass: ImmediateErrorStateMatcher
         }
-      }
-    }),
-    MatBadgeModule,
-    MatButtonModule,
-    MatButtonToggleModule,
-    MatCardModule,
-    MatCheckboxModule,
-    MatDialogModule,
-    MaterialFileInputModule,
-    MatFormFieldModule,
-    MatIconModule,
-    MatInputModule,
-    MatListModule,
-    MatMenuModule,
-    MatProgressBarModule,
-    MatRadioModule,
-    MatSelectModule,
-    MatSidenavModule,
-    MatSnackBarModule,
-    MatTableModule,
-    MatTabsModule,
-    MatToolbarModule,
-    MatTooltipModule,
-    MatomoModule,
-    RouterModule.forRoot(
-      appRoutes,
-      {
-        useHash: true, // prevents reloading whole app when typing url in browser's navigation bar
-        enableTracing: false // debugging purposes only
-      }
-    ),
-    StorageServiceModule,
-    TableModule,
-    KonamiModule
-  ],
-  declarations: [ // composants, pipes et directives
-    AppComponent,
-    ApplicationSetupComponent,
-    BaseParamInputComponent,
-    CalcCanvasComponent,
-    CalculatorListComponent,
-    CalculatorNameComponent,
-    CalculatorResultsComponent,
-    DialogConfirmCloseCalcComponent,
-    DialogConfirmEmptySessionComponent,
-    DialogEditPabComponent,
-    DialogEditParamComputedComponent,
-    DialogEditParamValuesComponent,
-    DialogGeneratePABComponent,
-    DialogGeneratePARSimulationComponent,
-    DialogLoadPredefinedEspeceComponent,
-    DialogLoadSessionComponent,
-    DialogLogEntriesDetailsComponent,
-    DialogSaveSessionComponent,
-    FieldSetComponent,
-    FieldsetContainerComponent,
-    FixedResultsComponent,
-    FixedVarResultsComponent,
-    FlexGtXxsShowHideDirective,
-    FlexLtXsShowHideDirective,
-    FlexXxsShowHideDirective,
-    GenericCalculatorComponent,
-    ChartTypeSelectComponent,
-    JalhydAsyncModelValidationDirective,
-    JalhydModelValidationDirective,
-    JalhydModelValidationMinDirective,
-    JalhydModelValidationMaxDirective,
-    JalhydModelValidationStepDirective,
-    JetResultsComponent,
-    JetTrajectoryChartComponent,
-    LogComponent,
-    LogDrawerComponent,
-    LogEntryComponent,
-    ModulesDiagramComponent,
-    NgParamInputComponent,
-    PabProfileChartComponent,
-    PabResultsComponent,
-    VerificateurResultsComponent,
-    PabResultsTableComponent,
-    PabTableComponent,
-    VariableResultsSelectorComponent,
-    MacrorugoCompoundResultsComponent,
-    MacrorugoCompoundResultsTableComponent,
-    ParamComputedComponent,
-    ParamFieldLineComponent,
-    ParamLinkComponent,
-    ParamValuesComponent,
-    QuicknavComponent,
-    RemousResultsComponent,
-    ResultsChartComponent,
-    SectionCanvasComponent,
-    SectionResultsComponent,
-    SelectFieldLineComponent,
-    SessionPropertiesComponent,
-    VarResultsComponent
-  ],
-  entryComponents: [
-    DialogConfirmCloseCalcComponent,
-    DialogConfirmEmptySessionComponent,
-    DialogEditPabComponent,
-    DialogEditParamComputedComponent,
-    DialogEditParamValuesComponent,
-    DialogGeneratePABComponent,
-    DialogGeneratePARSimulationComponent,
-    DialogLoadPredefinedEspeceComponent,
-    DialogSaveSessionComponent,
-    DialogLoadSessionComponent,
-    DialogLogEntriesDetailsComponent
-  ],
-  providers: [ // services
-    ApplicationSetupService,
-    CustomBreakPointsProvider,
-    FormulaireService,
-    HttpService,
-    I18nService,
-    NotificationsService,
-    {
-      provide: ErrorStateMatcher,
-      useClass: ImmediateErrorStateMatcher
-    }
-  ],
-  schemas: [ NO_ERRORS_SCHEMA ],
-  bootstrap: [ AppComponent ]
+    ],
+    schemas: [NO_ERRORS_SCHEMA],
+    bootstrap: [AppComponent]
 })
 
 export class AppModule { }
diff --git a/src/app/components/app-setup/app-setup.component.html b/src/app/components/app-setup/app-setup.component.html
index 6305c1bb9..87f52357a 100644
--- a/src/app/components/app-setup/app-setup.component.html
+++ b/src/app/components/app-setup/app-setup.component.html
@@ -1,98 +1,105 @@
-
 <div class="container" fxLayout="row" fxLayoutAlign="center space-evenly">
-  <mat-card id="app-setup">
-
-    <mat-card-header class="mat-card-header-text-margin-0">
-      <mat-card-title>
-        <h1>{{ uitextTitle }}</h1>
-      </mat-card-title>
-
-      <button type="button" mat-icon-button (click)="storePreferences()" [title]="uitextStorePreferences">
-        <mat-icon>file_download</mat-icon>
-      </button>
-      <button type="button" mat-icon-button (click)="restoreDefaultValues()" [title]="uitextRestoreDefaultValues">
-        <mat-icon>settings_backup_restore</mat-icon>
-      </button>
-    </mat-card-header>
-
-    <mat-card-content>
-      <!-- template-driven form -->
-      <form>
-
-        <!-- précision d'affichage -->
-        <mat-form-field data-testclass="numeric-input">
-            <input matInput [placeholder]="uitextDisplayAccuracy" #dp="ngModel" name="dp" inputmode="numeric"
-                [ngModel]="displayPrec.value" (ngModelChange)="!dp.invalid ? displayPrec.setValue($event): null"
-                pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required [appJalhydModelValidation]="displayPrec">
-
-            <mat-error *ngIf="dp.invalid && (dp.dirty || dp.touched)">
-                <div *ngIf="dp.errors.required || dp.errors.pattern">
-                    {{ uitextMustBeANumber }}
-                </div>
-                <div *ngIf="! dp.errors.required && dp.errors.jalhydModel" [innerHTML]="dp.errors.jalhydModel.message">
-                </div>
-            </mat-error>
-        </mat-form-field>
-
-        <!-- précision de calcul -->
-        <mat-form-field data-testclass="numeric-input">
-            <input matInput [placeholder]="uitextComputeAccuracy" #cp="ngModel" name="cp" inputmode="numeric"
-                [ngModel]="computePrec.value" (ngModelChange)="!cp.invalid ? computePrec.setValue($event): null"
-                pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required [appJalhydModelValidation]="computePrec">
-
-            <mat-error *ngIf="cp.invalid">
-                <div *ngIf="cp.errors.required || cp.errors.pattern">
-                    {{ uitextMustBeANumber }}
-                </div>
-                <div *ngIf="! cp.errors.required && cp.errors.jalhydModel" [innerHTML]="cp.errors.jalhydModel.message">
-                </div>
-            </mat-error>
-        </mat-form-field>
-
-        <!-- nombre d'itérations max Newton -->
-        <mat-form-field data-testclass="numeric-input">
-            <input matInput [placeholder]="uitextNewtonMaxIteration" #nmi="ngModel" name="nmi" inputmode="numeric"
-                [ngModel]="newtonMaxIter.value" (ngModelChange)="!nmi.invalid ? newtonMaxIter.setValue($event): null"
-                pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required [appJalhydModelValidation]="newtonMaxIter">
-
-            <mat-error *ngIf="nmi.invalid && (nmi.dirty || nmi.touched)">
-                <div *ngIf="nmi.errors.required || nmi.errors.pattern">
-                    {{ uitextMustBeANumber }}
-                </div>
-                <div *ngIf="! nmi.errors.required && nmi.errors.jalhydModel" [innerHTML]="nmi.errors.jalhydModel.message">
-                </div>
-            </mat-error>
-        </mat-form-field>
-
-        <!-- notifications (snackbar) -->
-        <mat-checkbox id="cb_notifications" class="wrapped-checkbox" name="notifications"
-          [(ngModel)]="enableNotifications" [ngModelOptions]="{standalone: true}">
-          {{ uitextEnableNotifications }}
-        </mat-checkbox>
-
-        <!-- hotkeys -->
-        <mat-checkbox id="cb_hotkeys" class="wrapped-checkbox" name="hotkeys"
-          [(ngModel)]="enableHotkeys" [ngModelOptions]="{standalone: true}">
-          {{ uitextEnableHotkeys }}
-        </mat-checkbox>
-
-        <!-- empty all fields when creating a new form -->
-        <mat-checkbox id="cb_emptyFields" class="wrapped-checkbox" name="emptyFields"
-          [(ngModel)]="enableEmptyFieldsOnFormInit" [ngModelOptions]="{standalone: true}">
-          {{ uitextEnableEmptyFieldsOnFormInit }}
-        </mat-checkbox>
-
-        <!-- 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" [title]="l.value">
-                    {{ l.value }}
-                </mat-option>
-            </mat-select>
-        </mat-form-field>
-
-        </form>
-    </mat-card-content>
-
-  </mat-card>
-</div>
+    <mat-card id="app-setup">
+
+        <mat-card-header class="mat-card-header-text-margin-0">
+            <mat-card-title>
+                <h1>{{ uitextTitle }}</h1>
+            </mat-card-title>
+
+            <button type="button" mat-icon-button (click)="storePreferences()" [title]="uitextStorePreferences">
+                <mat-icon>file_download</mat-icon>
+            </button>
+            <button type="button" mat-icon-button (click)="restoreDefaultValues()" [title]="uitextRestoreDefaultValues">
+                <mat-icon>settings_backup_restore</mat-icon>
+            </button>
+        </mat-card-header>
+
+        <mat-card-content>
+            <!-- template-driven form -->
+            <form>
+
+                <!-- précision d'affichage -->
+                <mat-form-field data-testclass="numeric-input">
+                    <input matInput [placeholder]="uitextDisplayAccuracy" #dp="ngModel" name="dp" inputmode="numeric"
+                        [ngModel]="displayPrec.value" (ngModelChange)="!dp.invalid ? displayPrec.setValue($event): null"
+                        pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required
+                        [appJalhydModelValidation]="displayPrec">
+
+                    <mat-error *ngIf="dp.invalid && (dp.dirty || dp.touched)">
+                        <div *ngIf="dp.errors.required || dp.errors.pattern">
+                            {{ uitextMustBeANumber }}
+                        </div>
+                        <div *ngIf="! dp.errors.required && dp.errors.jalhydModel"
+                            [innerHTML]="dp.errors.jalhydModel.message">
+                        </div>
+                    </mat-error>
+                </mat-form-field>
+
+                <!-- précision de calcul -->
+                <mat-form-field data-testclass="numeric-input">
+                    <input matInput [placeholder]="uitextComputeAccuracy" #cp="ngModel" name="cp" inputmode="numeric"
+                        [ngModel]="computePrec.value" (ngModelChange)="!cp.invalid ? computePrec.setValue($event): null"
+                        pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required
+                        [appJalhydModelValidation]="computePrec">
+
+                    <mat-error *ngIf="cp.invalid">
+                        <div *ngIf="cp.errors.required || cp.errors.pattern">
+                            {{ uitextMustBeANumber }}
+                        </div>
+                        <div *ngIf="! cp.errors.required && cp.errors.jalhydModel"
+                            [innerHTML]="cp.errors.jalhydModel.message">
+                        </div>
+                    </mat-error>
+                </mat-form-field>
+
+                <!-- nombre d'itérations max Newton -->
+                <mat-form-field data-testclass="numeric-input">
+                    <input matInput [placeholder]="uitextNewtonMaxIteration" #nmi="ngModel" name="nmi"
+                        inputmode="numeric" [ngModel]="newtonMaxIter.value"
+                        (ngModelChange)="!nmi.invalid ? newtonMaxIter.setValue($event): null"
+                        pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required
+                        [appJalhydModelValidation]="newtonMaxIter">
+
+                    <mat-error *ngIf="nmi.invalid && (nmi.dirty || nmi.touched)">
+                        <div *ngIf="nmi.errors.required || nmi.errors.pattern">
+                            {{ uitextMustBeANumber }}
+                        </div>
+                        <div *ngIf="! nmi.errors.required && nmi.errors.jalhydModel"
+                            [innerHTML]="nmi.errors.jalhydModel.message">
+                        </div>
+                    </mat-error>
+                </mat-form-field>
+
+                <!-- notifications (snackbar) -->
+                <mat-checkbox id="cb_notifications" class="wrapped-checkbox" name="notifications"
+                    [(ngModel)]="enableNotifications" [ngModelOptions]="{standalone: true}">
+                    {{ uitextEnableNotifications }}
+                </mat-checkbox>
+
+                <!-- hotkeys -->
+                <mat-checkbox id="cb_hotkeys" class="wrapped-checkbox" name="hotkeys" [(ngModel)]="enableHotkeys"
+                    [ngModelOptions]="{standalone: true}">
+                    {{ uitextEnableHotkeys }}
+                </mat-checkbox>
+
+                <!-- empty all fields when creating a new form -->
+                <mat-checkbox id="cb_emptyFields" class="wrapped-checkbox" name="emptyFields"
+                    [(ngModel)]="enableEmptyFieldsOnFormInit" [ngModelOptions]="{standalone: true}">
+                    {{ uitextEnableEmptyFieldsOnFormInit }}
+                </mat-checkbox>
+
+                <!-- 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" [title]="l.value">
+                            {{ l.value }}
+                        </mat-option>
+                    </mat-select>
+                </mat-form-field>
+
+            </form>
+        </mat-card-content>
+
+    </mat-card>
+</div>
\ No newline at end of file
diff --git a/src/app/components/calculator-list/calculator-list.component.html b/src/app/components/calculator-list/calculator-list.component.html
index 23db26dca..904c6d994 100644
--- a/src/app/components/calculator-list/calculator-list.component.html
+++ b/src/app/components/calculator-list/calculator-list.component.html
@@ -53,15 +53,15 @@
 
         <mat-card-content>
             <mat-list id="examples-list" role="list">
-              <mat-list-item role="listitem" *ngFor="let f of exampleFiles">
-                <mat-icon color="primary">folder_open</mat-icon>
-                <a class="load-example" (click)="loadExample(f.path)">
-                    {{ f.label }}
-                </a>
-              </mat-list-item>
+                <mat-list-item role="listitem" *ngFor="let f of exampleFiles">
+                    <mat-icon color="primary">folder_open</mat-icon>
+                    <a class="load-example" (click)="loadExample(f.path)">
+                        {{ f.label }}
+                    </a>
+                </mat-list-item>
             </mat-list>
         </mat-card-content>
 
     </mat-card>
 
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.html b/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.html
index 6398d8424..c962d4288 100644
--- a/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.html
+++ b/src/app/components/dialog-confirm-close-calc/dialog-confirm-close-calc.component.html
@@ -1,26 +1,26 @@
 <h1 mat-dialog-title [innerHTML]="uitextCloseCalcTitle"></h1>
 <div mat-dialog-content>
 
-  <div *ngIf="dependingNubs.length">
-    {{ uitextDependingModules }}
+    <div *ngIf="dependingNubs.length">
+        {{ uitextDependingModules }}
 
-    <div class="dependencies-problems">
-      <mat-list role="list">
-        <mat-list-item role="listitem" *ngFor="let dn of dependingNubs">
-          <mat-icon color="warn">error_outline</mat-icon> {{ dn }}
-        </mat-list-item>
-      </mat-list>
+        <div class="dependencies-problems">
+            <mat-list role="list">
+                <mat-list-item role="listitem" *ngFor="let dn of dependingNubs">
+                    <mat-icon color="warn">error_outline</mat-icon> {{ dn }}
+                </mat-list-item>
+            </mat-list>
+        </div>
     </div>
-  </div>
 </div>
 
 <p [innerHTML]="uitextCloseCalcBody"></p>
 
 <div mat-dialog-actions [attr.align]="'end'">
-  <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-    {{ uitextNo }}
-  </button>
-  <button mat-raised-button color="warn" [mat-dialog-close]="true">
-    {{ uitextYes }}
-  </button>
-</div>
+    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+        {{ uitextNo }}
+    </button>
+    <button mat-raised-button color="warn" [mat-dialog-close]="true">
+        {{ uitextYes }}
+    </button>
+</div>
\ No newline at end of file
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 3a4858eda..8be28ac26 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
@@ -8,7 +8,7 @@ import { Session } from "jalhyd";
     selector: "dialog-confirm-close-calc",
     templateUrl: "dialog-confirm-close-calc.component.html",
     styleUrls: [
-      "dialog-confirm-close-calc.component.scss"
+        "dialog-confirm-close-calc.component.scss"
     ]
 })
 export class DialogConfirmCloseCalcComponent {
@@ -27,27 +27,27 @@ export class DialogConfirmCloseCalcComponent {
     }
 
     public get uitextYes() {
-      return this.intlService.localizeText("INFO_OPTION_CLOSE");
+        return this.intlService.localizeText("INFO_OPTION_CLOSE");
     }
 
     public get uitextNo() {
-      return this.intlService.localizeText("INFO_OPTION_CANCEL");
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
     }
 
     public get uitextCloseCalcTitle() {
-      return this.intlService.localizeText("INFO_CLOSE_DIALOGUE_TITRE");
+        return this.intlService.localizeText("INFO_CLOSE_DIALOGUE_TITRE");
     }
 
     public get uitextCloseCalcBody() {
-      return this.intlService.localizeText("INFO_CLOSE_DIALOGUE_TEXT");
+        return this.intlService.localizeText("INFO_CLOSE_DIALOGUE_TEXT");
     }
 
     public get uitextDependingModules() {
-      return this.intlService.localizeText("INFO_CLOSE_DIALOGUE_DEPENDING_MODULES");
+        return this.intlService.localizeText("INFO_CLOSE_DIALOGUE_DEPENDING_MODULES");
     }
 
     public get dependingNubs() {
-      return this._dependingNubs;
+        return this._dependingNubs;
     }
 
 }
diff --git a/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.html b/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.html
index 565d03593..f9ea392d0 100644
--- a/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.html
+++ b/src/app/components/dialog-confirm-empty-session/dialog-confirm-empty-session.component.html
@@ -1,12 +1,12 @@
 <h1 mat-dialog-title [innerHTML]="uitextEmptySessionTitle"></h1>
 <div mat-dialog-content>
-  <p [innerHTML]="uitextEmptySessionBody"></p>
+    <p [innerHTML]="uitextEmptySessionBody"></p>
 </div>
 <div mat-dialog-actions [attr.align]="'end'">
-  <button id="cancel-new-session" mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-    {{ uitextNo }}
-  </button>
-  <button id="confirm-new-session" mat-raised-button color="warn" [mat-dialog-close]="true">
-    {{ uitextYes }}
-  </button>
-</div>
+    <button id="cancel-new-session" mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+        {{ uitextNo }}
+    </button>
+    <button id="confirm-new-session" mat-raised-button color="warn" [mat-dialog-close]="true">
+        {{ uitextYes }}
+    </button>
+</div>
\ No newline at end of file
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 ad892f6ea..38e2e6fc3 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
@@ -15,19 +15,19 @@ export class DialogConfirmEmptySessionComponent {
     ) { }
 
     public get uitextYes() {
-      return this.intlService.localizeText("INFO_OPTION_START_NEW");
+        return this.intlService.localizeText("INFO_OPTION_START_NEW");
     }
 
     public get uitextNo() {
-      return this.intlService.localizeText("INFO_OPTION_CANCEL");
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
     }
 
     public get uitextEmptySessionTitle() {
-      return this.intlService.localizeText("INFO_EMPTY_SESSION_DIALOGUE_TITRE");
+        return this.intlService.localizeText("INFO_EMPTY_SESSION_DIALOGUE_TITRE");
     }
 
     public get uitextEmptySessionBody() {
-      return this.intlService.localizeText("INFO_EMPTY_SESSION_DIALOGUE_TEXT");
+        return this.intlService.localizeText("INFO_EMPTY_SESSION_DIALOGUE_TEXT");
     }
 
 }
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 c5658d7f4..fd7170e38 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
@@ -2,73 +2,73 @@
 
 <form>
 
-  <div mat-dialog-content>
+    <div mat-dialog-content>
 
-    <!-- récap selection -->
-    <div id="selection-abstract">
-      {{ selectionAbstract }}
-    </div>
+        <!-- récap selection -->
+        <div id="selection-abstract">
+            {{ selectionAbstract }}
+        </div>
 
-    <!-- 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" [title]="v.label">
-              {{ v.label }}
-          </mat-option>
-      </mat-select>
-    </mat-form-field>
+        <!-- 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" [title]="v.label">
+                    {{ v.label }}
+                </mat-option>
+            </mat-select>
+        </mat-form-field>
 
-    <!-- ngDefaultControl : see https://github.com/angular/components/issues/8267 -->
-    <mat-radio-group ngDefaultControl [(ngModel)]="varAction" name="varAction">
+        <!-- ngDefaultControl : see https://github.com/angular/components/issues/8267 -->
+        <mat-radio-group ngDefaultControl [(ngModel)]="varAction" name="varAction">
 
-      <div class="radio-button-and-input-wrapper rbaiw-set-value">
-        <mat-radio-button value="set-value">
-          {{ uitextSetValue }}
-        </mat-radio-button>
-        <mat-form-field class="input-form-field">
-          <input matInput [(ngModel)]="valueToSet" name="valueToSet" #valueToSetRef="ngModel"
-            required pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
-        </mat-form-field>
-        <mat-error *ngIf="varAction === 'set-value' && valueToSetRef.invalid">
-            {{ uitextMustBeANumber }}
-        </mat-error>
-      </div>
+            <div class="radio-button-and-input-wrapper rbaiw-set-value">
+                <mat-radio-button value="set-value">
+                    {{ uitextSetValue }}
+                </mat-radio-button>
+                <mat-form-field class="input-form-field">
+                    <input matInput [(ngModel)]="valueToSet" name="valueToSet" #valueToSetRef="ngModel" required
+                        pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
+                </mat-form-field>
+                <mat-error *ngIf="varAction === 'set-value' && valueToSetRef.invalid">
+                    {{ uitextMustBeANumber }}
+                </mat-error>
+            </div>
 
-      <div class="radio-button-and-input-wrapper rbaiw-delta">
-        <mat-radio-button value="delta">
-          {{ uitextDelta }}
-        </mat-radio-button>
-        <mat-form-field class="input-form-field">
-          <input matInput [(ngModel)]="delta" name="delta" #deltaRef="ngModel"
-            required pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
-        </mat-form-field>
-        <mat-error *ngIf="varAction === 'delta' && deltaRef.invalid">
-            {{ uitextMustBeANumber }}
-        </mat-error>
-      </div>
+            <div class="radio-button-and-input-wrapper rbaiw-delta">
+                <mat-radio-button value="delta">
+                    {{ uitextDelta }}
+                </mat-radio-button>
+                <mat-form-field class="input-form-field">
+                    <input matInput [(ngModel)]="delta" name="delta" #deltaRef="ngModel" required
+                        pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
+                </mat-form-field>
+                <mat-error *ngIf="varAction === 'delta' && deltaRef.invalid">
+                    {{ uitextMustBeANumber }}
+                </mat-error>
+            </div>
 
-      <div class="radio-button-and-input-wrapper">
-        <mat-radio-button value="interpolate" [disabled]="! interpolationEnabled">
-          {{ uitextInterpolate }}
-          <span class="interpolation-bounds">
-            {{ interpolationBounds }}
-          </span>
-        </mat-radio-button>
-      </div>
+            <div class="radio-button-and-input-wrapper">
+                <mat-radio-button value="interpolate" [disabled]="! interpolationEnabled">
+                    {{ uitextInterpolate }}
+                    <span class="interpolation-bounds">
+                        {{ interpolationBounds }}
+                    </span>
+                </mat-radio-button>
+            </div>
 
-    </mat-radio-group>
+        </mat-radio-group>
 
-  </div>
+    </div>
 
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-      {{ uitextCancel }}
-    </button>
-    <button mat-raised-button type="submit" color="warn" (click)="applyValues()"
-      [disabled]="buttonDisabled(valueToSetRef, deltaRef)">
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button type="submit" color="warn" (click)="applyValues()"
+            [disabled]="buttonDisabled(valueToSetRef, deltaRef)">
 
-      {{ uitextValidate }}
-    </button>
-  </div>
+            {{ uitextValidate }}
+        </button>
+    </div>
 
-</form>
+</form>
\ No newline at end of file
diff --git a/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts b/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts
index 3ae949d91..d12470e4b 100644
--- a/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts
+++ b/src/app/components/dialog-edit-pab/dialog-edit-pab.component.ts
@@ -8,190 +8,190 @@ import { sprintf } from "sprintf-js";
 @Component({
     selector: "dialog-edit-pab",
     templateUrl: "dialog-edit-pab.component.html",
-    styleUrls: [ "dialog-edit-pab.component.scss" ]
+    styleUrls: ["dialog-edit-pab.component.scss"]
 })
 export class DialogEditPabComponent {
 
-  /** variables eligible to modification */
-  public availableVariables: any[];
-
-  /** symbols of the variables eligible to modification */
-  public availableVariableSymbols: string[];
-
-  /** action to apply to the variable */
-  public varAction: string;
-
-  /** value to set to all occurrences of the variable */
-  public valueToSet: number;
-
-  /** delta to apply (add) to all occurrences of the variable */
-  public delta: number;
-
-  /** true if selected devices are contained in one unique column */
-  public vertical: boolean;
-
-  /** variable to modify on every selected object */
-  private _variable: string;
-
-  /** number of selected walls and devices */
-  private selectedItemsAbstract: { walls: number, wallsDevices: number, devices: number };
-
-  constructor(
-    public dialogRef: MatDialogRef<DialogEditPabComponent>,
-    private intlService: I18nService,
-    @Inject(MAT_DIALOG_DATA) public data: any
-  ) {
-    this.selectedItemsAbstract = this.data.selectedItemsAbstract;
-    this.vertical = this.data.vertical;
-    this.availableVariables = this.data.availableVariables;
-    // console.log("AV VAR", this.availableVariables);
-    this.availableVariableSymbols = this.availableVariables.map(av => av.value);
-    this.variable = this.availableVariableSymbols[0];
-    // default action
-    this.varAction = "set-value";
-    // example values for validation / avoiding using a placeholder
-    this.valueToSet = this.availableVariables[0].first;
-    this.delta = 0;
-  }
-
-  public get variable(): string {
-    return this._variable;
-  }
-
-  // find available variable details from key
-  private findVariableDetails(variable: string): any {
-    let details: any;
-    for (const av of this.availableVariables) {
-      if (av.value === variable) {
-        details = av;
-      }
-    }
-    return details;
-  }
-
-  // preloads valueToSet depending on variable chosen
-  public set variable(v: string) {
-    this._variable = v;
-    const av = this.findVariableDetails(v);
-    this.valueToSet = av.first;
-  }
-
-  /** closes dialog and tells parent to apply modifications */
-  public applyValues() {
-    this.dialogRef.close({
-      action: this.varAction,
-      variable: this.variable,
-      value: Number(this.valueToSet),
-      delta: Number(this.delta),
-      variableDetails: this.findVariableDetails(this.variable)
-    });
-  }
-
-  public buttonDisabled(value: any, delta: any) {
-    return (
-      (this.varAction === "set-value" && ! value.valid)
-      || (this.varAction === "delta" && ! delta.valid)
-    );
-  }
-
-  /** returns a short text summing up what is selected */
-  public get selectionAbstract() {
-    let abstract = "";
-    if (this.selectedItemsAbstract.walls > 0) {
-      // devices outside of complete walls ?
-      if (this.selectedItemsAbstract.devices > 0) {
-        abstract = sprintf(
-          this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_N_WALLS_P_DEVICES"),
-          this.selectedItemsAbstract.walls,
-          this.selectedItemsAbstract.devices,
-          this.selectedItemsAbstract.wallsDevices + this.selectedItemsAbstract.devices
-        );
-      } else {
-        // only complete walls
-        abstract = sprintf(
-          this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_N_WALLS"),
-          this.selectedItemsAbstract.walls,
-          this.selectedItemsAbstract.wallsDevices
+    /** variables eligible to modification */
+    public availableVariables: any[];
+
+    /** symbols of the variables eligible to modification */
+    public availableVariableSymbols: string[];
+
+    /** action to apply to the variable */
+    public varAction: string;
+
+    /** value to set to all occurrences of the variable */
+    public valueToSet: number;
+
+    /** delta to apply (add) to all occurrences of the variable */
+    public delta: number;
+
+    /** true if selected devices are contained in one unique column */
+    public vertical: boolean;
+
+    /** variable to modify on every selected object */
+    private _variable: string;
+
+    /** number of selected walls and devices */
+    private selectedItemsAbstract: { walls: number, wallsDevices: number, devices: number };
+
+    constructor(
+        public dialogRef: MatDialogRef<DialogEditPabComponent>,
+        private intlService: I18nService,
+        @Inject(MAT_DIALOG_DATA) public data: any
+    ) {
+        this.selectedItemsAbstract = this.data.selectedItemsAbstract;
+        this.vertical = this.data.vertical;
+        this.availableVariables = this.data.availableVariables;
+        // console.log("AV VAR", this.availableVariables);
+        this.availableVariableSymbols = this.availableVariables.map(av => av.value);
+        this.variable = this.availableVariableSymbols[0];
+        // default action
+        this.varAction = "set-value";
+        // example values for validation / avoiding using a placeholder
+        this.valueToSet = this.availableVariables[0].first;
+        this.delta = 0;
+    }
+
+    public get variable(): string {
+        return this._variable;
+    }
+
+    // find available variable details from key
+    private findVariableDetails(variable: string): any {
+        let details: any;
+        for (const av of this.availableVariables) {
+            if (av.value === variable) {
+                details = av;
+            }
+        }
+        return details;
+    }
+
+    // preloads valueToSet depending on variable chosen
+    public set variable(v: string) {
+        this._variable = v;
+        const av = this.findVariableDetails(v);
+        this.valueToSet = av.first;
+    }
+
+    /** closes dialog and tells parent to apply modifications */
+    public applyValues() {
+        this.dialogRef.close({
+            action: this.varAction,
+            variable: this.variable,
+            value: Number(this.valueToSet),
+            delta: Number(this.delta),
+            variableDetails: this.findVariableDetails(this.variable)
+        });
+    }
+
+    public buttonDisabled(value: any, delta: any) {
+        return (
+            (this.varAction === "set-value" && !value.valid)
+            || (this.varAction === "delta" && !delta.valid)
         );
-      }
-    } else {
-      // no complete wall, devices only
-      abstract = sprintf(
-        this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_N_DEVICES"),
-        this.selectedItemsAbstract.devices
-      );
-    }
-    return abstract;
-  }
-
-  public variableLabel(v: string) {
-    const av = this.findVariableDetails(v);
-    return av.label;
-  }
-
-  public get interpolationEnabled() {
-    const varDetails = this.findVariableDetails(this.variable);
-    return (
-      this.vertical
-      && (this.selectedItemsAbstract.devices + this.selectedItemsAbstract.wallsDevices) > 1
-      && (varDetails.occurrences > 1)
-      && ([ "ZRAM", "ZRMB", "ZDV" ].includes(this.variable))
-    );
-  }
-
-  public get interpolationBounds() {
-    let bounds = "";
-    if (this.interpolationEnabled) {
-      const varDetails = this.findVariableDetails(this.variable);
-      if (varDetails) {
-        bounds = sprintf(
-          this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_INTERPOLATION_BOUNDS"),
-          varDetails.first,
-          varDetails.last
+    }
+
+    /** returns a short text summing up what is selected */
+    public get selectionAbstract() {
+        let abstract = "";
+        if (this.selectedItemsAbstract.walls > 0) {
+            // devices outside of complete walls ?
+            if (this.selectedItemsAbstract.devices > 0) {
+                abstract = sprintf(
+                    this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_N_WALLS_P_DEVICES"),
+                    this.selectedItemsAbstract.walls,
+                    this.selectedItemsAbstract.devices,
+                    this.selectedItemsAbstract.wallsDevices + this.selectedItemsAbstract.devices
+                );
+            } else {
+                // only complete walls
+                abstract = sprintf(
+                    this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_N_WALLS"),
+                    this.selectedItemsAbstract.walls,
+                    this.selectedItemsAbstract.wallsDevices
+                );
+            }
+        } else {
+            // no complete wall, devices only
+            abstract = sprintf(
+                this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_N_DEVICES"),
+                this.selectedItemsAbstract.devices
+            );
+        }
+        return abstract;
+    }
+
+    public variableLabel(v: string) {
+        const av = this.findVariableDetails(v);
+        return av.label;
+    }
+
+    public get interpolationEnabled() {
+        const varDetails = this.findVariableDetails(this.variable);
+        return (
+            this.vertical
+            && (this.selectedItemsAbstract.devices + this.selectedItemsAbstract.wallsDevices) > 1
+            && (varDetails.occurrences > 1)
+            && (["ZRAM", "ZRMB", "ZDV"].includes(this.variable))
         );
-      }
     }
-    return bounds;
-  }
 
-  public get uitextEditPabTitle() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_TITLE");
-  }
+    public get interpolationBounds() {
+        let bounds = "";
+        if (this.interpolationEnabled) {
+            const varDetails = this.findVariableDetails(this.variable);
+            if (varDetails) {
+                bounds = sprintf(
+                    this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_INTERPOLATION_BOUNDS"),
+                    varDetails.first,
+                    varDetails.last
+                );
+            }
+        }
+        return bounds;
+    }
 
-  public get uitextVariable() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_VARIABLE");
-  }
+    public get uitextEditPabTitle() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_TITLE");
+    }
 
-  public get uitextSetValue() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_SET_VALUE");
-  }
+    public get uitextVariable() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_VARIABLE");
+    }
+
+    public get uitextSetValue() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_SET_VALUE");
+    }
 
-  public get uitextDelta() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_DELTA");
-  }
+    public get uitextDelta() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_DELTA");
+    }
 
-  public get uitextInterpolate() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_INTERPOLATE");
-  }
+    public get uitextInterpolate() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_OPTION_INTERPOLATE");
+    }
 
-  public get uitextSetValueInput() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_SET_VALUE_INPUT");
-  }
+    public get uitextSetValueInput() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_SET_VALUE_INPUT");
+    }
 
-  public get uitextDeltaInput() {
-    return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_DELTA_INPUT");
-  }
+    public get uitextDeltaInput() {
+        return this.intlService.localizeText("INFO_DIALOG_EDIT_PAB_DELTA_INPUT");
+    }
 
-  public get uitextMustBeANumber(): string {
-      return this.intlService.localizeText("ERROR_PARAM_MUST_BE_A_NUMBER");
-  }
+    public get uitextMustBeANumber(): string {
+        return this.intlService.localizeText("ERROR_PARAM_MUST_BE_A_NUMBER");
+    }
 
-  public get uitextValidate() {
-    return this.intlService.localizeText("INFO_OPTION_VALIDATE");
-  }
+    public get uitextValidate() {
+        return this.intlService.localizeText("INFO_OPTION_VALIDATE");
+    }
 
-  public get uitextCancel() {
-    return this.intlService.localizeText("INFO_OPTION_CANCEL");
-  }
+    public get uitextCancel() {
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
+    }
 
 }
diff --git a/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.html b/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.html
index e3a40065d..0ec1a116e 100644
--- a/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.html
+++ b/src/app/components/dialog-edit-param-computed/dialog-edit-param-computed.component.html
@@ -2,17 +2,17 @@
 
 <form>
 
-  <div mat-dialog-content>
-    <ngparam-input [title]="param.title" ></ngparam-input>
-  </div>
+    <div mat-dialog-content>
+        <ngparam-input [title]="param.title"></ngparam-input>
+    </div>
 
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="true" cdkFocusInitial>
-        {{ uitextCancel }}
-    </button>
-    <button mat-raised-button color="warn" (click)="onValidate()">
-        {{ uitextValidate }}
-    </button>
-  </div>
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="true" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button color="warn" (click)="onValidate()">
+            {{ uitextValidate }}
+        </button>
+    </div>
 
-</form>
+</form>
\ No newline at end of file
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 d971e1ea6..4984494eb 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
@@ -20,17 +20,17 @@ export class DialogEditParamComputedComponent implements OnInit {
     private _ngParamInputComponent: NgParamInputComponent;
 
     constructor(
-      public dialogRef: MatDialogRef<DialogEditParamComputedComponent>,
-      private intlService: I18nService,
-      @Inject(MAT_DIALOG_DATA) public data: any
+        public dialogRef: MatDialogRef<DialogEditParamComputedComponent>,
+        private intlService: I18nService,
+        @Inject(MAT_DIALOG_DATA) public data: any
     ) {
-      // copy given parameter in a "fake" Ngparameter
-      const nP = data.param as NgParameter;
-      const p = nP.paramDefinition as ParamDefinition;
-      const pDef = new ParamDefinition(undefined, p.symbol, p.domain, p.unit, p.getValue(), p.family, p.visible);
-      this.param = new NgParameter(pDef, undefined);
-      this.param.setLabel(nP.label);
-      this.param.unit = nP.unit;
+        // copy given parameter in a "fake" Ngparameter
+        const nP = data.param as NgParameter;
+        const p = nP.paramDefinition as ParamDefinition;
+        const pDef = new ParamDefinition(undefined, p.symbol, p.domain, p.unit, p.getValue(), p.family, p.visible);
+        this.param = new NgParameter(pDef, undefined);
+        this.param.setLabel(nP.label);
+        this.param.unit = nP.unit;
     }
 
     public get uitextCancel(): string {
@@ -42,16 +42,16 @@ export class DialogEditParamComputedComponent implements OnInit {
     }
 
     public get uitextEditParamComputedInitialValue() {
-      return this.intlService.localizeText("INFO_DIALOG_COMPUTED_VALUE_TITLE");
+        return this.intlService.localizeText("INFO_DIALOG_COMPUTED_VALUE_TITLE");
     }
 
     public ngOnInit() {
-      this._ngParamInputComponent.model = this.param;
+        this._ngParamInputComponent.model = this.param;
     }
 
     public onValidate() {
-      this.dialogRef.close({
-        value: this.param.getValue()
-      });
+        this.dialogRef.close({
+            value: this.param.getValue()
+        });
     }
 }
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 594a6de2c..8a454d5c1 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
@@ -5,15 +5,15 @@
 
 <h1 mat-dialog-title>{{ uitextEditParamVariableValues }} ({{ numberOfValues }})</h1>
 
-  <div mat-dialog-content *ngIf="! viewChart">
+<div mat-dialog-content *ngIf="! viewChart">
 
     <mat-form-field>
-      <mat-select [placeholder]="uiTextModeSelection" [(value)]="selectedValueMode" (selectionChange)="onValueModeChange($event)"
-        data-testid="variable-value-mode-select">
-          <mat-option *ngFor="let e of valueModes" [value]="e.value">
-              {{ e.label }}
-          </mat-option>
-      </mat-select>
+        <mat-select [placeholder]="uiTextModeSelection" [(value)]="selectedValueMode"
+            (selectionChange)="onValueModeChange($event)" data-testid="variable-value-mode-select">
+            <mat-option *ngFor="let e of valueModes" [value]="e.value">
+                {{ e.label }}
+            </mat-option>
+        </mat-select>
     </mat-form-field>
 
     <div *ngIf="isMinMax" class="min-max-step-container">
@@ -21,8 +21,8 @@
             <mat-form-field>
                 <input matInput class="form-control" type="number" inputmode="numeric" name="min-value" step="0.01"
                     [placeholder]="uitextValeurMini" [(ngModel)]="minValue" #min="ngModel" name="min"
-                    (input)="minMaxForm.controls.max.updateValueAndValidity()"
-                    [appJalhydModelValidationMin]="param" required pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
+                    (input)="minMaxForm.controls.max.updateValueAndValidity()" [appJalhydModelValidationMin]="param"
+                    required pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
 
                 <mat-error *ngIf="min.errors">
                     <div *ngIf="min.errors.required || min.errors.pattern">
@@ -37,28 +37,27 @@
             <mat-form-field>
                 <input matInput class="form-control" type="number" inputmode="numeric" name="max-value" step="0.01"
                     [placeholder]="uitextValeurMaxi" [(ngModel)]="maxValue" #max="ngModel" name="max"
-                    (input)="minMaxForm.controls.min.updateValueAndValidity()"
-                    [appJalhydModelValidationMax]="param" required pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
-
-                    <mat-error *ngIf="max.errors">
-                        <div *ngIf="max.errors.required || max.errors.pattern">
-                            {{ uitextMustBeANumber }}
-                        </div>
-                        <div *ngIf="! max.errors.required && max.errors.jalhydModelMax">
-                            {{ max.errors.jalhydModelMax.message }}
-                        </div>
-                    </mat-error>
+                    (input)="minMaxForm.controls.min.updateValueAndValidity()" [appJalhydModelValidationMax]="param"
+                    required pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
+
+                <mat-error *ngIf="max.errors">
+                    <div *ngIf="max.errors.required || max.errors.pattern">
+                        {{ uitextMustBeANumber }}
+                    </div>
+                    <div *ngIf="! max.errors.required && max.errors.jalhydModelMax">
+                        {{ max.errors.jalhydModelMax.message }}
+                    </div>
+                </mat-error>
             </mat-form-field>
 
             <mat-form-field>
                 <input matInput class="form-control" type="number" inputmode="numeric" name="step-value" step="0.01"
                     [placeholder]="uitextPasVariation" [(ngModel)]="stepValue" #step="ngModel" name="step"
-                    [appJalhydModelValidationStep]="param"
-                    required pattern="^([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
+                    [appJalhydModelValidationStep]="param" required pattern="^([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$">
 
-                    <mat-error *ngIf="step.errors">
-                        {{ uitextMustBePositive }}
-                    </mat-error>
+                <mat-error *ngIf="step.errors">
+                    {{ uitextMustBePositive }}
+                </mat-error>
             </mat-form-field>
         </form>
     </div>
@@ -68,7 +67,7 @@
             <mat-form-field>
                 <textarea matInput matTextareaAutosize [placeholder]="uitextListeValeurs" formControlName="valuesList"
                     [value]="valuesList"></textarea>
-                    <!-- (input)="valuesList = $event.target.value" -->
+                <!-- (input)="valuesList = $event.target.value" -->
                 <mat-error>
                     <span *ngIf="valuesListForm.controls.valuesList.hasError('model')">
                         {{ valuesListForm.controls.valuesList.errors.model }}
@@ -92,8 +91,8 @@
                 <div fxHide.xs fxFlex.gt-xs="0 0 16px"></div>
 
                 <mat-form-field class="values-file file-input-field" fxFlex.gt-xs="1 0 auto" fxFlex.lt-sm="1 0 100%">
-                    <ngx-mat-file-input #valuesFile [placeholder]="uitextImportFile"
-                        (change)="onFileSelected($event)" formControlName="file">
+                    <ngx-mat-file-input #valuesFile [placeholder]="uitextImportFile" (change)="onFileSelected($event)"
+                        formControlName="file">
                     </ngx-mat-file-input>
                     <button mat-icon-button matSuffix *ngIf="!valuesFile.empty" (click)="valuesFile.clear($event)">
                         <mat-icon>clear</mat-icon>
@@ -104,22 +103,22 @@
     </div>
 
     <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" [title]="e.label">
-              {{ e.label }}
-          </mat-option>
-      </mat-select>
+        <mat-select [placeholder]="uitextExtensionStrategy" [(value)]="selectedExtensionStrategy"
+            data-testid="variable-extension-strategy-select">
+            <mat-option *ngFor="let e of extensionStrategies" [value]="e.value" [title]="e.label">
+                {{ e.label }}
+            </mat-option>
+        </mat-select>
     </mat-form-field>
 
-  </div>
+</div>
 
-  <div mat-dialog-content *ngIf="viewChart">
-        <chart id="values-chart" type="scatter" [data]="chartData" [options]="chartOptions">
-        </chart>
-  </div>
+<div mat-dialog-content *ngIf="viewChart">
+    <chart id="values-chart" type="scatter" [data]="chartData" [options]="chartOptions">
+    </chart>
+</div>
 
-  <div mat-dialog-actions [attr.align]="'end'">
+<div mat-dialog-actions [attr.align]="'end'">
     <div *ngIf="isMinMax || viewChart">
         <button mat-raised-button [mat-dialog-close]="true" [disabled]="minMaxFormInvalid" cdkFocusInitial>
             {{ uitextClose }}
@@ -133,4 +132,4 @@
             {{ uitextValidate }}
         </button>
     </div>
-  </div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.html b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.html
index c1161f20c..2f1ad4f3b 100644
--- a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.html
+++ b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.html
@@ -2,48 +2,48 @@
 
 <form id="form-generate-pab">
 
-  <div mat-dialog-content>
-
-    <mat-form-field>
-      <input matInput required [placeholder]="uitextDebit" pattern="^([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$"
-      [(ngModel)]="debit" name="debit" #inputDebit="ngModel" id="generatePabDebit">
-    </mat-form-field>
-    <mat-error *ngIf="inputDebit.invalid && (inputDebit.dirty || inputDebit.touched)">
-        <div *ngIf="inputDebit.errors.required || inputDebit.errors.pattern">
-            {{ uitextMustBePositive }}
-        </div>
-    </mat-error>
-
-    <mat-form-field>
-      <input matInput required [placeholder]="uitextCoteAmont" pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$"
-      [(ngModel)]="coteAmont" name="coteAmont" #inputCoteAmont="ngModel" id="generatePabCoteAmont">
-    </mat-form-field>
-    <mat-error *ngIf="inputCoteAmont.invalid && (inputCoteAmont.dirty || inputCoteAmont.touched)">
-        <div *ngIf="inputCoteAmont.errors.required || inputCoteAmont.errors.pattern">
-            {{ uitextMustBeANumber }}
-        </div>
-    </mat-error>
-
-    <mat-form-field>
-      <input matInput required [placeholder]="uitextNBBassins" pattern="^([2-9]|[1-9][0-9]+)$"
-      [(ngModel)]="nbBassins" name="nbBassins" #inputNbBassins="ngModel" id="generatePabNbBassins">
-    </mat-form-field>
-    <mat-error *ngIf="inputNbBassins.invalid && (inputNbBassins.dirty || inputNbBassins.touched)">
-        <div *ngIf="inputNbBassins.errors.required || inputNbBassins.errors.pattern">
-            {{ uitextMustBeAtLeastTwo }}
-        </div>
-    </mat-error>
-
-  </div>
-
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-      {{ uitextCancel }}
-    </button>
-    <button mat-raised-button type="submit" color="warn" (click)="generatePAB()" id="do-generate"
-      [disabled]="(inputDebit.invalid || inputCoteAmont.invalid || inputNbBassins.invalid)">
-      {{ uitextGenerate }}
-    </button>
-  </div>
-
-</form>
+    <div mat-dialog-content>
+
+        <mat-form-field>
+            <input matInput required [placeholder]="uitextDebit" pattern="^([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$"
+                [(ngModel)]="debit" name="debit" #inputDebit="ngModel" id="generatePabDebit">
+        </mat-form-field>
+        <mat-error *ngIf="inputDebit.invalid && (inputDebit.dirty || inputDebit.touched)">
+            <div *ngIf="inputDebit.errors.required || inputDebit.errors.pattern">
+                {{ uitextMustBePositive }}
+            </div>
+        </mat-error>
+
+        <mat-form-field>
+            <input matInput required [placeholder]="uitextCoteAmont" pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$"
+                [(ngModel)]="coteAmont" name="coteAmont" #inputCoteAmont="ngModel" id="generatePabCoteAmont">
+        </mat-form-field>
+        <mat-error *ngIf="inputCoteAmont.invalid && (inputCoteAmont.dirty || inputCoteAmont.touched)">
+            <div *ngIf="inputCoteAmont.errors.required || inputCoteAmont.errors.pattern">
+                {{ uitextMustBeANumber }}
+            </div>
+        </mat-error>
+
+        <mat-form-field>
+            <input matInput required [placeholder]="uitextNBBassins" pattern="^([2-9]|[1-9][0-9]+)$"
+                [(ngModel)]="nbBassins" name="nbBassins" #inputNbBassins="ngModel" id="generatePabNbBassins">
+        </mat-form-field>
+        <mat-error *ngIf="inputNbBassins.invalid && (inputNbBassins.dirty || inputNbBassins.touched)">
+            <div *ngIf="inputNbBassins.errors.required || inputNbBassins.errors.pattern">
+                {{ uitextMustBeAtLeastTwo }}
+            </div>
+        </mat-error>
+
+    </div>
+
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button type="submit" color="warn" (click)="generatePAB()" id="do-generate"
+            [disabled]="(inputDebit.invalid || inputCoteAmont.invalid || inputNbBassins.invalid)">
+            {{ uitextGenerate }}
+        </button>
+    </div>
+
+</form>
\ No newline at end of file
diff --git a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
index 062a4f237..9634a342b 100644
--- a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
+++ b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
@@ -14,76 +14,76 @@ import { round } from "jalhyd";
 })
 export class DialogGeneratePABComponent {
 
-  public debit = 1.5;
-
-  public coteAmont = 102;
-
-  public chute: number;
-
-  public nbBassins = 6;
-
-  constructor(
-    public dialogRef: MatDialogRef<DialogGeneratePABComponent>,
-    private intlService: I18nService,
-    private appSetupService: ApplicationSetupService,
-    @Inject(MAT_DIALOG_DATA) public data: any
-  ) {
-    const nDigits = this.appSetupService.displayPrecision;
-    this.coteAmont = round(data.coteAmont, nDigits);
-    this.debit = round(data.debit, nDigits);
-    this.chute = round(data.chute, nDigits);
-  }
-
-  public generatePAB() {
-    // calculate downstream elevation
-    const coteAval = this.coteAmont - (this.chute * this.nbBassins);
-    // create PAB
-    this.dialogRef.close({
-      generate: true,
-      debit: this.debit,
-      coteAmont: this.coteAmont,
-      coteAval: coteAval,
-      nbBassins: this.nbBassins
-    });
-  }
-
-  public get uitextDebit() {
-    return this.intlService.localizeText("INFO_DIALOG_PAB_Q");
-  }
-
-  public get uitextCoteAmont() {
-    return this.intlService.localizeText("INFO_DIALOG_PAB_Z1");
-  }
-
-  public get uitextCoteAval() {
-    return this.intlService.localizeText("INFO_DIALOG_PAB_Z2");
-  }
-
-  public get uitextNBBassins() {
-    return this.intlService.localizeText("INFO_DIALOG_PAB_NB");
-  }
-
-  public get uitextMustBeANumber() {
-    return this.intlService.localizeText("ERROR_PARAM_MUST_BE_A_NUMBER");
-  }
-
-  public get uitextMustBePositive() {
-    return this.intlService.localizeText("ERROR_PARAM_MUST_BE_POSITIVE");
-  }
-
-  public get uitextMustBeAtLeastTwo() {
-    return sprintf(this.intlService.localizeText("ERROR_PARAM_MUST_BE_AT_LEAST"), 2);
-  }
-
-  public get uitextGeneratePAB() {
-      return this.intlService.localizeText("INFO_CALCULATOR_RESULTS_GENERATE_PAB");
-  }
-
-  public get uitextGenerate() {
-    return this.intlService.localizeText("INFO_OPTION_GENERATE");
-  }
-
-  public get uitextCancel() {
-    return this.intlService.localizeText("INFO_OPTION_CANCEL");
-  }
+    public debit = 1.5;
+
+    public coteAmont = 102;
+
+    public chute: number;
+
+    public nbBassins = 6;
+
+    constructor(
+        public dialogRef: MatDialogRef<DialogGeneratePABComponent>,
+        private intlService: I18nService,
+        private appSetupService: ApplicationSetupService,
+        @Inject(MAT_DIALOG_DATA) public data: any
+    ) {
+        const nDigits = this.appSetupService.displayPrecision;
+        this.coteAmont = round(data.coteAmont, nDigits);
+        this.debit = round(data.debit, nDigits);
+        this.chute = round(data.chute, nDigits);
+    }
+
+    public generatePAB() {
+        // calculate downstream elevation
+        const coteAval = this.coteAmont - (this.chute * this.nbBassins);
+        // create PAB
+        this.dialogRef.close({
+            generate: true,
+            debit: this.debit,
+            coteAmont: this.coteAmont,
+            coteAval: coteAval,
+            nbBassins: this.nbBassins
+        });
+    }
+
+    public get uitextDebit() {
+        return this.intlService.localizeText("INFO_DIALOG_PAB_Q");
+    }
+
+    public get uitextCoteAmont() {
+        return this.intlService.localizeText("INFO_DIALOG_PAB_Z1");
+    }
+
+    public get uitextCoteAval() {
+        return this.intlService.localizeText("INFO_DIALOG_PAB_Z2");
+    }
+
+    public get uitextNBBassins() {
+        return this.intlService.localizeText("INFO_DIALOG_PAB_NB");
+    }
+
+    public get uitextMustBeANumber() {
+        return this.intlService.localizeText("ERROR_PARAM_MUST_BE_A_NUMBER");
+    }
+
+    public get uitextMustBePositive() {
+        return this.intlService.localizeText("ERROR_PARAM_MUST_BE_POSITIVE");
+    }
+
+    public get uitextMustBeAtLeastTwo() {
+        return sprintf(this.intlService.localizeText("ERROR_PARAM_MUST_BE_AT_LEAST"), 2);
+    }
+
+    public get uitextGeneratePAB() {
+        return this.intlService.localizeText("INFO_CALCULATOR_RESULTS_GENERATE_PAB");
+    }
+
+    public get uitextGenerate() {
+        return this.intlService.localizeText("INFO_OPTION_GENERATE");
+    }
+
+    public get uitextCancel() {
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
+    }
 }
diff --git a/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.html b/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.html
index 3f42734c8..dd11243cc 100644
--- a/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.html
+++ b/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.html
@@ -2,27 +2,27 @@
 
 <form id="form-generate-par-simulation">
 
-  <div mat-dialog-content>
-    <div id="generate-par-sim-desc">
-      {{ uitextDescription }}
+    <div mat-dialog-content>
+        <div id="generate-par-sim-desc">
+            {{ uitextDescription }}
+        </div>
+        <mat-form-field>
+            <mat-select id="select-combination" [placeholder]="label" [(value)]="selectedValue">
+                <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
+                    {{ entryLabel(e) }}
+                </mat-option>
+            </mat-select>
+        </mat-form-field>
     </div>
-    <mat-form-field>
-        <mat-select id="select-combination" [placeholder]="label" [(value)]="selectedValue">
-            <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
-                {{ entryLabel(e) }}
-            </mat-option>
-        </mat-select>
-    </mat-form-field>
-  </div>
 
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-      {{ uitextCancel }}
-    </button>
-    <button mat-raised-button type="submit" color="warn" (click)="generatePARSimulation()" id="do-generate"
-      [disabled]="">
-      {{ uitextGenerate }}
-    </button>
-  </div>
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button type="submit" color="warn" (click)="generatePARSimulation()" id="do-generate"
+            [disabled]="">
+            {{ uitextGenerate }}
+        </button>
+    </div>
 
-</form>
+</form>
\ No newline at end of file
diff --git a/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.ts b/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.ts
index dcb956902..ff941247e 100644
--- a/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.ts
+++ b/src/app/components/dialog-generate-par-simulation/dialog-generate-par-simulation.component.ts
@@ -13,97 +13,97 @@ import { fv, longestVarNgParam } from "../../util";
 })
 export class DialogGeneratePARSimulationComponent {
 
-  public selectedValue: number;
-
-  /** résultats de la ParCalage */
-  private _results: MultiDimensionResults;
-
-  /** size of the longest variable value */
-  private size = 0;
-
-  /** inferred extended values list for each variating parameter */
-  private varValues = [];
-
-  constructor(
-      public dialogRef: MatDialogRef<DialogGeneratePARSimulationComponent>,
-      private intlService: I18nService,
-      @Inject(MAT_DIALOG_DATA) public data: any
-  ) {
-      this._results = data.results;
-      this.selectedValue = 0;
-
-      if (this._results) {
-          // pre-extract variable parameters values
-          this.varValues = [];
-          // find longest list
-          const lvp = longestVarNgParam(this._results.variatedParameters);
-          this.size = lvp.size;
-          // get extended values lists for each variable parameter
-          for (const v of this._results.variatedParameters) {
-              const vv = [];
-              const iter = v.getExtendedValuesIterator(this.size);
-              while (iter.hasNext) {
-                  const nv = iter.next();
-                  vv.push(fv(nv.value));
-              }
-              this.varValues.push(vv);
-          }
-      }
-  }
-
-  public generatePARSimulation() {
-      this.dialogRef.close({
-          generate: true,
-          selected: this.selectedValue,
-          size: this.size
-      });
-  }
-
-  public get uitextDescription() {
-    return this.intlService.localizeText("INFO_DIALOG_PARSIM_DESC");
-  }
-
-  public get uitextGeneratePARSimulation() {
-      return this.intlService.localizeText("INFO_CALCULATOR_RESULTS_GENERATE_PAR_SIMULATION");
-  }
-
-  public get uitextGenerate() {
-      return this.intlService.localizeText("INFO_OPTION_GENERATE");
-  }
-
-  public get uitextCancel() {
-      return this.intlService.localizeText("INFO_OPTION_CANCEL");
-  }
-
-  public get entries(): number[] {
-      const ret: number[] = [];
-      for (let i = 0; i < this.size; i++) {
-          ret.push(i);
-      }
-      return ret;
-  }
-
-  protected entryLabel(index: number): string {
-      const kv = [];
-      for (let i = 0; i < this.varValues.length; i++) {
-          const vv = this.varValues[i];
-          const vp = this._results.variatedParameters[i];
-          let symbol = vp.symbol;
-          // is vp a parameter of a child Nub ?
-          if (
-              vp.paramDefinition.parentNub
-              && vp.paramDefinition.parentNub !== vp.paramDefinition.originNub
-          ) {
-              const pos = vp.paramDefinition.parentNub.findPositionInParent() + 1;
-              symbol = this.intlService.localizeText("INFO_LIB_RADIER_N_COURT") + pos + "_" + symbol;
-          }
-          kv.push(`${symbol} = ${vv[index]}`);
-      }
-      return kv.join(", ");
-  }
-
-  public get label() {
-      return this.intlService.localizeText("INFO_PARAMFIELD_BOUNDARY_CONDITIONS");
-  }
+    public selectedValue: number;
+
+    /** résultats de la ParCalage */
+    private _results: MultiDimensionResults;
+
+    /** size of the longest variable value */
+    private size = 0;
+
+    /** inferred extended values list for each variating parameter */
+    private varValues = [];
+
+    constructor(
+        public dialogRef: MatDialogRef<DialogGeneratePARSimulationComponent>,
+        private intlService: I18nService,
+        @Inject(MAT_DIALOG_DATA) public data: any
+    ) {
+        this._results = data.results;
+        this.selectedValue = 0;
+
+        if (this._results) {
+            // pre-extract variable parameters values
+            this.varValues = [];
+            // find longest list
+            const lvp = longestVarNgParam(this._results.variatedParameters);
+            this.size = lvp.size;
+            // get extended values lists for each variable parameter
+            for (const v of this._results.variatedParameters) {
+                const vv = [];
+                const iter = v.getExtendedValuesIterator(this.size);
+                while (iter.hasNext) {
+                    const nv = iter.next();
+                    vv.push(fv(nv.value));
+                }
+                this.varValues.push(vv);
+            }
+        }
+    }
+
+    public generatePARSimulation() {
+        this.dialogRef.close({
+            generate: true,
+            selected: this.selectedValue,
+            size: this.size
+        });
+    }
+
+    public get uitextDescription() {
+        return this.intlService.localizeText("INFO_DIALOG_PARSIM_DESC");
+    }
+
+    public get uitextGeneratePARSimulation() {
+        return this.intlService.localizeText("INFO_CALCULATOR_RESULTS_GENERATE_PAR_SIMULATION");
+    }
+
+    public get uitextGenerate() {
+        return this.intlService.localizeText("INFO_OPTION_GENERATE");
+    }
+
+    public get uitextCancel() {
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
+    }
+
+    public get entries(): number[] {
+        const ret: number[] = [];
+        for (let i = 0; i < this.size; i++) {
+            ret.push(i);
+        }
+        return ret;
+    }
+
+    protected entryLabel(index: number): string {
+        const kv = [];
+        for (let i = 0; i < this.varValues.length; i++) {
+            const vv = this.varValues[i];
+            const vp = this._results.variatedParameters[i];
+            let symbol = vp.symbol;
+            // is vp a parameter of a child Nub ?
+            if (
+                vp.paramDefinition.parentNub
+                && vp.paramDefinition.parentNub !== vp.paramDefinition.originNub
+            ) {
+                const pos = vp.paramDefinition.parentNub.findPositionInParent() + 1;
+                symbol = this.intlService.localizeText("INFO_LIB_RADIER_N_COURT") + pos + "_" + symbol;
+            }
+            kv.push(`${symbol} = ${vv[index]}`);
+        }
+        return kv.join(", ");
+    }
+
+    public get label() {
+        return this.intlService.localizeText("INFO_PARAMFIELD_BOUNDARY_CONDITIONS");
+    }
 
 }
diff --git a/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html
index 13e394591..d82ff2f07 100644
--- a/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html
+++ b/src/app/components/dialog-load-predefined-espece/dialog-load-predefined-espece.component.html
@@ -2,24 +2,24 @@
 
 <form id="form-load-predefined-espece">
 
-  <div mat-dialog-content>
-    <mat-form-field>
-        <mat-select id="select-combination" [placeholder]="label" [(value)]="selectedValue">
-            <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
-                {{ entryLabel(e) }}
-            </mat-option>
-        </mat-select>
-    </mat-form-field>
-  </div>
+    <div mat-dialog-content>
+        <mat-form-field>
+            <mat-select id="select-combination" [placeholder]="label" [(value)]="selectedValue">
+                <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
+                    {{ entryLabel(e) }}
+                </mat-option>
+            </mat-select>
+        </mat-form-field>
+    </div>
 
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-      {{ uitextCancel }}
-    </button>
-    <button mat-raised-button type="submit" color="warn" (click)="loadPredefinedEspece()" id="do-load"
-      [disabled]="">
-      {{ uitextLoad }}
-    </button>
-  </div>
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button type="submit" color="warn" (click)="loadPredefinedEspece()" id="do-load"
+            [disabled]="">
+            {{ uitextLoad }}
+        </button>
+    </div>
 
-</form>
+</form>
\ No newline at end of file
diff --git a/src/app/components/dialog-load-session/dialog-load-session.component.html b/src/app/components/dialog-load-session/dialog-load-session.component.html
index ba088e2bf..bbb1ed6f6 100644
--- a/src/app/components/dialog-load-session/dialog-load-session.component.html
+++ b/src/app/components/dialog-load-session/dialog-load-session.component.html
@@ -2,70 +2,71 @@
 
 <form [formGroup]="loadSessionForm">
 
-  <div mat-dialog-content>
+    <div mat-dialog-content>
 
-    <mat-form-field class="file-input-field">
-      <ngx-mat-file-input id="session-file-input" #sessionFile formControlName="file"[placeholder]="uitextLoadSessionFilename"
-        (change)="onFileSelected($event)"></ngx-mat-file-input>
-      <button mat-icon-button matSuffix *ngIf="!sessionFile.empty" (click)="sessionFile.clear($event)">
-        <mat-icon>clear</mat-icon>
-      </button>
-    </mat-form-field>
+        <mat-form-field class="file-input-field">
+            <ngx-mat-file-input id="session-file-input" #sessionFile formControlName="file"
+                [placeholder]="uitextLoadSessionFilename" (change)="onFileSelected($event)"></ngx-mat-file-input>
+            <button mat-icon-button matSuffix *ngIf="!sessionFile.empty" (click)="sessionFile.clear($event)">
+                <mat-icon>clear</mat-icon>
+            </button>
+        </mat-form-field>
 
-    <div class="cb-container">
-      <mat-checkbox [name]="c.uid" *ngFor="let c of calculators" (change)="checkLinkedParamsAndModelsDependencies()"
-        [(ngModel)]="c.selected" [ngModelOptions]="{standalone: true}">
-        {{ c.title }}
-      </mat-checkbox>
-    </div>
+        <div class="cb-container">
+            <mat-checkbox [name]="c.uid" *ngFor="let c of calculators"
+                (change)="checkLinkedParamsAndModelsDependencies()" [(ngModel)]="c.selected"
+                [ngModelOptions]="{standalone: true}">
+                {{ c.title }}
+            </mat-checkbox>
+        </div>
 
-    <div class="btn-container">
-      <button mat-raised-button (click)="selectAll()" [disabled]="calculators.length === 0">
-        {{ uitextAll }}
-      </button>
-      <button mat-raised-button (click)="selectNone()" [disabled]="calculators.length === 0">
-        {{ uitextNone }}
-      </button>
-    </div>
+        <div class="btn-container">
+            <button mat-raised-button (click)="selectAll()" [disabled]="calculators.length === 0">
+                {{ uitextAll }}
+            </button>
+            <button mat-raised-button (click)="selectNone()" [disabled]="calculators.length === 0">
+                {{ uitextNone }}
+            </button>
+        </div>
 
-    <div class="file-problem" *ngIf="fileProblem">
-      <mat-list role="list">
-        <mat-list-item role="listitem">
-          <mat-icon color="warn">error_outline</mat-icon> {{ uitextFileProblem }}
-        </mat-list-item>
-      </mat-list>
-    </div>
+        <div class="file-problem" *ngIf="fileProblem">
+            <mat-list role="list">
+                <mat-list-item role="listitem">
+                    <mat-icon color="warn">error_outline</mat-icon> {{ uitextFileProblem }}
+                </mat-list-item>
+            </mat-list>
+        </div>
 
-    <div class="dependencies-problems" *ngIf="dependenciesProblems.length > 0">
-      <mat-list role="list">
-        <mat-list-item role="listitem" *ngFor="let dp of dependenciesProblems">
-          <mat-icon color="warn">error_outline</mat-icon> {{ dp.message }}
-        </mat-list-item>
-      </mat-list>
-      <p>
-        <button mat-raised-button (click)="fixDependencies()"
-            [matBadge]="dependenciesProblems.length" matBadgeColor="warn">
-          {{ uitextFixMissingDependencies }}
-        </button>
-      </p>
+        <div class="dependencies-problems" *ngIf="dependenciesProblems.length > 0">
+            <mat-list role="list">
+                <mat-list-item role="listitem" *ngFor="let dp of dependenciesProblems">
+                    <mat-icon color="warn">error_outline</mat-icon> {{ dp.message }}
+                </mat-list-item>
+            </mat-list>
+            <p>
+                <button mat-raised-button (click)="fixDependencies()" [matBadge]="dependenciesProblems.length"
+                    matBadgeColor="warn">
+                    {{ uitextFixMissingDependencies }}
+                </button>
+            </p>
+        </div>
     </div>
-  </div>
 
-  <div class="cb-container">
-    <mat-checkbox [(ngModel)]="emptyCurrentSession" [ngModelOptions]="{standalone: true}">
-      {{ uitextEmptyCurrentSession }}
-    </mat-checkbox>
-  </div>
+    <div class="cb-container">
+        <mat-checkbox [(ngModel)]="emptyCurrentSession" [ngModelOptions]="{standalone: true}">
+            {{ uitextEmptyCurrentSession }}
+        </mat-checkbox>
+    </div>
 
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-      {{ uitextCancel }}
-    </button>
-    <button mat-raised-button type="submit" color="warn" (click)="loadSession()"
-      [disabled]="(loadSessionForm.invalid || ! atLeastOneCheckboxSelected)">
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button type="submit" color="warn" (click)="loadSession()"
+            [disabled]="(loadSessionForm.invalid || ! atLeastOneCheckboxSelected)">
 
-      {{ uitextLoad }}
-    </button>
-  </div>
+            {{ uitextLoad }}
+        </button>
+    </div>
 
-</form>
+</form>
\ No newline at end of file
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 35db621eb..653cf5ff5 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
@@ -38,31 +38,31 @@ export class DialogLoadSessionComponent {
     private loadingComplete = false;
 
     constructor(
-      public dialogRef: MatDialogRef<DialogLoadSessionComponent>,
-      private intlService: I18nService,
-      private fb: FormBuilder,
-      @Inject(MAT_DIALOG_DATA) public data: any
+        public dialogRef: MatDialogRef<DialogLoadSessionComponent>,
+        private intlService: I18nService,
+        private fb: FormBuilder,
+        @Inject(MAT_DIALOG_DATA) public data: any
     ) {
-      this.loadSessionForm = this.fb.group({
-        file: [null, Validators.required]
-      });
-      this.libFormatVersion = config.serialisation.fileFormatVersion;
+        this.loadSessionForm = this.fb.group({
+            file: [null, Validators.required]
+        });
+        this.libFormatVersion = config.serialisation.fileFormatVersion;
     }
 
     public selectAll() {
-      for (const c of this.calculators) {
-        c.selected = true;
-      }
-      // re-run dependency checking
-      this.checkLinkedParamsAndModelsDependencies();
+        for (const c of this.calculators) {
+            c.selected = true;
+        }
+        // re-run dependency checking
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     public selectNone() {
-      for (const c of this.calculators) {
-        c.selected = false;
-      }
-      // re-run dependency checking
-      this.checkLinkedParamsAndModelsDependencies();
+        for (const c of this.calculators) {
+            c.selected = false;
+        }
+        // re-run dependency checking
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     /**
@@ -71,186 +71,186 @@ export class DialogLoadSessionComponent {
      *  - PabCloisons depend on their models
      */
     public checkLinkedParamsAndModelsDependencies() {
-      this.dependenciesProblems = [];
-      // for all checked Nubs
-      this.calculators.forEach((c) => {
-        if (c.selected) {
-          // do all required nubs are checked ?
-          c.requires.forEach((r) => {
-            if (! this.isCalculatorOrParentSelected(r)) {
-              const realUid = this.getUidOrParentUid(r);
-              const depTitle = this.getTitleFromUid(realUid);
-              this.dependenciesProblems.push({
-                requiring: c.title,
-                required: depTitle,
-                requiredUid: realUid,
-                message: c.title + " " + this.intlService.localizeText("INFO_REQUIRES") + " " + depTitle
-              });
+        this.dependenciesProblems = [];
+        // for all checked Nubs
+        this.calculators.forEach((c) => {
+            if (c.selected) {
+                // do all required nubs are checked ?
+                c.requires.forEach((r) => {
+                    if (!this.isCalculatorOrParentSelected(r)) {
+                        const realUid = this.getUidOrParentUid(r);
+                        const depTitle = this.getTitleFromUid(realUid);
+                        this.dependenciesProblems.push({
+                            requiring: c.title,
+                            required: depTitle,
+                            requiredUid: realUid,
+                            message: c.title + " " + this.intlService.localizeText("INFO_REQUIRES") + " " + depTitle
+                        });
+                    }
+                });
             }
-          });
-        }
-      });
+        });
     }
 
     public fixDependencies() {
-      for (const dp of this.dependenciesProblems) {
-        this.selectRequiredModule(dp.requiredUid);
-      }
+        for (const dp of this.dependenciesProblems) {
+            this.selectRequiredModule(dp.requiredUid);
+        }
     }
 
     private isCalculatorOrParentSelected(uid: string): boolean {
-      let isSelected = false;
-      this.calculators.forEach((c) => {
-        if (c.uid === uid || c.children.includes(uid)) {
-          isSelected = c.selected;
-        }
-      });
-      return isSelected;
+        let isSelected = false;
+        this.calculators.forEach((c) => {
+            if (c.uid === uid || c.children.includes(uid)) {
+                isSelected = c.selected;
+            }
+        });
+        return isSelected;
     }
 
     private getUidOrParentUid(uid: string): string {
-      let realUid: string;
-      this.calculators.forEach((c) => {
-        if (c.uid === uid || c.children.includes(uid)) {
-          realUid = c.uid;
-        }
-      });
-      return realUid;
+        let realUid: string;
+        this.calculators.forEach((c) => {
+            if (c.uid === uid || c.children.includes(uid)) {
+                realUid = c.uid;
+            }
+        });
+        return realUid;
     }
 
     private getTitleFromUid(uid: string): string {
-      let title: string;
-      this.calculators.forEach((c) => {
-        if (c.uid === uid) {
-          title = c.title;
-        }
-      });
-      return title;
+        let title: string;
+        this.calculators.forEach((c) => {
+            if (c.uid === uid) {
+                title = c.title;
+            }
+        });
+        return title;
     }
 
     private selectRequiredModule(uid: string) {
-      this.calculators.forEach((c) => {
-        if (c.uid === uid) {
-          c.selected = true;
-        }
-      });
-      // re-run dependency checking
-      this.checkLinkedParamsAndModelsDependencies();
+        this.calculators.forEach((c) => {
+            if (c.uid === uid) {
+                c.selected = true;
+            }
+        });
+        // re-run dependency checking
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     public onFileSelected(event: any) {
-      if (event.target.files && event.target.files.length) {
-        this.file = event.target.files[0];
-        // reinit file infos
-        this.calculators = [];
-        this.fileFormatVersion = "";
-        // reinit flags
-        this.loadingError = false;
-        this.loadingComplete = false;
-
-        const formService = ServiceFactory.formulaireService;
-        formService.calculatorInfosFromSessionFile(this.file).then(
-          calcInfos => {
-            this.fileFormatVersion = calcInfos.formatVersion;
-            this.calculators = calcInfos.nubs;
-            for (const n of this.calculators) {
-              n.selected = true;
-              // if no title was given, generate a default one
-              if (! n.title) {
-                n.title = decode(formService.getLocalisedShortTitleFromCalculatorType(n.type));
-              }
-            }
-            this.loadingComplete = true;
-          }
-        ).catch((err) => {
-          console.error(err);
-          this.loadingError = true;
-        });
-      }
+        if (event.target.files && event.target.files.length) {
+            this.file = event.target.files[0];
+            // reinit file infos
+            this.calculators = [];
+            this.fileFormatVersion = "";
+            // reinit flags
+            this.loadingError = false;
+            this.loadingComplete = false;
+
+            const formService = ServiceFactory.formulaireService;
+            formService.calculatorInfosFromSessionFile(this.file).then(
+                calcInfos => {
+                    this.fileFormatVersion = calcInfos.formatVersion;
+                    this.calculators = calcInfos.nubs;
+                    for (const n of this.calculators) {
+                        n.selected = true;
+                        // if no title was given, generate a default one
+                        if (!n.title) {
+                            n.title = decode(formService.getLocalisedShortTitleFromCalculatorType(n.type));
+                        }
+                    }
+                    this.loadingComplete = true;
+                }
+            ).catch((err) => {
+                console.error(err);
+                this.loadingError = true;
+            });
+        }
     }
 
     public loadSession() {
-      this.dialogRef.close({
-        calculators: this.calculators,
-        file: this.file,
-        emptySession: this.emptyCurrentSession
-      });
+        this.dialogRef.close({
+            calculators: this.calculators,
+            file: this.file,
+            emptySession: this.emptyCurrentSession
+        });
     }
 
     public get atLeastOneCheckboxSelected() {
-      let ok = false;
-      for (const c of this.calculators) {
-        ok = (ok || c.selected);
-      }
-      return ok;
+        let ok = false;
+        for (const c of this.calculators) {
+            ok = (ok || c.selected);
+        }
+        return ok;
     }
 
     /**
      * @returns true if any problem occurred during file loading
      */
     public get fileProblem(): boolean {
-      return (
-        this.loadingError
-        ||
-        this.fileFormatVersionProblem()
-        ||
-        this.fileIsEmpty()
-      );
+        return (
+            this.loadingError
+            ||
+            this.fileFormatVersionProblem()
+            ||
+            this.fileIsEmpty()
+        );
     }
 
     private fileFormatVersionProblem(): boolean {
-      return this.fileFormatVersion && (this.fileFormatVersion !== this.libFormatVersion);
+        return this.fileFormatVersion && (this.fileFormatVersion !== this.libFormatVersion);
     }
 
     private fileIsEmpty(): boolean {
-      return this.loadingComplete && this.calculators.length === 0;
+        return this.loadingComplete && this.calculators.length === 0;
     }
 
     public get uitextLoad() {
-      return this.intlService.localizeText("INFO_OPTION_LOAD");
+        return this.intlService.localizeText("INFO_OPTION_LOAD");
     }
 
     public get uitextCancel() {
-      return this.intlService.localizeText("INFO_OPTION_CANCEL");
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
     }
 
     public get uitextAll() {
-      return this.intlService.localizeText("INFO_OPTION_ALL");
+        return this.intlService.localizeText("INFO_OPTION_ALL");
     }
 
     public get uitextNone() {
-      return this.intlService.localizeText("INFO_OPTION_NONE");
+        return this.intlService.localizeText("INFO_OPTION_NONE");
     }
 
     public get uitextLoadSessionFilename() {
-      return this.intlService.localizeText("INFO_DIALOG_LOAD_SESSION_FILENAME");
+        return this.intlService.localizeText("INFO_DIALOG_LOAD_SESSION_FILENAME");
     }
 
     public get uitextLoadSessionTitle() {
-      return this.intlService.localizeText("INFO_DIALOG_LOAD_SESSION_TITLE");
+        return this.intlService.localizeText("INFO_DIALOG_LOAD_SESSION_TITLE");
     }
 
     public get uitextFixMissingDependencies() {
-      return this.intlService.localizeText("INFO_DIALOG_FIX_MISSING_DEPENDENCIES");
+        return this.intlService.localizeText("INFO_DIALOG_FIX_MISSING_DEPENDENCIES");
     }
 
     public get uitextEmptyCurrentSession() {
-      return this.intlService.localizeText("INFO_DIALOG_EMPTY_CURRENT_SESSION");
+        return this.intlService.localizeText("INFO_DIALOG_EMPTY_CURRENT_SESSION");
     }
 
     public get uitextFileProblem() {
-      if (this.loadingError) {
-        return this.intlService.localizeText("INFO_DIALOG_ERROR_LOADING_FILE");
-      }
-      if (this.fileFormatVersionProblem()) {
-        return sprintf(
-          this.intlService.localizeText("INFO_DIALOG_FORMAT_VERSIONS_MISMATCH"),
-          this.fileFormatVersion,
-          this.libFormatVersion
-        );
-      }
-      if (this.fileIsEmpty()) {
-        return this.intlService.localizeText("INFO_DIALOG_FILE_IS_EMPTY");
-      }
+        if (this.loadingError) {
+            return this.intlService.localizeText("INFO_DIALOG_ERROR_LOADING_FILE");
+        }
+        if (this.fileFormatVersionProblem()) {
+            return sprintf(
+                this.intlService.localizeText("INFO_DIALOG_FORMAT_VERSIONS_MISMATCH"),
+                this.fileFormatVersion,
+                this.libFormatVersion
+            );
+        }
+        if (this.fileIsEmpty()) {
+            return this.intlService.localizeText("INFO_DIALOG_FILE_IS_EMPTY");
+        }
     }
 }
diff --git a/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.html b/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.html
index a5dd7a17f..ad7493bec 100644
--- a/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.html
+++ b/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.html
@@ -4,7 +4,7 @@
     <log-entry *ngFor="let m of data.messages" [_message]="m"></log-entry>
 </div>
 <div mat-dialog-actions [attr.align]="'end'">
-  <button mat-raised-button [mat-dialog-close]="true">
-    {{ uitextClose }}
-  </button>
-</div>
+    <button mat-raised-button [mat-dialog-close]="true">
+        {{ uitextClose }}
+    </button>
+</div>
\ No newline at end of file
diff --git a/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts b/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts
index b9669a32f..08be1c712 100644
--- a/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts
+++ b/src/app/components/dialog-log-entries-details/dialog-log-entries-details.component.ts
@@ -15,10 +15,10 @@ export class DialogLogEntriesDetailsComponent {
     ) { }
 
     public get uitextLogEntriesDetailsTitle() {
-      return this.intlService.localizeText("INFO_TITREJOURNAL");
+        return this.intlService.localizeText("INFO_TITREJOURNAL");
     }
 
     public get uitextClose() {
-      return this.intlService.localizeText("INFO_OPTION_CLOSE");
+        return this.intlService.localizeText("INFO_OPTION_CLOSE");
     }
 }
diff --git a/src/app/components/dialog-save-session/dialog-save-session.component.html b/src/app/components/dialog-save-session/dialog-save-session.component.html
index 4e522ee37..4d15ec7f0 100644
--- a/src/app/components/dialog-save-session/dialog-save-session.component.html
+++ b/src/app/components/dialog-save-session/dialog-save-session.component.html
@@ -2,48 +2,48 @@
 
 <form>
 
-  <div mat-dialog-content>
-    <div class="cb-container">
-      <mat-checkbox [name]="c.uid" *ngFor="let c of calculators" [(ngModel)]="c.selected"
-        (change)="checkLinkedParamsAndModelsDependencies()">
-        {{ c.title }}
-      </mat-checkbox>
+    <div mat-dialog-content>
+        <div class="cb-container">
+            <mat-checkbox [name]="c.uid" *ngFor="let c of calculators" [(ngModel)]="c.selected"
+                (change)="checkLinkedParamsAndModelsDependencies()">
+                {{ c.title }}
+            </mat-checkbox>
+        </div>
+
+        <div class="btn-container">
+            <button mat-raised-button (click)="selectAll()">{{ uitextAll }}</button>
+            <button mat-raised-button (click)="selectNone()">{{ uitextNone }}</button>
+        </div>
+
+        <div class="dependencies-problems" *ngIf="dependenciesProblems.length > 0">
+            <mat-list role="list">
+                <mat-list-item role="listitem" *ngFor="let dp of dependenciesProblems">
+                    <mat-icon color="warn">error_outline</mat-icon> {{ dp.message }}
+                </mat-list-item>
+            </mat-list>
+            <p>
+                <button mat-raised-button (click)="fixDependencies()" [matBadge]="dependenciesProblems.length"
+                    matBadgeColor="warn">
+                    {{ uitextFixMissingDependencies }}
+                </button>
+            </p>
+        </div>
+
+        <mat-form-field>
+            <input matInput required [placeholder]="uitextFilenameInput" [(ngModel)]="fileName" name="filename"
+                #filename="ngModel" (keydown.enter)="onEnterPressed($event)">
+        </mat-form-field>
     </div>
 
-    <div class="btn-container">
-      <button mat-raised-button (click)="selectAll()">{{ uitextAll }}</button>
-      <button mat-raised-button (click)="selectNone()">{{ uitextNone }}</button>
-    </div>
+    <div mat-dialog-actions [attr.align]="'end'">
+        <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
+            {{ uitextCancel }}
+        </button>
+        <button mat-raised-button type="submit" color="warn" (click)="saveSession()"
+            [disabled]="(! filename.valid) || (! atLeastOneCheckboxSelected)">
 
-    <div class="dependencies-problems" *ngIf="dependenciesProblems.length > 0">
-      <mat-list role="list">
-        <mat-list-item role="listitem" *ngFor="let dp of dependenciesProblems">
-          <mat-icon color="warn">error_outline</mat-icon> {{ dp.message }}
-        </mat-list-item>
-      </mat-list>
-      <p>
-        <button mat-raised-button (click)="fixDependencies()"
-            [matBadge]="dependenciesProblems.length" matBadgeColor="warn">
-          {{ uitextFixMissingDependencies }}
+            {{ uitextSave }}
         </button>
-      </p>
     </div>
 
-    <mat-form-field>
-      <input matInput required [placeholder]="uitextFilenameInput" [(ngModel)]="fileName"
-        name="filename" #filename="ngModel" (keydown.enter)="onEnterPressed($event)">
-    </mat-form-field>
-  </div>
-
-  <div mat-dialog-actions [attr.align]="'end'">
-    <button mat-raised-button color="primary" [mat-dialog-close]="false" cdkFocusInitial>
-      {{ uitextCancel }}
-    </button>
-    <button mat-raised-button type="submit" color="warn" (click)="saveSession()"
-      [disabled]="(! filename.valid) || (! atLeastOneCheckboxSelected)">
-
-      {{ uitextSave }}
-    </button>
-  </div>
-
-</form>
+</form>
\ No newline at end of file
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 092b245f2..b9b5eb10d 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
@@ -16,29 +16,29 @@ export class DialogSaveSessionComponent {
     public dependenciesProblems: any[] = [];
 
     constructor(
-      public dialogRef: MatDialogRef<DialogSaveSessionComponent>,
-      private intlService: I18nService,
-      @Inject(MAT_DIALOG_DATA) public data: any
+        public dialogRef: MatDialogRef<DialogSaveSessionComponent>,
+        private intlService: I18nService,
+        @Inject(MAT_DIALOG_DATA) public data: any
     ) {
-      this.calculators = data.calculators;
-      // run dependency checking at first
-      this.checkLinkedParamsAndModelsDependencies();
+        this.calculators = data.calculators;
+        // run dependency checking at first
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     public selectAll() {
-      for (const c of this.calculators) {
-          c.selected = true;
-      }
-      // re-run dependency checking
-      this.checkLinkedParamsAndModelsDependencies();
+        for (const c of this.calculators) {
+            c.selected = true;
+        }
+        // re-run dependency checking
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     public selectNone() {
-      for (const c of this.calculators) {
-        c.selected = false;
-      }
-      // re-run dependency checking
-      this.checkLinkedParamsAndModelsDependencies();
+        for (const c of this.calculators) {
+            c.selected = false;
+        }
+        // re-run dependency checking
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     /**
@@ -47,114 +47,114 @@ export class DialogSaveSessionComponent {
      *  - PabCloisons depend on their models
      */
     public checkLinkedParamsAndModelsDependencies() {
-      this.dependenciesProblems = [];
-      // for all checked Nubs
-      this.calculators.forEach((c) => {
-        if (c.selected) {
-          // do all required nubs are checked ?
-          c.requires.forEach((r) => {
-            if (! this.isCalculatorOrParentSelected(r)) {
-              const realUid = this.getUidOrParentUid(r);
-              const depTitle = this.getTitleFromUid(realUid);
-              this.dependenciesProblems.push({
-                requiring: c.title,
-                required: depTitle,
-                requiredUid: realUid,
-                message: c.title + " " + this.intlService.localizeText("INFO_REQUIRES") + " " + depTitle
-              });
+        this.dependenciesProblems = [];
+        // for all checked Nubs
+        this.calculators.forEach((c) => {
+            if (c.selected) {
+                // do all required nubs are checked ?
+                c.requires.forEach((r) => {
+                    if (!this.isCalculatorOrParentSelected(r)) {
+                        const realUid = this.getUidOrParentUid(r);
+                        const depTitle = this.getTitleFromUid(realUid);
+                        this.dependenciesProblems.push({
+                            requiring: c.title,
+                            required: depTitle,
+                            requiredUid: realUid,
+                            message: c.title + " " + this.intlService.localizeText("INFO_REQUIRES") + " " + depTitle
+                        });
+                    }
+                });
             }
-          });
-        }
-      });
+        });
     }
 
     public fixDependencies() {
-      for (const dp of this.dependenciesProblems) {
-        this.selectRequiredModule(dp.requiredUid);
-      }
+        for (const dp of this.dependenciesProblems) {
+            this.selectRequiredModule(dp.requiredUid);
+        }
     }
 
     private isCalculatorOrParentSelected(uid: string): boolean {
-      let isSelected = false;
-      this.calculators.forEach((c) => {
-        if (c.uid === uid || c.children.includes(uid)) {
-          isSelected = c.selected;
-        }
-      });
-      return isSelected;
+        let isSelected = false;
+        this.calculators.forEach((c) => {
+            if (c.uid === uid || c.children.includes(uid)) {
+                isSelected = c.selected;
+            }
+        });
+        return isSelected;
     }
 
     private getUidOrParentUid(uid: string): string {
-      let realUid: string;
-      this.calculators.forEach((c) => {
-        if (c.uid === uid || c.children.includes(uid)) {
-          realUid = c.uid;
-        }
-      });
-      return realUid;
+        let realUid: string;
+        this.calculators.forEach((c) => {
+            if (c.uid === uid || c.children.includes(uid)) {
+                realUid = c.uid;
+            }
+        });
+        return realUid;
     }
 
     private getTitleFromUid(uid: string): string {
-      let title: string;
-      this.calculators.forEach((c) => {
-        if (c.uid === uid) {
-          title = c.title;
-        }
-      });
-      return title;
+        let title: string;
+        this.calculators.forEach((c) => {
+            if (c.uid === uid) {
+                title = c.title;
+            }
+        });
+        return title;
     }
 
     private selectRequiredModule(uid: string) {
-      this.calculators.forEach((c) => {
-        if (c.uid === uid) {
-          c.selected = true;
-        }
-      });
-      // re-run dependency checking
-      this.checkLinkedParamsAndModelsDependencies();
+        this.calculators.forEach((c) => {
+            if (c.uid === uid) {
+                c.selected = true;
+            }
+        });
+        // re-run dependency checking
+        this.checkLinkedParamsAndModelsDependencies();
     }
 
     public saveSession() {
-      this.dialogRef.close({
-        calculators: this.calculators,
-        filename: this.fileName
-      });
+        this.dialogRef.close({
+            calculators: this.calculators,
+            filename: this.fileName
+        });
     }
 
     public get atLeastOneCheckboxSelected() {
-      let ok = false;
-      for (const c of this.calculators) {
-        ok = (ok || c.selected);
-      }
-      return ok;
+        let ok = false;
+        for (const c of this.calculators) {
+            ok = (ok || c.selected);
+        }
+        return ok;
     }
 
     public get uitextSave() {
-      return this.intlService.localizeText("INFO_OPTION_SAVE");
+        return this.intlService.localizeText("INFO_OPTION_SAVE");
     }
 
     public get uitextCancel() {
-      return this.intlService.localizeText("INFO_OPTION_CANCEL");
+        return this.intlService.localizeText("INFO_OPTION_CANCEL");
     }
 
     public get uitextAll() {
-      return this.intlService.localizeText("INFO_OPTION_ALL");
+        return this.intlService.localizeText("INFO_OPTION_ALL");
     }
 
     public get uitextNone() {
-      return this.intlService.localizeText("INFO_OPTION_NONE");
+        return this.intlService.localizeText("INFO_OPTION_NONE");
     }
 
     public get uitextSaveSessionTitle() {
-      return this.intlService.localizeText("INFO_DIALOG_SAVE_SESSION_TITLE");
+        return this.intlService.localizeText("INFO_DIALOG_SAVE_SESSION_TITLE");
     }
 
     public get uitextFilenameInput() {
-      return this.intlService.localizeText("INFO_DIALOG_SAVE_SESSION_FILENAME");
+        return this.intlService.localizeText("INFO_DIALOG_SAVE_SESSION_FILENAME");
     }
 
     public get uitextFixMissingDependencies() {
-      return this.intlService.localizeText("INFO_DIALOG_FIX_MISSING_DEPENDENCIES");
+        return this.intlService.localizeText("INFO_DIALOG_FIX_MISSING_DEPENDENCIES");
     }
 
     public onEnterPressed(event) {
diff --git a/src/app/components/field-set/field-set.component.html b/src/app/components/field-set/field-set.component.html
index 59f755bbc..808d883ec 100644
--- a/src/app/components/field-set/field-set.component.html
+++ b/src/app/components/field-set/field-set.component.html
@@ -9,25 +9,31 @@
                     {{ i }}
                 </mat-option>
             </mat-select>
-            <button type="button" mat-icon-button (click)="onAddClick()" class="add-structure" [title]="uitextAddStructure">
+            <button type="button" mat-icon-button (click)="onAddClick()" class="add-structure"
+                [title]="uitextAddStructure">
                 <mat-icon>add_box</mat-icon>
             </button>
-            <button type="button" mat-icon-button (click)="onCopyClick()" class="copy-structure" [title]="uitextCopyStructure">
+            <button type="button" mat-icon-button (click)="onCopyClick()" class="copy-structure"
+                [title]="uitextCopyStructure">
                 <mat-icon>content_copy</mat-icon>
             </button>
             |
-            <button type="button" mat-icon-button [disabled]="! enableRemoveButton" (click)="onRemoveClick()" [title]="uitextRemoveStructure">
+            <button type="button" mat-icon-button [disabled]="! enableRemoveButton" (click)="onRemoveClick()"
+                [title]="uitextRemoveStructure">
                 <mat-icon>delete</mat-icon>
             </button>
-            <button type="button" mat-icon-button [disabled]="! enableUpButton" (click)="onMoveUpClick()" [title]="uitextMoveStructureUp">
+            <button type="button" mat-icon-button [disabled]="! enableUpButton" (click)="onMoveUpClick()"
+                [title]="uitextMoveStructureUp">
                 <mat-icon>arrow_upward</mat-icon>
             </button>
-            <button type="button" mat-icon-button [disabled]="! enableDownButton" (click)="onMoveDownClick()" [title]="uitextMoveStructureDown">
+            <button type="button" mat-icon-button [disabled]="! enableDownButton" (click)="onMoveDownClick()"
+                [title]="uitextMoveStructureDown">
                 <mat-icon>arrow_downward</mat-icon>
             </button>
             <span *ngIf="enableHelpButton">|</span>
         </span>
-        <button *ngIf="enableHelpButton" class="help-button" type="button" mat-icon-button  (click)="openHelp()" [title]="uitextOpenHelp">
+        <button *ngIf="enableHelpButton" class="help-button" type="button" mat-icon-button (click)="openHelp()"
+            [title]="uitextOpenHelp">
             <mat-icon id="help-fieldset">help</mat-icon>
         </button>
     </div>
@@ -42,4 +48,4 @@
         <select-field-line *ngIf="isSelectField(p)" [_select]=p>
         </select-field-line>
     </ng-template>
-</mat-card-content>
+</mat-card-content>
\ No newline at end of file
diff --git a/src/app/components/fixedvar-results/fixed-results.component.html b/src/app/components/fixedvar-results/fixed-results.component.html
index 723677e79..d9bca9625 100644
--- a/src/app/components/fixedvar-results/fixed-results.component.html
+++ b/src/app/components/fixedvar-results/fixed-results.component.html
@@ -12,15 +12,17 @@
 
             <ng-container matColumnDef="parametre">
                 <th mat-header-cell *matHeaderCellDef>{{ uitextParamFixes }}</th>
-                <td mat-cell *matCellDef="let element" [innerHTML]="element.label" [ngClass]="{'highlightedResult': element.isCalcResult}"></td>
+                <td mat-cell *matCellDef="let element" [innerHTML]="element.label"
+                    [ngClass]="{'highlightedResult': element.isCalcResult}"></td>
             </ng-container>
             <ng-container matColumnDef="valeur">
                 <th mat-header-cell *matHeaderCellDef>{{ uitextValeurs }}</th>
-                <td mat-cell *matCellDef="let element" [ngClass]="{'highlightedResult': element.isCalcResult}">{{ element.value }}</td>
+                <td mat-cell *matCellDef="let element" [ngClass]="{'highlightedResult': element.isCalcResult}">
+                    {{ element.value }}</td>
             </ng-container>
 
             <tr mat-header-row *matHeaderRowDef="tableColumns"></tr>
             <tr mat-row *matRowDef="let row; columns: tableColumns;"></tr>
         </table>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/fixedvar-results/var-results.component.html b/src/app/components/fixedvar-results/var-results.component.html
index d0b757304..f09451b74 100644
--- a/src/app/components/fixedvar-results/var-results.component.html
+++ b/src/app/components/fixedvar-results/var-results.component.html
@@ -1,10 +1,12 @@
-<div class="var-results-container" #variableResults *ngIf="hasResults" fxLayout="row wrap" fxLayoutAlign="center center">
+<div class="var-results-container" #variableResults *ngIf="hasResults" fxLayout="row wrap"
+    fxLayoutAlign="center center">
     <div fxFlex="1 1 100%">
         <div class="var-results-buttons">
             <button mat-icon-button (click)="exportAsSpreadsheet()" [title]="uitextExportAsSpreadsheet">
                 <mat-icon color="primary">file_download</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(variableResults)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(variableResults)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -42,4 +44,4 @@
             </div>
         </div>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/generic-calculator/calculator.component.html b/src/app/components/generic-calculator/calculator.component.html
index ed13135ee..f5ccefc0f 100644
--- a/src/app/components/generic-calculator/calculator.component.html
+++ b/src/app/components/generic-calculator/calculator.component.html
@@ -4,7 +4,8 @@
 
         <div class="hyd-window-btns">
             <!-- bouton d'aide -->
-            <mat-icon id="help-calc" *ngIf="enableHelpButton" (click)="openHelp()" color="accent" [title]="uitextOpenHelp">
+            <mat-icon id="help-calc" *ngIf="enableHelpButton" (click)="openHelp()" color="accent"
+                [title]="uitextOpenHelp">
                 help
             </mat-icon>
             <!-- bouton de duplication -->
@@ -27,7 +28,7 @@
             <h1 [innerHTML]="uitextTitre"></h1>
             <div id="calculator-used-by" *ngIf="calculatorsUsingThisOne.length > 0">
                 {{ uitextUsedBy }}
-                <span *ngFor="let c of calculatorsUsingThisOne; let i = index; trackBy:tbIndex" >
+                <span *ngFor="let c of calculatorsUsingThisOne; let i = index; trackBy:tbIndex">
                     <a class="used-by-item" (click)="toCalc(c.uid)">
                         {{ c.label }}
                     </a>
@@ -48,29 +49,28 @@
             <calc-name id="calculator-name" [title]="uitextCalculatorName"></calc-name>
 
             <button mat-raised-button type="button" color="accent" id="load-predefined-espece" *ngIf="isEspece"
-              (click)="loadPredefinedEspece()" [title]="uitextLoadPredefinedEspece">
+                (click)="loadPredefinedEspece()" [title]="uitextLoadPredefinedEspece">
                 {{ uitextLoadPredefinedEspece }}
             </button>
 
-            <div id="calc-cards-container" class="container"
-              [fxLayout]="isWide ? 'column' : 'row wrap'"
-              [fxLayoutAlign]="isWide ? 'space-around stretch' : 'space-around start'">
+            <div id="calc-cards-container" class="container" [fxLayout]="isWide ? 'column' : 'row wrap'"
+                [fxLayoutAlign]="isWide ? 'space-around stretch' : 'space-around start'">
 
                 <!-- chapitres -->
-                <mat-card id="calc-card-field-sets"
-                  [class.pab-field-sets]="isWide"
-                  [fxFlex.gt-sm]="isWide ? '1 0 auto' : '1 0 400px'"
-                  [fxFlex.lt-md]="isWide ? '1 0 auto' : '1 0 500px'"
-                  [fxFlex.lt-sm]="isWide ? '1 0 auto' : '1 0 300px'">
+                <mat-card id="calc-card-field-sets" [class.pab-field-sets]="isWide"
+                    [fxFlex.gt-sm]="isWide ? '1 0 auto' : '1 0 400px'"
+                    [fxFlex.lt-md]="isWide ? '1 0 auto' : '1 0 500px'"
+                    [fxFlex.lt-sm]="isWide ? '1 0 auto' : '1 0 300px'">
 
                     <ng-template ngFor let-fe [ngForOf]="formElements">
                         <field-set *ngIf="isFieldset(fe)" [style.display]="getElementStyleDisplay(fe.id)" [fieldSet]=fe
-                            (radio)=onRadioClick($event) (validChange)=onElementValid() (inputChange)=onInputChange($event)
-                            (tabPressed)="onTabPressed($event)">
+                            (radio)=onRadioClick($event) (validChange)=onElementValid()
+                            (inputChange)=onInputChange($event) (tabPressed)="onTabPressed($event)">
                         </field-set>
 
-                        <fieldset-container *ngIf="isFieldsetContainer(fe)" [style.display]="getElementStyleDisplay(fe.id)" [_container]=fe
-                            (radio)=onRadioClick($event) (validChange)=onElementValid() (inputChange)=onInputChange($event)
+                        <fieldset-container *ngIf="isFieldsetContainer(fe)"
+                            [style.display]="getElementStyleDisplay(fe.id)" [_container]=fe (radio)=onRadioClick($event)
+                            (validChange)=onElementValid() (inputChange)=onInputChange($event)
                             (tabPressed)="onTabPressed($event)">
                         </fieldset-container>
 
@@ -82,23 +82,23 @@
                     <mat-card-actions>
                         <!-- bouton calculer -->
                         <button type="submit" id="trigger-calculate" mat-raised-button color="accent" name="Calculer"
-                          (click)="doCompute()" [disabled]="isCalculateDisabled" [hidden]="calculateDisabledPermanently">
+                            (click)="doCompute()" [disabled]="isCalculateDisabled"
+                            [hidden]="calculateDisabledPermanently">
                             {{ uitextCalculer }}
                         </button>
                     </mat-card-actions>
                 </mat-card>
 
                 <!-- résultats -->
-                <mat-card id="calc-card-results"
-                  [hidden]="calculateDisabledPermanently"
-                  [class.pab-results]="isWide"
-                  [fxFlex.gt-sm]="isWide ? '1 0 auto' : '1 0 400px'"
-                  [fxFlex.lt-md]="isWide ? '1 0 auto' : '1 0 500px'"
-                  [fxFlex.lt-sm]="isWide ? '1 0 auto' : '1 0 300px'">
+                <mat-card id="calc-card-results" [hidden]="calculateDisabledPermanently" [class.pab-results]="isWide"
+                    [fxFlex.gt-sm]="isWide ? '1 0 auto' : '1 0 400px'"
+                    [fxFlex.lt-md]="isWide ? '1 0 auto' : '1 0 500px'"
+                    [fxFlex.lt-sm]="isWide ? '1 0 auto' : '1 0 300px'">
 
                     <div id="fake-results-anchor"></div>
 
-                    <quicknav [ngClass.lt-xs]="'extraSmall'" [fxHide.gt-sm]="! isWide" [items]="quicknavItems" [currentItem]="'results'" [align]="'left'"></quicknav>
+                    <quicknav [ngClass.lt-xs]="'extraSmall'" [fxHide.gt-sm]="! isWide" [items]="quicknavItems"
+                        [currentItem]="'results'" [align]="'left'"></quicknav>
 
                     <mat-card-header *ngIf="! isWide" [fxHide.lt-md]="! isWide">
                         <mat-card-title>
@@ -106,8 +106,8 @@
                         </mat-card-title>
                     </mat-card-header>
 
-                    <button mat-raised-button color="accent" id="generate-pab" *ngIf="isPABCloisons" (click)="generatePAB()"
-                        [disabled]="! generatePABEnabled" [title]="uitextGeneratePabTitle">
+                    <button mat-raised-button color="accent" id="generate-pab" *ngIf="isPABCloisons"
+                        (click)="generatePAB()" [disabled]="! generatePABEnabled" [title]="uitextGeneratePabTitle">
                         {{ uitextGeneratePAB }}
                     </button>
 
@@ -122,13 +122,14 @@
                         </button>
                     </div>
 
-                    <button mat-raised-button color="accent" id="generate-ru-sp" *ngIf="isRegimeUniforme" (click)="generateRuSp()"
-                        [disabled]="! generateRuSpEnabled" [title]="uitextGenerateRuSpTitle">
+                    <button mat-raised-button color="accent" id="generate-ru-sp" *ngIf="isRegimeUniforme"
+                        (click)="generateRuSp()" [disabled]="! generateRuSpEnabled" [title]="uitextGenerateRuSpTitle">
                         {{ uitextGenerateRuSp }}
                     </button>
 
-                    <button mat-raised-button color="accent" id="generate-par-simulation" *ngIf="isPAR" (click)="generatePARSimulation()"
-                        [disabled]="! generatePARSimulationEnabled" [title]="uitextGenerateParSimulationTitle">
+                    <button mat-raised-button color="accent" id="generate-par-simulation" *ngIf="isPAR"
+                        (click)="generatePARSimulation()" [disabled]="! generatePARSimulationEnabled"
+                        [title]="uitextGenerateParSimulationTitle">
                         {{ uitextGeneratePARSimulation }}
                     </button>
 
@@ -142,4 +143,4 @@
 
     </form>
 
-</mat-card>
+</mat-card>
\ No newline at end of file
diff --git a/src/app/components/generic-input/generic-input.component.html b/src/app/components/generic-input/generic-input.component.html
index 99eea0a6e..3b240e96f 100644
--- a/src/app/components/generic-input/generic-input.component.html
+++ b/src/app/components/generic-input/generic-input.component.html
@@ -1,6 +1,6 @@
 <mat-form-field>
-    <input matInput #inputControl="ngModel" class="form-control" type="text" inputmode="numeric"
-        [id]="inputId" [name]="inputId" [disabled]="isDisabled" [(ngModel)]="uiValue" [placeholder]="title"
+    <input matInput #inputControl="ngModel" class="form-control" type="text" inputmode="numeric" [id]="inputId"
+        [name]="inputId" [disabled]="isDisabled" [(ngModel)]="uiValue" [placeholder]="title"
         (keydown.Tab)="onTabPressed($event, false)" (keydown.shift.Tab)="onTabPressed($event, true)"
         pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" [required]="isRequired">
 
@@ -11,4 +11,4 @@
     </div>
 
     <mat-error [innerHTML]="errorMessage"></mat-error>
-</mat-form-field>
+</mat-form-field>
\ No newline at end of file
diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html
index 7ce468d11..5dcaf95e7 100644
--- a/src/app/components/generic-select/generic-select.component.html
+++ b/src/app/components/generic-select/generic-select.component.html
@@ -1,17 +1,18 @@
 <mat-form-field>
-    <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple" [disabled]="isDisabled">
+    <mat-select [id]="selectId" [placeholder]="label" [(value)]="selectedValue" [multiple]="isMultiple"
+        [disabled]="isDisabled">
         <mat-select-trigger *ngIf="isMultiple">
-          {{ selectedValue && selectedValue[0] ? entryLabel(selectedValue[0]) : '' }}
-          <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
-            (+ {{ selectedValue.length - 1 }} {{ selectedValue?.length === 2 ? uitextAndOther : uitextAndOthers }})
-          </span>
+            {{ selectedValue && selectedValue[0] ? entryLabel(selectedValue[0]) : '' }}
+            <span *ngIf="selectedValue?.length > 1" class="multiple-selection-label">
+                (+ {{ selectedValue.length - 1 }} {{ selectedValue?.length === 2 ? uitextAndOther : uitextAndOthers }})
+            </span>
         </mat-select-trigger>
         <mat-option *ngFor="let e of entries" [value]="e" [title]="entryLabel(e)">
             {{ entryLabel(e) }}
         </mat-option>
     </mat-select>
-    <button mat-button *ngIf="showClearButton" matSuffix mat-icon-button 
-        aria-label="Clear" (click)="selectedValue=[]; $event.stopPropagation()">
+    <button mat-button *ngIf="showClearButton" matSuffix mat-icon-button aria-label="Clear"
+        (click)="selectedValue=[]; $event.stopPropagation()">
         <mat-icon>close</mat-icon>
     </button>
     <div *ngIf="enableHelpButton" class="overlap-select">
@@ -19,4 +20,4 @@
             help
         </mat-icon>
     </div>
-</mat-form-field>
+</mat-form-field>
\ No newline at end of file
diff --git a/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.html b/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.html
index a30d03c37..1087a424a 100644
--- a/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.html
+++ b/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.html
@@ -7,7 +7,8 @@
             <button mat-icon-button (click)="exportAsImage(graphProfile)" [title]="uitextExportImageTitle">
                 <mat-icon color="primary">image</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(graphProfile)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(graphProfile)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
diff --git a/src/app/components/log-drawer/log-drawer.component.html b/src/app/components/log-drawer/log-drawer.component.html
index 4b9bbd8ee..f2139f7c2 100644
--- a/src/app/components/log-drawer/log-drawer.component.html
+++ b/src/app/components/log-drawer/log-drawer.component.html
@@ -19,6 +19,6 @@
                 </div>
             </div>
         </div>
-        
+
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.html b/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.html
index d88bb1753..3883c6eb3 100644
--- a/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.html
+++ b/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.html
@@ -1,10 +1,12 @@
-<div class="macrorugo-compound-results-table-container" #mrcResultsTable fxLayout="row wrap" fxLayoutAlign="center center">
+<div class="macrorugo-compound-results-table-container" #mrcResultsTable fxLayout="row wrap"
+    fxLayoutAlign="center center">
     <div fxFlex="1 1 100%">
         <div class="macrorugo-compound-results-table-buttons">
             <button mat-icon-button (click)="exportAsSpreadsheet()" [title]="uitextExportAsSpreadsheet">
                 <mat-icon color="primary">file_download</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(mrcResultsTable)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(mrcResultsTable)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -28,4 +30,4 @@
             </div>
         </div>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.html b/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.html
index bfbf59270..85b150db8 100644
--- a/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.html
+++ b/src/app/components/macrorugo-compound-results/macrorugo-compound-results.component.html
@@ -9,21 +9,23 @@
 
     <div>
         <!-- tableau de résultats -->
-        <macrorugo-compound-results-table *ngIf="hasDisplayableResults" [results]="mrcResults"></macrorugo-compound-results-table>
+        <macrorugo-compound-results-table *ngIf="hasDisplayableResults" [results]="mrcResults">
+        </macrorugo-compound-results-table>
     </div>
 
     <div id="mrcLateralInclination" *ngIf="isInclined">
         <strong [innerHTML]="uitextLateralInclination"></strong> {{ lateralInclination }}
     </div>
 
-    <quicknav *ngIf="hasDisplayableResults" [items]="[ 'input', 'results', 'charts' ]"
-        [currentItem]="'charts'" [align]="'left'"></quicknav>
+    <quicknav *ngIf="hasDisplayableResults" [items]="[ 'input', 'results', 'charts' ]" [currentItem]="'charts'"
+        [align]="'left'"></quicknav>
 
-    <div id="macrorugo-compound-graphs-container" class="container" fxLayout="row wrap" fxLayoutAlign="space-around start">
+    <div id="macrorugo-compound-graphs-container" class="container" fxLayout="row wrap"
+        fxLayoutAlign="space-around start">
         <!-- <pab-profile-chart *ngIf="hasDisplayableResults" fxFlex.gt-xs="1 0 400px" fxFlex.lt-sm="1 0 300px">
         </pab-profile-chart> -->
         <results-chart *ngIf="hasDisplayableResults" fxFlex.gt-xs="1 0 400px" fxFlex.lt-sm="1 0 300px">
         </results-chart>
     </div>
 
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/pab-profile-chart/pab-profile-chart.component.html b/src/app/components/pab-profile-chart/pab-profile-chart.component.html
index ae6745863..35c9c9aec 100644
--- a/src/app/components/pab-profile-chart/pab-profile-chart.component.html
+++ b/src/app/components/pab-profile-chart/pab-profile-chart.component.html
@@ -7,7 +7,8 @@
             <button mat-icon-button (click)="exportAsImage(graphProfile)" [title]="uitextExportImageTitle">
                 <mat-icon color="primary">image</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(graphProfile)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(graphProfile)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
diff --git a/src/app/components/pab-results/pab-results-table.component.html b/src/app/components/pab-results/pab-results-table.component.html
index c7334ca62..c0e77a7b3 100644
--- a/src/app/components/pab-results/pab-results-table.component.html
+++ b/src/app/components/pab-results/pab-results-table.component.html
@@ -4,7 +4,8 @@
             <button mat-icon-button (click)="exportAsSpreadsheet()" [title]="uitextExportAsSpreadsheet">
                 <mat-icon color="primary">file_download</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(pabResultsTable)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(pabResultsTable)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -28,4 +29,4 @@
             </div>
         </div>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/pab-results/pab-results.component.html b/src/app/components/pab-results/pab-results.component.html
index 78f7d9845..9bb311053 100644
--- a/src/app/components/pab-results/pab-results.component.html
+++ b/src/app/components/pab-results/pab-results.component.html
@@ -12,8 +12,8 @@
         <pab-results-table *ngIf="hasDisplayableResults" [results]="pabResults"></pab-results-table>
     </div>
 
-    <quicknav *ngIf="hasDisplayableResults" [items]="[ 'input', 'results', 'charts' ]"
-        [currentItem]="'charts'" [align]="'left'"></quicknav>
+    <quicknav *ngIf="hasDisplayableResults" [items]="[ 'input', 'results', 'charts' ]" [currentItem]="'charts'"
+        [align]="'left'"></quicknav>
 
     <div id="pab-graphs-container" class="container" fxLayout="row wrap" fxLayoutAlign="space-around start">
         <pab-profile-chart *ngIf="hasDisplayableResults" fxFlex.gt-xs="1 0 400px" fxFlex.lt-sm="1 0 300px">
@@ -22,4 +22,4 @@
         </results-chart>
     </div>
 
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/pab-table/pab-table.component.html b/src/app/components/pab-table/pab-table.component.html
index 410b7120a..96efe09a1 100644
--- a/src/app/components/pab-table/pab-table.component.html
+++ b/src/app/components/pab-table/pab-table.component.html
@@ -7,8 +7,8 @@
 <mat-card-content>
 
     <div id="pab-table-toolbar">
-        <button type="button" id="edit-pab-table" mat-raised-button color="accent"
-          [disabled]="! enableEditPabButton" (click)="showEditPab()">
+        <button type="button" id="edit-pab-table" mat-raised-button color="accent" [disabled]="! enableEditPabButton"
+            (click)="showEditPab()">
             {{ uitextEditPabTable }}
         </button>
 
@@ -22,31 +22,31 @@
                 </mat-option>
             </mat-select>
             <button type="button" mat-icon-button color="primary" [disabled]="! enableAddButton" (click)="onAddClick()"
-              [title]="uitextAdd">
+                [title]="uitextAdd">
                 <mat-icon>add_box</mat-icon>
             </button>
-            <button type="button" mat-icon-button color="primary" [disabled]="! enableCopyButton" (click)="onCopyClick()"
-              [title]="uitextCopy">
+            <button type="button" mat-icon-button color="primary" [disabled]="! enableCopyButton"
+                (click)="onCopyClick()" [title]="uitextCopy">
                 <mat-icon>content_copy</mat-icon>
             </button>
             |
-            <button type="button" mat-icon-button color="primary" [disabled]="! enableRemoveButton" (click)="onRemoveClick()"
-              [title]="uitextRemove">
+            <button type="button" mat-icon-button color="primary" [disabled]="! enableRemoveButton"
+                (click)="onRemoveClick()" [title]="uitextRemove">
                 <mat-icon>delete</mat-icon>
             </button>
-            <button type="button" mat-icon-button color="primary" [disabled]="! enableUpButton" (click)="onMoveUpClick()"
-              [title]="uitextMoveUp">
+            <button type="button" mat-icon-button color="primary" [disabled]="! enableUpButton"
+                (click)="onMoveUpClick()" [title]="uitextMoveUp">
                 <mat-icon *ngIf="! selectionIsOneDevice">arrow_upward</mat-icon>
                 <mat-icon *ngIf="selectionIsOneDevice">arrow_back</mat-icon>
             </button>
-            <button type="button" mat-icon-button color="primary" [disabled]="! enableDownButton" (click)="onMoveDownClick()"
-              [title]="uitextMoveDown">
+            <button type="button" mat-icon-button color="primary" [disabled]="! enableDownButton"
+                (click)="onMoveDownClick()" [title]="uitextMoveDown">
                 <mat-icon *ngIf="! selectionIsOneDevice">arrow_downward</mat-icon>
                 <mat-icon *ngIf="selectionIsOneDevice">arrow_forward</mat-icon>
             </button>
             |
             <button type="button" mat-icon-button color="primary" (click)="exportAsSpreadsheet()"
-              [title]="uitextExportAsSpreadsheet">
+                [title]="uitextExportAsSpreadsheet">
                 <mat-icon color="primary">file_download</mat-icon>
             </button>
         </div>
@@ -57,20 +57,18 @@
 
         <ng-template pTemplate="header" let-columns>
             <tr>
-                <th *ngFor="let h of headers"
-                  (click)="toggleSelection(h, $event)"
-                  (mousedown)="preventCtrlClickBorder($event)"
-                  [attr.rowspan]="h.rowspan ? h.rowspan : null" [attr.colspan]="h.colspan ? h.colspan : null"
-                  [class.selectable-cell]="isSelectable(h)" [class.selected-cell]="isSelected(h)">
+                <th *ngFor="let h of headers" (click)="toggleSelection(h, $event)"
+                    (mousedown)="preventCtrlClickBorder($event)" [attr.rowspan]="h.rowspan ? h.rowspan : null"
+                    [attr.colspan]="h.colspan ? h.colspan : null" [class.selectable-cell]="isSelectable(h)"
+                    [class.selected-cell]="isSelected(h)">
 
                     {{ h.title }}
                 </th>
             </tr>
             <tr>
-                <th *ngFor="let col of columns"
-                  (click)="toggleSelection(col, $event)"
-                  (mousedown)="preventCtrlClickBorder($event)"
-                  [class.selectable-cell]="isSelectable(col)" [class.selected-cell]="isSelected(col)">
+                <th *ngFor="let col of columns" (click)="toggleSelection(col, $event)"
+                    (mousedown)="preventCtrlClickBorder($event)" [class.selectable-cell]="isSelectable(col)"
+                    [class.selected-cell]="isSelected(col)">
 
                     {{ col.title }}
                 </th>
@@ -79,21 +77,19 @@
 
         <ng-template pTemplate="body" let-row>
             <tr [class.selected-row]="isSelected(row)">
-                <td *ngFor="let cell of row.cells"
-                  (click)="toggleSelection(cell, $event)"
-                  (mousedown)="preventCtrlClickBorder($event)"
-                  [ngClass]="cell.class"
-                  [class.editable-cell]="hasModel(cell)" [class.readonly-cell]="! hasModel(cell)"
-                  [class.selectable-cell]="isSelectable(cell)" [class.selected-cell]="isSelected(cell) && ! isSelected(row)"
-                  [class.invalid-cell]="isInvalid(cell)" [class.select]="isSelect(cell)"
-                  [attr.rowspan]="rowSpan(cell)" [attr.colspan]="colSpan(cell)"
-                  [title]="cellTitle(cell)">
+                <td *ngFor="let cell of row.cells" (click)="toggleSelection(cell, $event)"
+                    (mousedown)="preventCtrlClickBorder($event)" [ngClass]="cell.class"
+                    [class.editable-cell]="hasModel(cell)" [class.readonly-cell]="! hasModel(cell)"
+                    [class.selectable-cell]="isSelectable(cell)"
+                    [class.selected-cell]="isSelected(cell) && ! isSelected(row)" [class.invalid-cell]="isInvalid(cell)"
+                    [class.select]="isSelect(cell)" [attr.rowspan]="rowSpan(cell)" [attr.colspan]="colSpan(cell)"
+                    [title]="cellTitle(cell)">
 
                     <input matInput *ngIf="isNumberInput(cell)" step="0.00000000000001" type="number"
-                      [(ngModel)]="cell.model.singleValue" (input)="inputValueChanged($event, cell)">
+                        [(ngModel)]="cell.model.singleValue" (input)="inputValueChanged($event, cell)">
 
                     <mat-select #selectWidget *ngIf="isSelect(cell)" [value]="cell.modelValue"
-                      (selectionChange)="loiDebitSelected($event, cell)">
+                        (selectionChange)="loiDebitSelected($event, cell)">
 
                         <mat-option *ngFor="let opt of cell.options" [value]="opt.value" [title]="opt.label">
                             {{ opt.label }}
@@ -106,4 +102,4 @@
         </ng-template>
     </p-table>
 
-</mat-card-content>
+</mat-card-content>
\ No newline at end of file
diff --git a/src/app/components/param-computed/param-computed.component.html b/src/app/components/param-computed/param-computed.component.html
index d2d336cfc..40320f1dd 100644
--- a/src/app/components/param-computed/param-computed.component.html
+++ b/src/app/components/param-computed/param-computed.component.html
@@ -1,7 +1,9 @@
 <!-- a fake input bound to nothing, for the sake of UI consistency -->
 <mat-form-field>
-    <input matInput disabled [id]="inputId" class="form-control" type="text" [ngModel]="infoText" [placeholder]="param.title">
-    <button type="button" *ngIf="isDicho" mat-icon-button class="param-computed-more" (click)="openDialog()" [title]="uitextEditInitialValue">
+    <input matInput disabled [id]="inputId" class="form-control" type="text" [ngModel]="infoText"
+        [placeholder]="param.title">
+    <button type="button" *ngIf="isDicho" mat-icon-button class="param-computed-more" (click)="openDialog()"
+        [title]="uitextEditInitialValue">
         <mat-icon>more_horiz</mat-icon>
     </button>
-</mat-form-field>
+</mat-form-field>
\ No newline at end of file
diff --git a/src/app/components/param-field-line/param-field-line.component.html b/src/app/components/param-field-line/param-field-line.component.html
index 35c1fd0c8..07d31672d 100644
--- a/src/app/components/param-field-line/param-field-line.component.html
+++ b/src/app/components/param-field-line/param-field-line.component.html
@@ -1,49 +1,48 @@
-
 <div class="container" fxLayout="row wrap" fxLayoutAlign="space-between start">
 
     <!-- input de saisie de la valeur -->
     <div fxFlex="1 0 120px">
         <!-- composant pour gérer le cas général (valeur numérique à saisir) -->
-        <ngparam-input [title]="param.title" [hidden]="! isRadioFixChecked"
-            (change)="onInputChange($event)" (tabPressed)="onTabPressed($event)">
+        <ngparam-input [title]="param.title" [hidden]="! isRadioFixChecked" (change)="onInputChange($event)"
+            (tabPressed)="onTabPressed($event)">
         </ngparam-input>
- 
+
         <!-- composant pour gérer le cas "paramètre calculé" -->
         <param-computed *ngIf="isRadioCalChecked" [title]="title" [param]="param">
         </param-computed>
 
         <!-- composant pour gérer le cas "paramètre à varier" (min-max/liste de valeurs) -->
-        <param-values *ngIf="isRadioVarChecked" [title]="title" [param]="param"
-            (change)="onInputChange($event)" (valid)=onParamValuesValid($event)>
+        <param-values *ngIf="isRadioVarChecked" [title]="title" [param]="param" (change)="onInputChange($event)"
+            (valid)=onParamValuesValid($event)>
         </param-values>
-    
+
         <!-- composant pour gérer le cas "paramètre lié" -->
-        <param-link *ngIf="isRadioLinkChecked" [title]="title" [param]="param"
-            (change)="onInputChange($event)" (valid)=onParamValuesValid($event)>
+        <param-link *ngIf="isRadioLinkChecked" [title]="title" [param]="param" (change)="onInputChange($event)"
+            (valid)=onParamValuesValid($event)>
         </param-link>
     </div>
 
     <div class="toggle-group-container" fxFlex="0 0 auto">
         <mat-button-toggle-group *ngIf="hasRadioFix() || hasRadioVar() || hasRadioCal() || hasRadioLink()">
 
-            <mat-button-toggle class="radio_fix" value="radio_fix" 
-                (click)="onRadioClick('fix')" [checked]="isRadioFixChecked" [disabled]="! canExitCalcMode()">
+            <mat-button-toggle class="radio_fix" value="radio_fix" (click)="onRadioClick('fix')"
+                [checked]="isRadioFixChecked" [disabled]="! canExitCalcMode()">
                 <span fxHide.xxs>{{ uitextParamFixe }}</span>
                 <span fxHide.gt-xxs>F</span>
             </mat-button-toggle>
-        
-            <mat-button-toggle class="radio_var" value="radio_var" *ngIf="hasRadioVar()"
-                (click)="onRadioClick('var')" [checked]="isRadioVarChecked" [disabled]="! canExitCalcMode()">
+
+            <mat-button-toggle class="radio_var" value="radio_var" *ngIf="hasRadioVar()" (click)="onRadioClick('var')"
+                [checked]="isRadioVarChecked" [disabled]="! canExitCalcMode()">
                 <span fxHide.xxs>{{ uitextParamVarier }}</span>
                 <span fxHide.gt-xxs>V</span>
             </mat-button-toggle>
-        
-            <mat-button-toggle class="radio_cal" value="radio_cal" *ngIf="hasRadioCal()"
-                (click)="onRadioClick('cal')" [checked]="isRadioCalChecked">
+
+            <mat-button-toggle class="radio_cal" value="radio_cal" *ngIf="hasRadioCal()" (click)="onRadioClick('cal')"
+                [checked]="isRadioCalChecked">
                 <span fxHide.xxs>{{ uitextParamCalculer }}</span>
                 <span fxHide.gt-xxs>C</span>
             </mat-button-toggle>
-        
+
             <mat-button-toggle class="radio_link" value="radio_link" *ngIf="hasRadioLink()"
                 (click)="onRadioClick('link')" [checked]="isRadioLinkChecked" [disabled]="! canExitCalcMode()">
                 <span fxHide.xxs>{{ uitextParamLie }}</span>
@@ -53,4 +52,4 @@
         </mat-button-toggle-group>
     </div>
 
-</div>
+</div>
\ No newline at end of file
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 f0601b32a..0fd0a4eb2 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
@@ -153,7 +153,7 @@ export class ParamFieldLineComponent implements OnChanges {
     /**
     * calcule la présence du radio "paramètre à calculer"
     */
-   public hasRadioCal(): boolean {
+    public hasRadioCal(): boolean {
         switch (this.param.radioConfig) {
             case ParamRadioConfig.CAL:
                 return true;
@@ -166,7 +166,7 @@ export class ParamFieldLineComponent implements OnChanges {
     /**
     * calcule la présence du radio "paramètre lié" (importé d'un autre module de calcul)
     */
-   public hasRadioLink(): boolean {
+    public hasRadioLink(): boolean {
         if (this._formService.formulaires.length > 0) {
             // au moins 2 modules de calcul ouverts
             if (this._formService.formulaires.length > 1) {
diff --git a/src/app/components/param-link/param-link.component.html b/src/app/components/param-link/param-link.component.html
index eadf8016d..d96d4f754 100644
--- a/src/app/components/param-link/param-link.component.html
+++ b/src/app/components/param-link/param-link.component.html
@@ -1,6 +1,5 @@
 <mat-form-field>
-    <mat-select [id]="selectId" [name]="selectId" [placeholder]="param.title"
-        [(ngModel)]="currentLinkedParam" required>
+    <mat-select [id]="selectId" [name]="selectId" [placeholder]="param.title" [(ngModel)]="currentLinkedParam" required>
         <mat-option *ngFor="let e of linkableParams" [value]="e" [title]="selectItemLabel(e)">
             {{ selectItemLabel(e) }}
         </mat-option>
@@ -17,4 +16,4 @@
     <mat-icon [title]="uitextAwaitingCalculation" class="status-info" *ngIf="isAwaitingCalculation">
         timelapse
     </mat-icon>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts
index 565638b45..fbe6f2226 100644
--- a/src/app/components/param-link/param-link.component.ts
+++ b/src/app/components/param-link/param-link.component.ts
@@ -179,47 +179,47 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
                 , (pos + 1)
             );
         } else
-        // 2. Paramètre / résultat d'une section dans un Nub de type SectionNub
-        if (i.nub instanceof acSection) {
-            if (i.isResult()) {
-                // résultat de section
-                return `${preview} - ` + sprintf(
-                    this.intlService.localizeText("INFO_LINKED_VALUE_SECTION_RESULT"),
-                    s, c
-                );
-            } else {
-                // paramètre de section
-                return `${preview} - ` + sprintf(
-                    this.intlService.localizeText("INFO_LINKED_VALUE_SECTION"),
-                    s, c
-                );
-            }
-        } else
-        // 3. Résultat
-        if (i.isResult()) {
-            return `${preview} - ` + sprintf(
-                this.intlService.localizeText("INFO_LINKED_VALUE_RESULT"),
-                s, c
-            );
-        } else
-        // 4. Résultat complémentaire
-        if (i.isExtraResult()) {
-            if (i.meta["result"]) {
-                // @TODO not used ?
-                return `${preview} - ` + sprintf(
-                    this.intlService.localizeText("INFO_LINKED_VALUE_EXTRA_RESULT_OF"),
-                    s, c, i.meta["result"]
-                );
-            } else {
-                return `${preview} - ` + sprintf(
-                    this.intlService.localizeText("INFO_LINKED_VALUE_EXTRA_RESULT"),
-                    s, c
-                );
-            }
-        } else {
-            // 5. Paramètre (cas général)
-            return `${preview} - ${s} (${c})`;
-        }
+            // 2. Paramètre / résultat d'une section dans un Nub de type SectionNub
+            if (i.nub instanceof acSection) {
+                if (i.isResult()) {
+                    // résultat de section
+                    return `${preview} - ` + sprintf(
+                        this.intlService.localizeText("INFO_LINKED_VALUE_SECTION_RESULT"),
+                        s, c
+                    );
+                } else {
+                    // paramètre de section
+                    return `${preview} - ` + sprintf(
+                        this.intlService.localizeText("INFO_LINKED_VALUE_SECTION"),
+                        s, c
+                    );
+                }
+            } else
+                // 3. Résultat
+                if (i.isResult()) {
+                    return `${preview} - ` + sprintf(
+                        this.intlService.localizeText("INFO_LINKED_VALUE_RESULT"),
+                        s, c
+                    );
+                } else
+                    // 4. Résultat complémentaire
+                    if (i.isExtraResult()) {
+                        if (i.meta["result"]) {
+                            // @TODO not used ?
+                            return `${preview} - ` + sprintf(
+                                this.intlService.localizeText("INFO_LINKED_VALUE_EXTRA_RESULT_OF"),
+                                s, c, i.meta["result"]
+                            );
+                        } else {
+                            return `${preview} - ` + sprintf(
+                                this.intlService.localizeText("INFO_LINKED_VALUE_EXTRA_RESULT"),
+                                s, c
+                            );
+                        }
+                    } else {
+                        // 5. Paramètre (cas général)
+                        return `${preview} - ${s} (${c})`;
+                    }
     }
 
     /**
diff --git a/src/app/components/param-values/param-values.component.html b/src/app/components/param-values/param-values.component.html
index 2561e9220..4ffc23cbf 100644
--- a/src/app/components/param-values/param-values.component.html
+++ b/src/app/components/param-values/param-values.component.html
@@ -1,8 +1,8 @@
 <!-- a fake input bound to nothing, for the sake of UI consistency -->
 <mat-form-field>
-    <input matInput disabled class="form-control" type="text"
-        [id]="inputId" [name]="inputId" [ngModel]="infoText" [placeholder]="param.title">
+    <input matInput disabled class="form-control" type="text" [id]="inputId" [name]="inputId" [ngModel]="infoText"
+        [placeholder]="param.title">
     <button type="button" mat-icon-button class="param-values-more" (click)="openDialog()" [title]="uitextEditValues">
         <mat-icon>more_horiz</mat-icon>
     </button>
-</mat-form-field>
+</mat-form-field>
\ No newline at end of file
diff --git a/src/app/components/quicknav/quicknav.component.html b/src/app/components/quicknav/quicknav.component.html
index 31f1db00b..b8d738fcd 100644
--- a/src/app/components/quicknav/quicknav.component.html
+++ b/src/app/components/quicknav/quicknav.component.html
@@ -1,7 +1,7 @@
-<div class="quicknav-row" [ngStyle]="alignStyle" *ngIf="hasItems" [id]="id"
-    [class.autoPadLeft]="align === 'left'" [class.autoPadRight]="align === 'right'">
+<div class="quicknav-row" [ngStyle]="alignStyle" *ngIf="hasItems" [id]="id" [class.autoPadLeft]="align === 'left'"
+    [class.autoPadRight]="align === 'right'">
 
     <div class="quicknav-item" *ngFor="let i of items" [class.current]="isCurrent(i)" [ngStyle]="paddingStyle">
         <a (click)="scrollTo(i)">{{ label(i) }}</a>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/remous-results/remous-results.component.html b/src/app/components/remous-results/remous-results.component.html
index 8a51ef96d..ed96cbf12 100644
--- a/src/app/components/remous-results/remous-results.component.html
+++ b/src/app/components/remous-results/remous-results.component.html
@@ -1,10 +1,12 @@
-<div class="remous-results-container" #remousResults *ngIf="hasResults" fxLayout="row wrap" fxLayoutAlign="center center">
+<div class="remous-results-container" #remousResults *ngIf="hasResults" fxLayout="row wrap"
+    fxLayoutAlign="center center">
     <div fxFlex="1 1 100%">
         <div class="remous-results-buttons">
             <button mat-icon-button (click)="exportAsImage(remousResults)" [title]="uitextExportImageTitle">
                 <mat-icon color="primary">image</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(remousResults)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(remousResults)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -12,19 +14,21 @@
             </button>
         </div>
 
-        <chart id="main-chart" ngClass.lt-sm="height300" ngClass.sm="height400" ngClass.md="height400" ngClass.gt-md="height600"
-            [type]="graph1_type" [data]="graph1_data" [options]="graph1_options">
+        <chart id="main-chart" ngClass.lt-sm="height300" ngClass.sm="height400" ngClass.md="height400"
+            ngClass.gt-md="height600" [type]="graph1_type" [data]="graph1_data" [options]="graph1_options">
         </chart>
     </div>
 </div>
 
-<div class="remous-results-extragraph-container" #remousResultsExtra *ngIf="extraChart" fxLayout="row wrap" fxLayoutAlign="center center">
+<div class="remous-results-extragraph-container" #remousResultsExtra *ngIf="extraChart" fxLayout="row wrap"
+    fxLayoutAlign="center center">
     <div fxFlex="1 1 100%">
         <div class="remous-results-buttons">
             <button mat-icon-button (click)="exportAsImage(remousResultsExtra)" [title]="uitextExportImageTitle">
                 <mat-icon color="primary">image</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(remousResultsExtra)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(remousResultsExtra)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -40,7 +44,8 @@
 <!-- journal -->
 <log></log>
 
-<div [hidden]="! hasData"><!-- *ngIf breaks @ViewChild availability-->
+<div [hidden]="! hasData">
+    <!-- *ngIf breaks @ViewChild availability-->
     <!-- résultats numériques -->
     <var-results></var-results>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/results-chart/results-chart.component.html b/src/app/components/results-chart/results-chart.component.html
index 7b95757ae..1cf1336d5 100644
--- a/src/app/components/results-chart/results-chart.component.html
+++ b/src/app/components/results-chart/results-chart.component.html
@@ -7,7 +7,8 @@
             <button mat-icon-button (click)="exportAsImage(graphResults)" [title]="uitextExportImageTitle">
                 <mat-icon color="primary">image</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(graphResults)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(graphResults)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -41,4 +42,4 @@
             </mat-option>
         </mat-select>
     </mat-form-field>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/section-results/section-results.component.html b/src/app/components/section-results/section-results.component.html
index 7911644b1..ff26a315c 100644
--- a/src/app/components/section-results/section-results.component.html
+++ b/src/app/components/section-results/section-results.component.html
@@ -1,11 +1,13 @@
-<div class="section-results-container" #sectionResults *ngIf="hasResults" fxLayout="row wrap" fxLayoutAlign="center center">
+<div class="section-results-container" #sectionResults *ngIf="hasResults" fxLayout="row wrap"
+    fxLayoutAlign="center center">
 
     <div fxFlex="1 1 100%">
         <div class="section-results-buttons">
             <button mat-icon-button (click)="exportAsImage(sectionResults)" [title]="uitextExportImageTitle">
                 <mat-icon color="primary">image</mat-icon>
             </button>
-            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(sectionResults)" [title]="uitextEnterFSTitle">
+            <button mat-icon-button *ngIf="! isFullscreen" (click)="setFullscreen(sectionResults)"
+                [title]="uitextEnterFSTitle">
                 <mat-icon color="primary" class="scaled12">fullscreen</mat-icon>
             </button>
             <button mat-icon-button *ngIf="isFullscreen" (click)="exitFullscreen()" [title]="uitextExitFSTitle">
@@ -36,4 +38,4 @@
             <var-results [results]=varResults></var-results>
         </div>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/session-properties/session-properties.component.html b/src/app/components/session-properties/session-properties.component.html
index 13211dc48..3ad9695b6 100644
--- a/src/app/components/session-properties/session-properties.component.html
+++ b/src/app/components/session-properties/session-properties.component.html
@@ -16,8 +16,8 @@
                 </mat-tab>
                 <mat-tab [label]="uitextEdit">
                     <mat-form-field>
-                        <textarea matInput id="md-editor" [(ngModel)]="content"
-                                cdkTextareaAutosize cdkAutosizeMinRows="15" #autosize="cdkTextareaAutosize"></textarea>
+                        <textarea matInput id="md-editor" [(ngModel)]="content" cdkTextareaAutosize
+                            cdkAutosizeMinRows="15" #autosize="cdkTextareaAutosize"></textarea>
                     </mat-form-field>
                 </mat-tab>
             </mat-tab-group>
@@ -26,4 +26,4 @@
 
     </mat-card>
 
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/components/session-properties/session-properties.component.ts b/src/app/components/session-properties/session-properties.component.ts
index d9cbf6111..fe82be8a0 100644
--- a/src/app/components/session-properties/session-properties.component.ts
+++ b/src/app/components/session-properties/session-properties.component.ts
@@ -30,7 +30,7 @@ export class SessionPropertiesComponent implements OnInit {
             throwOnError: false,
             errorColor: "#cc0000"
         };
-        if (! isDevMode()) {
+        if (!isDevMode()) {
             this.matomoTracker.trackPageView("notes");
         }
     }
@@ -57,8 +57,8 @@ export class SessionPropertiesComponent implements OnInit {
 
     public ngOnInit() {
         // if app is started on this page but session is empty, redirect to home page
-        if (! this.hasModules) {
-            this.router.navigate([ "/list" ]);
+        if (!this.hasModules) {
+            this.router.navigate(["/list"]);
         }
         // if notes content is empty, switch to editor
         if (this.content === undefined || this.content === "") {
diff --git a/src/app/services/error.service.ts b/src/app/services/error.service.ts
index 77620c3b7..25288f4fe 100644
--- a/src/app/services/error.service.ts
+++ b/src/app/services/error.service.ts
@@ -4,7 +4,7 @@ import { Observable } from "jalhyd";
 
 @Injectable()
 export class ErrorService extends Observable {
-  // TODO: add explicit constructor
+    // TODO: add explicit constructor
 
     doAlert(m: string) {
         this.notifyObservers(m);
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 486a296de..89653c92f 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -114,7 +114,7 @@ export class FormulaireService extends Observable {
             });
         } else {
             const f: string = this.getConfigPathPrefix(calc) + lang + ".json";
-                return this._httpService.httpGetRequestPromise(f).then((localisation) => {
+            return this._httpService.httpGetRequestPromise(f).then((localisation) => {
                 this._languageCache[ct] = this._languageCache[ct] || {};
                 this._languageCache[ct][lang] = localisation;
                 return localisation as StringMap;
@@ -182,8 +182,8 @@ export class FormulaireService extends Observable {
             if (match) {
                 // Les libellés correspondants sont INFO OUVRAGE et INFO_LIB_OUVRAGE_XXX
                 s = this.intlService.localizeText(`INFO_${match[1].toUpperCase()}`)
-                + " n°" + (+match[2] + 1) + ": "
-                + this.expandVariableName(calcType, `${match[1].toUpperCase()}_${match[3].toUpperCase()}`);
+                    + " n°" + (+match[2] + 1) + ": "
+                    + this.expandVariableName(calcType, `${match[1].toUpperCase()}_${match[3].toUpperCase()}`);
             } else {
                 s = this.intlService.localizeText("INFO_LIB_" + symbol.toLocaleUpperCase());
             }
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index 3612073bc..5d0833162 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -1,3 +1,3 @@
 export const environment = {
-  production: true
+    production: true
 };
-- 
GitLab


From 3edcb02a3767539eaa4f1790d302e013faecd8d2 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 13 Aug 2020 10:56:16 +0200
Subject: [PATCH 072/101] tslint

---
 .../verificateur-results.component.ts           |  3 ++-
 src/app/services/service-factory.ts             | 17 ++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts
index 2222240c5..1d76c0420 100644
--- a/src/app/components/verificateur-results/verificateur-results.component.ts
+++ b/src/app/components/verificateur-results/verificateur-results.component.ts
@@ -125,7 +125,8 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl
                         er
                         && er.hasResultElements()
                         && er.resultElements[vi]
-                        && er.resultElements[vi].hasLog()) 
+                        && er.resultElements[vi].hasLog())
+                    // tslint:disable-next-line:one-line
                     {
                         l[i].subLog.addLog(er.resultElements[vi].log);
                     }
diff --git a/src/app/services/service-factory.ts b/src/app/services/service-factory.ts
index 6d3c7b4ed..a566f3aab 100644
--- a/src/app/services/service-factory.ts
+++ b/src/app/services/service-factory.ts
@@ -4,22 +4,21 @@ import { I18nService } from "./internationalisation.service";
 import { HttpService } from "./http.service";
 import { NotificationsService } from "./notifications.service";
 
- /**
-  * A "Singleton" the TS way, that holds pointers to all services, to be accessed
-  * at any time by classes that do not support injection; fed by AppComponent at
-  * construction time
-  */
- export const ServiceFactory: {
+/**
+ * A "Singleton" the TS way, that holds pointers to all services, to be accessed
+ * at any time by classes that do not support injection; fed by AppComponent at
+ * construction time
+ */
+export const ServiceFactory: {
     applicationSetupService: ApplicationSetupService;
     formulaireService: FormulaireService;
     i18nService: I18nService;
     httpService: HttpService;
     notificationsService: NotificationsService;
- } = {
+} = {
     applicationSetupService: undefined,
     formulaireService: undefined,
     i18nService: undefined,
     httpService: undefined,
     notificationsService: undefined
- };
- 
\ No newline at end of file
+};
-- 
GitLab


From 2371de3023ad665e17b3a55227ff4c047b0831c0 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Thu, 13 Aug 2020 11:01:36 +0200
Subject: [PATCH 073/101] Get rid of unused ErrorService

---
 src/app/app.component.ts          | 18 +-----------------
 src/app/services/error.service.ts | 12 ------------
 2 files changed, 1 insertion(+), 29 deletions(-)
 delete mode 100644 src/app/services/error.service.ts

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 364b60d6b..01ddce6dd 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -9,7 +9,6 @@ import { Observer, jalhydDateRev, jalhydVersion, CalculatorType, Session } from
 
 import { environment } from "../environments/environment";
 import { I18nService } from "./services/internationalisation.service";
-import { ErrorService } from "./services/error.service";
 import { FormulaireService } from "./services/formulaire.service";
 import { FormulaireDefinition } from "./formulaire/definition/form-definition";
 import { ServiceFactory } from "./services/service-factory";
@@ -46,8 +45,7 @@ declare let device: any;
 @Component({
     selector: "nghyd-app",
     templateUrl: "./app.component.html",
-    styleUrls: ["./app.component.scss"],
-    providers: [ErrorService]
+    styleUrls: ["./app.component.scss"]
 })
 export class AppComponent implements OnInit, OnDestroy, Observer {
 
@@ -84,7 +82,6 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
     constructor(
         private intlService: I18nService,
         private appSetupService: ApplicationSetupService,
-        private errorService: ErrorService,
         private router: Router,
         private formulaireService: FormulaireService,
         private httpService: HttpService,
@@ -277,12 +274,10 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
      */
     ngOnInit() {
         this.formulaireService.addObserver(this);
-        this.subscribeErrorService();
         this._innerWidth = window.innerWidth;
     }
 
     ngOnDestroy() {
-        this.unsubscribeErrorService();
         this.formulaireService.removeObserver(this);
     }
 
@@ -409,17 +404,6 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
         return fits;
     }
 
-    /**
-     * abonnement au service d'erreurs
-     */
-    private subscribeErrorService() {
-        this.errorService.addObserver(this);
-    }
-
-    private unsubscribeErrorService() {
-        this.errorService.removeObserver(this);
-    }
-
     public get enableHeaderDoc(): boolean {
         return this.currentRoute === "/list" && this._calculators.length === 0;
     }
diff --git a/src/app/services/error.service.ts b/src/app/services/error.service.ts
deleted file mode 100644
index 25288f4fe..000000000
--- a/src/app/services/error.service.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Injectable } from "@angular/core";
-
-import { Observable } from "jalhyd";
-
-@Injectable()
-export class ErrorService extends Observable {
-    // TODO: add explicit constructor
-
-    doAlert(m: string) {
-        this.notifyObservers(m);
-    }
-}
-- 
GitLab


From 12dbcfe6e24ed9905edfe22dfcd9a0888e0f34d7 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 14 Aug 2020 14:14:25 +0200
Subject: [PATCH 074/101] Fix #434 - doc for Verificateur

---
 .../calculators/verif/especes_predefinies.md  |  26 +++++
 docs/en/calculators/verif/macrorugo.md        |  46 ++++++++
 docs/en/calculators/verif/pab.md              | 105 ++++++++++++++++++
 docs/en/calculators/verif/par.md              |  36 ++++++
 docs/en/calculators/verif/principe.md         |  29 +++++
 .../calculators/verif/especes_predefinies.md  |  26 +++++
 docs/fr/calculators/verif/macrorugo.md        |  46 ++++++++
 docs/fr/calculators/verif/pab.md              | 105 ++++++++++++++++++
 docs/fr/calculators/verif/par.md              |  36 ++++++
 docs/fr/calculators/verif/principe.md         |  29 +++++
 mkdocs-en.yml                                 |  14 +++
 mkdocs-fr.yml                                 |   6 +
 src/locale/messages.en.json                   |  24 ++--
 13 files changed, 516 insertions(+), 12 deletions(-)
 create mode 100644 docs/en/calculators/verif/especes_predefinies.md
 create mode 100644 docs/en/calculators/verif/macrorugo.md
 create mode 100644 docs/en/calculators/verif/pab.md
 create mode 100644 docs/en/calculators/verif/par.md
 create mode 100644 docs/en/calculators/verif/principe.md
 create mode 100644 docs/fr/calculators/verif/especes_predefinies.md
 create mode 100644 docs/fr/calculators/verif/macrorugo.md
 create mode 100644 docs/fr/calculators/verif/pab.md
 create mode 100644 docs/fr/calculators/verif/par.md
 create mode 100644 docs/fr/calculators/verif/principe.md

diff --git a/docs/en/calculators/verif/especes_predefinies.md b/docs/en/calculators/verif/especes_predefinies.md
new file mode 100644
index 000000000..a8c0bde15
--- /dev/null
+++ b/docs/en/calculators/verif/especes_predefinies.md
@@ -0,0 +1,26 @@
+# Crossability verification: Predefined species
+
+From _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
+
+| ICE group | Species |
+|-------------------------|----------------|
+| 1 | Atlantic salmon (Salmo salar)<br>Sea or river trout [50-100] (Salmo trutta) |
+| 2 | Mules (Chelon labrosus, Liza ramada) |
+| 3a | Gread shad (Alosa alosa) |
+| 3b | Shad (Alosa fallax fallax) |
+| 3c | Sea lamprey (Petromyzon marinus) |
+| 4a | River trout or sea trout [25-55] (Salmo trutta) |
+| 4b | River trout [15-30] (Salmo trutta) |
+| 5 | Aspe (Aspius aspius)<br>Pike (Esox lucius) |
+| 6 | Common grayling (Thymallus thymallus) |
+| 7a | Common barbel (Barbus barbus)<br>Chub (Squalius cephalus)<br>Nase (Chondrostoma nasus) |
+| 7b | River lamprey (Lampetra fluviatilis) |
+| 8a | Common carp (Cyprinus carpio) |
+| 8b | Common bream (Abramis brama)<br>Pike-perch (Sander lucioperca) |
+| 8c | White bream (Blicca bjoerkna)<br>Ide (Leuciscus idus)<br>Burbot (Lota lota)<br>Perch (Perca fluviatilis)<br>Tench (Tinca tinca) |
+| 8d | Common dace (Leuciscus sp but Idus) |
+| 9a | Bleak (Alburnus alburnus)<br>Sprirlin (Alburnoides bipunctatus)<br>Mediterranean barbel (Barbus meridionalis)<br>Souffia (Telestes souffia)<br>Crucian carp (Carassius carassius)<br>Prussian carp (Carassius gibelio)<br>Roach (Rutilus rutilus)<br>Common rudd (Scardinius erythrophthalmus)<br>South-west european nase (Parachondrostoma toxostoma) |
+| 9b | Apron (Zingel asper)<br>Cottus sp<br>Gobio sp<br>Ruffe (Gymnocephalus cernuus)<br>Brook lamprey (Lampetra planeri)<br>Stone loach ( Barbatula barbatula)<br>Spined loach (Cobitis taenia) |
+| 10 | Sunbleak (Leucaspius delineatus)<br>European bitterling (Rhodeus amarus)<br>Three-spined stickleback (Gasterosteus gymnurus)<br>Ninespine stickleback (Pungitius laevis)<br>Minnows (Phoxinus sp) |
+
+Table: List of predefined group species
diff --git a/docs/en/calculators/verif/macrorugo.md b/docs/en/calculators/verif/macrorugo.md
new file mode 100644
index 000000000..bb41fb93f
--- /dev/null
+++ b/docs/en/calculators/verif/macrorugo.md
@@ -0,0 +1,46 @@
+# Crossability verification: Rock-ramp fishpasses
+
+## Compound rock-ramp fishpasses
+
+In the case of compound rock-ramp fishpasses, each apron (reminder: inclined apron are discretised) is verified like an independent rock-ramp fishpass.
+
+If at least one apron is crossable, the pass is considered crossable.
+
+Maximum crossable width, wich is the maximum of the sums of the widths of contiguous crossable aprons, is given at the end of the verification.
+
+## Criteria
+
+### Minimum water level \(YMin\), in m
+
+Water level \(Y\) in the pass should be greater than minimum water level.
+
+### Limit maximum flow velocity \(VeMax\), in m/s
+
+Maximum flow velocity \(VMax\) in the pass should be lower than limit maximum flow velocity.
+
+## Criteria values for predefined species groups
+
+From _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
+
+| ICE group | Species | Minimum water level (m) | Limit maximum flow velocity (m/s) |
+|-------------------------|----------------|----------------|----------------|
+| 1 | Atlantic salmon (Salmo salar)<br>Sea or river trout [50-100] (Salmo trutta) | 0.4 | 2.5 |
+| 2 | Mules (Chelon labrosus, Liza ramada) | 0.3 | 2.5 |
+| 3a | Gread shad (Alosa alosa) | 0.4 | 2 |
+| 3b | Shad (Alosa fallax fallax) | 0.4 | 2 |
+| 3c | Sea lamprey (Petromyzon marinus) | 0.15 | 2 |
+| 4a | River trout or sea trout [25-55] (Salmo trutta) | 0.3 | 2 |
+| 4b | River trout [15-30] (Salmo trutta) | 0.2 | 2 |
+| 5 | Aspe (Aspius aspius)<br>Pike (Esox lucius) | 0.3 | 2 |
+| 6 | Common grayling (Thymallus thymallus) | 0.3 | 2 |
+| 7a | Common barbel (Barbus barbus)<br>Chub (Squalius cephalus)<br>Nase (Chondrostoma nasus) | 0.3 | 2 |
+| 7b | River lamprey (Lampetra fluviatilis) | 0.15 | 2 |
+| 8a | Common carp (Cyprinus carpio) | 0.3 | 1.5 |
+| 8b | Common bream (Abramis brama)<br>Pike-perch (Sander lucioperca) | 0.3 | 1.5 |
+| 8c | White bream (Blicca bjoerkna)<br>Ide (Leuciscus idus)<br>Burbot (Lota lota)<br>Perch (Perca fluviatilis)<br>Tench (Tinca tinca) | 0.3 | 1.5 |
+| 8d | Common dace (Leuciscus sp but Idus) | 0.3 | 1.5 |
+| 9a | Bleak (Alburnus alburnus)<br>Sprirlin (Alburnoides bipunctatus)<br>Mediterranean barbel (Barbus meridionalis)<br>Souffia (Telestes souffia)<br>Crucian carp (Carassius carassius)<br>Prussian carp (Carassius gibelio)<br>Roach (Rutilus rutilus)<br>Common rudd (Scardinius erythrophthalmus)<br>South-west european nase (Parachondrostoma toxostoma) | 0.2 | 1.5 |
+| 9b | Apron (Zingel asper)<br>Cottus sp<br>Gobio sp<br>Ruffe (Gymnocephalus cernuus)<br>Brook lamprey (Lampetra planeri)<br>Stone loach ( Barbatula barbatula)<br>Spined loach (Cobitis taenia) | 0.2 | 1.5 |
+| 10 | Sunbleak (Leucaspius delineatus)<br>European bitterling (Rhodeus amarus)<br>Three-spined stickleback (Gasterosteus gymnurus)<br>Ninespine stickleback (Pungitius laevis)<br>Minnows (Phoxinus sp) | 0.2 | 1.5 |
+
+Table: List of predefined values for crossing criteria of a rock-ramp fishpass
diff --git a/docs/en/calculators/verif/pab.md b/docs/en/calculators/verif/pab.md
new file mode 100644
index 000000000..6d5a7e7ca
--- /dev/null
+++ b/docs/en/calculators/verif/pab.md
@@ -0,0 +1,105 @@
+# Crossability verification: Fish ladders
+
+When verifying a fish ladder, basins and walls are sequentially tested, as well as every device of each wall. If at least one basin is not crossable, then the pass is not crossable.
+
+Criteria differ depending on the jet type generated by the device being verified. If a wall has several devices, it will be considered crossable if at least one device is crossable.
+
+Orifices are considered uncrossable.
+
+## Criteria
+
+### Diving jet support
+
+Some species do not support diving jets. For such species, each device leading to a diving jet is marked as not crossable.
+
+### Maximum fall \(DHMaxS\) and \(DHMaxP\), in m
+
+Basin fall \(DH\) must be lower than maximum fall.
+
+### Minimum slot width \(BMin\), in m (surface jet only)
+
+Slot width \(L\) must be greater than minimum width. For orifices, surface \(S\) must be greater than minimum width squared.
+
+### Minimum head on weir \(HMin\), in m
+
+Head \(h1\) on weir must be greater than minimum head.
+
+### Minimum basin depth \(PMinS\) and \(PMinP\), in m
+
+Basin depth \(YMOY\) must be greater than minimum depth. For diving jets, depth must be greater than twice the basin fall \(DH\).
+
+### Minimum basin length \(LMinS\) and \(LMinP\), in m
+
+Basin length \(LB\) must be greater than minimum length.
+
+### Recommanded maximum dissipated power \(PVMaxPrec\) and limit maximum dissipated power \(PVMaxLim\), in W/m³
+
+Maximal dissipated power \(PVMax\) in the basin must be lower than limit maximum dissipated power. If it is greater than recommanded maximum dissipated power, a warning is thrown.
+
+**Important:** maximum dissipated power verification is **disabled** in the current Cassiopée version.
+
+## Criteria values for predefined species groups
+
+From _"Informations sur la Continuité Écologique - ICE, Onema 2014"_, and D. Courret.
+
+### Common values for surface jet and diving jet
+
+| ICE group | Species | Minimum head on weir (m) | Recommanded maximum dissipated power (W/m³) | Limit maximum dissipated power (W/m³) |
+|------------|---------|---------|---------|---------|
+| 1 | Atlantic salmon (Salmo salar)<br>Sea or river trout [50-100] (Salmo trutta) | 0.3 | 200 | 250 |
+| 2 | Mules (Chelon labrosus, Liza ramada) | 0.2 | 200 | 250 |
+| 3a | Gread shad (Alosa alosa) | 0.4 | 150 | 200 |
+| 3b | Shad (Alosa fallax fallax) | 0.4 | 150 | 200 |
+| 3c | Sea lamprey (Petromyzon marinus) | 0.15 | 200 | 250 |
+| 4a | River trout or sea trout [25-55] (Salmo trutta) | 0.2 | 200 | 250 |
+| 4b | River trout [15-30] (Salmo trutta) |0.2 | 200 | 250 |
+| 5 | Aspe (Aspius aspius)<br>Pike (Esox lucius) | 0.2 | 150 | 200 |
+| 6 | Common grayling (Thymallus thymallus) | 0.2 | 200 | 250 |
+| 7a | Common barbel (Barbus barbus)<br>Chub (Squalius cephalus)<br>Nase (Chondrostoma nasus) | 0.2 | 150 | 200 |
+| 7b | River lamprey (Lampetra fluviatilis) | 0.15 | 130 | 150 |
+| 8a | Common carp (Cyprinus carpio) | 0.2 | - | - |
+| 8b | Common bream (Abramis brama)<br>Pike-perch (Sander lucioperca) | 0.2 | 150 | 200 |
+| 8c | White bream (Blicca bjoerkna)<br>Ide (Leuciscus idus)<br>Burbot (Lota lota)<br>Perch (Perca fluviatilis)<br>Tench (Tinca tinca) | 0.2 | 130 | 150 |
+| 8d | Common dace (Leuciscus sp but Idus) | 0.2 | 150 | 200 |
+| 9a | Bleak (Alburnus alburnus)<br>Sprirlin (Alburnoides bipunctatus)<br>Mediterranean barbel (Barbus meridionalis)<br>Souffia (Telestes souffia)<br>Crucian carp (Carassius carassius)<br>Prussian carp (Carassius gibelio)<br>Roach (Rutilus rutilus)<br>Common rudd (Scardinius erythrophthalmus)<br>South-west european nase (Parachondrostoma toxostoma) | 0.2 | 130 | 150 |
+| 9b | Apron (Zingel asper)<br>Cottus sp<br>Gobio sp<br>Ruffe (Gymnocephalus cernuus)<br>Brook lamprey (Lampetra planeri)<br>Stone loach ( Barbatula barbatula)<br>Spined loach (Cobitis taenia) | 0.2 | 130 | 150 |
+| 10 | Sunbleak (Leucaspius delineatus)<br>European bitterling (Rhodeus amarus)<br>Three-spined stickleback (Gasterosteus gymnurus)<br>Ninespine stickleback (Pungitius laevis)<br>Minnows (Phoxinus sp) | 0.2 | 100 | 150 |
+
+Table: List of predefined values for crossing criteria of a fish ladder
+
+### Surface jet
+
+| ICE group | Species | Maximum fall (m) | Minimum slot width (m) | Minimum basin depth (m) | Minimum basin length (m) |
+|------------|---------|---------|---------|--------------|----------|
+| 1 | Atlantic salmon (Salmo salar)<br>Sea or river trout [50-100] (Salmo trutta) | 0.35 | 0.3 | 1 | 2.5 |
+| 2 | Mules (Chelon labrosus, Liza ramada) | 0.35 | 0.2 | 1 | 1.75 |
+| 3a | Gread shad (Alosa alosa) | 0.3 | 0.4 | 1 | 3.5 |
+| 3b | Shad (Alosa fallax fallax) | 0.3 |  0.4 | 1 | 3.5 |
+| 3c | Sea lamprey (Petromyzon marinus) | 0.3 |  0.15 | 1 | 1.25 |
+| 4a | River trout or sea trout [25-55] (Salmo trutta) | 0.35 | 0.2 | 1 | 1.75 |
+| 4b | River trout [15-30] (Salmo trutta) | 0.3 | 0.15 | 0.75 | 1.75 |
+| 5 | Aspe (Aspius aspius)<br>Pike (Esox lucius) | 0.3  | 0.3 | 0.75 | 2.5 |
+| 6 | Common grayling (Thymallus thymallus) | 0.3 | 0.2 | 0.75 | 1.75 |
+| 7a | Common barbel (Barbus barbus)<br>Chub (Squalius cephalus)<br>Nase (Chondrostoma nasus) | 0.3 | 0.25 | 0.75 | 2 |
+| 7b | River lamprey (Lampetra fluviatilis) | 0.3 | 0.15 | 0.75 | 1.25 |
+| 8a | Common carp (Cyprinus carpio) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 8b | Common bream (Abramis brama)<br>Pike-perch (Sander lucioperca) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 8c | White bream (Blicca bjoerkna)<br>Ide (Leuciscus idus)<br>Burbot (Lota lota)<br>Perch (Perca fluviatilis)<br>Tench (Tinca tinca) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 8d | Common dace (Leuciscus sp but Idus) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 9a | Bleak (Alburnus alburnus)<br>Sprirlin (Alburnoides bipunctatus)<br>Mediterranean barbel (Barbus meridionalis)<br>Souffia (Telestes souffia)<br>Crucian carp (Carassius carassius)<br>Prussian carp (Carassius gibelio)<br>Roach (Rutilus rutilus)<br>Common rudd (Scardinius erythrophthalmus)<br>South-west european nase (Parachondrostoma toxostoma) | 0.25 | 0.25 | 0.75 | 2 |
+| 9b | Apron (Zingel asper)<br>Cottus sp<br>Gobio sp<br>Ruffe (Gymnocephalus cernuus)<br>Brook lamprey (Lampetra planeri)<br>Stone loach ( Barbatula barbatula)<br>Spined loach (Cobitis taenia) | 0.2 | 0.15 | 0.5 | 1.25 |
+| 10 | Sunbleak (Leucaspius delineatus)<br>European bitterling (Rhodeus amarus)<br>Three-spined stickleback (Gasterosteus gymnurus)<br>Ninespine stickleback (Pungitius laevis)<br>Minnows (Phoxinus sp) | 0.2 | 0.15 | 0.5 | 1.25 |
+
+Table: List of predefined values for crossing criteria of a fish ladder, with surface jet
+
+### Diving jet
+
+| ICE Group | Species | Maximum fall (m) | Minimum basin depth (m) | Minimum basin length (m) |
+|------------|---------|---------|-----------|--------------|
+| 1 | Atlantic salmon (Salmo salar)<br>Sea or river trout [50-100] (Salmo trutta) | 0.75 | 1 | 2 |
+| 2 | Mules (Chelon labrosus, Liza ramada) | 0.6 | 0.75 | 1.25 |
+| 4a | River trout or sea trout [25-55] (Salmo trutta) | 0.4 | 0.75 | 1.25 |
+| 4b | River trout [15-30] (Salmo trutta) | 0.3 | 0.75 | 1 |
+| 6 | Common grayling (Thymallus thymallus) | 0.3 | 0.75 | 1 |
+
+Table: List of predefined values for crossing criteria of a fish ladder, with diving jet
diff --git a/docs/en/calculators/verif/par.md b/docs/en/calculators/verif/par.md
new file mode 100644
index 000000000..7a2462687
--- /dev/null
+++ b/docs/en/calculators/verif/par.md
@@ -0,0 +1,36 @@
+# Crossability verification: Humpback fishways (simulation)
+
+## Criteria
+
+### Incompatible and discouraged species
+
+Species groups 3a, 3b and 7b are discouraged for crossing humpback fishways. This leads to a warning, but does not make the pass not crossable.
+
+Species groups 8a, 8b, 8c, 8d, 9a, 9b and 10 are unable to cross humpback fishways.
+
+### Minimum water level \(YMinPB\) and \(YMinSB\), in m
+
+Water level \(h\) in the pass must be greater than the minimum water level, depending on baffles type:
+
+ * plane and Fatou baffles: \(YMinPB\)
+ * superactive and chevron baffles: \(YMinSB\)
+
+## Criteria values for predefined species groups
+
+From _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
+
+| ICE group | Species | Minimum water level on plane baffles (m) | Minimum water level on superactive baffles (m) |
+|------------|---------|---------|-----------|
+| 1 | Atlantic salmon (Salmo salar)<br>Sea or river trout [50-100] (Salmo trutta) | 0.3 | 0.2 |
+| 2 | Mules (Chelon labrosus, Liza ramada) | 0.25 | 0.15 |
+| 3a | Gread shad (Alosa alosa) | 0.3 | 0.2 |
+| 3b | Shad (Alosa fallax fallax) | 0.25 | 0.15 |
+| 3c | Sea lamprey (Petromyzon marinus) | 0.1 | 0.1 |
+| 4a | River trout or sea trout [25-55] (Salmo trutta) | 0.25 | 0.15 |
+| 4b | River trout [15-30] (Salmo trutta) | 0.2 | 0.1 |
+| 5 | Aspe (Aspius aspius)<br>Pike (Esox lucius) | 0.3 | 0.2 |
+| 6 | Common grayling (Thymallus thymallus) | 0.25 | 0.15 |
+| 7a | Common barbel (Barbus barbus)<br>Chub (Squalius cephalus)<br>Nase (Chondrostoma nasus) | 0.25 | 0.15 |
+| 7b | River lamprey (Lampetra fluviatilis) | 0.1 | 0.1 |
+
+Table: List of predefined values for crossing criteria of a humpback fishway
diff --git a/docs/en/calculators/verif/principe.md b/docs/en/calculators/verif/principe.md
new file mode 100644
index 000000000..6313c5cce
--- /dev/null
+++ b/docs/en/calculators/verif/principe.md
@@ -0,0 +1,29 @@
+# Crossability verification
+
+This module allows to verify the capacity of different fish species to cross the following types of fish passes:
+
+- [fish ladders](pab.md)
+- [humpback fishways](par.md)
+- [rock-ramp fishpasses](macrorugo.md)
+
+## Principle
+
+For each pass type, several crossability criteria are checked, expressed as threshold values (ex: minimal basin depth, for a fish ladder).
+
+Exceeding the threshold value of a criterion leads to an explicit error mentioning the quantity concerned and the threshold value, and results in the pass not being crossable.
+
+Some criteria such as maximal dissipated power have both an alert value (crossability is possible but not guaranteed) and a limit value (crossing the pass is impossible).
+
+For a given pass, one can check at once the crossing capabilities of several species, over multiple modalities (variation of one or more parameters in the pass).
+
+## Predefined species
+
+[Several common species groups](especes_predefinies.md) are predefined: default values are associated to crossability criteria.
+
+Default values for some of those criteria might be missing for a species group, when the latter is considered unabled to cross the pass type the criterion is related to.
+
+## Custom species
+
+The `Fish species characteristics` module allows to define custom values for all criteria, before running a pass verification.
+
+If a criterion is applicable to the pass that is being checked, but no value was given, an error will be triggered when running the verification, leading to the pass being not crossable.
diff --git a/docs/fr/calculators/verif/especes_predefinies.md b/docs/fr/calculators/verif/especes_predefinies.md
new file mode 100644
index 000000000..dbb388400
--- /dev/null
+++ b/docs/fr/calculators/verif/especes_predefinies.md
@@ -0,0 +1,26 @@
+# Vérification des critères de franchissement&nbsp;: Espèces prédéfinies
+
+D'après _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
+
+| Groupe ICE | Espèces |
+|-------------------------|----------------|
+| 1 | Saumon atlantique (Salmo salar)<br>Truite de mer ou de rivière [50-100] (Salmo trutta) |
+| 2 | Mulets (Chelon labrosus, Liza ramada) |
+| 3a | Grande alose (Alosa alosa) |
+| 3b | Alose feinte (Alosa fallax fallax) |
+| 3c | Lamproie marine (Petromyzon marinus) |
+| 4a | Truite de rivière ou truite de mer [25-55] (Salmo trutta) |
+| 4b | Truite de rivière [15-30] (Salmo trutta) |
+| 5 | Aspe (Aspius aspius)<br>Brochet (Esox lucius) |
+| 6 | Ombre commun (Thymallus thymallus) |
+| 7a | Barbeau fluviatile (Barbus barbus)<br>Chevaine (Squalius cephalus)<br>Hotu (Chondrostoma nasus) |
+| 7b | Lamproie fluviatile (Lampetra fluviatilis) |
+| 8a | Carpe commune (Cyprinus carpio) |
+| 8b | Brème commune (Abramis brama)<br>Sandre (Sander lucioperca) |
+| 8c | Brème bordelière (Blicca bjoerkna)<br>Ide melanote (Leuciscus idus)<br>Lotte de rivière (Lota lota)<br>Perche (Perca fluviatilis)<br>Tanche (Tinca tinca) |
+| 8d | Vandoises (Leuciscus sp hors Idus) |
+| 9a | Ablette commune (Alburnus alburnus)<br>Ablette sprirlin (Alburnoides bipunctatus)<br>Barbeau méridional (Barbus meridionalis)<br>Blageon (Telestes souffia)<br>Carassin commun (Carassius carassius)<br>Carassin argenté (Carassius gibelio)<br>Gardon (Rutilus rutilus)<br>Rotengle (Scardinius erythrophthalmus)<br>Toxostome (Parachondrostoma toxostoma) |
+| 9b | Apron (Zingel asper)<br>Chabots (Cottus sp)<br>Goujons (Gobio sp)<br>Grémille (Gymnocephalus cernuus)<br>Lamproie de Planer (Lampetra planeri)<br>Loche franche ( Barbatula barbatula)<br>Loche de rivière (Cobitis taenia) |
+| 10 | Able de Heckel (Leucaspius delineatus)<br>Bouvière (Rhodeus amarus)<br>Epinoche (Gasterosteus gymnurus)<br>Epinochette (Pungitius laevis)<br>Vairons (Phoxinus sp) |
+
+Table: Liste des groupe d'espèces prédéfinis
diff --git a/docs/fr/calculators/verif/macrorugo.md b/docs/fr/calculators/verif/macrorugo.md
new file mode 100644
index 000000000..4cab10c41
--- /dev/null
+++ b/docs/fr/calculators/verif/macrorugo.md
@@ -0,0 +1,46 @@
+# Vérification des critères de franchissement&nbsp;: Passes à macrorugosités
+
+## Passes à macrorugosités complexes
+
+Dans le cas des pases à macrorugosités complexes, chaque radier (rappel&nbsp;: les radiers inclinés sont discrétisés) est vérifié comme une passe à macrorugosités indépendante.
+
+Si au moins un radier est franchissable, la passe est considérée comme franchissable.
+
+La largeur maximale franchissable, maximum des sommes des largeurs des radiers franchissables contigus, est indiquée à l'issue de la vérification.
+
+## Critères
+
+### Tirant d'eau minimal \(YMin\), en m
+
+Le tirant d'eau \(Y\) dans la passe doit être supérieur au tirant d'eau minimal.
+
+### Vitesse d'écoulement maximale limite \(VeMax\), en m/s
+
+La vitesse d'écoulement maximale \(VMax\) dans la passe doit être inférieure à la vitesse d'écoulement maximale limite.
+
+## Valeurs des critères pour les groupes d'espèces prédéfinis
+
+D'après _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
+
+| Groupe ICE | Espèces | Tirant d'eau minimal (m) | Vitesse d'écoulement maximale limite (m/s) |
+|-------------------------|----------------|----------------|----------------|
+| 1 | Saumon atlantique (Salmo salar)<br>Truite de mer ou de rivière [50-100] (Salmo trutta) | 0.4 | 2.5 |
+| 2 | Mulets (Chelon labrosus, Liza ramada) | 0.3 | 2.5 |
+| 3a | Grande alose (Alosa alosa) | 0.4 | 2 |
+| 3b | Alose feinte (Alosa fallax fallax) | 0.4 | 2 |
+| 3c | Lamproie marine (Petromyzon marinus) | 0.15 | 2 |
+| 4a | Truite de rivière ou truite de mer [25-55] (Salmo trutta) | 0.3 | 2 |
+| 4b | Truite de rivière [15-30] (Salmo trutta) | 0.2 | 2 |
+| 5 | Aspe (Aspius aspius)<br>Brochet (Esox lucius) | 0.3 | 2 |
+| 6 | Ombre commun (Thymallus thymallus) | 0.3 | 2 |
+| 7a | Barbeau fluviatile (Barbus barbus)<br>Chevaine (Squalius cephalus)<br>Hotu (Chondrostoma nasus) | 0.3 | 2 |
+| 7b | Lamproie fluviatile (Lampetra fluviatilis) | 0.15 | 2 |
+| 8a | Carpe commune (Cyprinus carpio) | 0.3 | 1.5 |
+| 8b | Brème commune (Abramis brama)<br>Sandre (Sander lucioperca) | 0.3 | 1.5 |
+| 8c | Brème bordelière (Blicca bjoerkna)<br>Ide melanote (Leuciscus idus)<br>Lotte de rivière (Lota lota)<br>Perche (Perca fluviatilis)<br>Tanche (Tinca tinca) | 0.3 | 1.5 |
+| 8d | Vandoises (Leuciscus sp hors Idus) | 0.3 | 1.5 |
+| 9a | Ablette commune (Alburnus alburnus)<br>Ablette sprirlin (Alburnoides bipunctatus)<br>Barbeau méridional (Barbus meridionalis)<br>Blageon (Telestes souffia)<br>Carassin commun (Carassius carassius)<br>Carassin argenté (Carassius gibelio)<br>Gardon (Rutilus rutilus)<br>Rotengle (Scardinius erythrophthalmus)<br>Toxostome (Parachondrostoma toxostoma) | 0.2 | 1.5 |
+| 9b | Apron (Zingel asper)<br>Chabots (Cottus sp)<br>Goujons (Gobio sp)<br>Grémille (Gymnocephalus cernuus)<br>Lamproie de Planer (Lampetra planeri)<br>Loche franche ( Barbatula barbatula)<br>Loche de rivière (Cobitis taenia) | 0.2 | 1.5 |
+| 10 | Able de Heckel (Leucaspius delineatus)<br>Bouvière (Rhodeus amarus)<br>Epinoche (Gasterosteus gymnurus)<br>Epinochette (Pungitius laevis)<br>Vairons (Phoxinus sp) | 0.2 | 1.5 |
+
+Table: Liste des valeurs prédéfinies pour les critères de franchissement d'une passe à macrorugosités
diff --git a/docs/fr/calculators/verif/pab.md b/docs/fr/calculators/verif/pab.md
new file mode 100644
index 000000000..b86c8b864
--- /dev/null
+++ b/docs/fr/calculators/verif/pab.md
@@ -0,0 +1,105 @@
+# Vérification des critères de franchissement&nbsp;: Passes à bassins
+
+Lors de la vérification d'une passe à bassins, les bassins et les cloisons sont testés séquentiellement, ainsi que tous les ouvrages de chaque cloison. Si au moins un bassin est infranchissable, alors la passe est infranchissable.
+
+Les critères diffèrent selon que l'ouvrage considéré donne lieu à un jet plongeant ou à un jet de surface. Si une cloison possède plusieurs ouvrages, elle sera considérée comme franchissable si au moins un ouvrage est franchissable.
+
+Les orifices sont considérés comme infranchissables.
+
+## Critères
+
+### Jet plongeant
+
+Certaines espèces ne supportent pas les jets plongeants. Pour ces espèces, chaque ouvrage donnant lieu à un jet plongeant est marqué comme infranchissable.
+
+### Chute maximale \(DHMaxS\) et \(DHMaxP\), en m
+
+La chute \(DH\) du bassin doit être inférieure à la chute maximale.
+
+### Largeur minimale de fente ou échancrure latérale \(BMin\), en m (jet de surface seulement)
+
+La largeur \(L\) de la fente ou échancrure doit être supérieure à la largeur minimale. Dans le cas d'un orifice, la surface \(S\) de l'orifice doit être supérieure à la largeur minimale au carré.
+
+### Charge minimale sur l'échancrure \(HMin\), en m
+
+La charge \(h1\) sur l'échancrure doit être supérieure à la charge minimale.
+
+### Profondeur minimale de bassin \(PMinS\) et \(PMinP\), en m
+
+La profondeur \(YMOY\) du bassin doit être supérieure à la profondeur minimale. Dans le cas d'un jet plongeant, la profondeur doit être supérieure au double de la chute \(DH\) du bassin.
+
+### Longueur minimale de bassin \(LMinS\) et \(LMinP\), en m
+
+La longueur \(LB\) du bassin doit être supérieure à la longueur minimale.
+
+### Puissance dissipée maximale préconisée \(PVMaxPrec\) et maximale limite \(PVMaxLim\), en W/m³
+
+La puissance dissipée maximale \(PVMax\) dans le bassin doit être inférieure à la puissance dissipée maximale limite. Si elle est supérieure à la puissance dissipée maximale préconisée, un avertissement est émis.
+
+**Important&nbsp;:** la vérification de la puissance dissipée maximale est **désactivée** dans la version actuelle de Cassiopée
+
+## Valeurs des critères pour les groupes d'espèces prédéfinis
+
+D'après _"Informations sur la Continuité Écologique - ICE, Onema 2014"_, et D. Courret.
+
+### Valeurs communes pour jet de surface et jet plongeant
+
+| Groupe ICE | Espèces | Charge minimale sur l'échancrure (m) | Puissance dissipée maximale préconisée (W/m³) | Puissance dissipée maximale limite (W/m³) |
+|------------|---------|---------|---------|---------|
+| 1 | Saumon atlantique (Salmo salar)<br>Truite de mer ou de rivière [50-100] (Salmo trutta) | 0.3 | 200 | 250 |
+| 2 | Mulets (Chelon labrosus, Liza ramada) | 0.2 | 200 | 250 |
+| 3a | Grande alose (Alosa alosa) | 0.4 | 150 | 200 |
+| 3b | Alose feinte (Alosa fallax fallax) | 0.4 | 150 | 200 |
+| 3c | Lamproie marine (Petromyzon marinus) | 0.15 | 200 | 250 |
+| 4a | Truite de rivière ou truite de mer [25-55] (Salmo trutta) | 0.2 | 200 | 250 |
+| 4b | Truite de rivière [15-30] (Salmo trutta) |0.2 | 200 | 250 |
+| 5 | Aspe (Aspius aspius)<br>Brochet (Esox lucius) | 0.2 | 150 | 200 |
+| 6 | Ombre commun (Thymallus thymallus) | 0.2 | 200 | 250 |
+| 7a | Barbeau fluviatile (Barbus barbus)<br>Chevaine (Squalius cephalus)<br>Hotu (Chondrostoma nasus) | 0.2 | 150 | 200 |
+| 7b | Lamproie fluviatile (Lampetra fluviatilis) | 0.15 | 130 | 150 |
+| 8a | Carpe commune (Cyprinus carpio) | 0.2 | - | - |
+| 8b | Brème commune (Abramis brama)<br>Sandre (Sander lucioperca) | 0.2 | 150 | 200 |
+| 8c | Brème bordelière (Blicca bjoerkna)<br>Ide melanote (Leuciscus idus)<br>Lotte de rivière (Lota lota)<br>Perche (Perca fluviatilis)<br>Tanche (Tinca tinca) | 0.2 | 130 | 150 |
+| 8d | Vandoises (Leuciscus sp hors Idus) | 0.2 | 150 | 200 |
+| 9a | Ablette commune (Alburnus alburnus)<br>Ablette sprirlin (Alburnoides bipunctatus)<br>Barbeau méridional (Barbus meridionalis)<br>Blageon (Telestes souffia)<br>Carassin commun (Carassius carassius)<br>Carassin argenté (Carassius gibelio)<br>Gardon (Rutilus rutilus)<br>Rotengle (Scardinius erythrophthalmus)<br>Toxostome (Parachondrostoma toxostoma) | 0.2 | 130 | 150 |
+| 9b | Apron (Zingel asper)<br>Chabots (Cottus sp)<br>Goujons (Gobio sp)<br>Grémille (Gymnocephalus cernuus)<br>Lamproie de Planer (Lampetra planeri)<br>Loche franche ( Barbatula barbatula)<br>Loche de rivière (Cobitis taenia) | 0.2 | 130 | 150 |
+| 10 | Able de Heckel (Leucaspius delineatus)<br>Bouvière (Rhodeus amarus)<br>Epinoche (Gasterosteus gymnurus)<br>Epinochette (Pungitius laevis)<br>Vairons (Phoxinus sp) | 0.2 | 100 | 150 |
+
+Table: Liste des valeurs prédéfinies pour les critères de franchissement d'une passe à bassins
+
+### Jet de surface
+
+| Groupe ICE | Espèces | Chute maximale (m) | Largeur minimale de fente ou échancrure latérale (m) | Profondeur minimale de bassin (m) | Longueur minimale de bassin (m) |
+|------------|---------|---------|---------|--------------|----------|
+| 1 | Saumon atlantique (Salmo salar)<br>Truite de mer ou de rivière [50-100] (Salmo trutta) | 0.35 | 0.3 | 1 | 2.5 |
+| 2 | Mulets (Chelon labrosus, Liza ramada) | 0.35 | 0.2 | 1 | 1.75 |
+| 3a | Grande alose (Alosa alosa) | 0.3 | 0.4 | 1 | 3.5 |
+| 3b | Alose feinte (Alosa fallax fallax) | 0.3 |  0.4 | 1 | 3.5 |
+| 3c | Lamproie marine (Petromyzon marinus) | 0.3 |  0.15 | 1 | 1.25 |
+| 4a | Truite de rivière ou truite de mer [25-55] (Salmo trutta) | 0.35 | 0.2 | 1 | 1.75 |
+| 4b | Truite de rivière [15-30] (Salmo trutta) | 0.3 | 0.15 | 0.75 | 1.75 |
+| 5 | Aspe (Aspius aspius)<br>Brochet (Esox lucius) | 0.3  | 0.3 | 0.75 | 2.5 |
+| 6 | Ombre commun (Thymallus thymallus) | 0.3 | 0.2 | 0.75 | 1.75 |
+| 7a | Barbeau fluviatile (Barbus barbus)<br>Chevaine (Squalius cephalus)<br>Hotu (Chondrostoma nasus) | 0.3 | 0.25 | 0.75 | 2 |
+| 7b | Lamproie fluviatile (Lampetra fluviatilis) | 0.3 | 0.15 | 0.75 | 1.25 |
+| 8a | Carpe commune (Cyprinus carpio) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 8b | Brème commune (Abramis brama)<br>Sandre (Sander lucioperca) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 8c | Brème bordelière (Blicca bjoerkna)<br>Ide melanote (Leuciscus idus)<br>Lotte de rivière (Lota lota)<br>Perche (Perca fluviatilis)<br>Tanche (Tinca tinca) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 8d | Vandoises (Leuciscus sp hors Idus) | 0.25 | 0.3 | 0.75 | 2.5 |
+| 9a | Ablette commune (Alburnus alburnus)<br>Ablette sprirlin (Alburnoides bipunctatus)<br>Barbeau méridional (Barbus meridionalis)<br>Blageon (Telestes souffia)<br>Carassin commun (Carassius carassius)<br>Carassin argenté (Carassius gibelio)<br>Gardon (Rutilus rutilus)<br>Rotengle (Scardinius erythrophthalmus)<br>Toxostome (Parachondrostoma toxostoma) | 0.25 | 0.25 | 0.75 | 2 |
+| 9b | Apron (Zingel asper)<br>Chabots (Cottus sp)<br>Goujons (Gobio sp)<br>Grémille (Gymnocephalus cernuus)<br>Lamproie de Planer (Lampetra planeri)<br>Loche franche ( Barbatula barbatula)<br>Loche de rivière (Cobitis taenia) | 0.2 | 0.15 | 0.5 | 1.25 |
+| 10 | Able de Heckel (Leucaspius delineatus)<br>Bouvière (Rhodeus amarus)<br>Epinoche (Gasterosteus gymnurus)<br>Epinochette (Pungitius laevis)<br>Vairons (Phoxinus sp) | 0.2 | 0.15 | 0.5 | 1.25 |
+
+Table: Liste des valeurs prédéfinies pour les critères de franchissement d'une passe à bassins, en jet de surface
+
+### Jet plongeant
+
+| Groupe ICE | Espèces | Chute maximale (m) | Profondeur minimale de bassin (m) | Longueur minimale de bassin (m) |
+|------------|---------|---------|-----------|--------------|
+| 1 | Saumon atlantique (Salmo salar)<br>Truite de mer ou de rivière [50-100] (Salmo trutta) | 0.75 | 1 | 2 |
+| 2 | Mulets (Chelon labrosus, Liza ramada) | 0.6 | 0.75 | 1.25 |
+| 4a | Truite de rivière ou truite de mer [25-55] (Salmo trutta) | 0.4 | 0.75 | 1.25 |
+| 4b | Truite de rivière [15-30] (Salmo trutta) | 0.3 | 0.75 | 1 |
+| 6 | Ombre commun (Thymallus thymallus) | 0.3 | 0.75 | 1 |
+
+Table: Liste des valeurs prédéfinies pour les critères de franchissement d'une passe à bassins, en jet plongeant
diff --git a/docs/fr/calculators/verif/par.md b/docs/fr/calculators/verif/par.md
new file mode 100644
index 000000000..e053af8fa
--- /dev/null
+++ b/docs/fr/calculators/verif/par.md
@@ -0,0 +1,36 @@
+# Vérification des critères de franchissement&nbsp;: Passes à ralentisseurs (simulation)
+
+## Critères
+
+### Espèces déconseillées et incompatibles
+
+Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour le franchissement d'une passe à ralentisseurs. Cela donne lieu à un avertissement, sans pour autant entraîner l'infranchissabilité de la passe.
+
+Les groupes d'espèces 8a, 8b, 8c, 8d, 9a, 9b et 10 sont incapables de franchir des passes à ralentisseurs.
+
+### Tirant d'eau minimal \(YMinPB\) et \(YMinSB\), en m
+
+Le tirant d'eau \(h\) dans la passe doit être supérieur au tirant d'eau minimal, selon le type de ralentisseurs&nbsp;:
+
+ * ralentisseurs plans et Fatou&nbsp;: \(YMinPB\)
+ * ralentisseurs suractifs et chevrons&nbsp;: \(YMinSB\)
+
+## Valeurs des critères pour les groupes d'espèces prédéfinis
+
+D'après _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
+
+| Groupe ICE | Espèces | Tirant d'eau minimal sur les ralentisseurs plans (m) | Tirant d'eau minimal sur les ralentisseurs suractifs (m) |
+|------------|---------|---------|-----------|
+| 1 | Saumon atlantique (Salmo salar)<br>Truite de mer ou de rivière [50-100] (Salmo trutta) | 0.3 | 0.2 |
+| 2 | Mulets (Chelon labrosus, Liza ramada) | 0.25 | 0.15 |
+| 3a | Grande alose (Alosa alosa) | 0.3 | 0.2 |
+| 3b | Alose feinte (Alosa fallax fallax) | 0.25 | 0.15 |
+| 3c | Lamproie marine (Petromyzon marinus) | 0.1 | 0.1 |
+| 4a | Truite de rivière ou truite de mer [25-55] (Salmo trutta) | 0.25 | 0.15 |
+| 4b | Truite de rivière [15-30] (Salmo trutta) | 0.2 | 0.1 |
+| 5 | Aspe (Aspius aspius)<br>Brochet (Esox lucius) | 0.3 | 0.2 |
+| 6 | Ombre commun (Thymallus thymallus) | 0.25 | 0.15 |
+| 7a | Barbeau fluviatile (Barbus barbus)<br>Chevaine (Squalius cephalus)<br>Hotu (Chondrostoma nasus) | 0.25 | 0.15 |
+| 7b | Lamproie fluviatile (Lampetra fluviatilis) | 0.1 | 0.1 |
+
+Table: Liste des valeurs prédéfinies pour les critères de franchissement d'une passe à ralentisseurs
diff --git a/docs/fr/calculators/verif/principe.md b/docs/fr/calculators/verif/principe.md
new file mode 100644
index 000000000..bce6ec0e9
--- /dev/null
+++ b/docs/fr/calculators/verif/principe.md
@@ -0,0 +1,29 @@
+# Vérification des critères de franchissement
+
+Cet outil permet de vérifier la capacité des différentes espèces de poissons à franchir les types de passes suivants&nbsp;:
+
+- [passes à bassins](pab.md)
+- [passes à ralentisseurs](par.md)
+- [passes à macrorugosités](macrorugo.md)
+
+## Principe
+
+Pour chaque type de passe, on contrôle plusieurs critères de franchissabilité, exprimés sous forme de valeurs limites (ex: profondeur minimale de bassin, pour une passe à bassins).
+
+Tout dépassement de la valeur limite d'un critère donne lieu à une erreur explicite mentionnant la grandeur concernée et la valeur limite, et entraîne la non franchissabilité de la passe.
+
+Certains critères comme la puissance maximale dissipée possèdent à la fois une valeur d'alerte (la franchissabilité n'est pas garantie mais reste possible) et une valeur limite (le franchissement est impossible).
+
+Pour une même passe, on peut verifier simultanément la capacité de franchissement de plusieurs espèces, sur plusieurs modalités (variation d'un ou plusieurs paramètres de la passe).
+
+## Espèces prédéfinies
+
+[Plusieurs groupes d'espèces communes](especes_predefinies.md) sont prédéfinis&nbsp;: des valeurs par défaut sont associées aux critères de franchissement.
+
+Les valeurs par défaut de certains critères peuvent être absentes pour un groupe d'espèces, lorsque celui-ci est considéré comme incapable de franchir le type de passes auquel le critère est rattaché.
+
+## Espèces personnalisées
+
+Le module `Espèce` permet de définir des valeurs personnalisées pour tous les critères, avant de lancer la vérification d'une passe.
+
+Si un critère est applicable à la passe à vérifier mais aucune valeur n'a été saisie, une erreur sera affichée lors de la vérification, entraînant la non franchissabilité de la passe.
diff --git a/mkdocs-en.yml b/mkdocs-en.yml
index 5adfe779a..88e7fd794 100644
--- a/mkdocs-en.yml
+++ b/mkdocs-en.yml
@@ -64,6 +64,20 @@ nav:
         - calculators/pam/macrorugo_theorie.md
         - calculators/pam/macrorugo_complexe.md
         - calculators/pam/concentration.md
+    - Humpback fishways:
+        - calculators/par/calage.md
+        - calculators/par/simulation.md
+        - calculators/par/formules.md
+        - calculators/par/theorie_plans.md
+        - calculators/par/theorie_fatou.md
+        - calculators/par/theorie_suractif.md
+        - calculators/par/theorie_mixte.md
+    - Crossability verification:
+        - Principle: calculators/verif/principe.md
+        - Fish ladders: calculators/verif/pab.md
+        - Humpback fishways: calculators/verif/par.md
+        - Rock-ramp fishpasses: calculators/verif/macrorugo.md
+        - Predefined species: calculators/verif/especes_predefinies.md
     - Downstream migration:
         - Loss of charge, water grid: calculators/devalaison/grille.md
         - Jet impact: calculators/devalaison/jet.md
diff --git a/mkdocs-fr.yml b/mkdocs-fr.yml
index 20a6b9fa6..f7ac501cd 100644
--- a/mkdocs-fr.yml
+++ b/mkdocs-fr.yml
@@ -72,6 +72,12 @@ nav:
         - calculators/par/theorie_fatou.md
         - calculators/par/theorie_suractif.md
         - calculators/par/theorie_mixte.md
+    - Vérification des critères de franchissement:
+        - Principe: calculators/verif/principe.md
+        - Passes à bassins: calculators/verif/pab.md
+        - Passes à ralentisseurs: calculators/verif/par.md
+        - Passes à macrorugosités: calculators/verif/macrorugo.md
+        - Espèces prédéfinies: calculators/verif/especes_predefinies.md
     - Dévalaison:
         - Perte de charge sur grille de prise d'eau: calculators/devalaison/grille.md
         - Impact de jet: calculators/devalaison/jet.md
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 927f0081d..b4b6e6ca1 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -143,23 +143,23 @@
     "INFO_ENUM_PARFLOWREGIME_0": "Free",
     "INFO_ENUM_PARFLOWREGIME_1": "Submerged",
     "INFO_ENUM_SPECIES_1": "Salmon, trout [50-100] (1)",
-    "INFO_ENUM_SPECIES_2": "Mules (2)",
-    "INFO_ENUM_SPECIES_3a": "Great Shad (3a)",
-    "INFO_ENUM_SPECIES_3b": "Shad shad (3b)",
+    "INFO_ENUM_SPECIES_2": "Mule (2)",
+    "INFO_ENUM_SPECIES_3a": "Great shad (3a)",
+    "INFO_ENUM_SPECIES_3b": "Shad (3b)",
     "INFO_ENUM_SPECIES_3c": "Sea lamprey (3c)",
     "INFO_ENUM_SPECIES_4a": "Trout [25-55] (4a)",
     "INFO_ENUM_SPECIES_4b": "River trout [15-30] (4b)",
     "INFO_ENUM_SPECIES_5": "Aspe, pike (5)",
-    "INFO_ENUM_SPECIES_6": "Common Shadow (6)",
-    "INFO_ENUM_SPECIES_7a": "Barbeau, chevaine, hotu (7a)",
-    "INFO_ENUM_SPECIES_7b": "River Lamprey (7b)",
-    "INFO_ENUM_SPECIES_8a": "Common Carp (8a)",
+    "INFO_ENUM_SPECIES_6": "Common grayling (6)",
+    "INFO_ENUM_SPECIES_7a": "Barbel, chub, nase (7a)",
+    "INFO_ENUM_SPECIES_7b": "River lamprey (7b)",
+    "INFO_ENUM_SPECIES_8a": "Common carp (8a)",
     "INFO_ENUM_SPECIES_8b": "Common bream, pike-perch (8b)",
-    "INFO_ENUM_SPECIES_8c": "Brim bream, ide, monkfish, perch, tench (8c)",
-    "INFO_ENUM_SPECIES_8d": "Vandoises (8d)",
-    "INFO_ENUM_SPECIES_9a": "Ablette, cockle, carrassin, roach... (9a)",
-    "INFO_ENUM_SPECIES_9b": "Apron, sculpins, bolts, loche... (9b)",
-    "INFO_ENUM_SPECIES_10": "Able, cowherd, stickleback, minnows (10)",
+    "INFO_ENUM_SPECIES_8c": "White bream, ide, burbot, perch, tench (8c)",
+    "INFO_ENUM_SPECIES_8d": "Common dace (8d)",
+    "INFO_ENUM_SPECIES_9a": "Bleak, spirlin, barbel, souffia, crucian carp, roach... (9a)",
+    "INFO_ENUM_SPECIES_9b": "Apron, sculpins, ruffe, loach... (9b)",
+    "INFO_ENUM_SPECIES_10": "Sunbleak, bitterling, stickleback, minnow (10)",
     "INFO_ENUM_SPECIES_11a": "European eel [yellow] (11a)",
     "INFO_ENUM_SPECIES_11b": "European Eel [glass eel] (11b)",
     "INFO_ENUM_STRUCTUREFLOWMODE_0": "Weir",
-- 
GitLab


From 0e4caedbf5170081881b2a9d184ac5682857ebca Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 14 Aug 2020 14:23:05 +0200
Subject: [PATCH 075/101] Copy french PAR documentation to english doc folder
 #443

---
 .../par/baffle_fishway_Fatou_slope_10_.svg    | 508 +++++++++++++++++
 .../par/baffle_fishway_Fatou_slope_15_.svg    | 511 +++++++++++++++++
 .../par/baffle_fishway_Fatou_slope_20_.svg    | 512 ++++++++++++++++++
 .../par/baffle_fishway_mixte_slope_10_.svg    | 459 ++++++++++++++++
 .../par/baffle_fishway_mixte_slope_16_.svg    | 445 +++++++++++++++
 .../par/baffle_fishway_plans_slope_10_.svg    | 459 ++++++++++++++++
 .../par/baffle_fishway_plans_slope_15_.svg    | 464 ++++++++++++++++
 .../par/baffle_fishway_plans_slope_20_.svg    | 495 +++++++++++++++++
 .../par/baffle_fishway_suractif_slope_10_.svg | 451 +++++++++++++++
 .../par/baffle_fishway_suractif_slope_15_.svg | 454 ++++++++++++++++
 docs/en/calculators/par/calage.md             |  38 ++
 docs/en/calculators/par/formules.md           |  57 ++
 docs/en/calculators/par/simulation.md         |  26 +
 docs/en/calculators/par/theorie_fatou.md      |  91 ++++
 .../calculators/par/theorie_fatou_schema.png  | Bin 0 -> 138046 bytes
 docs/en/calculators/par/theorie_mixte.md      |  78 +++
 .../calculators/par/theorie_mixte_schema.png  | Bin 0 -> 99570 bytes
 docs/en/calculators/par/theorie_plans.md      |  91 ++++
 .../calculators/par/theorie_plans_schema.png  | Bin 0 -> 95961 bytes
 docs/en/calculators/par/theorie_suractif.md   |  77 +++
 .../par/theorie_suractif_schema.png           | Bin 0 -> 75501 bytes
 21 files changed, 5216 insertions(+)
 create mode 100644 docs/en/calculators/par/baffle_fishway_Fatou_slope_10_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_Fatou_slope_15_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_Fatou_slope_20_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_mixte_slope_10_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_mixte_slope_16_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_plans_slope_10_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_plans_slope_15_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_plans_slope_20_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_suractif_slope_10_.svg
 create mode 100644 docs/en/calculators/par/baffle_fishway_suractif_slope_15_.svg
 create mode 100644 docs/en/calculators/par/calage.md
 create mode 100644 docs/en/calculators/par/formules.md
 create mode 100644 docs/en/calculators/par/simulation.md
 create mode 100644 docs/en/calculators/par/theorie_fatou.md
 create mode 100644 docs/en/calculators/par/theorie_fatou_schema.png
 create mode 100644 docs/en/calculators/par/theorie_mixte.md
 create mode 100644 docs/en/calculators/par/theorie_mixte_schema.png
 create mode 100644 docs/en/calculators/par/theorie_plans.md
 create mode 100644 docs/en/calculators/par/theorie_plans_schema.png
 create mode 100644 docs/en/calculators/par/theorie_suractif.md
 create mode 100644 docs/en/calculators/par/theorie_suractif_schema.png

diff --git a/docs/en/calculators/par/baffle_fishway_Fatou_slope_10_.svg b/docs/en/calculators/par/baffle_fishway_Fatou_slope_10_.svg
new file mode 100644
index 000000000..373eb4613
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_Fatou_slope_10_.svg
@@ -0,0 +1,508 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 7.4375 -0.921875 C 7.960938 -0.554688 8.449219 -0.289063 8.894531 -0.125 L 8.5625 0.667969 C 7.9375 0.445313 7.324219 0.09375 6.714844 -0.386719 C 6.074219 -0.03125 5.371094 0.144531 4.605469 0.148438 C 3.824219 0.144531 3.117188 -0.0390625 2.488281 -0.414063 C 1.851563 -0.785156 1.363281 -1.3125 1.027344 -1.996094 C 0.683594 -2.671875 0.515625 -3.4375 0.515625 -4.296875 C 0.515625 -5.140625 0.6875 -5.914063 1.03125 -6.609375 C 1.375 -7.304688 1.863281 -7.832031 2.5 -8.195313 C 3.132813 -8.558594 3.84375 -8.742188 4.628906 -8.742188 C 5.421875 -8.742188 6.136719 -8.550781 6.773438 -8.175781 C 7.40625 -7.792969 7.890625 -7.265625 8.226563 -6.59375 C 8.5625 -5.914063 8.730469 -5.152344 8.730469 -4.300781 C 8.730469 -3.59375 8.621094 -2.957031 8.40625 -2.394531 C 8.191406 -1.828125 7.867188 -1.335938 7.4375 -0.921875 Z M 4.933594 -2.375 C 5.589844 -2.1875 6.128906 -1.914063 6.554688 -1.554688 C 7.222656 -2.160156 7.558594 -3.078125 7.558594 -4.300781 C 7.558594 -4.996094 7.4375 -5.601563 7.203125 -6.121094 C 6.964844 -6.640625 6.621094 -7.042969 6.167969 -7.332031 C 5.710938 -7.617188 5.199219 -7.761719 4.632813 -7.765625 C 3.785156 -7.761719 3.082031 -7.472656 2.523438 -6.894531 C 1.964844 -6.3125 1.6875 -5.445313 1.6875 -4.296875 C 1.6875 -3.171875 1.960938 -2.316406 2.515625 -1.722656 C 3.0625 -1.125 3.769531 -0.824219 4.632813 -0.828125 C 5.035156 -0.824219 5.417969 -0.902344 5.78125 -1.054688 C 5.425781 -1.28125 5.050781 -1.445313 4.65625 -1.546875 Z M 4.933594 -2.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.878906 0 L 0.878906 -8.589844 L 2.015625 -8.589844 L 2.015625 -1.015625 L 6.246094 -1.015625 L 6.246094 0 Z M 0.878906 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -4.234375 -0.5 C -5.246094 -0.496094 -6.0625 -0.601563 -6.6875 -0.8125 C -7.304688 -1.019531 -7.785156 -1.328125 -8.121094 -1.742188 C -8.457031 -2.152344 -8.625 -2.671875 -8.625 -3.300781 C -8.625 -3.757813 -8.53125 -4.164063 -8.347656 -4.511719 C -8.160156 -4.859375 -7.890625 -5.144531 -7.542969 -5.371094 C -7.191406 -5.59375 -6.765625 -5.773438 -6.265625 -5.90625 C -5.761719 -6.035156 -5.085938 -6.097656 -4.234375 -6.101563 C -3.222656 -6.097656 -2.410156 -5.996094 -1.792969 -5.789063 C -1.175781 -5.578125 -0.695313 -5.265625 -0.359375 -4.859375 C -0.0195313 -4.445313 0.144531 -3.925781 0.148438 -3.296875 C 0.144531 -2.464844 -0.148438 -1.816406 -0.742188 -1.347656 C -1.457031 -0.78125 -2.621094 -0.496094 -4.234375 -0.5 Z M -4.234375 -1.582031 C -2.824219 -1.582031 -1.886719 -1.746094 -1.417969 -2.074219 C -0.949219 -2.402344 -0.714844 -2.808594 -0.71875 -3.296875 C -0.714844 -3.777344 -0.949219 -4.183594 -1.421875 -4.519531 C -1.886719 -4.847656 -2.824219 -5.015625 -4.234375 -5.015625 C -5.648438 -5.015625 -6.589844 -4.847656 -7.054688 -4.519531 C -7.515625 -4.1875 -7.746094 -3.777344 -7.75 -3.289063 C -7.746094 -2.800781 -7.542969 -2.414063 -7.136719 -2.128906 C -6.613281 -1.761719 -5.644531 -1.582031 -4.234375 -1.582031 Z M -4.234375 -1.582031 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0 -1.089844 L -1.203125 -1.089844 L -1.199219 -2.289063 L 0 -2.289063 Z M 0 -1.089844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -0.878906 L -8.589844 -0.878906 L -8.589844 -2.015625 L -1.011719 -2.015625 L -1.011719 -6.246094 L 0 -6.246094 Z M 0 -0.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 1.0625 0 L 1.0625 -10.308594 L 8.128906 -10.308594 L 8.128906 -8.5625 L 3.144531 -8.5625 L 3.144531 -6.125 L 7.445313 -6.125 L 7.445313 -4.378906 L 3.144531 -4.378906 L 3.144531 0 Z M 1.0625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 4.457031 -7.46875 L 4.457031 -5.890625 L 3.109375 -5.890625 L 3.109375 -2.882813 C 3.105469 -2.273438 3.117188 -1.917969 3.144531 -1.816406 C 3.167969 -1.714844 3.226563 -1.628906 3.320313 -1.566406 C 3.410156 -1.496094 3.523438 -1.464844 3.65625 -1.46875 C 3.835938 -1.464844 4.097656 -1.527344 4.449219 -1.660156 L 4.621094 -0.125 C 4.15625 0.0703125 3.636719 0.164063 3.058594 0.167969 C 2.699219 0.164063 2.375 0.105469 2.09375 -0.0117188 C 1.804688 -0.128906 1.597656 -0.28125 1.464844 -0.472656 C 1.332031 -0.660156 1.238281 -0.917969 1.1875 -1.246094 C 1.144531 -1.472656 1.125 -1.9375 1.125 -2.636719 L 1.125 -5.890625 L 0.21875 -5.890625 L 0.21875 -7.46875 L 1.125 -7.46875 L 1.125 -8.949219 L 3.109375 -10.105469 L 3.109375 -7.46875 Z M 4.457031 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 0.578125 -3.839844 C 0.574219 -4.492188 0.734375 -5.128906 1.0625 -5.742188 C 1.382813 -6.355469 1.839844 -6.824219 2.433594 -7.148438 C 3.023438 -7.472656 3.6875 -7.632813 4.421875 -7.636719 C 5.550781 -7.632813 6.476563 -7.265625 7.199219 -6.535156 C 7.917969 -5.796875 8.277344 -4.871094 8.28125 -3.753906 C 8.277344 -2.621094 7.914063 -1.683594 7.1875 -0.945313 C 6.457031 -0.203125 5.539063 0.164063 4.4375 0.167969 C 3.75 0.164063 3.097656 0.0117188 2.476563 -0.292969 C 1.855469 -0.601563 1.382813 -1.054688 1.0625 -1.652344 C 0.734375 -2.25 0.574219 -2.976563 0.578125 -3.839844 Z M 2.601563 -3.734375 C 2.601563 -2.988281 2.777344 -2.421875 3.128906 -2.03125 C 3.480469 -1.636719 3.914063 -1.441406 4.429688 -1.441406 C 4.945313 -1.441406 5.375 -1.636719 5.726563 -2.03125 C 6.070313 -2.421875 6.246094 -2.992188 6.25 -3.746094 C 6.246094 -4.472656 6.070313 -5.035156 5.726563 -5.433594 C 5.375 -5.824219 4.945313 -6.023438 4.429688 -6.027344 C 3.914063 -6.023438 3.480469 -5.824219 3.128906 -5.433594 C 2.777344 -5.035156 2.601563 -4.46875 2.601563 -3.734375 Z M 2.601563 -3.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 5.949219 0 L 5.949219 -1.117188 C 5.671875 -0.714844 5.316406 -0.402344 4.875 -0.175781 C 4.429688 0.0507813 3.960938 0.164063 3.472656 0.167969 C 2.96875 0.164063 2.519531 0.0585938 2.125 -0.160156 C 1.722656 -0.378906 1.433594 -0.691406 1.257813 -1.089844 C 1.078125 -1.488281 0.988281 -2.039063 0.992188 -2.742188 L 0.992188 -7.46875 L 2.96875 -7.46875 L 2.96875 -4.035156 C 2.964844 -2.984375 3 -2.339844 3.074219 -2.105469 C 3.144531 -1.863281 3.277344 -1.675781 3.472656 -1.542969 C 3.664063 -1.402344 3.90625 -1.335938 4.203125 -1.335938 C 4.539063 -1.335938 4.84375 -1.425781 5.109375 -1.613281 C 5.375 -1.792969 5.558594 -2.023438 5.660156 -2.300781 C 5.757813 -2.574219 5.804688 -3.246094 5.808594 -4.316406 L 5.808594 -7.46875 L 7.785156 -7.46875 L 7.785156 0 Z M 5.949219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 3.953125 -10.351563 C 4.949219 -10.347656 5.730469 -9.992188 6.292969 -9.28125 C 6.960938 -8.4375 7.292969 -7.035156 7.296875 -5.082031 C 7.292969 -3.128906 6.957031 -1.730469 6.285156 -0.878906 C 5.726563 -0.175781 4.949219 0.175781 3.953125 0.175781 C 2.945313 0.175781 2.136719 -0.207031 1.523438 -0.980469 C 0.910156 -1.746094 0.601563 -3.121094 0.605469 -5.105469 C 0.601563 -7.042969 0.941406 -8.441406 1.617188 -9.296875 C 2.171875 -9.996094 2.949219 -10.347656 3.953125 -10.351563 Z M 3.953125 -8.710938 C 3.710938 -8.707031 3.496094 -8.628906 3.3125 -8.480469 C 3.121094 -8.324219 2.976563 -8.054688 2.875 -7.664063 C 2.738281 -7.152344 2.671875 -6.289063 2.671875 -5.082031 C 2.671875 -3.871094 2.730469 -3.042969 2.855469 -2.589844 C 2.972656 -2.136719 3.128906 -1.835938 3.316406 -1.6875 C 3.5 -1.535156 3.710938 -1.457031 3.953125 -1.460938 C 4.1875 -1.457031 4.398438 -1.535156 4.589844 -1.6875 C 4.773438 -1.839844 4.921875 -2.113281 5.027344 -2.511719 C 5.160156 -3.015625 5.226563 -3.871094 5.230469 -5.082031 C 5.226563 -6.289063 5.164063 -7.121094 5.046875 -7.574219 C 4.921875 -8.023438 4.769531 -8.324219 4.585938 -8.480469 C 4.398438 -8.628906 4.1875 -8.707031 3.953125 -8.710938 Z M 3.953125 -8.710938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface16">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 406.925781 C 77.101563 410.523438 71.699219 410.523438 71.699219 406.925781 C 71.699219 403.324219 77.101563 403.324219 77.101563 406.925781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 87.859375 390.464844 C 87.859375 394.066406 82.460938 394.066406 82.460938 390.464844 C 82.460938 386.863281 87.859375 386.863281 87.859375 390.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 99.1875 375.652344 C 99.1875 379.25 93.789063 379.25 93.789063 375.652344 C 93.789063 372.050781 99.1875 372.050781 99.1875 375.652344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 108.816406 362.484375 C 108.816406 366.085938 103.417969 366.085938 103.417969 362.484375 C 103.417969 358.882813 108.816406 358.882813 108.816406 362.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.011719 349.316406 C 119.011719 352.917969 113.613281 352.917969 113.613281 349.316406 C 113.613281 345.714844 119.011719 345.714844 119.011719 349.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.402344 324.628906 C 139.402344 328.226563 134 328.226563 134 324.628906 C 134 321.027344 139.402344 321.027344 139.402344 324.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 148.460938 314.753906 C 148.460938 318.351563 143.0625 318.351563 143.0625 314.753906 C 143.0625 311.152344 148.460938 311.152344 148.460938 314.753906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 163.1875 295 C 163.1875 298.601563 157.789063 298.601563 157.789063 295 C 157.789063 291.402344 163.1875 291.402344 163.1875 295 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 177.914063 280.1875 C 177.914063 283.789063 172.515625 283.789063 172.515625 280.1875 C 172.515625 276.585938 177.914063 276.585938 177.914063 280.1875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.808594 265.375 C 189.808594 268.972656 184.40625 268.972656 184.40625 265.375 C 184.40625 261.773438 189.808594 261.773438 189.808594 265.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 206.800781 248.914063 C 206.800781 252.515625 201.398438 252.515625 201.398438 248.914063 C 201.398438 245.316406 206.800781 245.316406 206.800781 248.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 222.65625 232.457031 C 222.65625 236.054688 217.257813 236.054688 217.257813 232.457031 C 217.257813 228.855469 222.65625 228.855469 222.65625 232.457031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.550781 220.933594 C 234.550781 224.535156 229.152344 224.535156 229.152344 220.933594 C 229.152344 217.332031 234.550781 217.332031 234.550781 220.933594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 249.277344 206.121094 C 249.277344 209.71875 243.878906 209.71875 243.878906 206.121094 C 243.878906 202.519531 249.277344 202.519531 249.277344 206.121094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.570313 192.953125 C 264.570313 196.554688 259.167969 196.554688 259.167969 192.953125 C 259.167969 189.351563 264.570313 189.351563 264.570313 192.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 282.691406 178.960938 C 282.691406 182.5625 277.292969 182.5625 277.292969 178.960938 C 277.292969 175.363281 282.691406 175.363281 282.691406 178.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 299.683594 163.328125 C 299.683594 166.925781 294.285156 166.925781 294.285156 163.328125 C 294.285156 159.726563 299.683594 159.726563 299.683594 163.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 318.375 150.160156 C 318.375 153.757813 312.972656 153.757813 312.972656 150.160156 C 312.972656 146.558594 318.375 146.558594 318.375 150.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 334.800781 138.636719 C 334.800781 142.238281 329.398438 142.238281 329.398438 138.636719 C 329.398438 135.039063 334.800781 135.039063 334.800781 138.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 348.390625 129.585938 C 348.390625 133.183594 342.992188 133.183594 342.992188 129.585938 C 342.992188 125.984375 348.390625 125.984375 348.390625 129.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 366.515625 117.238281 C 366.515625 120.839844 361.117188 120.839844 361.117188 117.238281 C 361.117188 113.640625 366.515625 113.640625 366.515625 117.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 382.941406 105.71875 C 382.941406 109.320313 377.539063 109.320313 377.539063 105.71875 C 377.539063 102.117188 382.941406 102.117188 382.941406 105.71875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 408.992188 94.195313 C 408.992188 97.796875 403.59375 97.796875 403.59375 94.195313 C 403.59375 90.597656 408.992188 90.597656 408.992188 94.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 429.949219 82.675781 C 429.949219 86.277344 424.550781 86.277344 424.550781 82.675781 C 424.550781 79.074219 429.949219 79.074219 429.949219 82.675781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 445.242188 77.738281 C 445.242188 81.335938 439.839844 81.335938 439.839844 77.738281 C 439.839844 74.136719 445.242188 74.136719 445.242188 77.738281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.039063 430.558594 L 458.398438 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.039063 430.558594 L 67.039063 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.945313 430.558594 L 122.945313 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.855469 430.558594 L 178.855469 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.765625 430.558594 L 234.765625 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.671875 430.558594 L 290.671875 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.582031 430.558594 L 346.582031 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.492188 430.558594 L 402.492188 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 430.558594 L 458.398438 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="55.359375" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="62.033203" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="65.367188" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="72.041016" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="111.265625" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="117.939453" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="121.273438" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="127.947266" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="167.175781" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="173.849609" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="177.183594" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="183.857422" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="223.085938" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="229.759766" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="233.09375" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="239.767578" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="278.992188" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="285.666016" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="289" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="295.673828" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="334.902344" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="341.576172" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="344.910156" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="351.583984" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="390.8125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="397.486328" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="400.820313" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="407.494141" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="446.71875" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="453.392578" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="456.726563" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="463.400391" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 389.640625 L 59.039063 113.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 389.640625 L 51.839844 389.640625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 334.503906 L 51.839844 334.503906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 279.363281 L 51.839844 279.363281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 224.226563 L 51.839844 224.226563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 169.085938 L 51.839844 169.085938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 113.949219 L 51.839844 113.949219 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="397.980469"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="391.306641"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="387.972656"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="342.84375"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="336.169922"/>
+  <use xlink:href="#glyph1-4" x="41.761719" y="332.835938"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="287.703125"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="281.029297"/>
+  <use xlink:href="#glyph1-5" x="41.761719" y="277.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="232.566406"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="225.892578"/>
+  <use xlink:href="#glyph1-6" x="41.761719" y="222.558594"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="177.425781"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="170.751953"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="167.417969"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="122.289063"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="115.615234"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="112.28125"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="190.175781" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="198.971875" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="206.980469" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="211.775781" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="220.571875" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="229.367969" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="233.36875" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="242.164844" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="250.173438" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="254.96875" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="259.764063" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="263.764844" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="271.773438" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="279.782031" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="283.782812" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="293.3875" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="297.388281" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="305.797656" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="309.798437" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="317.807031" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="325.815625" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="329.816406" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="259.398438" y="485.28125"/>
+  <use xlink:href="#glyph0-8" x="268.732422" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-14" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 406.925781 C 77.101563 410.523438 71.699219 410.523438 71.699219 406.925781 C 71.699219 403.324219 77.101563 403.324219 77.101563 406.925781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 87.859375 390.464844 C 87.859375 394.066406 82.460938 394.066406 82.460938 390.464844 C 82.460938 386.863281 87.859375 386.863281 87.859375 390.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 99.1875 375.652344 C 99.1875 379.25 93.789063 379.25 93.789063 375.652344 C 93.789063 372.050781 99.1875 372.050781 99.1875 375.652344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 108.816406 362.484375 C 108.816406 366.085938 103.417969 366.085938 103.417969 362.484375 C 103.417969 358.882813 108.816406 358.882813 108.816406 362.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.011719 349.316406 C 119.011719 352.917969 113.613281 352.917969 113.613281 349.316406 C 113.613281 345.714844 119.011719 345.714844 119.011719 349.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.402344 324.628906 C 139.402344 328.226563 134 328.226563 134 324.628906 C 134 321.027344 139.402344 321.027344 139.402344 324.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 148.460938 314.753906 C 148.460938 318.351563 143.0625 318.351563 143.0625 314.753906 C 143.0625 311.152344 148.460938 311.152344 148.460938 314.753906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 163.1875 295 C 163.1875 298.601563 157.789063 298.601563 157.789063 295 C 157.789063 291.402344 163.1875 291.402344 163.1875 295 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 177.914063 280.1875 C 177.914063 283.789063 172.515625 283.789063 172.515625 280.1875 C 172.515625 276.585938 177.914063 276.585938 177.914063 280.1875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.808594 265.375 C 189.808594 268.972656 184.40625 268.972656 184.40625 265.375 C 184.40625 261.773438 189.808594 261.773438 189.808594 265.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 206.800781 248.914063 C 206.800781 252.515625 201.398438 252.515625 201.398438 248.914063 C 201.398438 245.316406 206.800781 245.316406 206.800781 248.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 222.65625 232.457031 C 222.65625 236.054688 217.257813 236.054688 217.257813 232.457031 C 217.257813 228.855469 222.65625 228.855469 222.65625 232.457031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.550781 220.933594 C 234.550781 224.535156 229.152344 224.535156 229.152344 220.933594 C 229.152344 217.332031 234.550781 217.332031 234.550781 220.933594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 249.277344 206.121094 C 249.277344 209.71875 243.878906 209.71875 243.878906 206.121094 C 243.878906 202.519531 249.277344 202.519531 249.277344 206.121094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.570313 192.953125 C 264.570313 196.554688 259.167969 196.554688 259.167969 192.953125 C 259.167969 189.351563 264.570313 189.351563 264.570313 192.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 282.691406 178.960938 C 282.691406 182.5625 277.292969 182.5625 277.292969 178.960938 C 277.292969 175.363281 282.691406 175.363281 282.691406 178.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 299.683594 163.328125 C 299.683594 166.925781 294.285156 166.925781 294.285156 163.328125 C 294.285156 159.726563 299.683594 159.726563 299.683594 163.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 318.375 150.160156 C 318.375 153.757813 312.972656 153.757813 312.972656 150.160156 C 312.972656 146.558594 318.375 146.558594 318.375 150.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 334.800781 138.636719 C 334.800781 142.238281 329.398438 142.238281 329.398438 138.636719 C 329.398438 135.039063 334.800781 135.039063 334.800781 138.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 348.390625 129.585938 C 348.390625 133.183594 342.992188 133.183594 342.992188 129.585938 C 342.992188 125.984375 348.390625 125.984375 348.390625 129.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 366.515625 117.238281 C 366.515625 120.839844 361.117188 120.839844 361.117188 117.238281 C 361.117188 113.640625 366.515625 113.640625 366.515625 117.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 382.941406 105.71875 C 382.941406 109.320313 377.539063 109.320313 377.539063 105.71875 C 377.539063 102.117188 382.941406 102.117188 382.941406 105.71875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 408.992188 94.195313 C 408.992188 97.796875 403.59375 97.796875 403.59375 94.195313 C 403.59375 90.597656 408.992188 90.597656 408.992188 94.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 429.949219 82.675781 C 429.949219 86.277344 424.550781 86.277344 424.550781 82.675781 C 424.550781 79.074219 429.949219 79.074219 429.949219 82.675781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 445.242188 77.738281 C 445.242188 81.335938 439.839844 81.335938 439.839844 77.738281 C 439.839844 74.136719 445.242188 74.136719 445.242188 77.738281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 405.65625 L 78.238281 400.351563 L 82.078125 395.089844 L 85.921875 389.867188 L 89.761719 384.683594 L 93.601563 379.539063 L 97.441406 374.4375 L 101.28125 369.371094 L 105.121094 364.347656 L 108.960938 359.363281 L 112.800781 354.417969 L 116.640625 349.511719 L 120.480469 344.644531 L 124.320313 339.820313 L 128.160156 335.03125 L 132 330.285156 L 135.839844 325.578125 L 139.679688 320.910156 L 143.519531 316.28125 L 147.359375 311.695313 L 151.199219 307.144531 L 155.039063 302.636719 L 158.878906 298.167969 L 162.71875 293.738281 L 166.558594 289.347656 L 170.398438 285 L 174.238281 280.6875 L 178.078125 276.417969 L 181.921875 272.1875 L 185.761719 267.996094 L 189.601563 263.84375 L 193.441406 259.730469 L 197.28125 255.660156 L 201.121094 251.625 L 204.960938 247.632813 L 208.800781 243.679688 L 212.640625 239.765625 L 216.480469 235.890625 L 220.320313 232.058594 L 224.160156 228.261719 L 228 224.507813 L 231.839844 220.792969 L 235.679688 217.117188 L 239.519531 213.480469 L 243.359375 209.882813 L 247.199219 206.328125 L 251.039063 202.808594 L 254.878906 199.332031 L 258.71875 195.894531 L 262.558594 192.496094 L 266.398438 189.136719 L 270.238281 185.820313 L 274.078125 182.539063 L 277.921875 179.300781 L 281.761719 176.101563 L 285.601563 172.941406 L 289.441406 169.820313 L 293.28125 166.738281 L 297.121094 163.699219 L 300.960938 160.695313 L 304.800781 157.734375 L 308.640625 154.8125 L 312.480469 151.929688 L 316.320313 149.089844 L 320.160156 146.285156 L 324 143.523438 L 327.839844 140.796875 L 331.679688 138.113281 L 335.519531 135.46875 L 339.359375 132.863281 L 343.199219 130.300781 L 347.039063 127.773438 L 350.878906 125.289063 L 354.71875 122.84375 L 358.558594 120.4375 L 362.398438 118.070313 L 366.238281 115.742188 L 370.078125 113.457031 L 373.921875 111.207031 L 377.761719 109 L 381.601563 106.832031 L 385.441406 104.703125 L 389.28125 102.613281 L 393.121094 100.566406 L 396.960938 98.554688 L 400.800781 96.585938 L 404.640625 94.65625 L 408.480469 92.765625 L 412.320313 90.914063 L 416.160156 89.101563 L 420 87.332031 L 423.839844 85.597656 L 427.679688 83.90625 L 431.519531 82.253906 L 435.359375 80.640625 L 439.199219 79.066406 L 443.039063 77.535156 L 446.878906 76.039063 L 450.71875 74.585938 L 454.558594 73.171875 L 458.398438 71.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 71.148438 416.800781 L 78.785156 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.964844 420.617188 L 74.964844 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 83.042969 398.695313 L 90.679688 398.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 86.859375 402.511719 L 86.859375 394.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 93.238281 382.234375 L 100.875 382.234375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.054688 386.054688 L 97.054688 378.417969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 102.296875 367.421875 L 109.933594 367.421875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 106.117188 371.242188 L 106.117188 363.605469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 111.925781 354.253906 L 119.5625 354.253906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 115.746094 358.074219 L 115.746094 350.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.6875 337.796875 L 130.324219 337.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 126.507813 341.613281 L 126.507813 333.976563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 136.28125 319.691406 L 143.917969 319.691406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 140.097656 323.507813 L 140.097656 315.871094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 152.140625 299.9375 L 159.777344 299.9375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 155.957031 303.757813 L 155.957031 296.121094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 162.332031 285.125 L 169.96875 285.125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.152344 288.945313 L 166.152344 281.308594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.191406 265.375 L 185.828125 265.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 182.011719 269.191406 L 182.011719 261.554688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 190.085938 250.5625 L 197.722656 250.5625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 193.90625 254.378906 L 193.90625 246.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 201.980469 237.394531 L 209.617188 237.394531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 205.796875 241.210938 L 205.796875 233.574219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 222.9375 215.996094 L 230.574219 215.996094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.753906 219.816406 L 226.753906 212.179688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 235.394531 202.828125 L 243.03125 202.828125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 239.214844 206.648438 L 239.214844 199.011719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.21875 183.078125 L 262.855469 183.078125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 259.039063 186.894531 L 259.039063 179.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 267.113281 173.203125 L 274.75 173.203125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 270.929688 177.019531 L 270.929688 169.382813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 278.441406 163.328125 L 286.078125 163.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 282.257813 167.144531 L 282.257813 159.507813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 292.03125 155.097656 L 299.667969 155.097656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.851563 158.914063 L 295.851563 151.277344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 305.625 143.574219 L 313.261719 143.574219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 309.445313 147.394531 L 309.445313 139.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 316.953125 136.992188 L 324.589844 136.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 320.773438 140.808594 L 320.773438 133.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 331.113281 128.761719 L 338.75 128.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 334.929688 132.582031 L 334.929688 124.941406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 347.539063 118.886719 L 355.175781 118.886719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 351.355469 122.703125 L 351.355469 115.066406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 358.296875 113.949219 L 365.933594 113.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 362.117188 117.765625 L 362.117188 110.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 367.359375 109.011719 L 374.996094 109.011719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 371.179688 112.828125 L 371.179688 105.191406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 384.917969 104.074219 L 392.554688 104.074219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 388.734375 107.890625 L 388.734375 100.253906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 397.945313 99.136719 L 405.582031 99.136719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 401.761719 102.953125 L 401.761719 95.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 419.464844 94.195313 L 427.101563 94.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 423.285156 98.015625 L 423.285156 90.378906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 442.6875 89.257813 L 450.324219 89.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 446.507813 93.078125 L 446.507813 85.441406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.582031 88.4375 L 462.21875 88.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 92.253906 L 458.398438 84.617188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.964844 417.761719 L 78.800781 411.472656 L 82.636719 405.246094 L 86.46875 399.078125 L 90.304688 392.972656 L 94.136719 386.925781 L 97.972656 380.9375 L 101.808594 375.011719 L 105.640625 369.148438 L 109.476563 363.34375 L 113.308594 357.601563 L 117.144531 351.917969 L 120.976563 346.292969 L 124.8125 340.730469 L 128.648438 335.226563 L 132.480469 329.785156 L 136.316406 324.40625 L 140.148438 319.085938 L 143.984375 313.824219 L 147.820313 308.625 L 151.652344 303.484375 L 155.488281 298.40625 L 159.320313 293.390625 L 163.15625 288.429688 L 166.992188 283.535156 L 170.824219 278.695313 L 174.660156 273.921875 L 178.492188 269.203125 L 182.328125 264.550781 L 186.164063 259.953125 L 189.996094 255.421875 L 193.832031 250.945313 L 197.664063 246.535156 L 201.5 242.179688 L 205.332031 237.886719 L 209.167969 233.65625 L 213.003906 229.484375 L 216.835938 225.375 L 220.671875 221.324219 L 224.503906 217.332031 L 228.339844 213.402344 L 232.175781 209.535156 L 236.007813 205.726563 L 239.84375 201.980469 L 243.675781 198.292969 L 247.511719 194.664063 L 251.347656 191.097656 L 255.179688 187.59375 L 259.015625 184.144531 L 262.847656 180.761719 L 266.683594 177.4375 L 270.515625 174.171875 L 274.351563 170.96875 L 278.1875 167.828125 L 282.019531 164.742188 L 285.855469 161.722656 L 289.6875 158.761719 L 293.523438 155.859375 L 297.359375 153.019531 L 301.191406 150.238281 L 305.027344 147.519531 L 308.859375 144.859375 L 312.695313 142.261719 L 316.53125 139.722656 L 320.363281 137.246094 L 324.199219 134.828125 L 328.03125 132.472656 L 331.867188 130.175781 L 335.703125 127.9375 L 339.535156 125.765625 L 343.371094 123.648438 L 347.203125 121.59375 L 351.039063 119.601563 L 354.871094 117.667969 L 358.707031 115.796875 L 362.542969 113.984375 L 366.375 112.230469 L 370.210938 110.539063 L 374.042969 108.910156 L 377.878906 107.339844 L 381.714844 105.828125 L 385.546875 104.378906 L 389.382813 102.992188 L 393.214844 101.664063 L 397.050781 100.394531 L 400.886719 99.1875 L 404.71875 98.039063 L 408.554688 96.953125 L 412.386719 95.925781 L 416.222656 94.960938 L 420.054688 94.058594 L 423.890625 93.210938 L 427.726563 92.429688 L 431.558594 91.707031 L 435.394531 91.042969 L 439.226563 90.441406 L 443.0625 89.898438 L 446.898438 89.417969 L 450.730469 88.996094 L 454.566406 88.632813 L 458.398438 88.335938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="340.691406" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="345.361328" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="350.992188" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="357.666016" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="361" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="368.007813" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="371.341797" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="378.015625" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="381.349609" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="388.023438" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="394.697266" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="404.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="408.701172" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="412.035156" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="419.042969" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="422.376953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="429.050781" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="432.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="439.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="445.732422" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="334.017578" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="338.6875" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="344.318359" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="350.992188" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="354.326172" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="361.333984" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="364.667969" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="371.341797" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="374.675781" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="381.349609" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="388.023438" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="397.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="402.027344" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="405.361328" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="412.369141" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="415.703125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="422.376953" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="425.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="432.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="439.058594" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="445.732422" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_Fatou_slope_15_.svg b/docs/en/calculators/par/baffle_fishway_Fatou_slope_15_.svg
new file mode 100644
index 000000000..48a1d0ae6
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_Fatou_slope_15_.svg
@@ -0,0 +1,511 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 7.4375 -0.921875 C 7.960938 -0.554688 8.449219 -0.289063 8.894531 -0.125 L 8.5625 0.667969 C 7.9375 0.445313 7.324219 0.09375 6.714844 -0.386719 C 6.074219 -0.03125 5.371094 0.144531 4.605469 0.148438 C 3.824219 0.144531 3.117188 -0.0390625 2.488281 -0.414063 C 1.851563 -0.785156 1.363281 -1.3125 1.027344 -1.996094 C 0.683594 -2.671875 0.515625 -3.4375 0.515625 -4.296875 C 0.515625 -5.140625 0.6875 -5.914063 1.03125 -6.609375 C 1.375 -7.304688 1.863281 -7.832031 2.5 -8.195313 C 3.132813 -8.558594 3.84375 -8.742188 4.628906 -8.742188 C 5.421875 -8.742188 6.136719 -8.550781 6.773438 -8.175781 C 7.40625 -7.792969 7.890625 -7.265625 8.226563 -6.59375 C 8.5625 -5.914063 8.730469 -5.152344 8.730469 -4.300781 C 8.730469 -3.59375 8.621094 -2.957031 8.40625 -2.394531 C 8.191406 -1.828125 7.867188 -1.335938 7.4375 -0.921875 Z M 4.933594 -2.375 C 5.589844 -2.1875 6.128906 -1.914063 6.554688 -1.554688 C 7.222656 -2.160156 7.558594 -3.078125 7.558594 -4.300781 C 7.558594 -4.996094 7.4375 -5.601563 7.203125 -6.121094 C 6.964844 -6.640625 6.621094 -7.042969 6.167969 -7.332031 C 5.710938 -7.617188 5.199219 -7.761719 4.632813 -7.765625 C 3.785156 -7.761719 3.082031 -7.472656 2.523438 -6.894531 C 1.964844 -6.3125 1.6875 -5.445313 1.6875 -4.296875 C 1.6875 -3.171875 1.960938 -2.316406 2.515625 -1.722656 C 3.0625 -1.125 3.769531 -0.824219 4.632813 -0.828125 C 5.035156 -0.824219 5.417969 -0.902344 5.78125 -1.054688 C 5.425781 -1.28125 5.050781 -1.445313 4.65625 -1.546875 Z M 4.933594 -2.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.878906 0 L 0.878906 -8.589844 L 2.015625 -8.589844 L 2.015625 -1.015625 L 6.246094 -1.015625 L 6.246094 0 Z M 0.878906 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -4.234375 -0.5 C -5.246094 -0.496094 -6.0625 -0.601563 -6.6875 -0.8125 C -7.304688 -1.019531 -7.785156 -1.328125 -8.121094 -1.742188 C -8.457031 -2.152344 -8.625 -2.671875 -8.625 -3.300781 C -8.625 -3.757813 -8.53125 -4.164063 -8.347656 -4.511719 C -8.160156 -4.859375 -7.890625 -5.144531 -7.542969 -5.371094 C -7.191406 -5.59375 -6.765625 -5.773438 -6.265625 -5.90625 C -5.761719 -6.035156 -5.085938 -6.097656 -4.234375 -6.101563 C -3.222656 -6.097656 -2.410156 -5.996094 -1.792969 -5.789063 C -1.175781 -5.578125 -0.695313 -5.265625 -0.359375 -4.859375 C -0.0195313 -4.445313 0.144531 -3.925781 0.148438 -3.296875 C 0.144531 -2.464844 -0.148438 -1.816406 -0.742188 -1.347656 C -1.457031 -0.78125 -2.621094 -0.496094 -4.234375 -0.5 Z M -4.234375 -1.582031 C -2.824219 -1.582031 -1.886719 -1.746094 -1.417969 -2.074219 C -0.949219 -2.402344 -0.714844 -2.808594 -0.71875 -3.296875 C -0.714844 -3.777344 -0.949219 -4.183594 -1.421875 -4.519531 C -1.886719 -4.847656 -2.824219 -5.015625 -4.234375 -5.015625 C -5.648438 -5.015625 -6.589844 -4.847656 -7.054688 -4.519531 C -7.515625 -4.1875 -7.746094 -3.777344 -7.75 -3.289063 C -7.746094 -2.800781 -7.542969 -2.414063 -7.136719 -2.128906 C -6.613281 -1.761719 -5.644531 -1.582031 -4.234375 -1.582031 Z M -4.234375 -1.582031 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0 -1.089844 L -1.203125 -1.089844 L -1.199219 -2.289063 L 0 -2.289063 Z M 0 -1.089844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -0.878906 L -8.589844 -0.878906 L -8.589844 -2.015625 L -1.011719 -2.015625 L -1.011719 -6.246094 L 0 -6.246094 Z M 0 -0.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 1.0625 0 L 1.0625 -10.308594 L 8.128906 -10.308594 L 8.128906 -8.5625 L 3.144531 -8.5625 L 3.144531 -6.125 L 7.445313 -6.125 L 7.445313 -4.378906 L 3.144531 -4.378906 L 3.144531 0 Z M 1.0625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 4.457031 -7.46875 L 4.457031 -5.890625 L 3.109375 -5.890625 L 3.109375 -2.882813 C 3.105469 -2.273438 3.117188 -1.917969 3.144531 -1.816406 C 3.167969 -1.714844 3.226563 -1.628906 3.320313 -1.566406 C 3.410156 -1.496094 3.523438 -1.464844 3.65625 -1.46875 C 3.835938 -1.464844 4.097656 -1.527344 4.449219 -1.660156 L 4.621094 -0.125 C 4.15625 0.0703125 3.636719 0.164063 3.058594 0.167969 C 2.699219 0.164063 2.375 0.105469 2.09375 -0.0117188 C 1.804688 -0.128906 1.597656 -0.28125 1.464844 -0.472656 C 1.332031 -0.660156 1.238281 -0.917969 1.1875 -1.246094 C 1.144531 -1.472656 1.125 -1.9375 1.125 -2.636719 L 1.125 -5.890625 L 0.21875 -5.890625 L 0.21875 -7.46875 L 1.125 -7.46875 L 1.125 -8.949219 L 3.109375 -10.105469 L 3.109375 -7.46875 Z M 4.457031 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 0.578125 -3.839844 C 0.574219 -4.492188 0.734375 -5.128906 1.0625 -5.742188 C 1.382813 -6.355469 1.839844 -6.824219 2.433594 -7.148438 C 3.023438 -7.472656 3.6875 -7.632813 4.421875 -7.636719 C 5.550781 -7.632813 6.476563 -7.265625 7.199219 -6.535156 C 7.917969 -5.796875 8.277344 -4.871094 8.28125 -3.753906 C 8.277344 -2.621094 7.914063 -1.683594 7.1875 -0.945313 C 6.457031 -0.203125 5.539063 0.164063 4.4375 0.167969 C 3.75 0.164063 3.097656 0.0117188 2.476563 -0.292969 C 1.855469 -0.601563 1.382813 -1.054688 1.0625 -1.652344 C 0.734375 -2.25 0.574219 -2.976563 0.578125 -3.839844 Z M 2.601563 -3.734375 C 2.601563 -2.988281 2.777344 -2.421875 3.128906 -2.03125 C 3.480469 -1.636719 3.914063 -1.441406 4.429688 -1.441406 C 4.945313 -1.441406 5.375 -1.636719 5.726563 -2.03125 C 6.070313 -2.421875 6.246094 -2.992188 6.25 -3.746094 C 6.246094 -4.472656 6.070313 -5.035156 5.726563 -5.433594 C 5.375 -5.824219 4.945313 -6.023438 4.429688 -6.027344 C 3.914063 -6.023438 3.480469 -5.824219 3.128906 -5.433594 C 2.777344 -5.035156 2.601563 -4.46875 2.601563 -3.734375 Z M 2.601563 -3.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 5.949219 0 L 5.949219 -1.117188 C 5.671875 -0.714844 5.316406 -0.402344 4.875 -0.175781 C 4.429688 0.0507813 3.960938 0.164063 3.472656 0.167969 C 2.96875 0.164063 2.519531 0.0585938 2.125 -0.160156 C 1.722656 -0.378906 1.433594 -0.691406 1.257813 -1.089844 C 1.078125 -1.488281 0.988281 -2.039063 0.992188 -2.742188 L 0.992188 -7.46875 L 2.96875 -7.46875 L 2.96875 -4.035156 C 2.964844 -2.984375 3 -2.339844 3.074219 -2.105469 C 3.144531 -1.863281 3.277344 -1.675781 3.472656 -1.542969 C 3.664063 -1.402344 3.90625 -1.335938 4.203125 -1.335938 C 4.539063 -1.335938 4.84375 -1.425781 5.109375 -1.613281 C 5.375 -1.792969 5.558594 -2.023438 5.660156 -2.300781 C 5.757813 -2.574219 5.804688 -3.246094 5.808594 -4.316406 L 5.808594 -7.46875 L 7.785156 -7.46875 L 7.785156 0 Z M 5.949219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 0.640625 -2.652344 L 2.609375 -2.855469 C 2.660156 -2.40625 2.828125 -2.054688 3.105469 -1.796875 C 3.382813 -1.535156 3.699219 -1.40625 4.0625 -1.40625 C 4.472656 -1.40625 4.824219 -1.570313 5.109375 -1.90625 C 5.394531 -2.238281 5.535156 -2.746094 5.539063 -3.425781 C 5.535156 -4.054688 5.394531 -4.527344 5.113281 -4.847656 C 4.828125 -5.160156 4.460938 -5.320313 4.007813 -5.324219 C 3.4375 -5.320313 2.925781 -5.070313 2.480469 -4.570313 L 0.878906 -4.800781 L 1.890625 -10.167969 L 7.117188 -10.167969 L 7.117188 -8.316406 L 3.390625 -8.316406 L 3.078125 -6.566406 C 3.515625 -6.785156 3.96875 -6.894531 4.429688 -6.898438 C 5.304688 -6.894531 6.046875 -6.578125 6.660156 -5.941406 C 7.265625 -5.300781 7.570313 -4.472656 7.574219 -3.460938 C 7.570313 -2.609375 7.324219 -1.851563 6.835938 -1.1875 C 6.160156 -0.277344 5.230469 0.175781 4.042969 0.175781 C 3.089844 0.175781 2.3125 -0.078125 1.714844 -0.589844 C 1.113281 -1.097656 0.753906 -1.785156 0.640625 -2.652344 Z M 0.640625 -2.652344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface21">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 89.398438 404.699219 C 89.398438 408.300781 83.996094 408.300781 83.996094 404.699219 C 83.996094 401.097656 89.398438 401.097656 89.398438 404.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 101.695313 390.871094 C 101.695313 394.46875 96.292969 394.46875 96.292969 390.871094 C 96.292969 387.269531 101.695313 387.269531 101.695313 390.871094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 117.34375 374.449219 C 117.34375 378.046875 111.945313 378.046875 111.945313 374.449219 C 111.945313 370.847656 117.34375 370.847656 117.34375 374.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 129.082031 361.484375 C 129.082031 365.082031 123.683594 365.082031 123.683594 361.484375 C 123.683594 357.882813 129.082031 357.882813 129.082031 361.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.617188 345.925781 C 143.617188 349.527344 138.214844 349.527344 138.214844 345.925781 C 138.214844 342.324219 143.617188 342.324219 143.617188 345.925781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 158.148438 333.824219 C 158.148438 337.425781 152.746094 337.425781 152.746094 333.824219 C 152.746094 330.226563 158.148438 330.226563 158.148438 333.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 173.796875 316.539063 C 173.796875 320.140625 168.398438 320.140625 168.398438 316.539063 C 168.398438 312.9375 173.796875 312.9375 173.796875 316.539063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 188.890625 304.4375 C 188.890625 308.039063 183.492188 308.039063 183.492188 304.4375 C 183.492188 300.839844 188.890625 300.839844 188.890625 304.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 202.863281 288.878906 C 202.863281 292.480469 197.464844 292.480469 197.464844 288.878906 C 197.464844 285.28125 202.863281 285.28125 202.863281 288.878906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 218.515625 275.050781 C 218.515625 278.652344 213.113281 278.652344 213.113281 275.050781 C 213.113281 271.453125 218.515625 271.453125 218.515625 275.050781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.929688 262.949219 C 231.929688 266.550781 226.53125 266.550781 226.53125 262.949219 C 226.53125 259.351563 231.929688 259.351563 231.929688 262.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 241.992188 252.578125 C 241.992188 256.179688 236.589844 256.179688 236.589844 252.578125 C 236.589844 248.980469 241.992188 248.980469 241.992188 252.578125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 252.050781 243.9375 C 252.050781 247.535156 246.652344 247.535156 246.652344 243.9375 C 246.652344 240.335938 252.050781 240.335938 252.050781 243.9375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 263.789063 235.292969 C 263.789063 238.890625 258.390625 238.890625 258.390625 235.292969 C 258.390625 231.691406 263.789063 231.691406 263.789063 235.292969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 277.765625 222.328125 C 277.765625 225.925781 272.363281 225.925781 272.363281 222.328125 C 272.363281 218.726563 277.765625 218.726563 277.765625 222.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.089844 206.769531 C 295.089844 210.371094 289.691406 210.371094 289.691406 206.769531 C 289.691406 203.167969 295.089844 203.167969 295.089844 206.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 307.945313 197.261719 C 307.945313 200.863281 302.546875 200.863281 302.546875 197.261719 C 302.546875 193.664063 307.945313 193.664063 307.945313 197.261719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 320.242188 186.890625 C 320.242188 190.492188 314.84375 190.492188 314.84375 186.890625 C 314.84375 183.289063 320.242188 183.289063 320.242188 186.890625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 331.421875 176.519531 C 331.421875 180.117188 326.023438 180.117188 326.023438 176.519531 C 326.023438 172.917969 331.421875 172.917969 331.421875 176.519531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.484375 167.875 C 341.484375 171.476563 336.085938 171.476563 336.085938 167.875 C 336.085938 164.273438 341.484375 164.273438 341.484375 167.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 352.105469 160.960938 C 352.105469 164.5625 346.703125 164.5625 346.703125 160.960938 C 346.703125 157.359375 352.105469 157.359375 352.105469 160.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 364.402344 152.316406 C 364.402344 155.917969 359 155.917969 359 152.316406 C 359 148.71875 364.402344 148.71875 364.402344 152.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 380.050781 139.351563 C 380.050781 142.953125 374.652344 142.953125 374.652344 139.351563 C 374.652344 135.753906 380.050781 135.753906 380.050781 139.351563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 397.378906 126.386719 C 397.378906 129.988281 391.980469 129.988281 391.980469 126.386719 C 391.980469 122.789063 397.378906 122.789063 397.378906 126.386719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 417.5 112.558594 C 417.5 116.160156 412.101563 116.160156 412.101563 112.558594 C 412.101563 108.957031 417.5 108.957031 417.5 112.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 433.710938 100.457031 C 433.710938 104.058594 428.3125 104.058594 428.3125 100.457031 C 428.3125 96.859375 433.710938 96.859375 433.710938 100.457031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.890625 95.273438 C 444.890625 98.871094 439.492188 98.871094 439.492188 95.273438 C 439.492188 91.671875 444.890625 91.671875 444.890625 95.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 83.171875 C 461.101563 86.773438 455.699219 86.773438 455.699219 83.171875 C 455.699219 79.570313 461.101563 79.570313 461.101563 83.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.132813 430.558594 L 457.839844 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.132813 430.558594 L 67.132813 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.949219 430.558594 L 122.949219 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.765625 430.558594 L 178.765625 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.578125 430.558594 L 234.578125 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.394531 430.558594 L 290.394531 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.210938 430.558594 L 346.210938 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.027344 430.558594 L 402.027344 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 457.839844 430.558594 L 457.839844 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="55.453125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="62.126953" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="65.460938" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="72.134766" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="111.269531" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="117.943359" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="121.277344" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="127.951172" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="167.085938" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="173.759766" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="177.09375" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="183.767578" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="222.898438" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="229.572266" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="232.90625" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="239.580078" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="278.714844" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="285.388672" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="288.722656" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="295.396484" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="334.53125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="341.205078" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="344.539063" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="351.212891" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="390.347656" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="397.021484" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="400.355469" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="407.029297" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="446.160156" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="452.833984" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="456.167969" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="462.841797" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 379.015625 L 59.039063 86.382813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 379.015625 L 51.839844 379.015625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 320.488281 L 51.839844 320.488281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 261.964844 L 51.839844 261.964844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 203.4375 L 51.839844 203.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 144.910156 L 51.839844 144.910156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 86.382813 L 51.839844 86.382813 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="387.355469"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="380.681641"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="377.347656"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="328.828125"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="322.154297"/>
+  <use xlink:href="#glyph1-4" x="41.761719" y="318.820313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="270.304688"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="263.630859"/>
+  <use xlink:href="#glyph1-5" x="41.761719" y="260.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="211.777344"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="205.103516"/>
+  <use xlink:href="#glyph1-6" x="41.761719" y="201.769531"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="153.25"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="146.576172"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="143.242188"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="94.722656"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="88.048828"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="84.714844"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="190.175781" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="198.971875" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="206.980469" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="211.775781" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="220.571875" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="229.367969" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="233.36875" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="242.164844" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="250.173438" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="254.96875" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="259.764063" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="263.764844" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="271.773438" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="279.782031" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="283.782812" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="293.3875" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="297.388281" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="305.797656" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="309.798437" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="317.807031" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="325.815625" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="329.816406" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="259.398438" y="485.28125"/>
+  <use xlink:href="#glyph0-8" x="268.732422" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-14" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 89.398438 404.699219 C 89.398438 408.300781 83.996094 408.300781 83.996094 404.699219 C 83.996094 401.097656 89.398438 401.097656 89.398438 404.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 101.695313 390.871094 C 101.695313 394.46875 96.292969 394.46875 96.292969 390.871094 C 96.292969 387.269531 101.695313 387.269531 101.695313 390.871094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 117.34375 374.449219 C 117.34375 378.046875 111.945313 378.046875 111.945313 374.449219 C 111.945313 370.847656 117.34375 370.847656 117.34375 374.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 129.082031 361.484375 C 129.082031 365.082031 123.683594 365.082031 123.683594 361.484375 C 123.683594 357.882813 129.082031 357.882813 129.082031 361.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.617188 345.925781 C 143.617188 349.527344 138.214844 349.527344 138.214844 345.925781 C 138.214844 342.324219 143.617188 342.324219 143.617188 345.925781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 158.148438 333.824219 C 158.148438 337.425781 152.746094 337.425781 152.746094 333.824219 C 152.746094 330.226563 158.148438 330.226563 158.148438 333.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 173.796875 316.539063 C 173.796875 320.140625 168.398438 320.140625 168.398438 316.539063 C 168.398438 312.9375 173.796875 312.9375 173.796875 316.539063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 188.890625 304.4375 C 188.890625 308.039063 183.492188 308.039063 183.492188 304.4375 C 183.492188 300.839844 188.890625 300.839844 188.890625 304.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 202.863281 288.878906 C 202.863281 292.480469 197.464844 292.480469 197.464844 288.878906 C 197.464844 285.28125 202.863281 285.28125 202.863281 288.878906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 218.515625 275.050781 C 218.515625 278.652344 213.113281 278.652344 213.113281 275.050781 C 213.113281 271.453125 218.515625 271.453125 218.515625 275.050781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.929688 262.949219 C 231.929688 266.550781 226.53125 266.550781 226.53125 262.949219 C 226.53125 259.351563 231.929688 259.351563 231.929688 262.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 241.992188 252.578125 C 241.992188 256.179688 236.589844 256.179688 236.589844 252.578125 C 236.589844 248.980469 241.992188 248.980469 241.992188 252.578125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 252.050781 243.9375 C 252.050781 247.535156 246.652344 247.535156 246.652344 243.9375 C 246.652344 240.335938 252.050781 240.335938 252.050781 243.9375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 263.789063 235.292969 C 263.789063 238.890625 258.390625 238.890625 258.390625 235.292969 C 258.390625 231.691406 263.789063 231.691406 263.789063 235.292969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 277.765625 222.328125 C 277.765625 225.925781 272.363281 225.925781 272.363281 222.328125 C 272.363281 218.726563 277.765625 218.726563 277.765625 222.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.089844 206.769531 C 295.089844 210.371094 289.691406 210.371094 289.691406 206.769531 C 289.691406 203.167969 295.089844 203.167969 295.089844 206.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 307.945313 197.261719 C 307.945313 200.863281 302.546875 200.863281 302.546875 197.261719 C 302.546875 193.664063 307.945313 193.664063 307.945313 197.261719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 320.242188 186.890625 C 320.242188 190.492188 314.84375 190.492188 314.84375 186.890625 C 314.84375 183.289063 320.242188 183.289063 320.242188 186.890625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 331.421875 176.519531 C 331.421875 180.117188 326.023438 180.117188 326.023438 176.519531 C 326.023438 172.917969 331.421875 172.917969 331.421875 176.519531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.484375 167.875 C 341.484375 171.476563 336.085938 171.476563 336.085938 167.875 C 336.085938 164.273438 341.484375 164.273438 341.484375 167.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 352.105469 160.960938 C 352.105469 164.5625 346.703125 164.5625 346.703125 160.960938 C 346.703125 157.359375 352.105469 157.359375 352.105469 160.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 364.402344 152.316406 C 364.402344 155.917969 359 155.917969 359 152.316406 C 359 148.71875 364.402344 148.71875 364.402344 152.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 380.050781 139.351563 C 380.050781 142.953125 374.652344 142.953125 374.652344 139.351563 C 374.652344 135.753906 380.050781 135.753906 380.050781 139.351563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 397.378906 126.386719 C 397.378906 129.988281 391.980469 129.988281 391.980469 126.386719 C 391.980469 122.789063 397.378906 122.789063 397.378906 126.386719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 417.5 112.558594 C 417.5 116.160156 412.101563 116.160156 412.101563 112.558594 C 412.101563 108.957031 417.5 108.957031 417.5 112.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 433.710938 100.457031 C 433.710938 104.058594 428.3125 104.058594 428.3125 100.457031 C 428.3125 96.859375 433.710938 96.859375 433.710938 100.457031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.890625 95.273438 C 444.890625 98.871094 439.492188 98.871094 439.492188 95.273438 C 439.492188 91.671875 444.890625 91.671875 444.890625 95.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 83.171875 C 461.101563 86.773438 455.699219 86.773438 455.699219 83.171875 C 455.699219 79.570313 461.101563 79.570313 461.101563 83.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 417.148438 L 78.238281 412.988281 L 82.078125 408.84375 L 85.921875 404.710938 L 89.761719 400.601563 L 93.601563 396.503906 L 97.441406 392.425781 L 101.28125 388.363281 L 105.121094 384.316406 L 108.960938 380.285156 L 112.800781 376.273438 L 116.640625 372.277344 L 120.480469 368.296875 L 124.320313 364.335938 L 128.160156 360.386719 L 132 356.457031 L 135.839844 352.542969 L 139.679688 348.648438 L 143.519531 344.765625 L 147.359375 340.902344 L 151.199219 337.054688 L 155.039063 333.226563 L 158.878906 329.414063 L 162.71875 325.613281 L 166.558594 321.835938 L 170.398438 318.070313 L 174.238281 314.324219 L 178.078125 310.59375 L 181.921875 306.878906 L 185.761719 303.179688 L 189.601563 299.5 L 193.441406 295.835938 L 197.28125 292.1875 L 201.121094 288.554688 L 204.960938 284.941406 L 208.800781 281.34375 L 212.640625 277.761719 L 216.480469 274.195313 L 220.320313 270.648438 L 224.160156 267.117188 L 228 263.601563 L 231.839844 260.101563 L 235.679688 256.621094 L 239.519531 253.15625 L 243.359375 249.707031 L 247.199219 246.273438 L 251.039063 242.859375 L 254.878906 239.460938 L 258.71875 236.078125 L 262.558594 232.710938 L 266.398438 229.363281 L 270.238281 226.027344 L 274.078125 222.710938 L 277.921875 219.414063 L 281.761719 216.128906 L 285.601563 212.863281 L 289.441406 209.613281 L 293.28125 206.382813 L 297.121094 203.164063 L 300.960938 199.964844 L 304.800781 196.78125 L 308.640625 193.613281 L 312.480469 190.464844 L 316.320313 187.332031 L 320.160156 184.214844 L 324 181.113281 L 327.839844 178.03125 L 331.679688 174.964844 L 335.519531 171.914063 L 339.359375 168.878906 L 343.199219 165.863281 L 347.039063 162.859375 L 350.878906 159.875 L 354.71875 156.910156 L 358.558594 153.957031 L 362.398438 151.023438 L 366.238281 148.105469 L 370.078125 145.203125 L 373.921875 142.320313 L 377.761719 139.453125 L 381.601563 136.601563 L 385.441406 133.765625 L 389.28125 130.949219 L 393.121094 128.144531 L 396.960938 125.359375 L 400.800781 122.59375 L 404.640625 119.839844 L 408.480469 117.105469 L 412.320313 114.386719 L 416.160156 111.683594 L 420 109 L 423.839844 106.328125 L 427.679688 103.675781 L 431.519531 101.042969 L 435.359375 98.421875 L 439.199219 95.820313 L 443.039063 93.234375 L 446.878906 90.664063 L 450.71875 88.113281 L 454.558594 85.574219 L 458.398438 83.054688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.582031 416.800781 L 78.21875 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 420.617188 L 74.398438 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 80.644531 402.972656 L 88.28125 402.972656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 84.460938 406.789063 L 84.460938 399.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 94.617188 380.5 L 102.253906 380.5 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 98.433594 384.316406 L 98.433594 376.679688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 106.914063 363.210938 L 114.550781 363.210938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 110.730469 367.03125 L 110.730469 359.394531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.769531 344.195313 L 127.40625 344.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 123.585938 348.015625 L 123.585938 340.378906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 133.183594 326.910156 L 140.820313 326.910156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 137.003906 330.730469 L 137.003906 323.09375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 147.71875 304.4375 L 155.355469 304.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 151.535156 308.257813 L 151.535156 300.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 162.808594 287.152344 L 170.445313 287.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.628906 290.96875 L 166.628906 283.332031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 175.664063 271.59375 L 183.300781 271.59375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 179.484375 275.414063 L 179.484375 267.777344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 187.960938 256.035156 L 195.597656 256.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 191.78125 259.855469 L 191.78125 252.21875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 204.730469 238.75 L 212.367188 238.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 208.546875 242.566406 L 208.546875 234.929688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 225.96875 216.277344 L 233.605469 216.277344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 229.789063 220.097656 L 229.789063 212.460938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 241.0625 198.992188 L 248.699219 198.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.878906 202.808594 L 244.878906 195.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 256.710938 185.160156 L 264.347656 185.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 260.53125 188.980469 L 260.53125 181.34375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 272.363281 171.332031 L 280 171.332031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 276.183594 175.152344 L 276.183594 167.515625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 289.691406 155.773438 L 297.328125 155.773438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 293.507813 159.59375 L 293.507813 151.957031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 308.136719 143.675781 L 315.773438 143.675781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 311.953125 147.492188 L 311.953125 139.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 326.582031 129.84375 L 334.21875 129.84375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 330.398438 133.664063 L 330.398438 126.027344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 338.878906 121.203125 L 346.515625 121.203125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 342.695313 125.019531 L 342.695313 117.382813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 353.96875 110.832031 L 361.605469 110.832031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.789063 114.648438 L 357.789063 107.011719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 366.265625 103.914063 L 373.902344 103.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 370.085938 107.734375 L 370.085938 100.097656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 378.5625 98.730469 L 386.199219 98.730469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 382.382813 102.546875 L 382.382813 94.910156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 390.859375 91.816406 L 398.496094 91.816406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 394.679688 95.632813 L 394.679688 87.996094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 409.304688 84.902344 L 416.941406 84.902344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 413.125 88.71875 L 413.125 81.082031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 423.28125 81.441406 L 430.917969 81.441406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.097656 85.261719 L 427.097656 77.625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 435.019531 76.257813 L 442.65625 76.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 438.835938 80.074219 L 438.835938 72.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.023438 72.800781 L 461.660156 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 457.839844 76.617188 L 457.839844 68.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 417.757813 L 78.234375 411.726563 L 82.070313 405.75 L 85.902344 399.824219 L 89.738281 393.953125 L 93.570313 388.132813 L 97.40625 382.363281 L 101.242188 376.644531 L 105.074219 370.976563 L 108.910156 365.363281 L 112.742188 359.800781 L 116.578125 354.292969 L 120.414063 348.835938 L 124.246094 343.429688 L 128.082031 338.074219 L 131.917969 332.769531 L 135.75 327.519531 L 139.585938 322.320313 L 143.417969 317.175781 L 147.253906 312.078125 L 151.089844 307.035156 L 154.921875 302.046875 L 158.757813 297.105469 L 162.589844 292.21875 L 166.425781 287.382813 L 170.261719 282.601563 L 174.09375 277.867188 L 177.929688 273.1875 L 181.761719 268.5625 L 185.597656 263.984375 L 189.433594 259.460938 L 193.265625 254.988281 L 197.101563 250.566406 L 200.933594 246.199219 L 204.769531 241.882813 L 208.605469 237.617188 L 212.4375 233.40625 L 216.273438 229.246094 L 220.109375 225.136719 L 223.941406 221.078125 L 227.777344 217.074219 L 231.609375 213.121094 L 235.445313 209.21875 L 239.28125 205.367188 L 243.113281 201.570313 L 246.949219 197.824219 L 250.78125 194.132813 L 254.617188 190.488281 L 258.453125 186.898438 L 262.285156 183.359375 L 266.121094 179.875 L 269.953125 176.441406 L 273.789063 173.058594 L 277.625 169.726563 L 281.457031 166.449219 L 285.292969 163.222656 L 289.128906 160.046875 L 292.960938 156.921875 L 296.796875 153.851563 L 300.628906 150.832031 L 304.464844 147.863281 L 308.300781 144.949219 L 312.132813 142.085938 L 315.96875 139.273438 L 319.800781 136.515625 L 323.636719 133.804688 L 327.472656 131.148438 L 331.304688 128.546875 L 335.140625 125.992188 L 338.972656 123.492188 L 342.808594 121.042969 L 346.644531 118.648438 L 350.476563 116.304688 L 354.3125 114.011719 L 358.144531 111.769531 L 361.980469 109.582031 L 365.816406 107.441406 L 369.648438 105.359375 L 373.484375 103.324219 L 377.320313 101.34375 L 381.152344 99.414063 L 384.988281 97.535156 L 388.820313 95.710938 L 392.65625 93.933594 L 396.492188 92.214844 L 400.324219 90.542969 L 404.160156 88.925781 L 407.992188 87.359375 L 411.828125 85.84375 L 415.664063 84.382813 L 419.496094 82.972656 L 423.332031 81.613281 L 427.164063 80.304688 L 431 79.050781 L 434.835938 77.847656 L 438.667969 76.695313 L 442.503906 75.597656 L 446.335938 74.546875 L 450.171875 73.554688 L 454.007813 72.609375 L 457.839844 71.71875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="340.691406" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="345.361328" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="350.992188" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="357.666016" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="361" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="368.007813" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="371.341797" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="378.015625" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="381.349609" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="388.023438" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="394.697266" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="404.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="408.701172" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="412.035156" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="419.042969" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="422.376953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="429.050781" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="432.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="439.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="445.732422" y="346.695313"/>
+  <use xlink:href="#glyph0-20" x="452.40625" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="334.017578" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="338.6875" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="344.318359" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="350.992188" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="354.326172" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="361.333984" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="364.667969" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="371.341797" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="374.675781" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="381.349609" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="388.023438" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="397.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="402.027344" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="405.361328" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="412.369141" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="415.703125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="422.376953" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="425.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="432.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="439.058594" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="445.732422" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_Fatou_slope_20_.svg b/docs/en/calculators/par/baffle_fishway_Fatou_slope_20_.svg
new file mode 100644
index 000000000..f51e6fb7e
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_Fatou_slope_20_.svg
@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 7.4375 -0.921875 C 7.960938 -0.554688 8.449219 -0.289063 8.894531 -0.125 L 8.5625 0.667969 C 7.9375 0.445313 7.324219 0.09375 6.714844 -0.386719 C 6.074219 -0.03125 5.371094 0.144531 4.605469 0.148438 C 3.824219 0.144531 3.117188 -0.0390625 2.488281 -0.414063 C 1.851563 -0.785156 1.363281 -1.3125 1.027344 -1.996094 C 0.683594 -2.671875 0.515625 -3.4375 0.515625 -4.296875 C 0.515625 -5.140625 0.6875 -5.914063 1.03125 -6.609375 C 1.375 -7.304688 1.863281 -7.832031 2.5 -8.195313 C 3.132813 -8.558594 3.84375 -8.742188 4.628906 -8.742188 C 5.421875 -8.742188 6.136719 -8.550781 6.773438 -8.175781 C 7.40625 -7.792969 7.890625 -7.265625 8.226563 -6.59375 C 8.5625 -5.914063 8.730469 -5.152344 8.730469 -4.300781 C 8.730469 -3.59375 8.621094 -2.957031 8.40625 -2.394531 C 8.191406 -1.828125 7.867188 -1.335938 7.4375 -0.921875 Z M 4.933594 -2.375 C 5.589844 -2.1875 6.128906 -1.914063 6.554688 -1.554688 C 7.222656 -2.160156 7.558594 -3.078125 7.558594 -4.300781 C 7.558594 -4.996094 7.4375 -5.601563 7.203125 -6.121094 C 6.964844 -6.640625 6.621094 -7.042969 6.167969 -7.332031 C 5.710938 -7.617188 5.199219 -7.761719 4.632813 -7.765625 C 3.785156 -7.761719 3.082031 -7.472656 2.523438 -6.894531 C 1.964844 -6.3125 1.6875 -5.445313 1.6875 -4.296875 C 1.6875 -3.171875 1.960938 -2.316406 2.515625 -1.722656 C 3.0625 -1.125 3.769531 -0.824219 4.632813 -0.828125 C 5.035156 -0.824219 5.417969 -0.902344 5.78125 -1.054688 C 5.425781 -1.28125 5.050781 -1.445313 4.65625 -1.546875 Z M 4.933594 -2.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.878906 0 L 0.878906 -8.589844 L 2.015625 -8.589844 L 2.015625 -1.015625 L 6.246094 -1.015625 L 6.246094 0 Z M 0.878906 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -4.234375 -0.5 C -5.246094 -0.496094 -6.0625 -0.601563 -6.6875 -0.8125 C -7.304688 -1.019531 -7.785156 -1.328125 -8.121094 -1.742188 C -8.457031 -2.152344 -8.625 -2.671875 -8.625 -3.300781 C -8.625 -3.757813 -8.53125 -4.164063 -8.347656 -4.511719 C -8.160156 -4.859375 -7.890625 -5.144531 -7.542969 -5.371094 C -7.191406 -5.59375 -6.765625 -5.773438 -6.265625 -5.90625 C -5.761719 -6.035156 -5.085938 -6.097656 -4.234375 -6.101563 C -3.222656 -6.097656 -2.410156 -5.996094 -1.792969 -5.789063 C -1.175781 -5.578125 -0.695313 -5.265625 -0.359375 -4.859375 C -0.0195313 -4.445313 0.144531 -3.925781 0.148438 -3.296875 C 0.144531 -2.464844 -0.148438 -1.816406 -0.742188 -1.347656 C -1.457031 -0.78125 -2.621094 -0.496094 -4.234375 -0.5 Z M -4.234375 -1.582031 C -2.824219 -1.582031 -1.886719 -1.746094 -1.417969 -2.074219 C -0.949219 -2.402344 -0.714844 -2.808594 -0.71875 -3.296875 C -0.714844 -3.777344 -0.949219 -4.183594 -1.421875 -4.519531 C -1.886719 -4.847656 -2.824219 -5.015625 -4.234375 -5.015625 C -5.648438 -5.015625 -6.589844 -4.847656 -7.054688 -4.519531 C -7.515625 -4.1875 -7.746094 -3.777344 -7.75 -3.289063 C -7.746094 -2.800781 -7.542969 -2.414063 -7.136719 -2.128906 C -6.613281 -1.761719 -5.644531 -1.582031 -4.234375 -1.582031 Z M -4.234375 -1.582031 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0 -1.089844 L -1.203125 -1.089844 L -1.199219 -2.289063 L 0 -2.289063 Z M 0 -1.089844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -0.878906 L -8.589844 -0.878906 L -8.589844 -2.015625 L -1.011719 -2.015625 L -1.011719 -6.246094 L 0 -6.246094 Z M 0 -0.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 1.0625 0 L 1.0625 -10.308594 L 8.128906 -10.308594 L 8.128906 -8.5625 L 3.144531 -8.5625 L 3.144531 -6.125 L 7.445313 -6.125 L 7.445313 -4.378906 L 3.144531 -4.378906 L 3.144531 0 Z M 1.0625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 4.457031 -7.46875 L 4.457031 -5.890625 L 3.109375 -5.890625 L 3.109375 -2.882813 C 3.105469 -2.273438 3.117188 -1.917969 3.144531 -1.816406 C 3.167969 -1.714844 3.226563 -1.628906 3.320313 -1.566406 C 3.410156 -1.496094 3.523438 -1.464844 3.65625 -1.46875 C 3.835938 -1.464844 4.097656 -1.527344 4.449219 -1.660156 L 4.621094 -0.125 C 4.15625 0.0703125 3.636719 0.164063 3.058594 0.167969 C 2.699219 0.164063 2.375 0.105469 2.09375 -0.0117188 C 1.804688 -0.128906 1.597656 -0.28125 1.464844 -0.472656 C 1.332031 -0.660156 1.238281 -0.917969 1.1875 -1.246094 C 1.144531 -1.472656 1.125 -1.9375 1.125 -2.636719 L 1.125 -5.890625 L 0.21875 -5.890625 L 0.21875 -7.46875 L 1.125 -7.46875 L 1.125 -8.949219 L 3.109375 -10.105469 L 3.109375 -7.46875 Z M 4.457031 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 0.578125 -3.839844 C 0.574219 -4.492188 0.734375 -5.128906 1.0625 -5.742188 C 1.382813 -6.355469 1.839844 -6.824219 2.433594 -7.148438 C 3.023438 -7.472656 3.6875 -7.632813 4.421875 -7.636719 C 5.550781 -7.632813 6.476563 -7.265625 7.199219 -6.535156 C 7.917969 -5.796875 8.277344 -4.871094 8.28125 -3.753906 C 8.277344 -2.621094 7.914063 -1.683594 7.1875 -0.945313 C 6.457031 -0.203125 5.539063 0.164063 4.4375 0.167969 C 3.75 0.164063 3.097656 0.0117188 2.476563 -0.292969 C 1.855469 -0.601563 1.382813 -1.054688 1.0625 -1.652344 C 0.734375 -2.25 0.574219 -2.976563 0.578125 -3.839844 Z M 2.601563 -3.734375 C 2.601563 -2.988281 2.777344 -2.421875 3.128906 -2.03125 C 3.480469 -1.636719 3.914063 -1.441406 4.429688 -1.441406 C 4.945313 -1.441406 5.375 -1.636719 5.726563 -2.03125 C 6.070313 -2.421875 6.246094 -2.992188 6.25 -3.746094 C 6.246094 -4.472656 6.070313 -5.035156 5.726563 -5.433594 C 5.375 -5.824219 4.945313 -6.023438 4.429688 -6.027344 C 3.914063 -6.023438 3.480469 -5.824219 3.128906 -5.433594 C 2.777344 -5.035156 2.601563 -4.46875 2.601563 -3.734375 Z M 2.601563 -3.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 5.949219 0 L 5.949219 -1.117188 C 5.671875 -0.714844 5.316406 -0.402344 4.875 -0.175781 C 4.429688 0.0507813 3.960938 0.164063 3.472656 0.167969 C 2.96875 0.164063 2.519531 0.0585938 2.125 -0.160156 C 1.722656 -0.378906 1.433594 -0.691406 1.257813 -1.089844 C 1.078125 -1.488281 0.988281 -2.039063 0.992188 -2.742188 L 0.992188 -7.46875 L 2.96875 -7.46875 L 2.96875 -4.035156 C 2.964844 -2.984375 3 -2.339844 3.074219 -2.105469 C 3.144531 -1.863281 3.277344 -1.675781 3.472656 -1.542969 C 3.664063 -1.402344 3.90625 -1.335938 4.203125 -1.335938 C 4.539063 -1.335938 4.84375 -1.425781 5.109375 -1.613281 C 5.375 -1.792969 5.558594 -2.023438 5.660156 -2.300781 C 5.757813 -2.574219 5.804688 -3.246094 5.808594 -4.316406 L 5.808594 -7.46875 L 7.785156 -7.46875 L 7.785156 0 Z M 5.949219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 7.285156 -1.835938 L 7.285156 0 L 0.359375 0 C 0.429688 -0.691406 0.65625 -1.347656 1.035156 -1.96875 C 1.40625 -2.589844 2.144531 -3.414063 3.253906 -4.445313 C 4.140625 -5.269531 4.6875 -5.832031 4.894531 -6.132813 C 5.160156 -6.535156 5.296875 -6.9375 5.300781 -7.339844 C 5.296875 -7.777344 5.179688 -8.117188 4.945313 -8.355469 C 4.707031 -8.589844 4.378906 -8.707031 3.964844 -8.710938 C 3.550781 -8.707031 3.222656 -8.582031 2.980469 -8.335938 C 2.734375 -8.085938 2.59375 -7.675781 2.558594 -7.101563 L 0.589844 -7.296875 C 0.703125 -8.382813 1.070313 -9.164063 1.691406 -9.640625 C 2.308594 -10.109375 3.082031 -10.347656 4.015625 -10.351563 C 5.027344 -10.347656 5.828125 -10.074219 6.410156 -9.527344 C 6.992188 -8.976563 7.28125 -8.292969 7.285156 -7.480469 C 7.28125 -7.015625 7.199219 -6.574219 7.035156 -6.15625 C 6.867188 -5.734375 6.601563 -5.292969 6.242188 -4.835938 C 6 -4.527344 5.570313 -4.089844 4.949219 -3.519531 C 4.324219 -2.945313 3.929688 -2.566406 3.765625 -2.382813 C 3.597656 -2.191406 3.460938 -2.007813 3.359375 -1.835938 Z M 7.285156 -1.835938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 3.953125 -10.351563 C 4.949219 -10.347656 5.730469 -9.992188 6.292969 -9.28125 C 6.960938 -8.4375 7.292969 -7.035156 7.296875 -5.082031 C 7.292969 -3.128906 6.957031 -1.730469 6.285156 -0.878906 C 5.726563 -0.175781 4.949219 0.175781 3.953125 0.175781 C 2.945313 0.175781 2.136719 -0.207031 1.523438 -0.980469 C 0.910156 -1.746094 0.601563 -3.121094 0.605469 -5.105469 C 0.601563 -7.042969 0.941406 -8.441406 1.617188 -9.296875 C 2.171875 -9.996094 2.949219 -10.347656 3.953125 -10.351563 Z M 3.953125 -8.710938 C 3.710938 -8.707031 3.496094 -8.628906 3.3125 -8.480469 C 3.121094 -8.324219 2.976563 -8.054688 2.875 -7.664063 C 2.738281 -7.152344 2.671875 -6.289063 2.671875 -5.082031 C 2.671875 -3.871094 2.730469 -3.042969 2.855469 -2.589844 C 2.972656 -2.136719 3.128906 -1.835938 3.316406 -1.6875 C 3.5 -1.535156 3.710938 -1.457031 3.953125 -1.460938 C 4.1875 -1.457031 4.398438 -1.535156 4.589844 -1.6875 C 4.773438 -1.839844 4.921875 -2.113281 5.027344 -2.511719 C 5.160156 -3.015625 5.226563 -3.871094 5.230469 -5.082031 C 5.226563 -6.289063 5.164063 -7.121094 5.046875 -7.574219 C 4.921875 -8.023438 4.769531 -8.324219 4.585938 -8.480469 C 4.398438 -8.628906 4.1875 -8.707031 3.953125 -8.710938 Z M 3.953125 -8.710938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface26">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.660156 397.363281 C 77.660156 400.964844 72.257813 400.964844 72.257813 397.363281 C 72.257813 393.765625 77.660156 393.765625 77.660156 397.363281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 98.339844 377.929688 C 98.339844 381.53125 92.941406 381.53125 92.941406 377.929688 C 92.941406 374.328125 98.339844 374.328125 98.339844 377.929688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.433594 360.4375 C 113.433594 364.039063 108.03125 364.039063 108.03125 360.4375 C 108.03125 356.839844 113.433594 356.839844 113.433594 360.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.933594 350.722656 C 122.933594 354.320313 117.535156 354.320313 117.535156 350.722656 C 117.535156 347.121094 122.933594 347.121094 122.933594 350.722656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 134.671875 339.058594 C 134.671875 342.660156 129.273438 342.660156 129.273438 339.058594 C 129.273438 335.460938 134.671875 335.460938 134.671875 339.058594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 149.203125 323.511719 C 149.203125 327.113281 143.804688 327.113281 143.804688 323.511719 C 143.804688 319.910156 149.203125 319.910156 149.203125 323.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 174.359375 302.132813 C 174.359375 305.734375 168.957031 305.734375 168.957031 302.132813 C 168.957031 298.535156 174.359375 298.535156 174.359375 302.132813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 193.363281 282.699219 C 193.363281 286.296875 187.960938 286.296875 187.960938 282.699219 C 187.960938 279.097656 193.363281 279.097656 193.363281 282.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 208.453125 269.09375 C 208.453125 272.695313 203.054688 272.695313 203.054688 269.09375 C 203.054688 265.492188 208.453125 265.492188 208.453125 269.09375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.722656 247.714844 C 234.722656 251.316406 229.324219 251.316406 229.324219 247.714844 C 229.324219 244.117188 234.722656 244.117188 234.722656 247.714844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 250.375 230.222656 C 250.375 233.824219 244.976563 233.824219 244.976563 230.222656 C 244.976563 226.625 250.375 226.625 250.375 230.222656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 269.378906 216.621094 C 269.378906 220.21875 263.980469 220.21875 263.980469 216.621094 C 263.980469 213.019531 269.378906 213.019531 269.378906 216.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 279.441406 206.902344 C 279.441406 210.5 274.039063 210.5 274.039063 206.902344 C 274.039063 203.300781 279.441406 203.300781 279.441406 206.902344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 296.210938 195.242188 C 296.210938 198.839844 290.808594 198.839844 290.808594 195.242188 C 290.808594 191.640625 296.210938 191.640625 296.210938 195.242188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 316.890625 177.75 C 316.890625 181.347656 311.492188 181.347656 311.492188 177.75 C 311.492188 174.148438 316.890625 174.148438 316.890625 177.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 334.777344 164.144531 C 334.777344 167.746094 329.375 167.746094 329.375 164.144531 C 329.375 160.542969 334.777344 160.542969 334.777344 164.144531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 352.664063 152.484375 C 352.664063 156.082031 347.261719 156.082031 347.261719 152.484375 C 347.261719 148.882813 352.664063 148.882813 352.664063 152.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 366.078125 142.765625 C 366.078125 146.367188 360.679688 146.367188 360.679688 142.765625 C 360.679688 139.167969 366.078125 139.167969 366.078125 142.765625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 378.933594 133.046875 C 378.933594 136.648438 373.535156 136.648438 373.535156 133.046875 C 373.535156 129.449219 378.933594 129.449219 378.933594 133.046875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 391.230469 125.273438 C 391.230469 128.875 385.832031 128.875 385.832031 125.273438 C 385.832031 121.675781 391.230469 121.675781 391.230469 125.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 405.765625 114.585938 C 405.765625 118.183594 400.363281 118.183594 400.363281 114.585938 C 400.363281 110.984375 405.765625 110.984375 405.765625 114.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 425.328125 101.953125 C 425.328125 105.550781 419.925781 105.550781 419.925781 101.953125 C 419.925781 98.351563 425.328125 98.351563 425.328125 101.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.332031 88.347656 C 444.332031 91.949219 438.929688 91.949219 438.929688 88.347656 C 438.929688 84.746094 444.332031 84.746094 444.332031 88.347656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 78.628906 C 461.101563 82.230469 455.699219 82.230469 455.699219 78.628906 C 455.699219 75.03125 461.101563 75.03125 461.101563 78.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 66.855469 430.558594 L 458.398438 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 66.855469 430.558594 L 66.855469 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.789063 430.558594 L 122.789063 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.722656 430.558594 L 178.722656 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.660156 430.558594 L 234.660156 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.59375 430.558594 L 290.59375 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.53125 430.558594 L 346.53125 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.464844 430.558594 L 402.464844 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 430.558594 L 458.398438 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="55.175781" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="61.849609" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="65.183594" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="71.857422" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="111.109375" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="117.783203" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="121.117188" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="127.791016" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="167.042969" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="173.716797" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="177.050781" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="183.724609" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="222.980469" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="229.654297" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="232.988281" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="239.662109" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="278.914063" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="285.587891" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="288.921875" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="295.595703" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="334.851563" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="341.525391" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="344.859375" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="351.533203" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="390.785156" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="397.458984" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="400.792969" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="407.466797" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="446.71875" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="453.392578" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="456.726563" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="463.400391" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 423.601563 L 59.039063 78.144531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 423.601563 L 51.839844 423.601563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 366.027344 L 51.839844 366.027344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 308.449219 L 51.839844 308.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 250.875 L 51.839844 250.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 193.296875 L 51.839844 193.296875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 135.722656 L 51.839844 135.722656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 78.144531 L 51.839844 78.144531 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="431.941406"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="425.267578"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="421.933594"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="374.367188"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="367.693359"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="364.359375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="316.789063"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="310.115234"/>
+  <use xlink:href="#glyph1-4" x="41.761719" y="306.78125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="259.214844"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="252.541016"/>
+  <use xlink:href="#glyph1-5" x="41.761719" y="249.207031"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="201.636719"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="194.962891"/>
+  <use xlink:href="#glyph1-6" x="41.761719" y="191.628906"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="144.0625"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="137.388672"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="134.054688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="86.484375"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="79.810547"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="76.476563"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="190.175781" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="198.971875" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="206.980469" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="211.775781" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="220.571875" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="229.367969" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="233.36875" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="242.164844" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="250.173438" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="254.96875" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="259.764063" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="263.764844" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="271.773438" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="279.782031" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="283.782812" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="293.3875" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="297.388281" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="305.797656" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="309.798437" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="317.807031" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="325.815625" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="329.816406" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="259.398438" y="485.28125"/>
+  <use xlink:href="#glyph0-8" x="268.732422" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-14" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.660156 397.363281 C 77.660156 400.964844 72.257813 400.964844 72.257813 397.363281 C 72.257813 393.765625 77.660156 393.765625 77.660156 397.363281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 98.339844 377.929688 C 98.339844 381.53125 92.941406 381.53125 92.941406 377.929688 C 92.941406 374.328125 98.339844 374.328125 98.339844 377.929688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.433594 360.4375 C 113.433594 364.039063 108.03125 364.039063 108.03125 360.4375 C 108.03125 356.839844 113.433594 356.839844 113.433594 360.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.933594 350.722656 C 122.933594 354.320313 117.535156 354.320313 117.535156 350.722656 C 117.535156 347.121094 122.933594 347.121094 122.933594 350.722656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 134.671875 339.058594 C 134.671875 342.660156 129.273438 342.660156 129.273438 339.058594 C 129.273438 335.460938 134.671875 335.460938 134.671875 339.058594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 149.203125 323.511719 C 149.203125 327.113281 143.804688 327.113281 143.804688 323.511719 C 143.804688 319.910156 149.203125 319.910156 149.203125 323.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 174.359375 302.132813 C 174.359375 305.734375 168.957031 305.734375 168.957031 302.132813 C 168.957031 298.535156 174.359375 298.535156 174.359375 302.132813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 193.363281 282.699219 C 193.363281 286.296875 187.960938 286.296875 187.960938 282.699219 C 187.960938 279.097656 193.363281 279.097656 193.363281 282.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 208.453125 269.09375 C 208.453125 272.695313 203.054688 272.695313 203.054688 269.09375 C 203.054688 265.492188 208.453125 265.492188 208.453125 269.09375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.722656 247.714844 C 234.722656 251.316406 229.324219 251.316406 229.324219 247.714844 C 229.324219 244.117188 234.722656 244.117188 234.722656 247.714844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 250.375 230.222656 C 250.375 233.824219 244.976563 233.824219 244.976563 230.222656 C 244.976563 226.625 250.375 226.625 250.375 230.222656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 269.378906 216.621094 C 269.378906 220.21875 263.980469 220.21875 263.980469 216.621094 C 263.980469 213.019531 269.378906 213.019531 269.378906 216.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 279.441406 206.902344 C 279.441406 210.5 274.039063 210.5 274.039063 206.902344 C 274.039063 203.300781 279.441406 203.300781 279.441406 206.902344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 296.210938 195.242188 C 296.210938 198.839844 290.808594 198.839844 290.808594 195.242188 C 290.808594 191.640625 296.210938 191.640625 296.210938 195.242188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 316.890625 177.75 C 316.890625 181.347656 311.492188 181.347656 311.492188 177.75 C 311.492188 174.148438 316.890625 174.148438 316.890625 177.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 334.777344 164.144531 C 334.777344 167.746094 329.375 167.746094 329.375 164.144531 C 329.375 160.542969 334.777344 160.542969 334.777344 164.144531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 352.664063 152.484375 C 352.664063 156.082031 347.261719 156.082031 347.261719 152.484375 C 347.261719 148.882813 352.664063 148.882813 352.664063 152.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 366.078125 142.765625 C 366.078125 146.367188 360.679688 146.367188 360.679688 142.765625 C 360.679688 139.167969 366.078125 139.167969 366.078125 142.765625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 378.933594 133.046875 C 378.933594 136.648438 373.535156 136.648438 373.535156 133.046875 C 373.535156 129.449219 378.933594 129.449219 378.933594 133.046875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 391.230469 125.273438 C 391.230469 128.875 385.832031 128.875 385.832031 125.273438 C 385.832031 121.675781 391.230469 121.675781 391.230469 125.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 405.765625 114.585938 C 405.765625 118.183594 400.363281 118.183594 400.363281 114.585938 C 400.363281 110.984375 405.765625 110.984375 405.765625 114.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 425.328125 101.953125 C 425.328125 105.550781 419.925781 105.550781 419.925781 101.953125 C 419.925781 98.351563 425.328125 98.351563 425.328125 101.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.332031 88.347656 C 444.332031 91.949219 438.929688 91.949219 438.929688 88.347656 C 438.929688 84.746094 444.332031 84.746094 444.332031 88.347656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 78.628906 C 461.101563 82.230469 455.699219 82.230469 455.699219 78.628906 C 455.699219 75.03125 461.101563 75.03125 461.101563 78.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.957031 397.792969 L 78.792969 393.734375 L 82.628906 389.695313 L 86.460938 385.671875 L 90.296875 381.664063 L 94.132813 377.675781 L 97.964844 373.707031 L 101.800781 369.753906 L 105.632813 365.820313 L 109.46875 361.902344 L 113.304688 358 L 117.136719 354.117188 L 120.972656 350.253906 L 124.804688 346.40625 L 128.640625 342.578125 L 132.476563 338.765625 L 136.308594 334.972656 L 140.144531 331.195313 L 143.976563 327.4375 L 147.8125 323.695313 L 151.648438 319.972656 L 155.480469 316.265625 L 159.316406 312.578125 L 163.152344 308.910156 L 166.984375 305.257813 L 170.820313 301.621094 L 174.652344 298.003906 L 178.488281 294.402344 L 182.324219 290.820313 L 186.15625 287.257813 L 189.992188 283.710938 L 193.824219 280.179688 L 197.660156 276.667969 L 201.496094 273.175781 L 205.328125 269.699219 L 209.164063 266.242188 L 212.996094 262.800781 L 216.832031 259.375 L 220.667969 255.96875 L 224.5 252.582031 L 228.335938 249.210938 L 232.167969 245.859375 L 236.003906 242.523438 L 239.839844 239.207031 L 243.671875 235.90625 L 247.507813 232.625 L 251.34375 229.359375 L 255.175781 226.113281 L 259.011719 222.882813 L 262.84375 219.671875 L 266.679688 216.480469 L 270.515625 213.304688 L 274.347656 210.144531 L 278.183594 207.003906 L 282.015625 203.878906 L 285.851563 200.773438 L 289.6875 197.6875 L 293.519531 194.617188 L 297.355469 191.5625 L 301.1875 188.527344 L 305.023438 185.511719 L 308.859375 182.511719 L 312.691406 179.53125 L 316.527344 176.566406 L 320.359375 173.617188 L 324.195313 170.6875 L 328.03125 167.777344 L 331.863281 164.882813 L 335.699219 162.007813 L 339.535156 159.148438 L 343.367188 156.308594 L 347.203125 153.484375 L 351.035156 150.679688 L 354.871094 147.890625 L 358.707031 145.121094 L 362.539063 142.367188 L 366.375 139.632813 L 370.207031 136.917969 L 374.042969 134.214844 L 377.878906 131.535156 L 381.710938 128.871094 L 385.546875 126.222656 L 389.378906 123.59375 L 393.214844 120.984375 L 397.050781 118.390625 L 400.882813 115.8125 L 404.71875 113.253906 L 408.550781 110.714844 L 412.386719 108.191406 L 416.222656 105.683594 L 420.054688 103.195313 L 423.890625 100.726563 L 427.726563 98.273438 L 431.558594 95.839844 L 435.394531 93.421875 L 439.226563 91.023438 L 443.0625 88.640625 L 446.898438 86.277344 L 450.730469 83.929688 L 454.566406 81.601563 L 458.398438 79.289063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.582031 416.800781 L 78.21875 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 420.617188 L 74.398438 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.203125 401.253906 L 88.839844 401.253906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 85.019531 405.070313 L 85.019531 397.433594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 94.058594 381.816406 L 101.695313 381.816406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.875 385.636719 L 97.875 378 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 110.824219 360.4375 L 118.464844 360.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 114.644531 364.257813 L 114.644531 356.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.804688 319.625 L 151.441406 319.625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 147.621094 323.441406 L 147.621094 315.804688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 158.894531 302.132813 L 166.53125 302.132813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 162.714844 305.953125 L 162.714844 298.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 174.546875 282.699219 L 182.183594 282.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.363281 286.515625 L 178.363281 278.878906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.078125 265.207031 L 196.714844 265.207031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 192.898438 269.023438 L 192.898438 261.386719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 204.171875 251.601563 L 211.808594 251.601563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 207.988281 255.421875 L 207.988281 247.785156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 218.144531 234.109375 L 225.78125 234.109375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 221.964844 237.929688 L 221.964844 230.292969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 230.441406 222.449219 L 238.078125 222.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.261719 226.269531 L 234.261719 218.632813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.976563 208.84375 L 252.613281 208.84375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 248.792969 212.664063 L 248.792969 205.027344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 257.273438 197.183594 L 264.910156 197.183594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 261.089844 201.003906 L 261.089844 193.367188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 266.214844 189.410156 L 273.851563 189.410156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 270.03125 193.230469 L 270.03125 185.589844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 277.953125 179.691406 L 285.589844 179.691406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 281.769531 183.511719 L 281.769531 175.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 293.042969 168.03125 L 300.679688 168.03125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 296.863281 171.851563 L 296.863281 164.214844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 308.136719 156.371094 L 315.773438 156.371094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 311.953125 160.1875 L 311.953125 152.550781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 327.140625 140.824219 L 334.777344 140.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 330.957031 144.640625 L 330.957031 137.003906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.671875 131.105469 L 349.308594 131.105469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 345.492188 134.921875 L 345.492188 127.285156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 353.96875 123.332031 L 361.605469 123.332031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.789063 127.148438 L 357.789063 119.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 368.503906 113.613281 L 376.140625 113.613281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 372.320313 117.433594 L 372.320313 109.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 381.917969 105.839844 L 389.554688 105.839844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 385.734375 109.65625 L 385.734375 102.019531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 397.007813 98.066406 L 404.644531 98.066406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 400.828125 101.882813 L 400.828125 94.246094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.660156 88.347656 L 420.296875 88.347656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 416.480469 92.167969 L 416.480469 84.53125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 423.28125 86.40625 L 430.917969 86.40625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.097656 90.222656 L 427.097656 82.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 435.019531 80.574219 L 442.65625 80.574219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 438.835938 84.390625 L 438.835938 76.753906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 449.550781 74.742188 L 457.1875 74.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 453.371094 78.5625 L 453.371094 70.925781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.582031 72.800781 L 462.21875 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 76.617188 L 458.398438 68.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 416.125 L 78.238281 410.652344 L 82.078125 405.222656 L 85.921875 399.835938 L 89.761719 394.488281 L 93.601563 389.183594 L 97.441406 383.917969 L 101.28125 378.691406 L 105.121094 373.511719 L 108.960938 368.367188 L 112.800781 363.269531 L 116.640625 358.207031 L 120.480469 353.191406 L 124.320313 348.214844 L 128.160156 343.277344 L 132 338.382813 L 135.839844 333.53125 L 139.679688 328.71875 L 143.519531 323.945313 L 147.359375 319.214844 L 151.199219 314.527344 L 155.039063 309.878906 L 158.878906 305.273438 L 162.71875 300.707031 L 166.558594 296.183594 L 170.398438 291.699219 L 174.238281 287.257813 L 178.078125 282.855469 L 181.921875 278.496094 L 185.761719 274.179688 L 189.601563 269.902344 L 193.441406 265.664063 L 197.28125 261.46875 L 201.121094 257.316406 L 204.960938 253.203125 L 208.800781 249.132813 L 212.640625 245.101563 L 216.480469 241.113281 L 220.320313 237.164063 L 224.160156 233.257813 L 228 229.390625 L 231.839844 225.566406 L 235.679688 221.78125 L 239.519531 218.039063 L 243.359375 214.339844 L 247.199219 210.679688 L 251.039063 207.0625 L 254.878906 203.484375 L 258.71875 199.945313 L 262.558594 196.449219 L 266.398438 192.996094 L 270.238281 189.582031 L 274.078125 186.210938 L 277.921875 182.882813 L 281.761719 179.589844 L 285.601563 176.34375 L 289.441406 173.136719 L 293.28125 169.96875 L 297.121094 166.84375 L 300.960938 163.761719 L 304.800781 160.71875 L 308.640625 157.714844 L 312.480469 154.757813 L 316.320313 151.835938 L 320.160156 148.957031 L 324 146.121094 L 327.839844 143.328125 L 331.679688 140.570313 L 335.519531 137.859375 L 339.359375 135.1875 L 343.199219 132.554688 L 347.039063 129.964844 L 350.878906 127.417969 L 354.71875 124.910156 L 358.558594 122.441406 L 362.398438 120.015625 L 366.238281 117.632813 L 370.078125 115.289063 L 373.921875 112.988281 L 377.761719 110.726563 L 381.601563 108.507813 L 385.441406 106.328125 L 389.28125 104.191406 L 393.121094 102.09375 L 396.960938 100.039063 L 400.800781 98.027344 L 404.640625 96.054688 L 408.480469 94.121094 L 412.320313 92.234375 L 416.160156 90.382813 L 420 88.574219 L 423.839844 86.808594 L 427.679688 85.082031 L 431.519531 83.398438 L 435.359375 81.753906 L 439.199219 80.152344 L 443.039063 78.59375 L 446.878906 77.070313 L 450.71875 75.59375 L 454.558594 74.15625 L 458.398438 72.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="340.691406" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="345.361328" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="350.992188" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="357.666016" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="361" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="368.007813" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="371.341797" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="378.015625" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="381.349609" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="388.023438" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="394.697266" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="404.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="408.701172" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="412.035156" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="419.042969" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="422.376953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="429.050781" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="432.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="439.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-20" x="445.732422" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="452.40625" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="334.017578" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="338.6875" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="344.318359" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="350.992188" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="354.326172" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="361.333984" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="364.667969" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="371.341797" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="374.675781" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="381.349609" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="388.023438" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="397.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="402.027344" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="405.361328" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="409.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="412.691406" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="419.365234" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="422.699219" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="429.373047" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="436.046875" y="375.496094"/>
+  <use xlink:href="#glyph0-22" x="442.720703" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_mixte_slope_10_.svg b/docs/en/calculators/par/baffle_fishway_mixte_slope_10_.svg
new file mode 100644
index 000000000..75af2bf58
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_mixte_slope_10_.svg
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 4.757813 2.382813 L 4.757813 -0.664063 C 4.59375 -0.429688 4.363281 -0.238281 4.066406 -0.0859375 C 3.769531 0.0664063 3.457031 0.140625 3.128906 0.140625 C 2.390625 0.140625 1.753906 -0.152344 1.222656 -0.742188 C 0.6875 -1.332031 0.421875 -2.140625 0.421875 -3.171875 C 0.421875 -3.792969 0.527344 -4.355469 0.746094 -4.851563 C 0.957031 -5.34375 1.273438 -5.71875 1.6875 -5.976563 C 2.101563 -6.234375 2.554688 -6.363281 3.046875 -6.363281 C 3.816406 -6.363281 4.421875 -6.039063 4.863281 -5.390625 L 4.863281 -6.222656 L 5.8125 -6.222656 L 5.8125 2.382813 Z M 1.507813 -3.128906 C 1.503906 -2.328125 1.671875 -1.726563 2.011719 -1.328125 C 2.34375 -0.925781 2.746094 -0.726563 3.21875 -0.726563 C 3.664063 -0.726563 4.050781 -0.914063 4.375 -1.296875 C 4.699219 -1.671875 4.863281 -2.253906 4.863281 -3.035156 C 4.863281 -3.863281 4.691406 -4.484375 4.347656 -4.902344 C 4.003906 -5.320313 3.601563 -5.53125 3.148438 -5.53125 C 2.6875 -5.53125 2.300781 -5.335938 1.984375 -4.949219 C 1.664063 -4.558594 1.503906 -3.953125 1.507813 -3.128906 Z M 1.507813 -3.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M -2.265625 -0.503906 L -2.40625 -1.558594 C -1.808594 -1.679688 -1.378906 -1.882813 -1.113281 -2.175781 C -0.847656 -2.464844 -0.714844 -2.820313 -0.71875 -3.242188 C -0.714844 -3.734375 -0.886719 -4.152344 -1.234375 -4.496094 C -1.574219 -4.832031 -2 -5.003906 -2.511719 -5.007813 C -2.992188 -5.003906 -3.390625 -4.847656 -3.710938 -4.535156 C -4.023438 -4.21875 -4.183594 -3.816406 -4.183594 -3.328125 C -4.183594 -3.128906 -4.144531 -2.878906 -4.066406 -2.585938 L -4.992188 -2.703125 C -4.984375 -2.769531 -4.980469 -2.828125 -4.980469 -2.871094 C -4.980469 -3.320313 -5.097656 -3.722656 -5.332031 -4.085938 C -5.566406 -4.441406 -5.925781 -4.621094 -6.414063 -4.625 C -6.800781 -4.621094 -7.121094 -4.492188 -7.375 -4.230469 C -7.628906 -3.96875 -7.757813 -3.628906 -7.757813 -3.21875 C -7.757813 -2.804688 -7.628906 -2.464844 -7.371094 -2.191406 C -7.113281 -1.917969 -6.726563 -1.742188 -6.210938 -1.664063 L -6.398438 -0.609375 C -7.105469 -0.738281 -7.652344 -1.03125 -8.042969 -1.488281 C -8.429688 -1.945313 -8.625 -2.511719 -8.625 -3.195313 C -8.625 -3.660156 -8.523438 -4.09375 -8.324219 -4.488281 C -8.121094 -4.882813 -7.847656 -5.183594 -7.5 -5.394531 C -7.148438 -5.601563 -6.777344 -5.707031 -6.390625 -5.707031 C -6.019531 -5.707031 -5.683594 -5.605469 -5.378906 -5.40625 C -5.074219 -5.207031 -4.832031 -4.914063 -4.652344 -4.523438 C -4.535156 -5.03125 -4.289063 -5.425781 -3.921875 -5.707031 C -3.546875 -5.988281 -3.085938 -6.128906 -2.535156 -6.128906 C -1.78125 -6.128906 -1.144531 -5.855469 -0.628906 -5.308594 C -0.105469 -4.761719 0.152344 -4.070313 0.152344 -3.234375 C 0.152344 -2.476563 -0.0703125 -1.847656 -0.519531 -1.355469 C -0.96875 -0.855469 -1.550781 -0.574219 -2.265625 -0.503906 Z M -2.265625 -0.503906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M -2.25 -0.5 L -2.34375 -1.605469 C -1.804688 -1.683594 -1.398438 -1.871094 -1.125 -2.175781 C -0.851563 -2.472656 -0.714844 -2.835938 -0.71875 -3.257813 C -0.714844 -3.765625 -0.90625 -4.195313 -1.292969 -4.546875 C -1.671875 -4.898438 -2.179688 -5.074219 -2.816406 -5.074219 C -3.414063 -5.074219 -3.890625 -4.902344 -4.242188 -4.566406 C -4.589844 -4.226563 -4.761719 -3.785156 -4.765625 -3.242188 C -4.761719 -2.898438 -4.683594 -2.59375 -4.53125 -2.320313 C -4.375 -2.046875 -4.175781 -1.832031 -3.929688 -1.675781 L -4.0625 -0.6875 L -8.472656 -1.519531 L -8.472656 -5.789063 L -7.464844 -5.789063 L -7.464844 -2.363281 L -5.15625 -1.898438 C -5.515625 -2.414063 -5.695313 -2.953125 -5.695313 -3.523438 C -5.695313 -4.269531 -5.433594 -4.902344 -4.914063 -5.421875 C -4.394531 -5.933594 -3.726563 -6.191406 -2.910156 -6.195313 C -2.132813 -6.191406 -1.460938 -5.964844 -0.894531 -5.515625 C -0.199219 -4.960938 0.144531 -4.210938 0.148438 -3.257813 C 0.144531 -2.476563 -0.0703125 -1.835938 -0.507813 -1.34375 C -0.941406 -0.847656 -1.523438 -0.566406 -2.25 -0.5 Z M -2.25 -0.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -7.464844 -0.570313 L -8.476563 -0.570313 L -8.476563 -6.128906 L -7.65625 -6.128906 C -7.074219 -5.582031 -6.300781 -5.039063 -5.335938 -4.503906 C -4.371094 -3.964844 -3.378906 -3.550781 -2.359375 -3.257813 C -1.636719 -3.046875 -0.851563 -2.910156 0 -2.851563 L 0 -1.769531 C -0.675781 -1.78125 -1.492188 -1.914063 -2.449219 -2.167969 C -3.402344 -2.421875 -4.324219 -2.785156 -5.214844 -3.261719 C -6.105469 -3.734375 -6.855469 -4.238281 -7.464844 -4.777344 Z M -7.464844 -0.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 7.644531 -3.789063 L 9.660156 -3.148438 C 9.347656 -2.019531 8.832031 -1.183594 8.117188 -0.640625 C 7.394531 -0.09375 6.484375 0.175781 5.378906 0.175781 C 4.007813 0.175781 2.882813 -0.289063 2.003906 -1.226563 C 1.121094 -2.15625 0.679688 -3.4375 0.683594 -5.0625 C 0.679688 -6.777344 1.121094 -8.109375 2.011719 -9.058594 C 2.894531 -10.007813 4.058594 -10.480469 5.503906 -10.484375 C 6.761719 -10.480469 7.789063 -10.109375 8.578125 -9.367188 C 9.046875 -8.921875 9.398438 -8.289063 9.632813 -7.46875 L 7.574219 -6.976563 C 7.449219 -7.507813 7.195313 -7.929688 6.808594 -8.238281 C 6.421875 -8.546875 5.949219 -8.699219 5.398438 -8.703125 C 4.632813 -8.699219 4.015625 -8.425781 3.539063 -7.878906 C 3.0625 -7.328125 2.824219 -6.441406 2.828125 -5.21875 C 2.824219 -3.910156 3.058594 -2.980469 3.53125 -2.429688 C 3.996094 -1.875 4.605469 -1.597656 5.359375 -1.601563 C 5.910156 -1.597656 6.386719 -1.773438 6.785156 -2.128906 C 7.183594 -2.476563 7.46875 -3.03125 7.644531 -3.789063 Z M 7.644531 -3.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 3.003906 -10.308594 L 3.003906 -6.519531 C 3.636719 -7.261719 4.398438 -7.632813 5.289063 -7.636719 C 5.738281 -7.632813 6.148438 -7.550781 6.515625 -7.382813 C 6.882813 -7.210938 7.15625 -6.992188 7.34375 -6.734375 C 7.523438 -6.46875 7.652344 -6.179688 7.722656 -5.863281 C 7.789063 -5.542969 7.820313 -5.046875 7.824219 -4.378906 L 7.824219 0 L 5.851563 0 L 5.851563 -3.945313 C 5.847656 -4.722656 5.808594 -5.21875 5.738281 -5.433594 C 5.660156 -5.640625 5.527344 -5.808594 5.339844 -5.9375 C 5.144531 -6.058594 4.90625 -6.121094 4.625 -6.125 C 4.292969 -6.121094 4 -6.042969 3.746094 -5.882813 C 3.484375 -5.722656 3.296875 -5.480469 3.179688 -5.164063 C 3.058594 -4.839844 3 -4.367188 3.003906 -3.742188 L 3.003906 0 L 1.027344 0 L 1.027344 -10.308594 Z M 3.003906 -10.308594 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 3.085938 0 L 0.078125 -7.46875 L 2.152344 -7.46875 L 3.558594 -3.65625 L 3.964844 -2.382813 C 4.070313 -2.703125 4.136719 -2.917969 4.167969 -3.023438 C 4.230469 -3.234375 4.300781 -3.445313 4.378906 -3.65625 L 5.800781 -7.46875 L 7.832031 -7.46875 L 4.867188 0 Z M 3.085938 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 2.925781 0 L 0.949219 0 L 0.949219 -7.46875 L 2.785156 -7.46875 L 2.785156 -6.40625 C 3.09375 -6.902344 3.375 -7.234375 3.628906 -7.394531 C 3.878906 -7.554688 4.164063 -7.632813 4.484375 -7.636719 C 4.929688 -7.632813 5.363281 -7.507813 5.785156 -7.261719 L 5.175781 -5.539063 C 4.839844 -5.75 4.53125 -5.859375 4.246094 -5.863281 C 3.96875 -5.859375 3.734375 -5.78125 3.542969 -5.632813 C 3.347656 -5.476563 3.195313 -5.203125 3.089844 -4.808594 C 2.976563 -4.40625 2.921875 -3.570313 2.925781 -2.304688 Z M 2.925781 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 0.578125 -3.839844 C 0.574219 -4.492188 0.734375 -5.128906 1.0625 -5.742188 C 1.382813 -6.355469 1.839844 -6.824219 2.433594 -7.148438 C 3.023438 -7.472656 3.6875 -7.632813 4.421875 -7.636719 C 5.550781 -7.632813 6.476563 -7.265625 7.199219 -6.535156 C 7.917969 -5.796875 8.277344 -4.871094 8.28125 -3.753906 C 8.277344 -2.621094 7.914063 -1.683594 7.1875 -0.945313 C 6.457031 -0.203125 5.539063 0.164063 4.4375 0.167969 C 3.75 0.164063 3.097656 0.0117188 2.476563 -0.292969 C 1.855469 -0.601563 1.382813 -1.054688 1.0625 -1.652344 C 0.734375 -2.25 0.574219 -2.976563 0.578125 -3.839844 Z M 2.601563 -3.734375 C 2.601563 -2.988281 2.777344 -2.421875 3.128906 -2.03125 C 3.480469 -1.636719 3.914063 -1.441406 4.429688 -1.441406 C 4.945313 -1.441406 5.375 -1.636719 5.726563 -2.03125 C 6.070313 -2.421875 6.246094 -2.992188 6.25 -3.746094 C 6.246094 -4.472656 6.070313 -5.035156 5.726563 -5.433594 C 5.375 -5.824219 4.945313 -6.023438 4.429688 -6.027344 C 3.914063 -6.023438 3.480469 -5.824219 3.128906 -5.433594 C 2.777344 -5.035156 2.601563 -4.46875 2.601563 -3.734375 Z M 2.601563 -3.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 7.824219 0 L 5.851563 0 L 5.851563 -3.8125 C 5.847656 -4.613281 5.804688 -5.132813 5.722656 -5.375 C 5.636719 -5.609375 5.5 -5.792969 5.3125 -5.925781 C 5.121094 -6.054688 4.890625 -6.121094 4.625 -6.125 C 4.28125 -6.121094 3.976563 -6.027344 3.703125 -5.84375 C 3.429688 -5.652344 3.242188 -5.40625 3.144531 -5.097656 C 3.042969 -4.785156 2.992188 -4.210938 2.996094 -3.382813 L 2.996094 0 L 1.019531 0 L 1.019531 -7.46875 L 2.855469 -7.46875 L 2.855469 -6.371094 C 3.503906 -7.210938 4.324219 -7.632813 5.316406 -7.636719 C 5.746094 -7.632813 6.144531 -7.554688 6.507813 -7.398438 C 6.867188 -7.238281 7.140625 -7.039063 7.328125 -6.796875 C 7.511719 -6.554688 7.640625 -6.277344 7.714844 -5.96875 C 7.785156 -5.65625 7.820313 -5.214844 7.824219 -4.640625 Z M 7.824219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-17">
+<path style="stroke:none;" d="M 3.953125 -10.351563 C 4.949219 -10.347656 5.730469 -9.992188 6.292969 -9.28125 C 6.960938 -8.4375 7.292969 -7.035156 7.296875 -5.082031 C 7.292969 -3.128906 6.957031 -1.730469 6.285156 -0.878906 C 5.726563 -0.175781 4.949219 0.175781 3.953125 0.175781 C 2.945313 0.175781 2.136719 -0.207031 1.523438 -0.980469 C 0.910156 -1.746094 0.601563 -3.121094 0.605469 -5.105469 C 0.601563 -7.042969 0.941406 -8.441406 1.617188 -9.296875 C 2.171875 -9.996094 2.949219 -10.347656 3.953125 -10.351563 Z M 3.953125 -8.710938 C 3.710938 -8.707031 3.496094 -8.628906 3.3125 -8.480469 C 3.121094 -8.324219 2.976563 -8.054688 2.875 -7.664063 C 2.738281 -7.152344 2.671875 -6.289063 2.671875 -5.082031 C 2.671875 -3.871094 2.730469 -3.042969 2.855469 -2.589844 C 2.972656 -2.136719 3.128906 -1.835938 3.316406 -1.6875 C 3.5 -1.535156 3.710938 -1.457031 3.953125 -1.460938 C 4.1875 -1.457031 4.398438 -1.535156 4.589844 -1.6875 C 4.773438 -1.839844 4.921875 -2.113281 5.027344 -2.511719 C 5.160156 -3.015625 5.226563 -3.871094 5.230469 -5.082031 C 5.226563 -6.289063 5.164063 -7.121094 5.046875 -7.574219 C 4.921875 -8.023438 4.769531 -8.324219 4.585938 -8.480469 C 4.398438 -8.628906 4.1875 -8.707031 3.953125 -8.710938 Z M 3.953125 -8.710938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-18">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface41">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 383.480469 C 77.101563 387.082031 71.699219 387.082031 71.699219 383.480469 C 71.699219 379.878906 77.101563 379.878906 77.101563 383.480469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 93.566406 367.761719 C 93.566406 371.359375 88.167969 371.359375 88.167969 367.761719 C 88.167969 364.160156 93.566406 364.160156 93.566406 367.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 106.082031 355.535156 C 106.082031 359.132813 100.679688 359.132813 100.679688 355.535156 C 100.679688 351.933594 106.082031 351.933594 106.082031 355.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 127.816406 335.449219 C 127.816406 339.050781 122.417969 339.050781 122.417969 335.449219 C 122.417969 331.851563 127.816406 331.851563 127.816406 335.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.625 320.605469 C 143.625 324.203125 138.226563 324.203125 138.226563 320.605469 C 138.226563 317.003906 143.625 317.003906 143.625 320.605469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.089844 304.886719 C 160.089844 308.484375 154.691406 308.484375 154.691406 304.886719 C 154.691406 301.285156 160.089844 301.285156 160.089844 304.886719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 174.582031 292.664063 C 174.582031 296.265625 169.183594 296.265625 169.183594 292.664063 C 169.183594 289.066406 174.582031 289.066406 174.582031 292.664063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 185.121094 282.183594 C 185.121094 285.785156 179.71875 285.785156 179.71875 282.183594 C 179.71875 278.582031 185.121094 278.582031 185.121094 282.183594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 198.292969 269.957031 C 198.292969 273.558594 192.894531 273.558594 192.894531 269.957031 C 192.894531 266.359375 198.292969 266.359375 198.292969 269.957031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 210.148438 261.234375 C 210.148438 264.835938 204.75 264.835938 204.75 261.234375 C 204.75 257.636719 210.148438 257.636719 210.148438 261.234375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 222.003906 249.003906 C 222.003906 252.605469 216.605469 252.605469 216.605469 249.003906 C 216.605469 245.40625 222.003906 245.40625 222.003906 249.003906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 236.496094 238.539063 C 236.496094 242.140625 231.097656 242.140625 231.097656 238.539063 C 231.097656 234.9375 236.496094 234.9375 236.496094 238.539063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 252.304688 224.570313 C 252.304688 228.171875 246.902344 228.171875 246.902344 224.570313 C 246.902344 220.96875 252.304688 220.96875 252.304688 224.570313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 268.769531 212.359375 C 268.769531 215.957031 263.371094 215.957031 263.371094 212.359375 C 263.371094 208.757813 268.769531 208.757813 268.769531 212.359375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 283.917969 200.140625 C 283.917969 203.738281 278.519531 203.738281 278.519531 200.140625 C 278.519531 196.539063 283.917969 196.539063 283.917969 200.140625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 303.019531 184.429688 C 303.019531 188.03125 297.621094 188.03125 297.621094 184.429688 C 297.621094 180.832031 303.019531 180.832031 303.019531 184.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 317.511719 173.964844 C 317.511719 177.5625 312.113281 177.5625 312.113281 173.964844 C 312.113281 170.363281 317.511719 170.363281 317.511719 173.964844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 342.539063 154.769531 C 342.539063 158.371094 337.140625 158.371094 337.140625 154.769531 C 337.140625 151.167969 342.539063 151.167969 342.539063 154.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.691406 143.429688 C 357.691406 147.027344 352.289063 147.027344 352.289063 143.429688 C 352.289063 139.828125 357.691406 139.828125 357.691406 143.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 375.472656 130.34375 C 375.472656 133.945313 370.074219 133.945313 370.074219 130.34375 C 370.074219 126.742188 375.472656 126.742188 375.472656 130.34375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 393.257813 118.136719 C 393.257813 121.734375 387.859375 121.734375 387.859375 118.136719 C 387.859375 114.535156 393.257813 114.535156 393.257813 118.136719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 414.992188 104.191406 C 414.992188 107.789063 409.59375 107.789063 409.59375 104.191406 C 409.59375 100.589844 414.992188 100.589844 414.992188 104.191406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 434.753906 90.234375 C 434.753906 93.835938 429.355469 93.835938 429.355469 90.234375 C 429.355469 86.636719 434.753906 86.636719 434.753906 90.234375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 447.269531 83.269531 C 447.269531 86.867188 441.867188 86.867188 441.867188 83.269531 C 441.867188 79.667969 447.269531 79.667969 447.269531 83.269531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 142.460938 430.558594 L 453.351563 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 142.460938 430.558594 L 142.460938 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 246.089844 430.558594 L 246.089844 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 349.722656 430.558594 L 349.722656 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 453.351563 430.558594 L 453.351563 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="139.125" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="242.753906" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-3" x="346.386719" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-4" x="450.015625" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 378.035156 L 59.039063 62.402344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 378.035156 L 51.839844 378.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 325.429688 L 51.839844 325.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 272.824219 L 51.839844 272.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 220.21875 L 51.839844 220.21875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 167.613281 L 51.839844 167.613281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 115.007813 L 51.839844 115.007813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 62.402344 L 51.839844 62.402344 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="381.371094"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="41.761719" y="328.765625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-3" x="41.761719" y="276.160156"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="41.761719" y="223.554688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="41.761719" y="170.949219"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="41.761719" y="118.34375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="65.738281"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="176.5625" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="186.961719" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="195.757813" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="203.766406" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="211.775" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="217.378906" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="226.175" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="234.971094" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="242.979687" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="246.980469" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="255.776562" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="263.785156" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="268.580469" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="273.375781" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="277.376563" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="285.385156" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="293.39375" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="297.394531" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="306.999219" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="311" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="319.409375" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="323.410156" y="34.675781"/>
+  <use xlink:href="#glyph2-17" x="331.41875" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="339.427344" y="34.675781"/>
+  <use xlink:href="#glyph2-18" x="343.428125" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-5" x="260.726563" y="485.28125"/>
+  <use xlink:href="#glyph0-6" x="267.400391" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 383.480469 C 77.101563 387.082031 71.699219 387.082031 71.699219 383.480469 C 71.699219 379.878906 77.101563 379.878906 77.101563 383.480469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 93.566406 367.761719 C 93.566406 371.359375 88.167969 371.359375 88.167969 367.761719 C 88.167969 364.160156 93.566406 364.160156 93.566406 367.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 106.082031 355.535156 C 106.082031 359.132813 100.679688 359.132813 100.679688 355.535156 C 100.679688 351.933594 106.082031 351.933594 106.082031 355.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 127.816406 335.449219 C 127.816406 339.050781 122.417969 339.050781 122.417969 335.449219 C 122.417969 331.851563 127.816406 331.851563 127.816406 335.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.625 320.605469 C 143.625 324.203125 138.226563 324.203125 138.226563 320.605469 C 138.226563 317.003906 143.625 317.003906 143.625 320.605469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.089844 304.886719 C 160.089844 308.484375 154.691406 308.484375 154.691406 304.886719 C 154.691406 301.285156 160.089844 301.285156 160.089844 304.886719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 174.582031 292.664063 C 174.582031 296.265625 169.183594 296.265625 169.183594 292.664063 C 169.183594 289.066406 174.582031 289.066406 174.582031 292.664063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 185.121094 282.183594 C 185.121094 285.785156 179.71875 285.785156 179.71875 282.183594 C 179.71875 278.582031 185.121094 278.582031 185.121094 282.183594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 198.292969 269.957031 C 198.292969 273.558594 192.894531 273.558594 192.894531 269.957031 C 192.894531 266.359375 198.292969 266.359375 198.292969 269.957031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 210.148438 261.234375 C 210.148438 264.835938 204.75 264.835938 204.75 261.234375 C 204.75 257.636719 210.148438 257.636719 210.148438 261.234375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 222.003906 249.003906 C 222.003906 252.605469 216.605469 252.605469 216.605469 249.003906 C 216.605469 245.40625 222.003906 245.40625 222.003906 249.003906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 236.496094 238.539063 C 236.496094 242.140625 231.097656 242.140625 231.097656 238.539063 C 231.097656 234.9375 236.496094 234.9375 236.496094 238.539063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 252.304688 224.570313 C 252.304688 228.171875 246.902344 228.171875 246.902344 224.570313 C 246.902344 220.96875 252.304688 220.96875 252.304688 224.570313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 268.769531 212.359375 C 268.769531 215.957031 263.371094 215.957031 263.371094 212.359375 C 263.371094 208.757813 268.769531 208.757813 268.769531 212.359375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 283.917969 200.140625 C 283.917969 203.738281 278.519531 203.738281 278.519531 200.140625 C 278.519531 196.539063 283.917969 196.539063 283.917969 200.140625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 303.019531 184.429688 C 303.019531 188.03125 297.621094 188.03125 297.621094 184.429688 C 297.621094 180.832031 303.019531 180.832031 303.019531 184.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 317.511719 173.964844 C 317.511719 177.5625 312.113281 177.5625 312.113281 173.964844 C 312.113281 170.363281 317.511719 170.363281 317.511719 173.964844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 342.539063 154.769531 C 342.539063 158.371094 337.140625 158.371094 337.140625 154.769531 C 337.140625 151.167969 342.539063 151.167969 342.539063 154.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.691406 143.429688 C 357.691406 147.027344 352.289063 147.027344 352.289063 143.429688 C 352.289063 139.828125 357.691406 139.828125 357.691406 143.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 375.472656 130.34375 C 375.472656 133.945313 370.074219 133.945313 370.074219 130.34375 C 370.074219 126.742188 375.472656 126.742188 375.472656 130.34375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 393.257813 118.136719 C 393.257813 121.734375 387.859375 121.734375 387.859375 118.136719 C 387.859375 114.535156 393.257813 114.535156 393.257813 118.136719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 414.992188 104.191406 C 414.992188 107.789063 409.59375 107.789063 409.59375 104.191406 C 409.59375 100.589844 414.992188 100.589844 414.992188 104.191406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 434.753906 90.234375 C 434.753906 93.835938 429.355469 93.835938 429.355469 90.234375 C 429.355469 86.636719 434.753906 86.636719 434.753906 90.234375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 447.269531 83.269531 C 447.269531 86.867188 441.867188 86.867188 441.867188 83.269531 C 441.867188 79.667969 447.269531 79.667969 447.269531 83.269531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 383.789063 L 78.238281 380.003906 L 82.078125 376.230469 L 85.921875 372.472656 L 89.761719 368.730469 L 93.601563 365 L 97.441406 361.28125 L 101.28125 357.578125 L 105.121094 353.890625 L 108.960938 350.214844 L 112.800781 346.554688 L 116.640625 342.90625 L 120.480469 339.273438 L 124.320313 335.652344 L 128.160156 332.046875 L 132 328.453125 L 135.839844 324.875 L 139.679688 321.3125 L 143.519531 317.761719 L 147.359375 314.222656 L 151.199219 310.699219 L 155.039063 307.191406 L 158.878906 303.695313 L 162.71875 300.214844 L 166.558594 296.746094 L 170.398438 293.292969 L 174.238281 289.851563 L 178.078125 286.425781 L 181.921875 283.015625 L 185.761719 279.613281 L 189.601563 276.230469 L 193.441406 272.859375 L 197.28125 269.5 L 201.121094 266.15625 L 204.960938 262.828125 L 208.800781 259.511719 L 212.640625 256.210938 L 216.480469 252.921875 L 220.320313 249.648438 L 224.160156 246.386719 L 228 243.140625 L 231.839844 239.90625 L 235.679688 236.6875 L 239.519531 233.484375 L 243.359375 230.292969 L 247.199219 227.113281 L 251.039063 223.949219 L 254.878906 220.800781 L 258.71875 217.664063 L 262.558594 214.542969 L 266.398438 211.433594 L 270.238281 208.339844 L 274.078125 205.257813 L 277.921875 202.191406 L 281.761719 199.136719 L 285.601563 196.097656 L 289.441406 193.074219 L 293.28125 190.058594 L 297.121094 187.0625 L 300.960938 184.078125 L 304.800781 181.109375 L 308.640625 178.152344 L 312.480469 175.207031 L 316.320313 172.28125 L 320.160156 169.363281 L 324 166.464844 L 327.839844 163.574219 L 331.679688 160.703125 L 335.519531 157.84375 L 339.359375 154.996094 L 343.199219 152.164063 L 347.039063 149.347656 L 350.878906 146.542969 L 354.71875 143.75 L 358.558594 140.972656 L 362.398438 138.210938 L 366.238281 135.460938 L 370.078125 132.726563 L 373.921875 130.003906 L 377.761719 127.296875 L 381.601563 124.601563 L 385.441406 121.921875 L 389.28125 119.257813 L 393.121094 116.601563 L 396.960938 113.964844 L 400.800781 111.339844 L 404.640625 108.730469 L 408.480469 106.132813 L 412.320313 103.546875 L 416.160156 100.976563 L 420 98.421875 L 423.839844 95.878906 L 427.679688 93.351563 L 431.519531 90.839844 L 435.359375 88.335938 L 439.199219 85.851563 L 443.039063 83.378906 L 446.878906 80.917969 L 450.71875 78.472656 L 454.558594 76.042969 L 458.398438 73.625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 71.242188 416.800781 L 78.878906 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 75.058594 420.617188 L 75.058594 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 91.660156 402.847656 L 99.296875 402.847656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 95.476563 406.667969 L 95.476563 399.03125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 110.761719 388.890625 L 118.398438 388.890625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 114.578125 392.710938 L 114.578125 385.074219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.957031 383.675781 L 129.59375 383.675781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 125.777344 387.492188 L 125.777344 379.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.742188 371.464844 L 147.378906 371.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.558594 375.285156 L 143.558594 367.648438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.574219 362.75 L 161.210938 362.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 157.390625 366.570313 L 157.390625 358.933594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 167.40625 355.789063 L 175.042969 355.789063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.222656 359.605469 L 171.222656 351.96875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.800781 340.089844 L 197.4375 340.089844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 193.617188 343.910156 L 193.617188 336.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 210.21875 329.648438 L 217.855469 329.648438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 214.035156 333.464844 L 214.035156 325.828125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 229.976563 319.199219 L 237.613281 319.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 233.796875 323.019531 L 233.796875 315.382813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 243.152344 310.480469 L 250.789063 310.480469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 246.96875 314.300781 L 246.96875 306.664063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 260.277344 301.777344 L 267.914063 301.777344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.09375 305.597656 L 264.09375 297.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 285.964844 287.847656 L 293.601563 287.847656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 289.78125 291.667969 L 289.78125 284.03125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 300.453125 279.132813 L 308.089844 279.132813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 304.273438 282.953125 L 304.273438 275.316406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 314.945313 272.175781 L 322.582031 272.175781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 318.761719 275.992188 L 318.761719 268.355469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 330.09375 263.464844 L 337.730469 263.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 333.914063 267.28125 L 333.914063 259.644531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 345.902344 254.757813 L 353.539063 254.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 349.722656 258.574219 L 349.722656 250.9375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.757813 251.292969 L 365.394531 251.292969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 361.578125 255.113281 L 361.578125 247.476563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 370.929688 244.328125 L 378.566406 244.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 374.75 248.148438 L 374.75 240.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 384.761719 235.613281 L 392.398438 235.613281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 388.582031 239.433594 L 388.582031 231.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 400.570313 230.414063 L 408.207031 230.414063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 404.390625 234.230469 L 404.390625 226.59375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 410.453125 225.1875 L 418.089844 225.1875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 414.269531 229.007813 L 414.269531 221.371094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 424.28125 218.226563 L 431.917969 218.226563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 428.101563 222.046875 L 428.101563 214.410156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 439.433594 213.023438 L 447.070313 213.023438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 443.25 216.84375 L 443.25 209.207031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.582031 206.066406 L 462.21875 206.066406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 209.886719 L 458.398438 202.25 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 75.058594 416.171875 L 78.890625 413.621094 L 82.726563 411.074219 L 86.558594 408.539063 L 90.390625 406.011719 L 94.226563 403.496094 L 98.058594 400.988281 L 101.890625 398.488281 L 105.726563 396 L 109.558594 393.519531 L 113.394531 391.046875 L 117.226563 388.582031 L 121.058594 386.128906 L 124.894531 383.683594 L 128.726563 381.25 L 132.558594 378.820313 L 136.394531 376.40625 L 140.226563 373.996094 L 144.058594 371.597656 L 147.894531 369.207031 L 151.726563 366.824219 L 155.558594 364.453125 L 159.394531 362.089844 L 163.226563 359.734375 L 167.0625 357.390625 L 170.894531 355.054688 L 174.726563 352.726563 L 178.5625 350.410156 L 182.394531 348.101563 L 186.226563 345.800781 L 190.0625 343.507813 L 193.894531 341.226563 L 197.726563 338.957031 L 201.5625 336.691406 L 205.394531 334.4375 L 209.226563 332.191406 L 213.0625 329.957031 L 216.894531 327.726563 L 220.726563 325.511719 L 224.5625 323.300781 L 228.394531 321.101563 L 232.230469 318.910156 L 236.0625 316.726563 L 239.894531 314.554688 L 243.730469 312.390625 L 247.5625 310.238281 L 251.394531 308.089844 L 255.230469 305.953125 L 259.0625 303.828125 L 262.894531 301.707031 L 266.730469 299.597656 L 270.5625 297.5 L 274.394531 295.40625 L 278.230469 293.324219 L 282.0625 291.25 L 285.894531 289.1875 L 289.730469 287.132813 L 293.5625 285.085938 L 297.398438 283.050781 L 301.230469 281.019531 L 305.0625 279.003906 L 308.898438 276.992188 L 312.730469 274.992188 L 316.5625 273 L 320.398438 271.019531 L 324.230469 269.042969 L 328.0625 267.078125 L 331.898438 265.125 L 335.730469 263.179688 L 339.5625 261.242188 L 343.398438 259.3125 L 347.230469 257.394531 L 351.0625 255.484375 L 354.898438 253.582031 L 358.730469 251.691406 L 362.566406 249.808594 L 366.398438 247.933594 L 370.230469 246.070313 L 374.066406 244.214844 L 377.898438 242.367188 L 381.730469 240.527344 L 385.566406 238.699219 L 389.398438 236.878906 L 393.230469 235.070313 L 397.066406 233.269531 L 400.898438 231.476563 L 404.730469 229.695313 L 408.566406 227.917969 L 412.398438 226.152344 L 416.234375 224.398438 L 420.066406 222.652344 L 423.898438 220.914063 L 427.734375 219.183594 L 431.566406 217.464844 L 435.398438 215.753906 L 439.234375 214.050781 L 443.066406 212.359375 L 446.898438 210.675781 L 450.734375 209 L 454.566406 207.335938 L 458.398438 205.679688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-8" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-9" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-8" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-9" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="338.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="344.705078" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="351.378906" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="356.048828" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="361.679688" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="368.353516" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="371.6875" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="378.695313" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="382.029297" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="388.703125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="392.037109" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="398.710938" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="405.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="412.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="416.728516" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="420.0625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="427.070313" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="430.404297" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="437.078125" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="440.412109" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="447.085938" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-8" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="331.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="338.03125" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="344.705078" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="349.375" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="355.005859" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="361.679688" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="365.013672" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="372.021484" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="375.355469" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="382.029297" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="385.363281" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="392.037109" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="398.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="405.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="412.058594" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="416.728516" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="420.0625" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="427.070313" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="430.404297" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="437.078125" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="440.412109" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="447.085938" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="453.759766" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_mixte_slope_16_.svg b/docs/en/calculators/par/baffle_fishway_mixte_slope_16_.svg
new file mode 100644
index 000000000..f4a0453f4
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_mixte_slope_16_.svg
@@ -0,0 +1,445 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 4.757813 2.382813 L 4.757813 -0.664063 C 4.59375 -0.429688 4.363281 -0.238281 4.066406 -0.0859375 C 3.769531 0.0664063 3.457031 0.140625 3.128906 0.140625 C 2.390625 0.140625 1.753906 -0.152344 1.222656 -0.742188 C 0.6875 -1.332031 0.421875 -2.140625 0.421875 -3.171875 C 0.421875 -3.792969 0.527344 -4.355469 0.746094 -4.851563 C 0.957031 -5.34375 1.273438 -5.71875 1.6875 -5.976563 C 2.101563 -6.234375 2.554688 -6.363281 3.046875 -6.363281 C 3.816406 -6.363281 4.421875 -6.039063 4.863281 -5.390625 L 4.863281 -6.222656 L 5.8125 -6.222656 L 5.8125 2.382813 Z M 1.507813 -3.128906 C 1.503906 -2.328125 1.671875 -1.726563 2.011719 -1.328125 C 2.34375 -0.925781 2.746094 -0.726563 3.21875 -0.726563 C 3.664063 -0.726563 4.050781 -0.914063 4.375 -1.296875 C 4.699219 -1.671875 4.863281 -2.253906 4.863281 -3.035156 C 4.863281 -3.863281 4.691406 -4.484375 4.347656 -4.902344 C 4.003906 -5.320313 3.601563 -5.53125 3.148438 -5.53125 C 2.6875 -5.53125 2.300781 -5.335938 1.984375 -4.949219 C 1.664063 -4.558594 1.503906 -3.953125 1.507813 -3.128906 Z M 1.507813 -3.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -2.265625 -0.503906 L -2.40625 -1.558594 C -1.808594 -1.679688 -1.378906 -1.882813 -1.113281 -2.175781 C -0.847656 -2.464844 -0.714844 -2.820313 -0.71875 -3.242188 C -0.714844 -3.734375 -0.886719 -4.152344 -1.234375 -4.496094 C -1.574219 -4.832031 -2 -5.003906 -2.511719 -5.007813 C -2.992188 -5.003906 -3.390625 -4.847656 -3.710938 -4.535156 C -4.023438 -4.21875 -4.183594 -3.816406 -4.183594 -3.328125 C -4.183594 -3.128906 -4.144531 -2.878906 -4.066406 -2.585938 L -4.992188 -2.703125 C -4.984375 -2.769531 -4.980469 -2.828125 -4.980469 -2.871094 C -4.980469 -3.320313 -5.097656 -3.722656 -5.332031 -4.085938 C -5.566406 -4.441406 -5.925781 -4.621094 -6.414063 -4.625 C -6.800781 -4.621094 -7.121094 -4.492188 -7.375 -4.230469 C -7.628906 -3.96875 -7.757813 -3.628906 -7.757813 -3.21875 C -7.757813 -2.804688 -7.628906 -2.464844 -7.371094 -2.191406 C -7.113281 -1.917969 -6.726563 -1.742188 -6.210938 -1.664063 L -6.398438 -0.609375 C -7.105469 -0.738281 -7.652344 -1.03125 -8.042969 -1.488281 C -8.429688 -1.945313 -8.625 -2.511719 -8.625 -3.195313 C -8.625 -3.660156 -8.523438 -4.09375 -8.324219 -4.488281 C -8.121094 -4.882813 -7.847656 -5.183594 -7.5 -5.394531 C -7.148438 -5.601563 -6.777344 -5.707031 -6.390625 -5.707031 C -6.019531 -5.707031 -5.683594 -5.605469 -5.378906 -5.40625 C -5.074219 -5.207031 -4.832031 -4.914063 -4.652344 -4.523438 C -4.535156 -5.03125 -4.289063 -5.425781 -3.921875 -5.707031 C -3.546875 -5.988281 -3.085938 -6.128906 -2.535156 -6.128906 C -1.78125 -6.128906 -1.144531 -5.855469 -0.628906 -5.308594 C -0.105469 -4.761719 0.152344 -4.070313 0.152344 -3.234375 C 0.152344 -2.476563 -0.0703125 -1.847656 -0.519531 -1.355469 C -0.96875 -0.855469 -1.550781 -0.574219 -2.265625 -0.503906 Z M -2.265625 -0.503906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -2.25 -0.5 L -2.34375 -1.605469 C -1.804688 -1.683594 -1.398438 -1.871094 -1.125 -2.175781 C -0.851563 -2.472656 -0.714844 -2.835938 -0.71875 -3.257813 C -0.714844 -3.765625 -0.90625 -4.195313 -1.292969 -4.546875 C -1.671875 -4.898438 -2.179688 -5.074219 -2.816406 -5.074219 C -3.414063 -5.074219 -3.890625 -4.902344 -4.242188 -4.566406 C -4.589844 -4.226563 -4.761719 -3.785156 -4.765625 -3.242188 C -4.761719 -2.898438 -4.683594 -2.59375 -4.53125 -2.320313 C -4.375 -2.046875 -4.175781 -1.832031 -3.929688 -1.675781 L -4.0625 -0.6875 L -8.472656 -1.519531 L -8.472656 -5.789063 L -7.464844 -5.789063 L -7.464844 -2.363281 L -5.15625 -1.898438 C -5.515625 -2.414063 -5.695313 -2.953125 -5.695313 -3.523438 C -5.695313 -4.269531 -5.433594 -4.902344 -4.914063 -5.421875 C -4.394531 -5.933594 -3.726563 -6.191406 -2.910156 -6.195313 C -2.132813 -6.191406 -1.460938 -5.964844 -0.894531 -5.515625 C -0.199219 -4.960938 0.144531 -4.210938 0.148438 -3.257813 C 0.144531 -2.476563 -0.0703125 -1.835938 -0.507813 -1.34375 C -0.941406 -0.847656 -1.523438 -0.566406 -2.25 -0.5 Z M -2.25 -0.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M -7.464844 -0.570313 L -8.476563 -0.570313 L -8.476563 -6.128906 L -7.65625 -6.128906 C -7.074219 -5.582031 -6.300781 -5.039063 -5.335938 -4.503906 C -4.371094 -3.964844 -3.378906 -3.550781 -2.359375 -3.257813 C -1.636719 -3.046875 -0.851563 -2.910156 0 -2.851563 L 0 -1.769531 C -0.675781 -1.78125 -1.492188 -1.914063 -2.449219 -2.167969 C -3.402344 -2.421875 -4.324219 -2.785156 -5.214844 -3.261719 C -6.105469 -3.734375 -6.855469 -4.238281 -7.464844 -4.777344 Z M -7.464844 -0.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 7.644531 -3.789063 L 9.660156 -3.148438 C 9.347656 -2.019531 8.832031 -1.183594 8.117188 -0.640625 C 7.394531 -0.09375 6.484375 0.175781 5.378906 0.175781 C 4.007813 0.175781 2.882813 -0.289063 2.003906 -1.226563 C 1.121094 -2.15625 0.679688 -3.4375 0.683594 -5.0625 C 0.679688 -6.777344 1.121094 -8.109375 2.011719 -9.058594 C 2.894531 -10.007813 4.058594 -10.480469 5.503906 -10.484375 C 6.761719 -10.480469 7.789063 -10.109375 8.578125 -9.367188 C 9.046875 -8.921875 9.398438 -8.289063 9.632813 -7.46875 L 7.574219 -6.976563 C 7.449219 -7.507813 7.195313 -7.929688 6.808594 -8.238281 C 6.421875 -8.546875 5.949219 -8.699219 5.398438 -8.703125 C 4.632813 -8.699219 4.015625 -8.425781 3.539063 -7.878906 C 3.0625 -7.328125 2.824219 -6.441406 2.828125 -5.21875 C 2.824219 -3.910156 3.058594 -2.980469 3.53125 -2.429688 C 3.996094 -1.875 4.605469 -1.597656 5.359375 -1.601563 C 5.910156 -1.597656 6.386719 -1.773438 6.785156 -2.128906 C 7.183594 -2.476563 7.46875 -3.03125 7.644531 -3.789063 Z M 7.644531 -3.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 3.003906 -10.308594 L 3.003906 -6.519531 C 3.636719 -7.261719 4.398438 -7.632813 5.289063 -7.636719 C 5.738281 -7.632813 6.148438 -7.550781 6.515625 -7.382813 C 6.882813 -7.210938 7.15625 -6.992188 7.34375 -6.734375 C 7.523438 -6.46875 7.652344 -6.179688 7.722656 -5.863281 C 7.789063 -5.542969 7.820313 -5.046875 7.824219 -4.378906 L 7.824219 0 L 5.851563 0 L 5.851563 -3.945313 C 5.847656 -4.722656 5.808594 -5.21875 5.738281 -5.433594 C 5.660156 -5.640625 5.527344 -5.808594 5.339844 -5.9375 C 5.144531 -6.058594 4.90625 -6.121094 4.625 -6.125 C 4.292969 -6.121094 4 -6.042969 3.746094 -5.882813 C 3.484375 -5.722656 3.296875 -5.480469 3.179688 -5.164063 C 3.058594 -4.839844 3 -4.367188 3.003906 -3.742188 L 3.003906 0 L 1.027344 0 L 1.027344 -10.308594 Z M 3.003906 -10.308594 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 3.085938 0 L 0.078125 -7.46875 L 2.152344 -7.46875 L 3.558594 -3.65625 L 3.964844 -2.382813 C 4.070313 -2.703125 4.136719 -2.917969 4.167969 -3.023438 C 4.230469 -3.234375 4.300781 -3.445313 4.378906 -3.65625 L 5.800781 -7.46875 L 7.832031 -7.46875 L 4.867188 0 Z M 3.085938 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 2.925781 0 L 0.949219 0 L 0.949219 -7.46875 L 2.785156 -7.46875 L 2.785156 -6.40625 C 3.09375 -6.902344 3.375 -7.234375 3.628906 -7.394531 C 3.878906 -7.554688 4.164063 -7.632813 4.484375 -7.636719 C 4.929688 -7.632813 5.363281 -7.507813 5.785156 -7.261719 L 5.175781 -5.539063 C 4.839844 -5.75 4.53125 -5.859375 4.246094 -5.863281 C 3.96875 -5.859375 3.734375 -5.78125 3.542969 -5.632813 C 3.347656 -5.476563 3.195313 -5.203125 3.089844 -4.808594 C 2.976563 -4.40625 2.921875 -3.570313 2.925781 -2.304688 Z M 2.925781 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 0.578125 -3.839844 C 0.574219 -4.492188 0.734375 -5.128906 1.0625 -5.742188 C 1.382813 -6.355469 1.839844 -6.824219 2.433594 -7.148438 C 3.023438 -7.472656 3.6875 -7.632813 4.421875 -7.636719 C 5.550781 -7.632813 6.476563 -7.265625 7.199219 -6.535156 C 7.917969 -5.796875 8.277344 -4.871094 8.28125 -3.753906 C 8.277344 -2.621094 7.914063 -1.683594 7.1875 -0.945313 C 6.457031 -0.203125 5.539063 0.164063 4.4375 0.167969 C 3.75 0.164063 3.097656 0.0117188 2.476563 -0.292969 C 1.855469 -0.601563 1.382813 -1.054688 1.0625 -1.652344 C 0.734375 -2.25 0.574219 -2.976563 0.578125 -3.839844 Z M 2.601563 -3.734375 C 2.601563 -2.988281 2.777344 -2.421875 3.128906 -2.03125 C 3.480469 -1.636719 3.914063 -1.441406 4.429688 -1.441406 C 4.945313 -1.441406 5.375 -1.636719 5.726563 -2.03125 C 6.070313 -2.421875 6.246094 -2.992188 6.25 -3.746094 C 6.246094 -4.472656 6.070313 -5.035156 5.726563 -5.433594 C 5.375 -5.824219 4.945313 -6.023438 4.429688 -6.027344 C 3.914063 -6.023438 3.480469 -5.824219 3.128906 -5.433594 C 2.777344 -5.035156 2.601563 -4.46875 2.601563 -3.734375 Z M 2.601563 -3.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 7.824219 0 L 5.851563 0 L 5.851563 -3.8125 C 5.847656 -4.613281 5.804688 -5.132813 5.722656 -5.375 C 5.636719 -5.609375 5.5 -5.792969 5.3125 -5.925781 C 5.121094 -6.054688 4.890625 -6.121094 4.625 -6.125 C 4.28125 -6.121094 3.976563 -6.027344 3.703125 -5.84375 C 3.429688 -5.652344 3.242188 -5.40625 3.144531 -5.097656 C 3.042969 -4.785156 2.992188 -4.210938 2.996094 -3.382813 L 2.996094 0 L 1.019531 0 L 1.019531 -7.46875 L 2.855469 -7.46875 L 2.855469 -6.371094 C 3.503906 -7.210938 4.324219 -7.632813 5.316406 -7.636719 C 5.746094 -7.632813 6.144531 -7.554688 6.507813 -7.398438 C 6.867188 -7.238281 7.140625 -7.039063 7.328125 -6.796875 C 7.511719 -6.554688 7.640625 -6.277344 7.714844 -5.96875 C 7.785156 -5.65625 7.820313 -5.214844 7.824219 -4.640625 Z M 7.824219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-17">
+<path style="stroke:none;" d="M 7.304688 -7.785156 L 5.394531 -7.574219 C 5.34375 -7.964844 5.222656 -8.253906 5.027344 -8.445313 C 4.828125 -8.628906 4.570313 -8.722656 4.261719 -8.726563 C 3.839844 -8.722656 3.488281 -8.535156 3.203125 -8.164063 C 2.910156 -7.785156 2.726563 -7.003906 2.65625 -5.820313 C 3.144531 -6.398438 3.757813 -6.691406 4.492188 -6.695313 C 5.316406 -6.691406 6.023438 -6.375 6.613281 -5.75 C 7.199219 -5.117188 7.492188 -4.308594 7.496094 -3.320313 C 7.492188 -2.261719 7.183594 -1.414063 6.566406 -0.78125 C 5.945313 -0.140625 5.152344 0.175781 4.183594 0.175781 C 3.140625 0.175781 2.285156 -0.226563 1.617188 -1.035156 C 0.945313 -1.84375 0.609375 -3.167969 0.613281 -5.011719 C 0.609375 -6.898438 0.957031 -8.261719 1.660156 -9.097656 C 2.355469 -9.929688 3.261719 -10.347656 4.378906 -10.351563 C 5.160156 -10.347656 5.808594 -10.128906 6.324219 -9.691406 C 6.832031 -9.253906 7.160156 -8.617188 7.304688 -7.785156 Z M 2.828125 -3.472656 C 2.824219 -2.828125 2.972656 -2.332031 3.269531 -1.984375 C 3.5625 -1.632813 3.898438 -1.457031 4.28125 -1.460938 C 4.644531 -1.457031 4.949219 -1.601563 5.195313 -1.890625 C 5.4375 -2.175781 5.558594 -2.644531 5.5625 -3.296875 C 5.558594 -3.964844 5.429688 -4.457031 5.167969 -4.769531 C 4.902344 -5.082031 4.574219 -5.238281 4.183594 -5.238281 C 3.800781 -5.238281 3.476563 -5.085938 3.21875 -4.789063 C 2.953125 -4.488281 2.824219 -4.050781 2.828125 -3.472656 Z M 2.828125 -3.472656 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-18">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface46">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 356.820313 C 77.101563 360.421875 71.699219 360.421875 71.699219 356.820313 C 71.699219 353.21875 77.101563 353.21875 77.101563 356.820313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.382813 340.945313 C 97.382813 344.542969 91.980469 344.542969 91.980469 340.945313 C 91.980469 337.34375 97.382813 337.34375 97.382813 340.945313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.382813 340.945313 C 97.382813 344.542969 91.980469 344.542969 91.980469 340.945313 C 91.980469 337.34375 97.382813 337.34375 97.382813 340.945313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.605469 328.59375 C 113.605469 332.195313 108.207031 332.195313 108.207031 328.59375 C 108.207031 324.996094 113.605469 324.996094 113.605469 328.59375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 134.566406 310.953125 C 134.566406 314.554688 129.164063 314.554688 129.164063 310.953125 C 129.164063 307.355469 134.566406 307.355469 134.566406 310.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 156.875 293.3125 C 156.875 296.914063 151.476563 296.914063 151.476563 293.3125 C 151.476563 289.710938 156.875 289.710938 156.875 293.3125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.507813 275.671875 C 178.507813 279.273438 173.109375 279.273438 173.109375 275.671875 C 173.109375 272.070313 178.507813 272.070313 178.507813 275.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.507813 275.671875 C 178.507813 279.273438 173.109375 279.273438 173.109375 275.671875 C 173.109375 272.070313 178.507813 272.070313 178.507813 275.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.761719 261.558594 C 196.761719 265.160156 191.363281 265.160156 191.363281 261.558594 C 191.363281 257.957031 196.761719 257.957031 196.761719 261.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 219.070313 243.917969 C 219.070313 247.519531 213.671875 247.519531 213.671875 243.917969 C 213.671875 240.316406 219.070313 240.316406 219.070313 243.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 243.410156 224.511719 C 243.410156 228.113281 238.011719 228.113281 238.011719 224.511719 C 238.011719 220.914063 243.410156 220.914063 243.410156 224.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 266.394531 208.636719 C 266.394531 212.234375 260.996094 212.234375 260.996094 208.636719 C 260.996094 205.035156 266.394531 205.035156 266.394531 208.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 281.269531 198.050781 C 281.269531 201.652344 275.867188 201.652344 275.867188 198.050781 C 275.867188 194.453125 281.269531 194.453125 281.269531 198.050781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 307.636719 178.644531 C 307.636719 182.246094 302.234375 182.246094 302.234375 178.644531 C 302.234375 175.046875 307.636719 175.046875 307.636719 178.644531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 329.269531 162.769531 C 329.269531 166.371094 323.867188 166.371094 323.867188 162.769531 C 323.867188 159.167969 329.269531 159.167969 329.269531 162.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 350.226563 146.890625 C 350.226563 150.492188 344.828125 150.492188 344.828125 146.890625 C 344.828125 143.292969 350.226563 143.292969 350.226563 146.890625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 365.101563 136.308594 C 365.101563 139.90625 359.699219 139.90625 359.699219 136.308594 C 359.699219 132.707031 365.101563 132.707031 365.101563 136.308594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 389.4375 120.429688 C 389.4375 124.03125 384.039063 124.03125 384.039063 120.429688 C 384.039063 116.832031 389.4375 116.832031 389.4375 120.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.425781 104.554688 C 412.425781 108.152344 407.023438 108.152344 407.023438 104.554688 C 407.023438 100.953125 412.425781 100.953125 412.425781 104.554688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 440.816406 86.914063 C 440.816406 90.511719 435.417969 90.511719 435.417969 86.914063 C 435.417969 83.3125 440.816406 83.3125 440.816406 86.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 142.230469 430.558594 L 453.21875 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 142.230469 430.558594 L 142.230469 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 245.894531 430.558594 L 245.894531 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 349.554688 430.558594 L 349.554688 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 453.21875 430.558594 L 453.21875 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="138.894531" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="242.558594" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-3" x="346.21875" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-4" x="449.882813" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 414.59375 L 59.039063 104.996094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 414.59375 L 51.839844 414.59375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 362.996094 L 51.839844 362.996094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 311.394531 L 51.839844 311.394531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 259.792969 L 51.839844 259.792969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 208.195313 L 51.839844 208.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 156.59375 L 51.839844 156.59375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 104.996094 L 51.839844 104.996094 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="417.929688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="41.761719" y="366.332031"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-3" x="41.761719" y="314.730469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="41.761719" y="263.128906"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="41.761719" y="211.53125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="41.761719" y="159.929688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="108.332031"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="176.5625" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="186.961719" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="195.757813" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="203.766406" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="211.775" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="217.378906" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="226.175" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="234.971094" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="242.979687" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="246.980469" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="255.776562" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="263.785156" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="268.580469" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="273.375781" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="277.376563" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="285.385156" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="293.39375" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="297.394531" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="306.999219" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="311" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="319.409375" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="323.410156" y="34.675781"/>
+  <use xlink:href="#glyph2-17" x="331.41875" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="339.427344" y="34.675781"/>
+  <use xlink:href="#glyph2-18" x="343.428125" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-5" x="260.726563" y="485.28125"/>
+  <use xlink:href="#glyph0-6" x="267.400391" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 356.820313 C 77.101563 360.421875 71.699219 360.421875 71.699219 356.820313 C 71.699219 353.21875 77.101563 353.21875 77.101563 356.820313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.382813 340.945313 C 97.382813 344.542969 91.980469 344.542969 91.980469 340.945313 C 91.980469 337.34375 97.382813 337.34375 97.382813 340.945313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.382813 340.945313 C 97.382813 344.542969 91.980469 344.542969 91.980469 340.945313 C 91.980469 337.34375 97.382813 337.34375 97.382813 340.945313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.605469 328.59375 C 113.605469 332.195313 108.207031 332.195313 108.207031 328.59375 C 108.207031 324.996094 113.605469 324.996094 113.605469 328.59375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 134.566406 310.953125 C 134.566406 314.554688 129.164063 314.554688 129.164063 310.953125 C 129.164063 307.355469 134.566406 307.355469 134.566406 310.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 156.875 293.3125 C 156.875 296.914063 151.476563 296.914063 151.476563 293.3125 C 151.476563 289.710938 156.875 289.710938 156.875 293.3125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.507813 275.671875 C 178.507813 279.273438 173.109375 279.273438 173.109375 275.671875 C 173.109375 272.070313 178.507813 272.070313 178.507813 275.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.507813 275.671875 C 178.507813 279.273438 173.109375 279.273438 173.109375 275.671875 C 173.109375 272.070313 178.507813 272.070313 178.507813 275.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.761719 261.558594 C 196.761719 265.160156 191.363281 265.160156 191.363281 261.558594 C 191.363281 257.957031 196.761719 257.957031 196.761719 261.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 219.070313 243.917969 C 219.070313 247.519531 213.671875 247.519531 213.671875 243.917969 C 213.671875 240.316406 219.070313 240.316406 219.070313 243.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 243.410156 224.511719 C 243.410156 228.113281 238.011719 228.113281 238.011719 224.511719 C 238.011719 220.914063 243.410156 220.914063 243.410156 224.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 266.394531 208.636719 C 266.394531 212.234375 260.996094 212.234375 260.996094 208.636719 C 260.996094 205.035156 266.394531 205.035156 266.394531 208.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 281.269531 198.050781 C 281.269531 201.652344 275.867188 201.652344 275.867188 198.050781 C 275.867188 194.453125 281.269531 194.453125 281.269531 198.050781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 307.636719 178.644531 C 307.636719 182.246094 302.234375 182.246094 302.234375 178.644531 C 302.234375 175.046875 307.636719 175.046875 307.636719 178.644531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 329.269531 162.769531 C 329.269531 166.371094 323.867188 166.371094 323.867188 162.769531 C 323.867188 159.167969 329.269531 159.167969 329.269531 162.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 350.226563 146.890625 C 350.226563 150.492188 344.828125 150.492188 344.828125 146.890625 C 344.828125 143.292969 350.226563 143.292969 350.226563 146.890625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 365.101563 136.308594 C 365.101563 139.90625 359.699219 139.90625 359.699219 136.308594 C 359.699219 132.707031 365.101563 132.707031 365.101563 136.308594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 389.4375 120.429688 C 389.4375 124.03125 384.039063 124.03125 384.039063 120.429688 C 384.039063 116.832031 389.4375 116.832031 389.4375 120.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.425781 104.554688 C 412.425781 108.152344 407.023438 108.152344 407.023438 104.554688 C 407.023438 100.953125 412.425781 100.953125 412.425781 104.554688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 440.816406 86.914063 C 440.816406 90.511719 435.417969 90.511719 435.417969 86.914063 C 435.417969 83.3125 440.816406 83.3125 440.816406 86.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 357.878906 L 78.238281 354.671875 L 82.078125 351.472656 L 85.921875 348.285156 L 89.761719 345.097656 L 93.601563 341.921875 L 97.441406 338.753906 L 101.28125 335.589844 L 105.121094 332.433594 L 112.800781 326.144531 L 116.640625 323.011719 L 120.480469 319.886719 L 124.320313 316.765625 L 128.160156 313.652344 L 132 310.546875 L 135.839844 307.449219 L 139.679688 304.359375 L 143.519531 301.273438 L 147.359375 298.199219 L 151.199219 295.128906 L 155.039063 292.066406 L 158.878906 289.011719 L 162.71875 285.960938 L 166.558594 282.921875 L 170.398438 279.886719 L 174.238281 276.859375 L 178.078125 273.839844 L 181.921875 270.828125 L 185.761719 267.824219 L 189.601563 264.824219 L 193.441406 261.835938 L 197.28125 258.851563 L 201.121094 255.875 L 204.960938 252.90625 L 208.800781 249.941406 L 212.640625 246.988281 L 216.480469 244.039063 L 220.320313 241.097656 L 224.160156 238.164063 L 228 235.238281 L 231.839844 232.316406 L 235.679688 229.40625 L 239.519531 226.5 L 243.359375 223.601563 L 247.199219 220.710938 L 251.039063 217.828125 L 254.878906 214.949219 L 258.71875 212.082031 L 262.558594 209.21875 L 266.398438 206.363281 L 270.238281 203.515625 L 274.078125 200.675781 L 277.921875 197.839844 L 281.761719 195.015625 L 285.601563 192.195313 L 289.441406 189.382813 L 293.28125 186.578125 L 297.121094 183.777344 L 300.960938 180.988281 L 304.800781 178.203125 L 308.640625 175.429688 L 312.480469 172.660156 L 316.320313 169.894531 L 320.160156 167.140625 L 324 164.394531 L 327.839844 161.652344 L 331.679688 158.917969 L 335.519531 156.191406 L 339.359375 153.472656 L 343.199219 150.757813 L 347.039063 148.054688 L 350.878906 145.355469 L 354.71875 142.664063 L 358.558594 139.980469 L 362.398438 137.304688 L 366.238281 134.636719 L 370.078125 131.972656 L 373.921875 129.316406 L 377.761719 126.671875 L 381.601563 124.03125 L 385.441406 121.394531 L 389.28125 118.769531 L 393.121094 116.148438 L 396.960938 113.539063 L 400.800781 110.933594 L 404.640625 108.335938 L 408.480469 105.742188 L 412.320313 103.160156 L 416.160156 100.582031 L 420 98.015625 L 423.839844 95.453125 L 427.679688 92.894531 L 431.519531 90.347656 L 435.359375 87.808594 L 439.199219 85.273438 L 443.039063 82.746094 L 446.878906 80.226563 L 450.71875 77.714844 L 454.558594 75.210938 L 458.398438 72.710938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.582031 416.800781 L 78.21875 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 420.617188 L 74.398438 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 89.511719 402.6875 L 97.148438 402.6875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 93.328125 406.503906 L 93.328125 398.867188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 102.355469 395.628906 L 109.992188 395.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 106.175781 399.449219 L 106.175781 391.8125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 117.90625 385.046875 L 125.542969 385.046875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.722656 388.863281 L 121.722656 381.226563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 135.484375 374.460938 L 143.121094 374.460938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.300781 378.28125 L 139.300781 370.644531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 149.679688 365.640625 L 157.316406 365.640625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.5 369.460938 L 153.5 361.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 163.878906 356.820313 L 171.515625 356.820313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 167.695313 360.640625 L 167.695313 353.003906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 177.398438 349.765625 L 185.035156 349.765625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 181.21875 353.582031 L 181.21875 345.945313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 191.597656 342.707031 L 199.234375 342.707031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 195.414063 346.527344 L 195.414063 338.890625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 206.46875 333.886719 L 214.105469 333.886719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 210.289063 337.707031 L 210.289063 330.070313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 228.777344 321.539063 L 236.414063 321.539063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 232.597656 325.355469 L 232.597656 317.71875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 248.382813 310.953125 L 256.019531 310.953125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 252.203125 314.773438 L 252.203125 307.136719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 262.582031 303.898438 L 270.21875 303.898438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 266.398438 307.714844 L 266.398438 300.078125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 281.511719 293.3125 L 289.148438 293.3125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 285.328125 297.132813 L 285.328125 289.496094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 301.792969 284.492188 L 309.429688 284.492188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 305.609375 288.3125 L 305.609375 280.675781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 323.425781 272.144531 L 331.0625 272.144531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 327.246094 275.960938 L 327.246094 268.324219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.003906 266.851563 L 348.640625 266.851563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 344.824219 270.667969 L 344.824219 263.03125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 358.582031 258.03125 L 366.21875 258.03125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 362.398438 261.847656 L 362.398438 254.210938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 375.484375 250.972656 L 383.121094 250.972656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 379.300781 254.792969 L 379.300781 247.15625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 397.792969 242.152344 L 405.429688 242.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 401.609375 245.972656 L 401.609375 238.335938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 422.808594 231.570313 L 430.445313 231.570313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 426.625 235.386719 L 426.625 227.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 442.414063 224.511719 L 450.050781 224.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 446.230469 228.332031 L 446.230469 220.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.582031 219.21875 L 462.21875 219.21875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 223.039063 L 458.398438 215.402344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 415.8125 L 78.238281 413.285156 L 82.078125 410.773438 L 85.921875 408.269531 L 89.761719 405.777344 L 93.601563 403.300781 L 97.441406 400.832031 L 101.28125 398.375 L 105.121094 395.929688 L 108.960938 393.496094 L 112.800781 391.074219 L 116.640625 388.664063 L 120.480469 386.261719 L 124.320313 383.875 L 128.160156 381.496094 L 132 379.132813 L 135.839844 376.777344 L 139.679688 374.4375 L 143.519531 372.105469 L 147.359375 369.785156 L 151.199219 367.476563 L 155.039063 365.179688 L 158.878906 362.894531 L 162.71875 360.621094 L 166.558594 358.355469 L 170.398438 356.105469 L 174.238281 353.867188 L 178.078125 351.636719 L 181.921875 349.421875 L 185.761719 347.214844 L 189.601563 345.019531 L 193.441406 342.835938 L 197.28125 340.667969 L 201.121094 338.507813 L 204.960938 336.359375 L 208.800781 334.21875 L 212.640625 332.09375 L 216.480469 329.980469 L 220.320313 327.878906 L 224.160156 325.785156 L 228 323.707031 L 231.839844 321.636719 L 235.679688 319.578125 L 239.519531 317.535156 L 243.359375 315.5 L 247.199219 313.476563 L 251.039063 311.464844 L 254.878906 309.464844 L 258.71875 307.476563 L 262.558594 305.496094 L 266.398438 303.53125 L 270.238281 301.578125 L 274.078125 299.632813 L 277.921875 297.703125 L 281.761719 295.78125 L 285.601563 293.871094 L 289.441406 291.972656 L 293.28125 290.089844 L 297.121094 288.214844 L 300.960938 286.351563 L 304.800781 284.496094 L 308.640625 282.65625 L 312.480469 280.828125 L 316.320313 279.011719 L 320.160156 277.203125 L 324 275.410156 L 327.839844 273.625 L 331.679688 271.851563 L 335.519531 270.09375 L 339.359375 268.34375 L 343.199219 266.605469 L 347.039063 264.878906 L 350.878906 263.164063 L 354.71875 261.460938 L 358.558594 259.769531 L 362.398438 258.085938 L 366.238281 256.417969 L 370.078125 254.757813 L 373.921875 253.113281 L 377.761719 251.476563 L 381.601563 249.855469 L 385.441406 248.242188 L 389.28125 246.640625 L 393.121094 245.050781 L 396.960938 243.472656 L 400.800781 241.90625 L 404.640625 240.351563 L 408.480469 238.804688 L 412.320313 237.273438 L 416.160156 235.753906 L 420 234.242188 L 423.839844 232.746094 L 427.679688 231.257813 L 431.519531 229.78125 L 435.359375 228.316406 L 439.199219 226.863281 L 443.039063 225.425781 L 446.878906 223.992188 L 450.71875 222.574219 L 454.558594 221.167969 L 458.398438 219.773438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-8" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-9" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-8" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-9" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="338.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="344.705078" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="351.378906" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="356.048828" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="361.679688" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="368.353516" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="371.6875" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="378.695313" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="382.029297" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="388.703125" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="392.037109" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="398.710938" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="405.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="412.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="418.732422" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="423.402344" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="426.736328" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="433.744141" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="437.078125" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="443.751953" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="447.085938" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="453.759766" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-8" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="331.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="338.03125" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="344.705078" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="349.375" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="355.005859" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="361.679688" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="365.013672" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="372.021484" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="375.355469" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="382.029297" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="385.363281" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="392.037109" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="398.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="405.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="412.058594" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="416.728516" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="420.0625" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="427.070313" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="430.404297" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="437.078125" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="440.412109" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="447.085938" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="453.759766" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_plans_slope_10_.svg b/docs/en/calculators/par/baffle_fishway_plans_slope_10_.svg
new file mode 100644
index 000000000..7138f949a
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_plans_slope_10_.svg
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 7.4375 -0.921875 C 7.960938 -0.554688 8.449219 -0.289063 8.894531 -0.125 L 8.5625 0.667969 C 7.9375 0.445313 7.324219 0.09375 6.714844 -0.386719 C 6.074219 -0.03125 5.371094 0.144531 4.605469 0.148438 C 3.824219 0.144531 3.117188 -0.0390625 2.488281 -0.414063 C 1.851563 -0.785156 1.363281 -1.3125 1.027344 -1.996094 C 0.683594 -2.671875 0.515625 -3.4375 0.515625 -4.296875 C 0.515625 -5.140625 0.6875 -5.914063 1.03125 -6.609375 C 1.375 -7.304688 1.863281 -7.832031 2.5 -8.195313 C 3.132813 -8.558594 3.84375 -8.742188 4.628906 -8.742188 C 5.421875 -8.742188 6.136719 -8.550781 6.773438 -8.175781 C 7.40625 -7.792969 7.890625 -7.265625 8.226563 -6.59375 C 8.5625 -5.914063 8.730469 -5.152344 8.730469 -4.300781 C 8.730469 -3.59375 8.621094 -2.957031 8.40625 -2.394531 C 8.191406 -1.828125 7.867188 -1.335938 7.4375 -0.921875 Z M 4.933594 -2.375 C 5.589844 -2.1875 6.128906 -1.914063 6.554688 -1.554688 C 7.222656 -2.160156 7.558594 -3.078125 7.558594 -4.300781 C 7.558594 -4.996094 7.4375 -5.601563 7.203125 -6.121094 C 6.964844 -6.640625 6.621094 -7.042969 6.167969 -7.332031 C 5.710938 -7.617188 5.199219 -7.761719 4.632813 -7.765625 C 3.785156 -7.761719 3.082031 -7.472656 2.523438 -6.894531 C 1.964844 -6.3125 1.6875 -5.445313 1.6875 -4.296875 C 1.6875 -3.171875 1.960938 -2.316406 2.515625 -1.722656 C 3.0625 -1.125 3.769531 -0.824219 4.632813 -0.828125 C 5.035156 -0.824219 5.417969 -0.902344 5.78125 -1.054688 C 5.425781 -1.28125 5.050781 -1.445313 4.65625 -1.546875 Z M 4.933594 -2.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.878906 0 L 0.878906 -8.589844 L 2.015625 -8.589844 L 2.015625 -1.015625 L 6.246094 -1.015625 L 6.246094 0 Z M 0.878906 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -4.234375 -0.5 C -5.246094 -0.496094 -6.0625 -0.601563 -6.6875 -0.8125 C -7.304688 -1.019531 -7.785156 -1.328125 -8.121094 -1.742188 C -8.457031 -2.152344 -8.625 -2.671875 -8.625 -3.300781 C -8.625 -3.757813 -8.53125 -4.164063 -8.347656 -4.511719 C -8.160156 -4.859375 -7.890625 -5.144531 -7.542969 -5.371094 C -7.191406 -5.59375 -6.765625 -5.773438 -6.265625 -5.90625 C -5.761719 -6.035156 -5.085938 -6.097656 -4.234375 -6.101563 C -3.222656 -6.097656 -2.410156 -5.996094 -1.792969 -5.789063 C -1.175781 -5.578125 -0.695313 -5.265625 -0.359375 -4.859375 C -0.0195313 -4.445313 0.144531 -3.925781 0.148438 -3.296875 C 0.144531 -2.464844 -0.148438 -1.816406 -0.742188 -1.347656 C -1.457031 -0.78125 -2.621094 -0.496094 -4.234375 -0.5 Z M -4.234375 -1.582031 C -2.824219 -1.582031 -1.886719 -1.746094 -1.417969 -2.074219 C -0.949219 -2.402344 -0.714844 -2.808594 -0.71875 -3.296875 C -0.714844 -3.777344 -0.949219 -4.183594 -1.421875 -4.519531 C -1.886719 -4.847656 -2.824219 -5.015625 -4.234375 -5.015625 C -5.648438 -5.015625 -6.589844 -4.847656 -7.054688 -4.519531 C -7.515625 -4.1875 -7.746094 -3.777344 -7.75 -3.289063 C -7.746094 -2.800781 -7.542969 -2.414063 -7.136719 -2.128906 C -6.613281 -1.761719 -5.644531 -1.582031 -4.234375 -1.582031 Z M -4.234375 -1.582031 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0 -1.089844 L -1.203125 -1.089844 L -1.199219 -2.289063 L 0 -2.289063 Z M 0 -1.089844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -0.878906 L -8.589844 -0.878906 L -8.589844 -2.015625 L -1.011719 -2.015625 L -1.011719 -6.246094 L 0 -6.246094 Z M 0 -0.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 0.976563 -7.46875 L 2.820313 -7.46875 L 2.820313 -6.371094 C 3.054688 -6.742188 3.378906 -7.046875 3.789063 -7.285156 C 4.195313 -7.515625 4.648438 -7.632813 5.148438 -7.636719 C 6.011719 -7.632813 6.746094 -7.292969 7.355469 -6.617188 C 7.957031 -5.933594 8.261719 -4.988281 8.261719 -3.777344 C 8.261719 -2.527344 7.957031 -1.558594 7.347656 -0.867188 C 6.738281 -0.179688 6 0.164063 5.132813 0.167969 C 4.71875 0.164063 4.34375 0.0859375 4.011719 -0.078125 C 3.671875 -0.238281 3.320313 -0.519531 2.953125 -0.921875 L 2.953125 2.839844 L 0.976563 2.839844 Z M 2.933594 -3.859375 C 2.929688 -3.019531 3.09375 -2.398438 3.429688 -2 C 3.757813 -1.59375 4.164063 -1.394531 4.648438 -1.398438 C 5.101563 -1.394531 5.484375 -1.578125 5.792969 -1.949219 C 6.09375 -2.316406 6.246094 -2.921875 6.25 -3.761719 C 6.246094 -4.542969 6.089844 -5.121094 5.777344 -5.503906 C 5.464844 -5.878906 5.074219 -6.070313 4.613281 -6.074219 C 4.125 -6.070313 3.726563 -5.882813 3.410156 -5.515625 C 3.089844 -5.140625 2.929688 -4.589844 2.933594 -3.859375 Z M 2.933594 -3.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 7.824219 0 L 5.851563 0 L 5.851563 -3.8125 C 5.847656 -4.613281 5.804688 -5.132813 5.722656 -5.375 C 5.636719 -5.609375 5.5 -5.792969 5.3125 -5.925781 C 5.121094 -6.054688 4.890625 -6.121094 4.625 -6.125 C 4.28125 -6.121094 3.976563 -6.027344 3.703125 -5.84375 C 3.429688 -5.652344 3.242188 -5.40625 3.144531 -5.097656 C 3.042969 -4.785156 2.992188 -4.210938 2.996094 -3.382813 L 2.996094 0 L 1.019531 0 L 1.019531 -7.46875 L 2.855469 -7.46875 L 2.855469 -6.371094 C 3.503906 -7.210938 4.324219 -7.632813 5.316406 -7.636719 C 5.746094 -7.632813 6.144531 -7.554688 6.507813 -7.398438 C 6.867188 -7.238281 7.140625 -7.039063 7.328125 -6.796875 C 7.511719 -6.554688 7.640625 -6.277344 7.714844 -5.96875 C 7.785156 -5.65625 7.820313 -5.214844 7.824219 -4.640625 Z M 7.824219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 3.953125 -10.351563 C 4.949219 -10.347656 5.730469 -9.992188 6.292969 -9.28125 C 6.960938 -8.4375 7.292969 -7.035156 7.296875 -5.082031 C 7.292969 -3.128906 6.957031 -1.730469 6.285156 -0.878906 C 5.726563 -0.175781 4.949219 0.175781 3.953125 0.175781 C 2.945313 0.175781 2.136719 -0.207031 1.523438 -0.980469 C 0.910156 -1.746094 0.601563 -3.121094 0.605469 -5.105469 C 0.601563 -7.042969 0.941406 -8.441406 1.617188 -9.296875 C 2.171875 -9.996094 2.949219 -10.347656 3.953125 -10.351563 Z M 3.953125 -8.710938 C 3.710938 -8.707031 3.496094 -8.628906 3.3125 -8.480469 C 3.121094 -8.324219 2.976563 -8.054688 2.875 -7.664063 C 2.738281 -7.152344 2.671875 -6.289063 2.671875 -5.082031 C 2.671875 -3.871094 2.730469 -3.042969 2.855469 -2.589844 C 2.972656 -2.136719 3.128906 -1.835938 3.316406 -1.6875 C 3.5 -1.535156 3.710938 -1.457031 3.953125 -1.460938 C 4.1875 -1.457031 4.398438 -1.535156 4.589844 -1.6875 C 4.773438 -1.839844 4.921875 -2.113281 5.027344 -2.511719 C 5.160156 -3.015625 5.226563 -3.871094 5.230469 -5.082031 C 5.226563 -6.289063 5.164063 -7.121094 5.046875 -7.574219 C 4.921875 -8.023438 4.769531 -8.324219 4.585938 -8.480469 C 4.398438 -8.628906 4.1875 -8.707031 3.953125 -8.710938 Z M 3.953125 -8.710938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface1">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 89.644531 402.128906 C 89.644531 405.730469 84.242188 405.730469 84.242188 402.128906 C 84.242188 398.53125 89.644531 398.53125 89.644531 402.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 104.539063 388.683594 C 104.539063 392.285156 99.140625 392.285156 99.140625 388.683594 C 99.140625 385.082031 104.539063 385.082031 104.539063 388.683594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.042969 375.238281 C 119.042969 378.835938 113.644531 378.835938 113.644531 375.238281 C 113.644531 371.636719 119.042969 371.636719 119.042969 375.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.347656 352.007813 C 143.347656 355.609375 137.949219 355.609375 137.949219 352.007813 C 137.949219 348.410156 143.347656 348.410156 143.347656 352.007813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.59375 336.117188 C 160.59375 339.71875 155.195313 339.71875 155.195313 336.117188 C 155.195313 332.519531 160.59375 332.519531 160.59375 336.117188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 175.492188 321.449219 C 175.492188 325.046875 170.089844 325.046875 170.089844 321.449219 C 170.089844 317.847656 175.492188 317.847656 175.492188 321.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.601563 308 C 189.601563 311.601563 184.203125 311.601563 184.203125 308 C 184.203125 304.402344 189.601563 304.402344 189.601563 308 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 206.457031 292.109375 C 206.457031 295.710938 201.058594 295.710938 201.058594 292.109375 C 201.058594 288.507813 206.457031 288.507813 206.457031 292.109375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 218.609375 282.328125 C 218.609375 285.929688 213.210938 285.929688 213.210938 282.328125 C 213.210938 278.730469 218.609375 278.730469 218.609375 282.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 233.507813 268.882813 C 233.507813 272.484375 228.105469 272.484375 228.105469 268.882813 C 228.105469 265.28125 233.507813 265.28125 233.507813 268.882813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.875 259.101563 C 244.875 262.703125 239.472656 262.703125 239.472656 259.101563 C 239.472656 255.503906 244.875 255.503906 244.875 259.101563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 254.675781 249.324219 C 254.675781 252.921875 249.273438 252.921875 249.273438 249.324219 C 249.273438 245.722656 254.675781 245.722656 254.675781 249.324219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.347656 219.984375 C 290.347656 223.585938 284.945313 223.585938 284.945313 219.984375 C 284.945313 216.382813 290.347656 216.382813 290.347656 219.984375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 312.296875 204.09375 C 312.296875 207.691406 306.898438 207.691406 306.898438 204.09375 C 306.898438 200.492188 312.296875 200.492188 312.296875 204.09375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.378906 166.195313 C 357.378906 169.796875 351.976563 169.796875 351.976563 166.195313 C 351.976563 162.597656 357.378906 162.597656 357.378906 166.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 405.203125 130.746094 C 405.203125 134.34375 399.800781 134.34375 399.800781 130.746094 C 399.800781 127.144531 405.203125 127.144531 405.203125 130.746094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.164063 100.671875 C 444.164063 104.273438 438.765625 104.273438 438.765625 100.671875 C 438.765625 97.070313 444.164063 97.070313 444.164063 100.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 87.46875 C 461.101563 91.070313 455.699219 91.070313 455.699219 87.46875 C 455.699219 83.871094 461.101563 83.871094 461.101563 87.46875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.410156 430.558594 L 457.96875 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.410156 430.558594 L 67.410156 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 123.203125 430.558594 L 123.203125 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.996094 430.558594 L 178.996094 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.792969 430.558594 L 234.792969 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.585938 430.558594 L 290.585938 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.378906 430.558594 L 346.378906 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.175781 430.558594 L 402.175781 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 457.96875 430.558594 L 457.96875 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="55.730469" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="62.404297" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="65.738281" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="72.412109" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="111.523438" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="118.197266" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="121.53125" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="128.205078" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="167.316406" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="173.990234" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="177.324219" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="183.998047" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="223.113281" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="229.787109" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="233.121094" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="239.794922" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="278.90625" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="285.580078" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="288.914063" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="295.587891" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="334.699219" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="341.373047" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="344.707031" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="351.380859" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="390.496094" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="397.169922" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="400.503906" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="407.177734" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="446.289063" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="452.962891" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="456.296875" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="462.970703" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 380.328125 L 59.039063 69.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 380.328125 L 51.839844 380.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 318.1875 L 51.839844 318.1875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 256.046875 L 51.839844 256.046875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 193.90625 L 51.839844 193.90625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 131.761719 L 51.839844 131.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 69.621094 L 51.839844 69.621094 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="388.667969"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="381.994141"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="378.660156"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="326.527344"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="319.853516"/>
+  <use xlink:href="#glyph1-4" x="41.761719" y="316.519531"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="264.386719"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="257.712891"/>
+  <use xlink:href="#glyph1-5" x="41.761719" y="254.378906"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="41.761719" y="202.246094"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="195.572266"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="192.238281"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="41.761719" y="140.101563"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="133.427734"/>
+  <use xlink:href="#glyph1-7" x="41.761719" y="130.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="41.761719" y="77.960938"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="71.287109"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="67.953125"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="190.96875" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="199.764844" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="203.765625" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="211.774219" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="220.570313" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="228.578906" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="232.579687" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="241.375781" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="249.384375" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="254.179687" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="258.975" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="262.975781" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="270.984375" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="278.992969" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="282.99375" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="292.598437" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="296.599219" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="305.008594" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="309.009375" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="317.017969" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="325.026562" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="329.027344" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="259.398438" y="485.28125"/>
+  <use xlink:href="#glyph0-8" x="268.732422" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-14" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 89.644531 402.128906 C 89.644531 405.730469 84.242188 405.730469 84.242188 402.128906 C 84.242188 398.53125 89.644531 398.53125 89.644531 402.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 104.539063 388.683594 C 104.539063 392.285156 99.140625 392.285156 99.140625 388.683594 C 99.140625 385.082031 104.539063 385.082031 104.539063 388.683594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.042969 375.238281 C 119.042969 378.835938 113.644531 378.835938 113.644531 375.238281 C 113.644531 371.636719 119.042969 371.636719 119.042969 375.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.347656 352.007813 C 143.347656 355.609375 137.949219 355.609375 137.949219 352.007813 C 137.949219 348.410156 143.347656 348.410156 143.347656 352.007813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.59375 336.117188 C 160.59375 339.71875 155.195313 339.71875 155.195313 336.117188 C 155.195313 332.519531 160.59375 332.519531 160.59375 336.117188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 175.492188 321.449219 C 175.492188 325.046875 170.089844 325.046875 170.089844 321.449219 C 170.089844 317.847656 175.492188 317.847656 175.492188 321.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.601563 308 C 189.601563 311.601563 184.203125 311.601563 184.203125 308 C 184.203125 304.402344 189.601563 304.402344 189.601563 308 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 206.457031 292.109375 C 206.457031 295.710938 201.058594 295.710938 201.058594 292.109375 C 201.058594 288.507813 206.457031 288.507813 206.457031 292.109375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 218.609375 282.328125 C 218.609375 285.929688 213.210938 285.929688 213.210938 282.328125 C 213.210938 278.730469 218.609375 278.730469 218.609375 282.328125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 233.507813 268.882813 C 233.507813 272.484375 228.105469 272.484375 228.105469 268.882813 C 228.105469 265.28125 233.507813 265.28125 233.507813 268.882813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.875 259.101563 C 244.875 262.703125 239.472656 262.703125 239.472656 259.101563 C 239.472656 255.503906 244.875 255.503906 244.875 259.101563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 254.675781 249.324219 C 254.675781 252.921875 249.273438 252.921875 249.273438 249.324219 C 249.273438 245.722656 254.675781 245.722656 254.675781 249.324219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.347656 219.984375 C 290.347656 223.585938 284.945313 223.585938 284.945313 219.984375 C 284.945313 216.382813 290.347656 216.382813 290.347656 219.984375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 312.296875 204.09375 C 312.296875 207.691406 306.898438 207.691406 306.898438 204.09375 C 306.898438 200.492188 312.296875 200.492188 312.296875 204.09375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.378906 166.195313 C 357.378906 169.796875 351.976563 169.796875 351.976563 166.195313 C 351.976563 162.597656 357.378906 162.597656 357.378906 166.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 405.203125 130.746094 C 405.203125 134.34375 399.800781 134.34375 399.800781 130.746094 C 399.800781 127.144531 405.203125 127.144531 405.203125 130.746094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.164063 100.671875 C 444.164063 104.273438 438.765625 104.273438 438.765625 100.671875 C 438.765625 97.070313 444.164063 97.070313 444.164063 100.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 87.46875 C 461.101563 91.070313 455.699219 91.070313 455.699219 87.46875 C 455.699219 83.871094 461.101563 83.871094 461.101563 87.46875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 415.859375 L 78.238281 412.035156 L 82.078125 408.222656 L 85.921875 404.421875 L 89.761719 400.632813 L 93.601563 396.855469 L 97.441406 393.089844 L 101.28125 389.332031 L 105.121094 385.585938 L 108.960938 381.851563 L 112.800781 378.128906 L 116.640625 374.417969 L 120.480469 370.71875 L 124.320313 367.027344 L 128.160156 363.351563 L 132 359.683594 L 135.839844 356.027344 L 139.679688 352.382813 L 143.519531 348.75 L 147.359375 345.125 L 151.199219 341.515625 L 155.039063 337.914063 L 158.878906 334.324219 L 162.71875 330.746094 L 166.558594 327.179688 L 170.398438 323.625 L 174.238281 320.078125 L 178.078125 316.542969 L 181.921875 313.023438 L 185.761719 309.511719 L 189.601563 306.011719 L 193.441406 302.519531 L 197.28125 299.042969 L 201.121094 295.578125 L 204.960938 292.121094 L 208.800781 288.675781 L 212.640625 285.242188 L 216.480469 281.820313 L 220.320313 278.410156 L 224.160156 275.007813 L 228 271.621094 L 231.839844 268.242188 L 235.679688 264.875 L 239.519531 261.519531 L 243.359375 258.175781 L 247.199219 254.839844 L 251.039063 251.519531 L 254.878906 248.207031 L 258.71875 244.90625 L 262.558594 241.617188 L 266.398438 238.339844 L 270.238281 235.074219 L 274.078125 231.816406 L 277.921875 228.574219 L 281.761719 225.339844 L 285.601563 222.117188 L 289.441406 218.90625 L 293.28125 215.707031 L 297.121094 212.519531 L 300.960938 209.339844 L 304.800781 206.171875 L 308.640625 203.019531 L 312.480469 199.875 L 316.320313 196.742188 L 320.160156 193.617188 L 324 190.507813 L 327.839844 187.40625 L 331.679688 184.320313 L 335.519531 181.242188 L 339.359375 178.175781 L 343.199219 175.121094 L 347.039063 172.074219 L 350.878906 169.042969 L 354.71875 166.019531 L 358.558594 163.007813 L 362.398438 160.007813 L 366.238281 157.019531 L 370.078125 154.042969 L 373.921875 151.078125 L 377.761719 148.121094 L 381.601563 145.179688 L 385.441406 142.246094 L 389.28125 139.324219 L 393.121094 136.414063 L 396.960938 133.511719 L 400.800781 130.625 L 404.640625 127.746094 L 408.480469 124.878906 L 412.320313 122.023438 L 416.160156 119.179688 L 420 116.347656 L 423.839844 113.527344 L 427.679688 110.714844 L 431.519531 107.917969 L 435.359375 105.128906 L 439.199219 102.351563 L 443.039063 99.585938 L 446.878906 96.828125 L 450.71875 94.085938 L 454.558594 91.351563 L 458.398438 88.632813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 71.207031 374.992188 L 78.84375 374.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 75.027344 378.808594 L 75.027344 371.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 89.082031 358.855469 L 96.71875 358.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 92.902344 362.671875 L 92.902344 355.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 107.820313 342.230469 L 115.457031 342.230469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 111.640625 346.046875 L 111.640625 338.410156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 135.261719 317.78125 L 142.898438 317.78125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.078125 321.597656 L 139.078125 313.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.683594 300.667969 L 161.320313 300.667969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 157.503906 304.484375 L 157.503906 296.847656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 208.957031 252.992188 L 216.59375 252.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 212.773438 256.808594 L 212.773438 249.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 227.378906 238.320313 L 235.015625 238.320313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.199219 242.140625 L 231.199219 234.503906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 254.820313 215.09375 L 262.457031 215.09375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 258.636719 218.914063 L 258.636719 211.277344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 273.242188 200.425781 L 280.878906 200.425781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 277.0625 204.242188 L 277.0625 196.605469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 319.890625 166.195313 L 327.527344 166.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 323.710938 170.015625 L 323.710938 162.378906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 347.722656 144.191406 L 355.359375 144.191406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 351.542969 148.011719 L 351.542969 140.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 384.570313 117.296875 L 392.207031 117.296875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 388.390625 121.117188 L 388.390625 113.480469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.714844 99.207031 L 420.351563 99.207031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 416.535156 103.023438 L 416.535156 95.386719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 431.0625 84.535156 L 438.699219 84.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 434.878906 88.355469 L 434.878906 80.71875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 449.878906 72.800781 L 457.515625 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 453.695313 76.617188 L 453.695313 68.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 75.027344 375.523438 L 78.8125 371.980469 L 82.601563 368.453125 L 86.386719 364.933594 L 90.175781 361.421875 L 93.960938 357.921875 L 97.746094 354.433594 L 101.535156 350.957031 L 105.320313 347.488281 L 109.105469 344.03125 L 112.894531 340.582031 L 116.679688 337.148438 L 120.46875 333.71875 L 124.253906 330.304688 L 128.039063 326.898438 L 131.828125 323.503906 L 135.613281 320.117188 L 139.402344 316.742188 L 143.1875 313.378906 L 146.972656 310.027344 L 150.761719 306.683594 L 154.546875 303.347656 L 158.335938 300.027344 L 162.121094 296.714844 L 165.90625 293.414063 L 169.695313 290.121094 L 173.480469 286.839844 L 177.269531 283.570313 L 181.054688 280.308594 L 184.839844 277.058594 L 188.628906 273.820313 L 192.414063 270.589844 L 196.203125 267.371094 L 199.988281 264.164063 L 203.773438 260.964844 L 207.5625 257.777344 L 211.347656 254.601563 L 215.132813 251.433594 L 218.921875 248.277344 L 222.707031 245.132813 L 226.496094 241.996094 L 230.28125 238.871094 L 234.066406 235.753906 L 237.855469 232.648438 L 241.640625 229.554688 L 245.429688 226.472656 L 249.214844 223.398438 L 253 220.335938 L 256.789063 217.28125 L 260.574219 214.242188 L 264.363281 211.207031 L 268.148438 208.1875 L 271.933594 205.175781 L 275.722656 202.175781 L 279.507813 199.183594 L 283.296875 196.203125 L 287.082031 193.234375 L 290.867188 190.277344 L 294.65625 187.328125 L 298.441406 184.390625 L 302.226563 181.460938 L 306.015625 178.542969 L 309.800781 175.636719 L 313.589844 172.738281 L 317.375 169.851563 L 321.160156 166.976563 L 324.949219 164.109375 L 328.734375 161.253906 L 332.523438 158.410156 L 336.308594 155.574219 L 340.09375 152.75 L 343.882813 149.9375 L 347.667969 147.132813 L 351.457031 144.339844 L 355.242188 141.558594 L 359.027344 138.785156 L 362.816406 136.023438 L 366.601563 133.273438 L 370.390625 130.53125 L 374.175781 127.800781 L 377.960938 125.078125 L 381.75 122.371094 L 385.535156 119.667969 L 389.324219 116.980469 L 393.109375 114.300781 L 396.894531 111.632813 L 400.683594 108.976563 L 404.46875 106.328125 L 408.253906 103.691406 L 412.042969 101.0625 L 415.828125 98.445313 L 419.617188 95.839844 L 423.402344 93.246094 L 427.1875 90.660156 L 430.976563 88.082031 L 434.761719 85.519531 L 438.550781 82.964844 L 442.335938 80.421875 L 446.121094 77.886719 L 449.910156 75.363281 L 453.695313 72.851563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="340.691406" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="345.361328" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="350.992188" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="357.666016" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="361" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="368.007813" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="371.341797" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="378.015625" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="381.349609" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="388.023438" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="394.697266" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="404.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="408.701172" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="412.035156" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="419.042969" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="422.376953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="429.050781" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="432.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="439.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="445.732422" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="334.017578" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="338.6875" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="344.318359" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="350.992188" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="354.326172" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="361.333984" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="364.667969" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="371.341797" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="374.675781" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="381.349609" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="388.023438" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="397.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="402.027344" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="405.361328" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="412.369141" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="415.703125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="422.376953" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="425.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="432.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="439.058594" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_plans_slope_15_.svg b/docs/en/calculators/par/baffle_fishway_plans_slope_15_.svg
new file mode 100644
index 000000000..9b3ea6ead
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_plans_slope_15_.svg
@@ -0,0 +1,464 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 7.4375 -0.921875 C 7.960938 -0.554688 8.449219 -0.289063 8.894531 -0.125 L 8.5625 0.667969 C 7.9375 0.445313 7.324219 0.09375 6.714844 -0.386719 C 6.074219 -0.03125 5.371094 0.144531 4.605469 0.148438 C 3.824219 0.144531 3.117188 -0.0390625 2.488281 -0.414063 C 1.851563 -0.785156 1.363281 -1.3125 1.027344 -1.996094 C 0.683594 -2.671875 0.515625 -3.4375 0.515625 -4.296875 C 0.515625 -5.140625 0.6875 -5.914063 1.03125 -6.609375 C 1.375 -7.304688 1.863281 -7.832031 2.5 -8.195313 C 3.132813 -8.558594 3.84375 -8.742188 4.628906 -8.742188 C 5.421875 -8.742188 6.136719 -8.550781 6.773438 -8.175781 C 7.40625 -7.792969 7.890625 -7.265625 8.226563 -6.59375 C 8.5625 -5.914063 8.730469 -5.152344 8.730469 -4.300781 C 8.730469 -3.59375 8.621094 -2.957031 8.40625 -2.394531 C 8.191406 -1.828125 7.867188 -1.335938 7.4375 -0.921875 Z M 4.933594 -2.375 C 5.589844 -2.1875 6.128906 -1.914063 6.554688 -1.554688 C 7.222656 -2.160156 7.558594 -3.078125 7.558594 -4.300781 C 7.558594 -4.996094 7.4375 -5.601563 7.203125 -6.121094 C 6.964844 -6.640625 6.621094 -7.042969 6.167969 -7.332031 C 5.710938 -7.617188 5.199219 -7.761719 4.632813 -7.765625 C 3.785156 -7.761719 3.082031 -7.472656 2.523438 -6.894531 C 1.964844 -6.3125 1.6875 -5.445313 1.6875 -4.296875 C 1.6875 -3.171875 1.960938 -2.316406 2.515625 -1.722656 C 3.0625 -1.125 3.769531 -0.824219 4.632813 -0.828125 C 5.035156 -0.824219 5.417969 -0.902344 5.78125 -1.054688 C 5.425781 -1.28125 5.050781 -1.445313 4.65625 -1.546875 Z M 4.933594 -2.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.878906 0 L 0.878906 -8.589844 L 2.015625 -8.589844 L 2.015625 -1.015625 L 6.246094 -1.015625 L 6.246094 0 Z M 0.878906 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -4.234375 -0.5 C -5.246094 -0.496094 -6.0625 -0.601563 -6.6875 -0.8125 C -7.304688 -1.019531 -7.785156 -1.328125 -8.121094 -1.742188 C -8.457031 -2.152344 -8.625 -2.671875 -8.625 -3.300781 C -8.625 -3.757813 -8.53125 -4.164063 -8.347656 -4.511719 C -8.160156 -4.859375 -7.890625 -5.144531 -7.542969 -5.371094 C -7.191406 -5.59375 -6.765625 -5.773438 -6.265625 -5.90625 C -5.761719 -6.035156 -5.085938 -6.097656 -4.234375 -6.101563 C -3.222656 -6.097656 -2.410156 -5.996094 -1.792969 -5.789063 C -1.175781 -5.578125 -0.695313 -5.265625 -0.359375 -4.859375 C -0.0195313 -4.445313 0.144531 -3.925781 0.148438 -3.296875 C 0.144531 -2.464844 -0.148438 -1.816406 -0.742188 -1.347656 C -1.457031 -0.78125 -2.621094 -0.496094 -4.234375 -0.5 Z M -4.234375 -1.582031 C -2.824219 -1.582031 -1.886719 -1.746094 -1.417969 -2.074219 C -0.949219 -2.402344 -0.714844 -2.808594 -0.71875 -3.296875 C -0.714844 -3.777344 -0.949219 -4.183594 -1.421875 -4.519531 C -1.886719 -4.847656 -2.824219 -5.015625 -4.234375 -5.015625 C -5.648438 -5.015625 -6.589844 -4.847656 -7.054688 -4.519531 C -7.515625 -4.1875 -7.746094 -3.777344 -7.75 -3.289063 C -7.746094 -2.800781 -7.542969 -2.414063 -7.136719 -2.128906 C -6.613281 -1.761719 -5.644531 -1.582031 -4.234375 -1.582031 Z M -4.234375 -1.582031 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0 -1.089844 L -1.203125 -1.089844 L -1.199219 -2.289063 L 0 -2.289063 Z M 0 -1.089844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -0.878906 L -8.589844 -0.878906 L -8.589844 -2.015625 L -1.011719 -2.015625 L -1.011719 -6.246094 L 0 -6.246094 Z M 0 -0.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 0.976563 -7.46875 L 2.820313 -7.46875 L 2.820313 -6.371094 C 3.054688 -6.742188 3.378906 -7.046875 3.789063 -7.285156 C 4.195313 -7.515625 4.648438 -7.632813 5.148438 -7.636719 C 6.011719 -7.632813 6.746094 -7.292969 7.355469 -6.617188 C 7.957031 -5.933594 8.261719 -4.988281 8.261719 -3.777344 C 8.261719 -2.527344 7.957031 -1.558594 7.347656 -0.867188 C 6.738281 -0.179688 6 0.164063 5.132813 0.167969 C 4.71875 0.164063 4.34375 0.0859375 4.011719 -0.078125 C 3.671875 -0.238281 3.320313 -0.519531 2.953125 -0.921875 L 2.953125 2.839844 L 0.976563 2.839844 Z M 2.933594 -3.859375 C 2.929688 -3.019531 3.09375 -2.398438 3.429688 -2 C 3.757813 -1.59375 4.164063 -1.394531 4.648438 -1.398438 C 5.101563 -1.394531 5.484375 -1.578125 5.792969 -1.949219 C 6.09375 -2.316406 6.246094 -2.921875 6.25 -3.761719 C 6.246094 -4.542969 6.089844 -5.121094 5.777344 -5.503906 C 5.464844 -5.878906 5.074219 -6.070313 4.613281 -6.074219 C 4.125 -6.070313 3.726563 -5.882813 3.410156 -5.515625 C 3.089844 -5.140625 2.929688 -4.589844 2.933594 -3.859375 Z M 2.933594 -3.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 7.824219 0 L 5.851563 0 L 5.851563 -3.8125 C 5.847656 -4.613281 5.804688 -5.132813 5.722656 -5.375 C 5.636719 -5.609375 5.5 -5.792969 5.3125 -5.925781 C 5.121094 -6.054688 4.890625 -6.121094 4.625 -6.125 C 4.28125 -6.121094 3.976563 -6.027344 3.703125 -5.84375 C 3.429688 -5.652344 3.242188 -5.40625 3.144531 -5.097656 C 3.042969 -4.785156 2.992188 -4.210938 2.996094 -3.382813 L 2.996094 0 L 1.019531 0 L 1.019531 -7.46875 L 2.855469 -7.46875 L 2.855469 -6.371094 C 3.503906 -7.210938 4.324219 -7.632813 5.316406 -7.636719 C 5.746094 -7.632813 6.144531 -7.554688 6.507813 -7.398438 C 6.867188 -7.238281 7.140625 -7.039063 7.328125 -6.796875 C 7.511719 -6.554688 7.640625 -6.277344 7.714844 -5.96875 C 7.785156 -5.65625 7.820313 -5.214844 7.824219 -4.640625 Z M 7.824219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 0.640625 -2.652344 L 2.609375 -2.855469 C 2.660156 -2.40625 2.828125 -2.054688 3.105469 -1.796875 C 3.382813 -1.535156 3.699219 -1.40625 4.0625 -1.40625 C 4.472656 -1.40625 4.824219 -1.570313 5.109375 -1.90625 C 5.394531 -2.238281 5.535156 -2.746094 5.539063 -3.425781 C 5.535156 -4.054688 5.394531 -4.527344 5.113281 -4.847656 C 4.828125 -5.160156 4.460938 -5.320313 4.007813 -5.324219 C 3.4375 -5.320313 2.925781 -5.070313 2.480469 -4.570313 L 0.878906 -4.800781 L 1.890625 -10.167969 L 7.117188 -10.167969 L 7.117188 -8.316406 L 3.390625 -8.316406 L 3.078125 -6.566406 C 3.515625 -6.785156 3.96875 -6.894531 4.429688 -6.898438 C 5.304688 -6.894531 6.046875 -6.578125 6.660156 -5.941406 C 7.265625 -5.300781 7.570313 -4.472656 7.574219 -3.460938 C 7.570313 -2.609375 7.324219 -1.851563 6.835938 -1.1875 C 6.160156 -0.277344 5.230469 0.175781 4.042969 0.175781 C 3.089844 0.175781 2.3125 -0.078125 1.714844 -0.589844 C 1.113281 -1.097656 0.753906 -1.785156 0.640625 -2.652344 Z M 0.640625 -2.652344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface6">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 112.714844 373.152344 C 112.714844 376.75 107.316406 376.75 107.316406 373.152344 C 107.316406 369.550781 112.714844 369.550781 112.714844 373.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 146.710938 334.699219 C 146.710938 338.296875 141.3125 338.296875 141.3125 334.699219 C 141.3125 331.097656 146.710938 331.097656 146.710938 334.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 176.175781 303.519531 C 176.175781 307.117188 170.777344 307.117188 170.777344 303.519531 C 170.777344 299.917969 176.175781 299.917969 176.175781 303.519531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 197.546875 281.695313 C 197.546875 285.292969 192.144531 285.292969 192.144531 281.695313 C 192.144531 278.09375 197.546875 278.09375 197.546875 281.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.039063 253.632813 C 226.039063 257.234375 220.636719 257.234375 220.636719 253.632813 C 220.636719 250.035156 226.039063 250.035156 226.039063 253.632813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 259.710938 221.417969 C 259.710938 225.015625 254.308594 225.015625 254.308594 221.417969 C 254.308594 217.816406 259.710938 217.816406 259.710938 221.417969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.648438 190.238281 C 295.648438 193.839844 290.25 193.839844 290.25 190.238281 C 290.25 186.636719 295.648438 186.636719 295.648438 190.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 365.585938 136.195313 C 365.585938 139.796875 360.1875 139.796875 360.1875 136.195313 C 360.1875 132.597656 365.585938 132.597656 365.585938 136.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.496094 110.214844 C 402.496094 113.8125 397.097656 113.8125 397.097656 110.214844 C 397.097656 106.613281 402.496094 106.613281 402.496094 110.214844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 432.929688 91.507813 C 432.929688 95.105469 427.53125 95.105469 427.53125 91.507813 C 427.53125 87.90625 432.929688 87.90625 432.929688 91.507813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.277344 430.558594 L 458.722656 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 67.277344 430.558594 L 67.277344 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 123.199219 430.558594 L 123.199219 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 179.117188 430.558594 L 179.117188 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 235.039063 430.558594 L 235.039063 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.960938 430.558594 L 290.960938 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.882813 430.558594 L 346.882813 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.804688 430.558594 L 402.804688 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.722656 430.558594 L 458.722656 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="55.597656" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="62.271484" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="65.605469" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="72.279297" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="111.519531" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="118.193359" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="121.527344" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="128.201172" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="167.4375" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="174.111328" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="177.445313" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="184.119141" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="223.359375" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="230.033203" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="233.367188" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="240.041016" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="279.28125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="285.955078" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="289.289063" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="295.962891" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="335.203125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="341.876953" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="345.210938" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="351.884766" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="391.125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="397.798828" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="401.132813" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="407.806641" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="447.042969" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="453.716797" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="457.050781" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="463.724609" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 422.144531 L 59.039063 100.710938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 422.144531 L 51.839844 422.144531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 357.859375 L 51.839844 357.859375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 293.570313 L 51.839844 293.570313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 229.285156 L 51.839844 229.285156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 165 L 51.839844 165 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 100.710938 L 51.839844 100.710938 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="430.484375"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="423.810547"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="420.476563"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="366.199219"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="359.525391"/>
+  <use xlink:href="#glyph1-4" x="41.761719" y="356.191406"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="301.910156"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="295.236328"/>
+  <use xlink:href="#glyph1-5" x="41.761719" y="291.902344"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="237.625"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="230.951172"/>
+  <use xlink:href="#glyph1-6" x="41.761719" y="227.617188"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="173.339844"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="166.666016"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="163.332031"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="109.050781"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="102.376953"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="99.042969"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="190.96875" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="199.764844" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="203.765625" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="211.774219" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="220.570313" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="228.578906" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="232.579687" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="241.375781" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="249.384375" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="254.179687" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="258.975" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="262.975781" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="270.984375" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="278.992969" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="282.99375" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="292.598437" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="296.599219" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="305.008594" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="309.009375" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="317.017969" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="325.026562" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="329.027344" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="259.398438" y="485.28125"/>
+  <use xlink:href="#glyph0-8" x="268.732422" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-14" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 112.714844 373.152344 C 112.714844 376.75 107.316406 376.75 107.316406 373.152344 C 107.316406 369.550781 112.714844 369.550781 112.714844 373.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 146.710938 334.699219 C 146.710938 338.296875 141.3125 338.296875 141.3125 334.699219 C 141.3125 331.097656 146.710938 331.097656 146.710938 334.699219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 176.175781 303.519531 C 176.175781 307.117188 170.777344 307.117188 170.777344 303.519531 C 170.777344 299.917969 176.175781 299.917969 176.175781 303.519531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 197.546875 281.695313 C 197.546875 285.292969 192.144531 285.292969 192.144531 281.695313 C 192.144531 278.09375 197.546875 278.09375 197.546875 281.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.039063 253.632813 C 226.039063 257.234375 220.636719 257.234375 220.636719 253.632813 C 220.636719 250.035156 226.039063 250.035156 226.039063 253.632813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 259.710938 221.417969 C 259.710938 225.015625 254.308594 225.015625 254.308594 221.417969 C 254.308594 217.816406 259.710938 217.816406 259.710938 221.417969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.648438 190.238281 C 295.648438 193.839844 290.25 193.839844 290.25 190.238281 C 290.25 186.636719 295.648438 186.636719 295.648438 190.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 365.585938 136.195313 C 365.585938 139.796875 360.1875 139.796875 360.1875 136.195313 C 360.1875 132.597656 365.585938 132.597656 365.585938 136.195313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.496094 110.214844 C 402.496094 113.8125 397.097656 113.8125 397.097656 110.214844 C 397.097656 106.613281 402.496094 106.613281 402.496094 110.214844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 432.929688 91.507813 C 432.929688 95.105469 427.53125 95.105469 427.53125 91.507813 C 427.53125 87.90625 432.929688 87.90625 432.929688 91.507813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 415.988281 L 78.238281 411.320313 L 82.078125 406.675781 L 85.921875 402.058594 L 89.761719 397.464844 L 93.601563 392.894531 L 97.441406 388.351563 L 101.28125 383.835938 L 105.121094 379.34375 L 108.960938 374.878906 L 112.800781 370.433594 L 116.640625 366.019531 L 120.480469 361.628906 L 124.320313 357.261719 L 128.160156 352.921875 L 132 348.605469 L 135.839844 344.316406 L 139.679688 340.050781 L 143.519531 335.8125 L 147.359375 331.597656 L 151.199219 327.40625 L 155.039063 323.242188 L 158.878906 319.105469 L 162.71875 314.992188 L 166.558594 310.902344 L 170.398438 306.839844 L 174.238281 302.800781 L 178.078125 298.789063 L 181.921875 294.800781 L 185.761719 290.839844 L 189.601563 286.902344 L 193.441406 282.992188 L 197.28125 279.105469 L 201.121094 275.242188 L 204.960938 271.410156 L 208.800781 267.597656 L 212.640625 263.8125 L 216.480469 260.050781 L 220.320313 256.316406 L 224.160156 252.609375 L 228 248.921875 L 231.839844 245.265625 L 235.679688 241.628906 L 239.519531 238.023438 L 243.359375 234.4375 L 247.199219 230.878906 L 251.039063 227.347656 L 254.878906 223.839844 L 258.71875 220.355469 L 262.558594 216.898438 L 266.398438 213.46875 L 270.238281 210.0625 L 274.078125 206.679688 L 277.921875 203.324219 L 281.761719 199.992188 L 285.601563 196.6875 L 289.441406 193.40625 L 293.28125 190.152344 L 297.121094 186.921875 L 300.960938 183.714844 L 304.800781 180.535156 L 308.640625 177.382813 L 312.480469 174.253906 L 316.320313 171.148438 L 320.160156 168.070313 L 324 165.019531 L 327.839844 161.988281 L 331.679688 158.988281 L 335.519531 156.007813 L 339.359375 153.058594 L 343.199219 150.128906 L 347.039063 147.226563 L 350.878906 144.351563 L 354.71875 141.5 L 358.558594 138.675781 L 362.398438 135.875 L 366.238281 133.097656 L 370.078125 130.347656 L 373.921875 127.621094 L 377.761719 124.921875 L 381.601563 122.246094 L 385.441406 119.597656 L 389.28125 116.972656 L 393.121094 114.375 L 396.960938 111.800781 L 400.800781 109.253906 L 404.640625 106.730469 L 408.480469 104.230469 L 412.320313 101.757813 L 416.160156 99.3125 L 420 96.890625 L 423.839844 94.492188 L 427.679688 92.121094 L 431.519531 89.773438 L 435.359375 87.453125 L 439.199219 85.15625 L 443.039063 82.886719 L 446.878906 80.640625 L 450.71875 78.421875 L 454.558594 76.226563 L 458.398438 74.054688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.886719 382.074219 L 78.523438 382.074219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.707031 385.890625 L 74.707031 378.253906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.171875 371.050781 L 88.808594 371.050781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 84.992188 374.867188 L 84.992188 367.230469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 98.890625 352.675781 L 106.527344 352.675781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 102.707031 356.492188 L 102.707031 348.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 116.605469 332.46875 L 124.242188 332.46875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 120.421875 336.289063 L 120.421875 328.652344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 134.320313 312.265625 L 141.957031 312.265625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 138.136719 316.082031 L 138.136719 308.445313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.175781 295.710938 L 160.8125 295.710938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 156.996094 299.53125 L 156.996094 291.894531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 170.890625 279.164063 L 178.527344 279.164063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 174.710938 282.984375 L 174.710938 275.347656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.179688 262.617188 L 196.816406 262.617188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 192.996094 266.433594 L 192.996094 258.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 207.464844 246.066406 L 215.101563 246.066406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 211.285156 249.886719 L 211.285156 242.25 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.324219 227.6875 L 233.960938 227.6875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 230.140625 231.503906 L 230.140625 223.867188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.039063 212.96875 L 251.675781 212.96875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.855469 216.789063 L 247.855469 209.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 262.894531 198.246094 L 270.53125 198.246094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 266.714844 202.066406 L 266.714844 194.429688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 281.753906 185.355469 L 289.390625 185.355469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 285.574219 189.171875 L 285.574219 181.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.898438 176.164063 L 298.535156 176.164063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 294.714844 179.984375 L 294.714844 172.347656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 300.039063 172.464844 L 307.679688 172.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 303.859375 176.28125 L 303.859375 168.644531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 328.042969 152.210938 L 335.679688 152.210938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 331.859375 156.027344 L 331.859375 148.390625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 337.1875 146.679688 L 344.824219 146.679688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.003906 150.496094 L 341.003906 142.859375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 356.042969 135.617188 L 363.679688 135.617188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 359.863281 139.433594 L 359.863281 131.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 374.902344 122.722656 L 382.539063 122.722656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 378.71875 126.539063 L 378.71875 118.902344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 393.757813 113.488281 L 401.394531 113.488281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 397.578125 117.304688 L 397.578125 109.667969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.617188 104.253906 L 420.253906 104.253906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 416.4375 108.070313 L 416.4375 100.433594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 431.476563 95.019531 L 439.113281 95.019531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 435.292969 98.835938 L 435.292969 91.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 450.332031 85.785156 L 457.96875 85.785156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.152344 89.601563 L 454.152344 81.964844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.707031 382.585938 L 78.5 378.289063 L 82.292969 374.015625 L 86.089844 369.773438 L 89.882813 365.558594 L 93.679688 361.367188 L 97.472656 357.203125 L 101.265625 353.070313 L 105.0625 348.960938 L 108.855469 344.878906 L 112.652344 340.824219 L 116.445313 336.796875 L 120.238281 332.796875 L 124.035156 328.820313 L 127.828125 324.875 L 131.621094 320.953125 L 135.417969 317.0625 L 139.210938 313.195313 L 143.007813 309.355469 L 146.800781 305.542969 L 150.59375 301.757813 L 154.390625 298 L 158.183594 294.269531 L 161.976563 290.566406 L 165.773438 286.886719 L 169.566406 283.238281 L 173.363281 279.613281 L 177.15625 276.019531 L 180.949219 272.449219 L 184.746094 268.90625 L 188.539063 265.390625 L 192.335938 261.902344 L 196.128906 258.441406 L 199.921875 255.003906 L 203.71875 251.597656 L 207.511719 248.21875 L 211.304688 244.863281 L 215.101563 241.535156 L 218.894531 238.238281 L 222.691406 234.964844 L 226.484375 231.71875 L 230.277344 228.5 L 234.074219 225.308594 L 237.867188 222.140625 L 241.664063 219.003906 L 245.457031 215.894531 L 249.25 212.808594 L 253.046875 209.75 L 256.839844 206.722656 L 260.632813 203.71875 L 264.429688 200.742188 L 268.222656 197.792969 L 272.019531 194.871094 L 275.8125 191.972656 L 279.605469 189.105469 L 283.402344 186.265625 L 287.195313 183.449219 L 290.988281 180.664063 L 294.785156 177.902344 L 298.578125 175.167969 L 302.375 172.460938 L 306.167969 169.78125 L 309.960938 167.128906 L 313.757813 164.503906 L 317.550781 161.90625 L 321.347656 159.332031 L 325.140625 156.789063 L 328.933594 154.269531 L 332.730469 151.777344 L 336.523438 149.316406 L 340.316406 146.878906 L 344.113281 144.46875 L 347.90625 142.085938 L 351.703125 139.730469 L 355.496094 137.398438 L 359.289063 135.097656 L 363.085938 132.820313 L 366.878906 130.574219 L 370.675781 128.351563 L 374.46875 126.15625 L 378.261719 123.992188 L 382.058594 121.851563 L 385.851563 119.738281 L 389.644531 117.648438 L 393.441406 115.589844 L 397.234375 113.558594 L 401.03125 111.550781 L 404.824219 109.574219 L 408.617188 107.621094 L 412.414063 105.695313 L 416.207031 103.800781 L 420.003906 101.929688 L 423.796875 100.085938 L 427.589844 98.269531 L 431.386719 96.476563 L 435.179688 94.714844 L 438.972656 92.980469 L 442.769531 91.269531 L 446.5625 89.585938 L 450.359375 87.933594 L 454.152344 86.304688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="340.691406" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="345.361328" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="350.992188" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="357.666016" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="361" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="368.007813" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="371.341797" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="378.015625" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="381.349609" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="388.023438" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="394.697266" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="404.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="408.701172" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="412.035156" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="419.042969" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="422.376953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="429.050781" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="432.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-20" x="439.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="445.732422" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="334.017578" y="375.496094"/>
+  <use xlink:href="#glyph0-16" x="338.6875" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="344.318359" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="350.992188" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="354.326172" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="361.333984" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="364.667969" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="371.341797" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="374.675781" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="381.349609" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="388.023438" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="397.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="402.027344" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="405.361328" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="412.369141" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="415.703125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="422.376953" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="425.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="432.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-22" x="439.058594" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_plans_slope_20_.svg b/docs/en/calculators/par/baffle_fishway_plans_slope_20_.svg
new file mode 100644
index 000000000..0ae4eea08
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_plans_slope_20_.svg
@@ -0,0 +1,495 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 7.4375 -0.921875 C 7.960938 -0.554688 8.449219 -0.289063 8.894531 -0.125 L 8.5625 0.667969 C 7.9375 0.445313 7.324219 0.09375 6.714844 -0.386719 C 6.074219 -0.03125 5.371094 0.144531 4.605469 0.148438 C 3.824219 0.144531 3.117188 -0.0390625 2.488281 -0.414063 C 1.851563 -0.785156 1.363281 -1.3125 1.027344 -1.996094 C 0.683594 -2.671875 0.515625 -3.4375 0.515625 -4.296875 C 0.515625 -5.140625 0.6875 -5.914063 1.03125 -6.609375 C 1.375 -7.304688 1.863281 -7.832031 2.5 -8.195313 C 3.132813 -8.558594 3.84375 -8.742188 4.628906 -8.742188 C 5.421875 -8.742188 6.136719 -8.550781 6.773438 -8.175781 C 7.40625 -7.792969 7.890625 -7.265625 8.226563 -6.59375 C 8.5625 -5.914063 8.730469 -5.152344 8.730469 -4.300781 C 8.730469 -3.59375 8.621094 -2.957031 8.40625 -2.394531 C 8.191406 -1.828125 7.867188 -1.335938 7.4375 -0.921875 Z M 4.933594 -2.375 C 5.589844 -2.1875 6.128906 -1.914063 6.554688 -1.554688 C 7.222656 -2.160156 7.558594 -3.078125 7.558594 -4.300781 C 7.558594 -4.996094 7.4375 -5.601563 7.203125 -6.121094 C 6.964844 -6.640625 6.621094 -7.042969 6.167969 -7.332031 C 5.710938 -7.617188 5.199219 -7.761719 4.632813 -7.765625 C 3.785156 -7.761719 3.082031 -7.472656 2.523438 -6.894531 C 1.964844 -6.3125 1.6875 -5.445313 1.6875 -4.296875 C 1.6875 -3.171875 1.960938 -2.316406 2.515625 -1.722656 C 3.0625 -1.125 3.769531 -0.824219 4.632813 -0.828125 C 5.035156 -0.824219 5.417969 -0.902344 5.78125 -1.054688 C 5.425781 -1.28125 5.050781 -1.445313 4.65625 -1.546875 Z M 4.933594 -2.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 0.878906 0 L 0.878906 -8.589844 L 2.015625 -8.589844 L 2.015625 -1.015625 L 6.246094 -1.015625 L 6.246094 0 Z M 0.878906 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M -4.234375 -0.5 C -5.246094 -0.496094 -6.0625 -0.601563 -6.6875 -0.8125 C -7.304688 -1.019531 -7.785156 -1.328125 -8.121094 -1.742188 C -8.457031 -2.152344 -8.625 -2.671875 -8.625 -3.300781 C -8.625 -3.757813 -8.53125 -4.164063 -8.347656 -4.511719 C -8.160156 -4.859375 -7.890625 -5.144531 -7.542969 -5.371094 C -7.191406 -5.59375 -6.765625 -5.773438 -6.265625 -5.90625 C -5.761719 -6.035156 -5.085938 -6.097656 -4.234375 -6.101563 C -3.222656 -6.097656 -2.410156 -5.996094 -1.792969 -5.789063 C -1.175781 -5.578125 -0.695313 -5.265625 -0.359375 -4.859375 C -0.0195313 -4.445313 0.144531 -3.925781 0.148438 -3.296875 C 0.144531 -2.464844 -0.148438 -1.816406 -0.742188 -1.347656 C -1.457031 -0.78125 -2.621094 -0.496094 -4.234375 -0.5 Z M -4.234375 -1.582031 C -2.824219 -1.582031 -1.886719 -1.746094 -1.417969 -2.074219 C -0.949219 -2.402344 -0.714844 -2.808594 -0.71875 -3.296875 C -0.714844 -3.777344 -0.949219 -4.183594 -1.421875 -4.519531 C -1.886719 -4.847656 -2.824219 -5.015625 -4.234375 -5.015625 C -5.648438 -5.015625 -6.589844 -4.847656 -7.054688 -4.519531 C -7.515625 -4.1875 -7.746094 -3.777344 -7.75 -3.289063 C -7.746094 -2.800781 -7.542969 -2.414063 -7.136719 -2.128906 C -6.613281 -1.761719 -5.644531 -1.582031 -4.234375 -1.582031 Z M -4.234375 -1.582031 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0 -1.089844 L -1.203125 -1.089844 L -1.199219 -2.289063 L 0 -2.289063 Z M 0 -1.089844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -4.65625 -2.121094 C -4.816406 -1.683594 -5.046875 -1.359375 -5.34375 -1.148438 C -5.640625 -0.9375 -5.996094 -0.832031 -6.410156 -0.832031 C -7.035156 -0.832031 -7.558594 -1.054688 -7.984375 -1.503906 C -8.410156 -1.953125 -8.625 -2.550781 -8.625 -3.300781 C -8.625 -4.046875 -8.40625 -4.652344 -7.972656 -5.109375 C -7.535156 -5.566406 -7.003906 -5.792969 -6.382813 -5.796875 C -5.976563 -5.792969 -5.628906 -5.6875 -5.339844 -5.480469 C -5.042969 -5.269531 -4.816406 -4.953125 -4.65625 -4.53125 C -4.480469 -5.054688 -4.203125 -5.457031 -3.824219 -5.734375 C -3.4375 -6.007813 -2.980469 -6.144531 -2.453125 -6.148438 C -1.714844 -6.144531 -1.097656 -5.886719 -0.601563 -5.367188 C -0.101563 -4.84375 0.144531 -4.160156 0.148438 -3.316406 C 0.144531 -2.46875 -0.101563 -1.785156 -0.605469 -1.265625 C -1.105469 -0.746094 -1.734375 -0.484375 -2.484375 -0.488281 C -3.039063 -0.484375 -3.503906 -0.625 -3.886719 -0.910156 C -4.261719 -1.191406 -4.519531 -1.597656 -4.65625 -2.121094 Z M -6.445313 -1.910156 C -6.039063 -1.910156 -5.707031 -2.039063 -5.449219 -2.300781 C -5.191406 -2.5625 -5.0625 -2.902344 -5.0625 -3.324219 C -5.0625 -3.726563 -5.1875 -4.058594 -5.445313 -4.320313 C -5.695313 -4.578125 -6.011719 -4.710938 -6.386719 -4.710938 C -6.773438 -4.710938 -7.097656 -4.574219 -7.363281 -4.308594 C -7.625 -4.039063 -7.757813 -3.707031 -7.757813 -3.3125 C -7.757813 -2.90625 -7.628906 -2.574219 -7.371094 -2.308594 C -7.113281 -2.042969 -6.804688 -1.910156 -6.445313 -1.910156 Z M -2.476563 -1.570313 C -2.175781 -1.570313 -1.886719 -1.640625 -1.605469 -1.785156 C -1.324219 -1.925781 -1.105469 -2.136719 -0.949219 -2.421875 C -0.792969 -2.699219 -0.714844 -3.003906 -0.71875 -3.328125 C -0.714844 -3.832031 -0.875 -4.246094 -1.203125 -4.578125 C -1.523438 -4.902344 -1.9375 -5.066406 -2.441406 -5.070313 C -2.945313 -5.066406 -3.367188 -4.898438 -3.703125 -4.5625 C -4.035156 -4.222656 -4.199219 -3.800781 -4.203125 -3.292969 C -4.199219 -2.796875 -4.035156 -2.382813 -3.710938 -2.058594 C -3.378906 -1.730469 -2.96875 -1.570313 -2.476563 -1.570313 Z M -2.476563 -1.570313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -0.878906 L -8.589844 -0.878906 L -8.589844 -2.015625 L -1.011719 -2.015625 L -1.011719 -6.246094 L 0 -6.246094 Z M 0 -0.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 0.976563 -7.46875 L 2.820313 -7.46875 L 2.820313 -6.371094 C 3.054688 -6.742188 3.378906 -7.046875 3.789063 -7.285156 C 4.195313 -7.515625 4.648438 -7.632813 5.148438 -7.636719 C 6.011719 -7.632813 6.746094 -7.292969 7.355469 -6.617188 C 7.957031 -5.933594 8.261719 -4.988281 8.261719 -3.777344 C 8.261719 -2.527344 7.957031 -1.558594 7.347656 -0.867188 C 6.738281 -0.179688 6 0.164063 5.132813 0.167969 C 4.71875 0.164063 4.34375 0.0859375 4.011719 -0.078125 C 3.671875 -0.238281 3.320313 -0.519531 2.953125 -0.921875 L 2.953125 2.839844 L 0.976563 2.839844 Z M 2.933594 -3.859375 C 2.929688 -3.019531 3.09375 -2.398438 3.429688 -2 C 3.757813 -1.59375 4.164063 -1.394531 4.648438 -1.398438 C 5.101563 -1.394531 5.484375 -1.578125 5.792969 -1.949219 C 6.09375 -2.316406 6.246094 -2.921875 6.25 -3.761719 C 6.246094 -4.542969 6.089844 -5.121094 5.777344 -5.503906 C 5.464844 -5.878906 5.074219 -6.070313 4.613281 -6.074219 C 4.125 -6.070313 3.726563 -5.882813 3.410156 -5.515625 C 3.089844 -5.140625 2.929688 -4.589844 2.933594 -3.859375 Z M 2.933594 -3.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 7.824219 0 L 5.851563 0 L 5.851563 -3.8125 C 5.847656 -4.613281 5.804688 -5.132813 5.722656 -5.375 C 5.636719 -5.609375 5.5 -5.792969 5.3125 -5.925781 C 5.121094 -6.054688 4.890625 -6.121094 4.625 -6.125 C 4.28125 -6.121094 3.976563 -6.027344 3.703125 -5.84375 C 3.429688 -5.652344 3.242188 -5.40625 3.144531 -5.097656 C 3.042969 -4.785156 2.992188 -4.210938 2.996094 -3.382813 L 2.996094 0 L 1.019531 0 L 1.019531 -7.46875 L 2.855469 -7.46875 L 2.855469 -6.371094 C 3.503906 -7.210938 4.324219 -7.632813 5.316406 -7.636719 C 5.746094 -7.632813 6.144531 -7.554688 6.507813 -7.398438 C 6.867188 -7.238281 7.140625 -7.039063 7.328125 -6.796875 C 7.511719 -6.554688 7.640625 -6.277344 7.714844 -5.96875 C 7.785156 -5.65625 7.820313 -5.214844 7.824219 -4.640625 Z M 7.824219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 7.285156 -1.835938 L 7.285156 0 L 0.359375 0 C 0.429688 -0.691406 0.65625 -1.347656 1.035156 -1.96875 C 1.40625 -2.589844 2.144531 -3.414063 3.253906 -4.445313 C 4.140625 -5.269531 4.6875 -5.832031 4.894531 -6.132813 C 5.160156 -6.535156 5.296875 -6.9375 5.300781 -7.339844 C 5.296875 -7.777344 5.179688 -8.117188 4.945313 -8.355469 C 4.707031 -8.589844 4.378906 -8.707031 3.964844 -8.710938 C 3.550781 -8.707031 3.222656 -8.582031 2.980469 -8.335938 C 2.734375 -8.085938 2.59375 -7.675781 2.558594 -7.101563 L 0.589844 -7.296875 C 0.703125 -8.382813 1.070313 -9.164063 1.691406 -9.640625 C 2.308594 -10.109375 3.082031 -10.347656 4.015625 -10.351563 C 5.027344 -10.347656 5.828125 -10.074219 6.410156 -9.527344 C 6.992188 -8.976563 7.28125 -8.292969 7.285156 -7.480469 C 7.28125 -7.015625 7.199219 -6.574219 7.035156 -6.15625 C 6.867188 -5.734375 6.601563 -5.292969 6.242188 -4.835938 C 6 -4.527344 5.570313 -4.089844 4.949219 -3.519531 C 4.324219 -2.945313 3.929688 -2.566406 3.765625 -2.382813 C 3.597656 -2.191406 3.460938 -2.007813 3.359375 -1.835938 Z M 7.285156 -1.835938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 3.953125 -10.351563 C 4.949219 -10.347656 5.730469 -9.992188 6.292969 -9.28125 C 6.960938 -8.4375 7.292969 -7.035156 7.296875 -5.082031 C 7.292969 -3.128906 6.957031 -1.730469 6.285156 -0.878906 C 5.726563 -0.175781 4.949219 0.175781 3.953125 0.175781 C 2.945313 0.175781 2.136719 -0.207031 1.523438 -0.980469 C 0.910156 -1.746094 0.601563 -3.121094 0.605469 -5.105469 C 0.601563 -7.042969 0.941406 -8.441406 1.617188 -9.296875 C 2.171875 -9.996094 2.949219 -10.347656 3.953125 -10.351563 Z M 3.953125 -8.710938 C 3.710938 -8.707031 3.496094 -8.628906 3.3125 -8.480469 C 3.121094 -8.324219 2.976563 -8.054688 2.875 -7.664063 C 2.738281 -7.152344 2.671875 -6.289063 2.671875 -5.082031 C 2.671875 -3.871094 2.730469 -3.042969 2.855469 -2.589844 C 2.972656 -2.136719 3.128906 -1.835938 3.316406 -1.6875 C 3.5 -1.535156 3.710938 -1.457031 3.953125 -1.460938 C 4.1875 -1.457031 4.398438 -1.535156 4.589844 -1.6875 C 4.773438 -1.839844 4.921875 -2.113281 5.027344 -2.511719 C 5.160156 -3.015625 5.226563 -3.871094 5.230469 -5.082031 C 5.226563 -6.289063 5.164063 -7.121094 5.046875 -7.574219 C 4.921875 -8.023438 4.769531 -8.324219 4.585938 -8.480469 C 4.398438 -8.628906 4.1875 -8.707031 3.953125 -8.710938 Z M 3.953125 -8.710938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface11">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 84.890625 404.871094 C 84.890625 408.46875 79.492188 408.46875 79.492188 404.871094 C 79.492188 401.269531 84.890625 401.269531 84.890625 404.871094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 92.683594 396.914063 C 92.683594 400.515625 87.28125 400.515625 87.28125 396.914063 C 87.28125 393.316406 92.683594 393.316406 92.683594 396.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 101.03125 384.984375 C 101.03125 388.585938 95.628906 388.585938 95.628906 384.984375 C 95.628906 381.386719 101.03125 381.386719 101.03125 384.984375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.273438 371.066406 C 113.273438 374.664063 107.875 374.664063 107.875 371.066406 C 107.875 367.464844 113.273438 367.464844 113.273438 371.066406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 123.847656 357.148438 C 123.847656 360.746094 118.449219 360.746094 118.449219 357.148438 C 118.449219 353.546875 123.847656 353.546875 123.847656 357.148438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 132.753906 347.203125 C 132.753906 350.804688 127.351563 350.804688 127.351563 347.203125 C 127.351563 343.605469 132.753906 343.605469 132.753906 347.203125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.324219 335.273438 C 143.324219 338.875 137.925781 338.875 137.925781 335.273438 C 137.925781 331.675781 143.324219 331.675781 143.324219 335.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 155.011719 321.355469 C 155.011719 324.953125 149.613281 324.953125 149.613281 321.355469 C 149.613281 317.753906 155.011719 317.753906 155.011719 321.355469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.699219 307.4375 C 166.699219 311.035156 161.300781 311.035156 161.300781 307.4375 C 161.300781 303.835938 166.699219 303.835938 166.699219 307.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 181.167969 291.527344 C 181.167969 295.128906 175.769531 295.128906 175.769531 291.527344 C 175.769531 287.929688 181.167969 287.929688 181.167969 291.527344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 191.742188 283.574219 C 191.742188 287.175781 186.34375 287.175781 186.34375 283.574219 C 186.34375 279.972656 191.742188 279.972656 191.742188 283.574219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 202.875 269.65625 C 202.875 273.253906 197.472656 273.253906 197.472656 269.65625 C 197.472656 266.054688 202.875 266.054688 202.875 269.65625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 217.34375 257.726563 C 217.34375 261.324219 211.945313 261.324219 211.945313 257.726563 C 211.945313 254.125 217.34375 254.125 217.34375 257.726563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.246094 247.78125 C 226.246094 251.382813 220.847656 251.382813 220.847656 247.78125 C 220.847656 244.183594 226.246094 244.183594 226.246094 247.78125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 236.820313 235.851563 C 236.820313 239.453125 231.421875 239.453125 231.421875 235.851563 C 231.421875 232.253906 236.820313 232.253906 236.820313 235.851563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 251.292969 223.921875 C 251.292969 227.519531 245.890625 227.519531 245.890625 223.921875 C 245.890625 220.320313 251.292969 220.320313 251.292969 223.921875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 261.863281 211.992188 C 261.863281 215.589844 256.464844 215.589844 256.464844 211.992188 C 256.464844 208.390625 261.863281 208.390625 261.863281 211.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 276.890625 200.058594 C 276.890625 203.660156 271.492188 203.660156 271.492188 200.058594 C 271.492188 196.460938 276.890625 196.460938 276.890625 200.058594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 289.691406 188.128906 C 289.691406 191.730469 284.292969 191.730469 284.292969 188.128906 C 284.292969 184.53125 289.691406 184.53125 289.691406 188.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 301.933594 180.175781 C 301.933594 183.777344 296.535156 183.777344 296.535156 180.175781 C 296.535156 176.574219 301.933594 176.574219 301.933594 180.175781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 318.074219 166.257813 C 318.074219 169.855469 312.675781 169.855469 312.675781 166.257813 C 312.675781 162.65625 318.074219 162.65625 318.074219 166.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 331.429688 154.324219 C 331.429688 157.925781 326.03125 157.925781 326.03125 154.324219 C 326.03125 150.726563 331.429688 150.726563 331.429688 154.324219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 344.785156 146.371094 C 344.785156 149.972656 339.386719 149.972656 339.386719 146.371094 C 339.386719 142.773438 344.785156 142.773438 344.785156 146.371094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 354.804688 138.417969 C 354.804688 142.019531 349.40625 142.019531 349.40625 138.417969 C 349.40625 134.820313 354.804688 134.820313 354.804688 138.417969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 367.046875 130.464844 C 367.046875 134.066406 361.648438 134.066406 361.648438 130.464844 C 361.648438 126.863281 367.046875 126.863281 367.046875 130.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 384.855469 118.535156 C 384.855469 122.132813 379.457031 122.132813 379.457031 118.535156 C 379.457031 114.933594 384.855469 114.933594 384.855469 118.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 399.324219 110.582031 C 399.324219 114.179688 393.925781 114.179688 393.925781 110.582031 C 393.925781 106.980469 399.324219 106.980469 399.324219 110.582031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.683594 100.636719 C 412.683594 104.238281 407.28125 104.238281 407.28125 100.636719 C 407.28125 97.039063 412.683594 97.039063 412.683594 100.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 430.492188 88.707031 C 430.492188 92.308594 425.089844 92.308594 425.089844 88.707031 C 425.089844 85.109375 430.492188 85.109375 430.492188 88.707031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.40625 82.742188 C 444.40625 86.34375 439.003906 86.34375 439.003906 82.742188 C 439.003906 79.140625 444.40625 79.140625 444.40625 82.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 66.609375 430.558594 L 458.957031 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 66.609375 430.558594 L 66.609375 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.660156 430.558594 L 122.660156 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 178.707031 430.558594 L 178.707031 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.757813 430.558594 L 234.757813 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 290.808594 430.558594 L 290.808594 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.855469 430.558594 L 346.855469 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 402.90625 430.558594 L 402.90625 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.957031 430.558594 L 458.957031 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="54.929688" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="61.603516" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="64.9375" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="71.611328" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="110.980469" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="117.654297" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="120.988281" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="127.662109" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="167.027344" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="173.701172" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="177.035156" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="183.708984" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="223.078125" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="229.751953" y="456.480469"/>
+  <use xlink:href="#glyph0-4" x="233.085938" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="239.759766" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="279.128906" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="285.802734" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="289.136719" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="295.810547" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="335.175781" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="341.849609" y="456.480469"/>
+  <use xlink:href="#glyph0-5" x="345.183594" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="351.857422" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="391.226563" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="397.900391" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="401.234375" y="456.480469"/>
+  <use xlink:href="#glyph0-1" x="407.908203" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="447.277344" y="456.480469"/>
+  <use xlink:href="#glyph0-2" x="453.951172" y="456.480469"/>
+  <use xlink:href="#glyph0-6" x="457.285156" y="456.480469"/>
+  <use xlink:href="#glyph0-3" x="463.958984" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 424.46875 L 59.039063 65.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 424.46875 L 51.839844 424.46875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 352.601563 L 51.839844 352.601563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 280.734375 L 51.839844 280.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 208.867188 L 51.839844 208.867188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 137 L 51.839844 137 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 65.128906 L 51.839844 65.128906 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="432.808594"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="426.134766"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="422.800781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="360.941406"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="354.267578"/>
+  <use xlink:href="#glyph1-4" x="41.761719" y="350.933594"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="289.074219"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="282.400391"/>
+  <use xlink:href="#glyph1-5" x="41.761719" y="279.066406"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="217.207031"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="210.533203"/>
+  <use xlink:href="#glyph1-6" x="41.761719" y="207.199219"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="145.339844"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="138.666016"/>
+  <use xlink:href="#glyph1-1" x="41.761719" y="135.332031"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="41.761719" y="73.46875"/>
+  <use xlink:href="#glyph1-2" x="41.761719" y="66.794922"/>
+  <use xlink:href="#glyph1-3" x="41.761719" y="63.460938"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="190.96875" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="199.764844" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="203.765625" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="211.774219" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="220.570313" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="228.578906" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="232.579687" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="241.375781" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="249.384375" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="254.179687" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="258.975" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="262.975781" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="270.984375" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="278.992969" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="282.99375" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="292.598437" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="296.599219" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="305.008594" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="309.009375" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="317.017969" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="325.026562" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="329.027344" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="259.398438" y="485.28125"/>
+  <use xlink:href="#glyph0-8" x="268.732422" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-8" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-13" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-14" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 416.800781 C 77.101563 420.398438 71.699219 420.398438 71.699219 416.800781 C 71.699219 413.199219 77.101563 413.199219 77.101563 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 84.890625 404.871094 C 84.890625 408.46875 79.492188 408.46875 79.492188 404.871094 C 79.492188 401.269531 84.890625 401.269531 84.890625 404.871094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 92.683594 396.914063 C 92.683594 400.515625 87.28125 400.515625 87.28125 396.914063 C 87.28125 393.316406 92.683594 393.316406 92.683594 396.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 101.03125 384.984375 C 101.03125 388.585938 95.628906 388.585938 95.628906 384.984375 C 95.628906 381.386719 101.03125 381.386719 101.03125 384.984375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.273438 371.066406 C 113.273438 374.664063 107.875 374.664063 107.875 371.066406 C 107.875 367.464844 113.273438 367.464844 113.273438 371.066406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 123.847656 357.148438 C 123.847656 360.746094 118.449219 360.746094 118.449219 357.148438 C 118.449219 353.546875 123.847656 353.546875 123.847656 357.148438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 132.753906 347.203125 C 132.753906 350.804688 127.351563 350.804688 127.351563 347.203125 C 127.351563 343.605469 132.753906 343.605469 132.753906 347.203125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 143.324219 335.273438 C 143.324219 338.875 137.925781 338.875 137.925781 335.273438 C 137.925781 331.675781 143.324219 331.675781 143.324219 335.273438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 155.011719 321.355469 C 155.011719 324.953125 149.613281 324.953125 149.613281 321.355469 C 149.613281 317.753906 155.011719 317.753906 155.011719 321.355469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.699219 307.4375 C 166.699219 311.035156 161.300781 311.035156 161.300781 307.4375 C 161.300781 303.835938 166.699219 303.835938 166.699219 307.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 181.167969 291.527344 C 181.167969 295.128906 175.769531 295.128906 175.769531 291.527344 C 175.769531 287.929688 181.167969 287.929688 181.167969 291.527344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 191.742188 283.574219 C 191.742188 287.175781 186.34375 287.175781 186.34375 283.574219 C 186.34375 279.972656 191.742188 279.972656 191.742188 283.574219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 202.875 269.65625 C 202.875 273.253906 197.472656 273.253906 197.472656 269.65625 C 197.472656 266.054688 202.875 266.054688 202.875 269.65625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 217.34375 257.726563 C 217.34375 261.324219 211.945313 261.324219 211.945313 257.726563 C 211.945313 254.125 217.34375 254.125 217.34375 257.726563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.246094 247.78125 C 226.246094 251.382813 220.847656 251.382813 220.847656 247.78125 C 220.847656 244.183594 226.246094 244.183594 226.246094 247.78125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 236.820313 235.851563 C 236.820313 239.453125 231.421875 239.453125 231.421875 235.851563 C 231.421875 232.253906 236.820313 232.253906 236.820313 235.851563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 251.292969 223.921875 C 251.292969 227.519531 245.890625 227.519531 245.890625 223.921875 C 245.890625 220.320313 251.292969 220.320313 251.292969 223.921875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 261.863281 211.992188 C 261.863281 215.589844 256.464844 215.589844 256.464844 211.992188 C 256.464844 208.390625 261.863281 208.390625 261.863281 211.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 276.890625 200.058594 C 276.890625 203.660156 271.492188 203.660156 271.492188 200.058594 C 271.492188 196.460938 276.890625 196.460938 276.890625 200.058594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 289.691406 188.128906 C 289.691406 191.730469 284.292969 191.730469 284.292969 188.128906 C 284.292969 184.53125 289.691406 184.53125 289.691406 188.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 301.933594 180.175781 C 301.933594 183.777344 296.535156 183.777344 296.535156 180.175781 C 296.535156 176.574219 301.933594 176.574219 301.933594 180.175781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 318.074219 166.257813 C 318.074219 169.855469 312.675781 169.855469 312.675781 166.257813 C 312.675781 162.65625 318.074219 162.65625 318.074219 166.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 331.429688 154.324219 C 331.429688 157.925781 326.03125 157.925781 326.03125 154.324219 C 326.03125 150.726563 331.429688 150.726563 331.429688 154.324219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 344.785156 146.371094 C 344.785156 149.972656 339.386719 149.972656 339.386719 146.371094 C 339.386719 142.773438 344.785156 142.773438 344.785156 146.371094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 354.804688 138.417969 C 354.804688 142.019531 349.40625 142.019531 349.40625 138.417969 C 349.40625 134.820313 354.804688 134.820313 354.804688 138.417969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 367.046875 130.464844 C 367.046875 134.066406 361.648438 134.066406 361.648438 130.464844 C 361.648438 126.863281 367.046875 126.863281 367.046875 130.464844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 384.855469 118.535156 C 384.855469 122.132813 379.457031 122.132813 379.457031 118.535156 C 379.457031 114.933594 384.855469 114.933594 384.855469 118.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 399.324219 110.582031 C 399.324219 114.179688 393.925781 114.179688 393.925781 110.582031 C 393.925781 106.980469 399.324219 106.980469 399.324219 110.582031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 412.683594 100.636719 C 412.683594 104.238281 407.28125 104.238281 407.28125 100.636719 C 407.28125 97.039063 412.683594 97.039063 412.683594 100.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 430.492188 88.707031 C 430.492188 92.308594 425.089844 92.308594 425.089844 88.707031 C 425.089844 85.109375 430.492188 85.109375 430.492188 88.707031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 444.40625 82.742188 C 444.40625 86.34375 439.003906 86.34375 439.003906 82.742188 C 439.003906 79.140625 444.40625 79.140625 444.40625 82.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 415.53125 L 78.238281 410.625 L 82.078125 405.746094 L 85.921875 400.898438 L 89.761719 396.082031 L 93.601563 391.296875 L 97.441406 386.539063 L 101.28125 381.8125 L 105.121094 377.113281 L 108.960938 372.449219 L 112.800781 367.8125 L 116.640625 363.207031 L 120.480469 358.628906 L 124.320313 354.082031 L 128.160156 349.566406 L 132 345.082031 L 135.839844 340.625 L 139.679688 336.199219 L 143.519531 331.804688 L 147.359375 327.441406 L 151.199219 323.105469 L 155.039063 318.800781 L 158.878906 314.527344 L 162.71875 310.28125 L 166.558594 306.066406 L 170.398438 301.882813 L 174.238281 297.726563 L 178.078125 293.605469 L 181.921875 289.511719 L 185.761719 285.445313 L 189.601563 281.414063 L 193.441406 277.410156 L 197.28125 273.4375 L 201.121094 269.492188 L 204.960938 265.582031 L 208.800781 261.699219 L 212.640625 257.84375 L 216.480469 254.023438 L 220.320313 250.230469 L 224.160156 246.46875 L 228 242.734375 L 231.839844 239.035156 L 235.679688 235.363281 L 239.519531 231.722656 L 243.359375 228.109375 L 247.199219 224.527344 L 251.039063 220.976563 L 254.878906 217.457031 L 258.71875 213.964844 L 262.558594 210.503906 L 266.398438 207.074219 L 270.238281 203.671875 L 274.078125 200.300781 L 277.921875 196.960938 L 281.761719 193.652344 L 285.601563 190.371094 L 289.441406 187.121094 L 293.28125 183.902344 L 297.121094 180.714844 L 300.960938 177.554688 L 304.800781 174.425781 L 308.640625 171.328125 L 312.480469 168.257813 L 316.320313 165.21875 L 320.160156 162.210938 L 324 159.230469 L 327.839844 156.285156 L 331.679688 153.367188 L 335.519531 150.476563 L 339.359375 147.621094 L 343.199219 144.792969 L 347.039063 141.996094 L 350.878906 139.226563 L 354.71875 136.488281 L 358.558594 133.78125 L 362.398438 131.105469 L 366.238281 128.457031 L 370.078125 125.84375 L 373.921875 123.253906 L 377.761719 120.699219 L 381.601563 118.171875 L 385.441406 115.675781 L 389.28125 113.210938 L 393.121094 110.777344 L 396.960938 108.371094 L 400.800781 105.996094 L 404.640625 103.648438 L 408.480469 101.332031 L 412.320313 99.046875 L 416.160156 96.792969 L 420 94.570313 L 423.839844 92.375 L 427.679688 90.210938 L 431.519531 88.074219 L 435.359375 85.972656 L 439.199219 83.898438 L 443.039063 81.855469 L 446.878906 79.839844 L 450.71875 77.855469 L 454.558594 75.902344 L 458.398438 73.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.582031 382.996094 L 78.21875 382.996094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 386.816406 L 74.398438 379.179688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 88.945313 363.113281 L 96.582031 363.113281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 92.765625 366.929688 L 92.765625 359.292969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 107.3125 341.238281 L 114.949219 341.238281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 111.128906 345.058594 L 111.128906 337.421875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 125.675781 319.367188 L 133.3125 319.367188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 129.496094 323.183594 L 129.496094 315.546875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 152.945313 291.527344 L 160.582031 291.527344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 156.765625 295.347656 L 156.765625 287.710938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.3125 271.644531 L 178.949219 271.644531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 175.128906 275.460938 L 175.128906 267.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 189.121094 251.757813 L 196.757813 251.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 192.9375 255.578125 L 192.9375 247.941406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 208.042969 235.851563 L 215.679688 235.851563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 211.859375 239.671875 L 211.859375 232.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 226.964844 219.945313 L 234.601563 219.945313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 230.78125 223.761719 L 230.78125 216.125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 245.328125 204.035156 L 252.964844 204.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 249.148438 207.855469 L 249.148438 200.21875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 272.597656 182.164063 L 280.234375 182.164063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 276.417969 185.984375 L 276.417969 178.347656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 291.519531 166.257813 L 299.15625 166.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.339844 170.074219 L 295.339844 162.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 310.441406 154.324219 L 318.078125 154.324219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 314.261719 158.144531 L 314.261719 150.507813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 328.808594 142.394531 L 336.445313 142.394531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 332.625 146.214844 L 332.625 138.578125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 348.285156 132.453125 L 355.921875 132.453125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 352.105469 136.273438 L 352.105469 128.636719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 367.207031 120.523438 L 374.84375 120.523438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 371.027344 124.339844 L 371.027344 116.703125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 395.589844 104.613281 L 403.226563 104.613281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 399.410156 108.433594 L 399.410156 100.796875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 423.417969 92.683594 L 431.054688 92.683594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.234375 96.503906 L 427.234375 88.867188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 442.894531 84.730469 L 450.53125 84.730469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 446.714844 88.550781 L 446.714844 80.914063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 452.910156 82.742188 L 460.546875 82.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 456.730469 86.5625 L 456.730469 78.921875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 384.386719 L 78.222656 379.664063 L 82.046875 374.980469 L 85.871094 370.324219 L 89.691406 365.707031 L 93.515625 361.125 L 97.339844 356.574219 L 101.164063 352.058594 L 104.988281 347.578125 L 108.808594 343.128906 L 112.632813 338.71875 L 116.457031 334.339844 L 120.28125 329.996094 L 124.101563 325.683594 L 127.925781 321.410156 L 131.75 317.167969 L 135.574219 312.960938 L 139.394531 308.789063 L 143.21875 304.648438 L 147.042969 300.542969 L 150.867188 296.472656 L 154.6875 292.4375 L 158.511719 288.4375 L 162.335938 284.46875 L 166.160156 280.535156 L 169.984375 276.636719 L 173.804688 272.773438 L 177.628906 268.945313 L 181.453125 265.148438 L 185.277344 261.386719 L 189.097656 257.660156 L 192.921875 253.964844 L 196.746094 250.308594 L 200.570313 246.683594 L 204.390625 243.09375 L 208.214844 239.535156 L 212.039063 236.015625 L 215.863281 232.527344 L 219.6875 229.074219 L 223.507813 225.65625 L 227.332031 222.269531 L 231.15625 218.921875 L 234.980469 215.605469 L 238.800781 212.324219 L 242.625 209.074219 L 246.449219 205.863281 L 250.273438 202.683594 L 254.09375 199.539063 L 257.917969 196.429688 L 261.742188 193.351563 L 265.566406 190.308594 L 269.386719 187.300781 L 273.210938 184.328125 L 277.035156 181.390625 L 280.859375 178.484375 L 284.683594 175.613281 L 288.503906 172.777344 L 292.328125 169.976563 L 296.152344 167.210938 L 299.976563 164.476563 L 303.796875 161.777344 L 307.621094 159.113281 L 311.445313 156.480469 L 315.269531 153.886719 L 319.089844 151.324219 L 322.914063 148.796875 L 326.738281 146.300781 L 330.5625 143.84375 L 334.382813 141.417969 L 338.207031 139.027344 L 342.03125 136.671875 L 345.855469 134.347656 L 349.679688 132.0625 L 353.5 129.808594 L 357.324219 127.589844 L 361.148438 125.402344 L 364.972656 123.253906 L 368.792969 121.136719 L 372.617188 119.054688 L 376.441406 117.003906 L 380.265625 114.992188 L 384.085938 113.011719 L 387.910156 111.066406 L 391.734375 109.15625 L 395.558594 107.28125 L 399.382813 105.4375 L 403.203125 103.628906 L 407.027344 101.855469 L 410.851563 100.117188 L 414.675781 98.410156 L 418.496094 96.742188 L 422.320313 95.105469 L 426.144531 93.5 L 429.96875 91.933594 L 433.789063 90.398438 L 437.613281 88.898438 L 441.4375 87.433594 L 445.261719 86.003906 L 449.082031 84.605469 L 452.90625 83.246094 L 456.730469 81.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="332.292969"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="332.292969"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="332.292969"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="332.292969"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="340.691406" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="345.361328" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="350.992188" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="357.666016" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="361" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="368.007813" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="371.341797" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="378.015625" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="381.349609" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="388.023438" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="394.697266" y="346.695313"/>
+  <use xlink:href="#glyph0-8" x="404.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="408.701172" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="412.035156" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="419.042969" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="422.376953" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="429.050781" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="432.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-20" x="439.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="445.732422" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-9" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="334.017578" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="338.6875" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="344.318359" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="350.992188" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="354.326172" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="361.333984" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="364.667969" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="371.341797" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="374.675781" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="381.349609" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="388.023438" y="375.496094"/>
+  <use xlink:href="#glyph0-8" x="397.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="402.027344" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="405.361328" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="412.369141" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="415.703125" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="422.376953" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="425.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-21" x="432.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="439.058594" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_suractif_slope_10_.svg b/docs/en/calculators/par/baffle_fishway_suractif_slope_10_.svg
new file mode 100644
index 000000000..b115164fc
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_suractif_slope_10_.svg
@@ -0,0 +1,451 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 4.757813 2.382813 L 4.757813 -0.664063 C 4.59375 -0.429688 4.363281 -0.238281 4.066406 -0.0859375 C 3.769531 0.0664063 3.457031 0.140625 3.128906 0.140625 C 2.390625 0.140625 1.753906 -0.152344 1.222656 -0.742188 C 0.6875 -1.332031 0.421875 -2.140625 0.421875 -3.171875 C 0.421875 -3.792969 0.527344 -4.355469 0.746094 -4.851563 C 0.957031 -5.34375 1.273438 -5.71875 1.6875 -5.976563 C 2.101563 -6.234375 2.554688 -6.363281 3.046875 -6.363281 C 3.816406 -6.363281 4.421875 -6.039063 4.863281 -5.390625 L 4.863281 -6.222656 L 5.8125 -6.222656 L 5.8125 2.382813 Z M 1.507813 -3.128906 C 1.503906 -2.328125 1.671875 -1.726563 2.011719 -1.328125 C 2.34375 -0.925781 2.746094 -0.726563 3.21875 -0.726563 C 3.664063 -0.726563 4.050781 -0.914063 4.375 -1.296875 C 4.699219 -1.671875 4.863281 -2.253906 4.863281 -3.035156 C 4.863281 -3.863281 4.691406 -4.484375 4.347656 -4.902344 C 4.003906 -5.320313 3.601563 -5.53125 3.148438 -5.53125 C 2.6875 -5.53125 2.300781 -5.335938 1.984375 -4.949219 C 1.664063 -4.558594 1.503906 -3.953125 1.507813 -3.128906 Z M 1.507813 -3.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.65625 -1.984375 L 1.671875 -2.078125 C 1.75 -1.601563 1.914063 -1.257813 2.160156 -1.042969 C 2.398438 -0.824219 2.710938 -0.714844 3.09375 -0.71875 C 3.414063 -0.714844 3.695313 -0.789063 3.945313 -0.941406 C 4.1875 -1.085938 4.390625 -1.285156 4.546875 -1.535156 C 4.703125 -1.785156 4.832031 -2.121094 4.9375 -2.542969 C 5.042969 -2.964844 5.097656 -3.394531 5.097656 -3.832031 C 5.097656 -3.878906 5.09375 -3.949219 5.09375 -4.042969 C 4.875 -3.707031 4.585938 -3.433594 4.226563 -3.226563 C 3.859375 -3.015625 3.464844 -2.910156 3.039063 -2.914063 C 2.328125 -2.910156 1.726563 -3.167969 1.238281 -3.6875 C 0.742188 -4.199219 0.496094 -4.878906 0.5 -5.726563 C 0.496094 -6.59375 0.753906 -7.296875 1.269531 -7.828125 C 1.78125 -8.359375 2.425781 -8.625 3.199219 -8.625 C 3.757813 -8.625 4.265625 -8.472656 4.730469 -8.171875 C 5.191406 -7.871094 5.542969 -7.441406 5.785156 -6.886719 C 6.023438 -6.328125 6.144531 -5.523438 6.148438 -4.46875 C 6.144531 -3.371094 6.027344 -2.496094 5.789063 -1.847656 C 5.546875 -1.195313 5.191406 -0.703125 4.722656 -0.363281 C 4.253906 -0.0234375 3.703125 0.144531 3.070313 0.148438 C 2.398438 0.144531 1.847656 -0.0390625 1.421875 -0.410156 C 0.996094 -0.785156 0.742188 -1.308594 0.65625 -1.984375 Z M 4.976563 -5.777344 C 4.972656 -6.382813 4.8125 -6.863281 4.492188 -7.21875 C 4.167969 -7.570313 3.78125 -7.746094 3.328125 -7.75 C 2.859375 -7.746094 2.449219 -7.554688 2.101563 -7.175781 C 1.753906 -6.789063 1.582031 -6.292969 1.582031 -5.6875 C 1.582031 -5.136719 1.746094 -4.691406 2.074219 -4.355469 C 2.402344 -4.011719 2.808594 -3.84375 3.296875 -3.84375 C 3.785156 -3.84375 4.1875 -4.011719 4.503906 -4.355469 C 4.816406 -4.691406 4.972656 -5.167969 4.976563 -5.777344 Z M 4.976563 -5.777344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -2.265625 -0.503906 L -2.40625 -1.558594 C -1.808594 -1.679688 -1.378906 -1.882813 -1.113281 -2.175781 C -0.847656 -2.464844 -0.714844 -2.820313 -0.71875 -3.242188 C -0.714844 -3.734375 -0.886719 -4.152344 -1.234375 -4.496094 C -1.574219 -4.832031 -2 -5.003906 -2.511719 -5.007813 C -2.992188 -5.003906 -3.390625 -4.847656 -3.710938 -4.535156 C -4.023438 -4.21875 -4.183594 -3.816406 -4.183594 -3.328125 C -4.183594 -3.128906 -4.144531 -2.878906 -4.066406 -2.585938 L -4.992188 -2.703125 C -4.984375 -2.769531 -4.980469 -2.828125 -4.980469 -2.871094 C -4.980469 -3.320313 -5.097656 -3.722656 -5.332031 -4.085938 C -5.566406 -4.441406 -5.925781 -4.621094 -6.414063 -4.625 C -6.800781 -4.621094 -7.121094 -4.492188 -7.375 -4.230469 C -7.628906 -3.96875 -7.757813 -3.628906 -7.757813 -3.21875 C -7.757813 -2.804688 -7.628906 -2.464844 -7.371094 -2.191406 C -7.113281 -1.917969 -6.726563 -1.742188 -6.210938 -1.664063 L -6.398438 -0.609375 C -7.105469 -0.738281 -7.652344 -1.03125 -8.042969 -1.488281 C -8.429688 -1.945313 -8.625 -2.511719 -8.625 -3.195313 C -8.625 -3.660156 -8.523438 -4.09375 -8.324219 -4.488281 C -8.121094 -4.882813 -7.847656 -5.183594 -7.5 -5.394531 C -7.148438 -5.601563 -6.777344 -5.707031 -6.390625 -5.707031 C -6.019531 -5.707031 -5.683594 -5.605469 -5.378906 -5.40625 C -5.074219 -5.207031 -4.832031 -4.914063 -4.652344 -4.523438 C -4.535156 -5.03125 -4.289063 -5.425781 -3.921875 -5.707031 C -3.546875 -5.988281 -3.085938 -6.128906 -2.535156 -6.128906 C -1.78125 -6.128906 -1.144531 -5.855469 -0.628906 -5.308594 C -0.105469 -4.761719 0.152344 -4.070313 0.152344 -3.234375 C 0.152344 -2.476563 -0.0703125 -1.847656 -0.519531 -1.355469 C -0.96875 -0.855469 -1.550781 -0.574219 -2.265625 -0.503906 Z M -2.265625 -0.503906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -2.25 -0.5 L -2.34375 -1.605469 C -1.804688 -1.683594 -1.398438 -1.871094 -1.125 -2.175781 C -0.851563 -2.472656 -0.714844 -2.835938 -0.71875 -3.257813 C -0.714844 -3.765625 -0.90625 -4.195313 -1.292969 -4.546875 C -1.671875 -4.898438 -2.179688 -5.074219 -2.816406 -5.074219 C -3.414063 -5.074219 -3.890625 -4.902344 -4.242188 -4.566406 C -4.589844 -4.226563 -4.761719 -3.785156 -4.765625 -3.242188 C -4.761719 -2.898438 -4.683594 -2.59375 -4.53125 -2.320313 C -4.375 -2.046875 -4.175781 -1.832031 -3.929688 -1.675781 L -4.0625 -0.6875 L -8.472656 -1.519531 L -8.472656 -5.789063 L -7.464844 -5.789063 L -7.464844 -2.363281 L -5.15625 -1.898438 C -5.515625 -2.414063 -5.695313 -2.953125 -5.695313 -3.523438 C -5.695313 -4.269531 -5.433594 -4.902344 -4.914063 -5.421875 C -4.394531 -5.933594 -3.726563 -6.191406 -2.910156 -6.195313 C -2.132813 -6.191406 -1.460938 -5.964844 -0.894531 -5.515625 C -0.199219 -4.960938 0.144531 -4.210938 0.148438 -3.257813 C 0.144531 -2.476563 -0.0703125 -1.835938 -0.507813 -1.34375 C -0.941406 -0.847656 -1.523438 -0.566406 -2.25 -0.5 Z M -2.25 -0.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M -6.484375 -5.96875 L -6.40625 -4.921875 C -6.8125 -4.828125 -7.113281 -4.695313 -7.304688 -4.523438 C -7.605469 -4.238281 -7.757813 -3.886719 -7.757813 -3.46875 C -7.757813 -3.132813 -7.664063 -2.835938 -7.476563 -2.585938 C -7.234375 -2.25 -6.878906 -1.988281 -6.414063 -1.796875 C -5.949219 -1.605469 -5.289063 -1.507813 -4.429688 -1.5 C -4.8125 -1.753906 -5.097656 -2.0625 -5.289063 -2.433594 C -5.472656 -2.796875 -5.566406 -3.183594 -5.570313 -3.585938 C -5.566406 -4.289063 -5.308594 -4.886719 -4.792969 -5.382813 C -4.277344 -5.875 -3.609375 -6.121094 -2.789063 -6.125 C -2.25 -6.121094 -1.746094 -6.003906 -1.285156 -5.773438 C -0.816406 -5.539063 -0.460938 -5.222656 -0.21875 -4.816406 C 0.0273438 -4.410156 0.144531 -3.949219 0.148438 -3.433594 C 0.144531 -2.554688 -0.175781 -1.835938 -0.820313 -1.285156 C -1.46875 -0.726563 -2.535156 -0.449219 -4.019531 -0.453125 C -5.675781 -0.449219 -6.882813 -0.757813 -7.640625 -1.371094 C -8.296875 -1.90625 -8.625 -2.625 -8.625 -3.535156 C -8.625 -4.207031 -8.433594 -4.761719 -8.054688 -5.195313 C -7.675781 -5.625 -7.152344 -5.882813 -6.484375 -5.96875 Z M -2.78125 -1.664063 C -2.417969 -1.664063 -2.070313 -1.738281 -1.738281 -1.894531 C -1.40625 -2.042969 -1.152344 -2.261719 -0.980469 -2.542969 C -0.800781 -2.820313 -0.714844 -3.109375 -0.71875 -3.414063 C -0.714844 -3.859375 -0.894531 -4.242188 -1.257813 -4.566406 C -1.613281 -4.882813 -2.101563 -5.042969 -2.722656 -5.046875 C -3.3125 -5.042969 -3.78125 -4.886719 -4.125 -4.570313 C -4.46875 -4.25 -4.640625 -3.851563 -4.640625 -3.375 C -4.640625 -2.898438 -4.46875 -2.492188 -4.128906 -2.160156 C -3.785156 -1.828125 -3.335938 -1.664063 -2.78125 -1.664063 Z M -2.78125 -1.664063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 5.949219 0 L 5.949219 -1.117188 C 5.671875 -0.714844 5.316406 -0.402344 4.875 -0.175781 C 4.429688 0.0507813 3.960938 0.164063 3.472656 0.167969 C 2.96875 0.164063 2.519531 0.0585938 2.125 -0.160156 C 1.722656 -0.378906 1.433594 -0.691406 1.257813 -1.089844 C 1.078125 -1.488281 0.988281 -2.039063 0.992188 -2.742188 L 0.992188 -7.46875 L 2.96875 -7.46875 L 2.96875 -4.035156 C 2.964844 -2.984375 3 -2.339844 3.074219 -2.105469 C 3.144531 -1.863281 3.277344 -1.675781 3.472656 -1.542969 C 3.664063 -1.402344 3.90625 -1.335938 4.203125 -1.335938 C 4.539063 -1.335938 4.84375 -1.425781 5.109375 -1.613281 C 5.375 -1.792969 5.558594 -2.023438 5.660156 -2.300781 C 5.757813 -2.574219 5.804688 -3.246094 5.808594 -4.316406 L 5.808594 -7.46875 L 7.785156 -7.46875 L 7.785156 0 Z M 5.949219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 0.976563 -7.46875 L 2.820313 -7.46875 L 2.820313 -6.371094 C 3.054688 -6.742188 3.378906 -7.046875 3.789063 -7.285156 C 4.195313 -7.515625 4.648438 -7.632813 5.148438 -7.636719 C 6.011719 -7.632813 6.746094 -7.292969 7.355469 -6.617188 C 7.957031 -5.933594 8.261719 -4.988281 8.261719 -3.777344 C 8.261719 -2.527344 7.957031 -1.558594 7.347656 -0.867188 C 6.738281 -0.179688 6 0.164063 5.132813 0.167969 C 4.71875 0.164063 4.34375 0.0859375 4.011719 -0.078125 C 3.671875 -0.238281 3.320313 -0.519531 2.953125 -0.921875 L 2.953125 2.839844 L 0.976563 2.839844 Z M 2.933594 -3.859375 C 2.929688 -3.019531 3.09375 -2.398438 3.429688 -2 C 3.757813 -1.59375 4.164063 -1.394531 4.648438 -1.398438 C 5.101563 -1.394531 5.484375 -1.578125 5.792969 -1.949219 C 6.09375 -2.316406 6.246094 -2.921875 6.25 -3.761719 C 6.246094 -4.542969 6.089844 -5.121094 5.777344 -5.503906 C 5.464844 -5.878906 5.074219 -6.070313 4.613281 -6.074219 C 4.125 -6.070313 3.726563 -5.882813 3.410156 -5.515625 C 3.089844 -5.140625 2.929688 -4.589844 2.933594 -3.859375 Z M 2.933594 -3.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 2.925781 0 L 0.949219 0 L 0.949219 -7.46875 L 2.785156 -7.46875 L 2.785156 -6.40625 C 3.09375 -6.902344 3.375 -7.234375 3.628906 -7.394531 C 3.878906 -7.554688 4.164063 -7.632813 4.484375 -7.636719 C 4.929688 -7.632813 5.363281 -7.507813 5.785156 -7.261719 L 5.175781 -5.539063 C 4.839844 -5.75 4.53125 -5.859375 4.246094 -5.863281 C 3.96875 -5.859375 3.734375 -5.78125 3.542969 -5.632813 C 3.347656 -5.476563 3.195313 -5.203125 3.089844 -4.808594 C 2.976563 -4.40625 2.921875 -3.570313 2.925781 -2.304688 Z M 2.925781 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 0.808594 -2.75 L 0.808594 -4.726563 L 4.691406 -4.726563 L 4.691406 -2.75 Z M 0.808594 -2.75 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 7.542969 -5.257813 L 5.597656 -4.90625 C 5.527344 -5.292969 5.378906 -5.585938 5.148438 -5.785156 C 4.914063 -5.980469 4.613281 -6.082031 4.246094 -6.082031 C 3.75 -6.082031 3.355469 -5.910156 3.066406 -5.570313 C 2.769531 -5.230469 2.625 -4.664063 2.628906 -3.867188 C 2.625 -2.980469 2.773438 -2.351563 3.074219 -1.988281 C 3.371094 -1.621094 3.769531 -1.441406 4.273438 -1.441406 C 4.644531 -1.441406 4.953125 -1.546875 5.195313 -1.761719 C 5.433594 -1.972656 5.601563 -2.339844 5.703125 -2.863281 L 7.644531 -2.53125 C 7.4375 -1.640625 7.050781 -0.964844 6.480469 -0.511719 C 5.910156 -0.0585938 5.144531 0.164063 4.183594 0.167969 C 3.089844 0.164063 2.21875 -0.175781 1.570313 -0.863281 C 0.921875 -1.550781 0.597656 -2.507813 0.597656 -3.726563 C 0.597656 -4.957031 0.921875 -5.914063 1.574219 -6.605469 C 2.222656 -7.289063 3.105469 -7.632813 4.21875 -7.636719 C 5.125 -7.632813 5.847656 -7.4375 6.386719 -7.046875 C 6.921875 -6.652344 7.304688 -6.054688 7.542969 -5.257813 Z M 7.542969 -5.257813 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 4.457031 -7.46875 L 4.457031 -5.890625 L 3.109375 -5.890625 L 3.109375 -2.882813 C 3.105469 -2.273438 3.117188 -1.917969 3.144531 -1.816406 C 3.167969 -1.714844 3.226563 -1.628906 3.320313 -1.566406 C 3.410156 -1.496094 3.523438 -1.464844 3.65625 -1.46875 C 3.835938 -1.464844 4.097656 -1.527344 4.449219 -1.660156 L 4.621094 -0.125 C 4.15625 0.0703125 3.636719 0.164063 3.058594 0.167969 C 2.699219 0.164063 2.375 0.105469 2.09375 -0.0117188 C 1.804688 -0.128906 1.597656 -0.28125 1.464844 -0.472656 C 1.332031 -0.660156 1.238281 -0.917969 1.1875 -1.246094 C 1.144531 -1.472656 1.125 -1.9375 1.125 -2.636719 L 1.125 -5.890625 L 0.21875 -5.890625 L 0.21875 -7.46875 L 1.125 -7.46875 L 1.125 -8.949219 L 3.109375 -10.105469 L 3.109375 -7.46875 Z M 4.457031 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 1.035156 -8.480469 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 -8.480469 Z M 1.035156 0 L 1.035156 -7.46875 L 3.007813 -7.46875 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 3.085938 0 L 0.078125 -7.46875 L 2.152344 -7.46875 L 3.558594 -3.65625 L 3.964844 -2.382813 C 4.070313 -2.703125 4.136719 -2.917969 4.167969 -3.023438 C 4.230469 -3.234375 4.300781 -3.445313 4.378906 -3.65625 L 5.800781 -7.46875 L 7.832031 -7.46875 L 4.867188 0 Z M 3.085938 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-17">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-18">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-19">
+<path style="stroke:none;" d="M 3.953125 -10.351563 C 4.949219 -10.347656 5.730469 -9.992188 6.292969 -9.28125 C 6.960938 -8.4375 7.292969 -7.035156 7.296875 -5.082031 C 7.292969 -3.128906 6.957031 -1.730469 6.285156 -0.878906 C 5.726563 -0.175781 4.949219 0.175781 3.953125 0.175781 C 2.945313 0.175781 2.136719 -0.207031 1.523438 -0.980469 C 0.910156 -1.746094 0.601563 -3.121094 0.605469 -5.105469 C 0.601563 -7.042969 0.941406 -8.441406 1.617188 -9.296875 C 2.171875 -9.996094 2.949219 -10.347656 3.953125 -10.351563 Z M 3.953125 -8.710938 C 3.710938 -8.707031 3.496094 -8.628906 3.3125 -8.480469 C 3.121094 -8.324219 2.976563 -8.054688 2.875 -7.664063 C 2.738281 -7.152344 2.671875 -6.289063 2.671875 -5.082031 C 2.671875 -3.871094 2.730469 -3.042969 2.855469 -2.589844 C 2.972656 -2.136719 3.128906 -1.835938 3.316406 -1.6875 C 3.5 -1.535156 3.710938 -1.457031 3.953125 -1.460938 C 4.1875 -1.457031 4.398438 -1.535156 4.589844 -1.6875 C 4.773438 -1.839844 4.921875 -2.113281 5.027344 -2.511719 C 5.160156 -3.015625 5.226563 -3.871094 5.230469 -5.082031 C 5.226563 -6.289063 5.164063 -7.121094 5.046875 -7.574219 C 4.921875 -8.023438 4.769531 -8.324219 4.585938 -8.480469 C 4.398438 -8.628906 4.1875 -8.707031 3.953125 -8.710938 Z M 3.953125 -8.710938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-20">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface31">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 403.375 C 77.101563 406.976563 71.699219 406.976563 71.699219 403.375 C 71.699219 399.777344 77.101563 399.777344 77.101563 403.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 99.023438 379.882813 C 99.023438 383.484375 93.625 383.484375 93.625 379.882813 C 93.625 376.28125 99.023438 376.28125 99.023438 379.882813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 114.304688 364.78125 C 114.304688 368.378906 108.902344 368.378906 108.902344 364.78125 C 108.902344 361.179688 114.304688 361.179688 114.304688 364.78125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 130.25 348 C 130.25 351.601563 124.847656 351.601563 124.847656 348 C 124.847656 344.398438 130.25 344.398438 130.25 348 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 150.179688 327.863281 C 150.179688 331.464844 144.78125 331.464844 144.78125 327.863281 C 144.78125 324.261719 150.179688 324.261719 150.179688 327.863281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 170.773438 307.726563 C 170.773438 311.328125 165.375 311.328125 165.375 307.726563 C 165.375 304.125 170.773438 304.125 170.773438 307.726563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.019531 282.554688 C 196.019531 286.15625 190.621094 286.15625 190.621094 282.554688 C 190.621094 278.957031 196.019531 278.957031 196.019531 282.554688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 219.9375 260.742188 C 219.9375 264.339844 214.539063 264.339844 214.539063 260.742188 C 214.539063 257.140625 219.9375 257.140625 219.9375 260.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 239.203125 243.960938 C 239.203125 247.5625 233.804688 247.5625 233.804688 243.960938 C 233.804688 240.359375 239.203125 240.359375 239.203125 243.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.8125 230.535156 C 255.8125 234.136719 250.414063 234.136719 250.414063 230.535156 C 250.414063 226.9375 255.8125 226.9375 255.8125 230.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 276.40625 212.078125 C 276.40625 215.679688 271.007813 215.679688 271.007813 212.078125 C 271.007813 208.476563 276.40625 208.476563 276.40625 212.078125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 299.660156 191.941406 C 299.660156 195.542969 294.261719 195.542969 294.261719 191.941406 C 294.261719 188.339844 299.660156 188.339844 299.660156 191.941406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 320.253906 175.160156 C 320.253906 178.761719 314.855469 178.761719 314.855469 175.160156 C 314.855469 171.5625 320.253906 171.5625 320.253906 175.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 340.851563 158.378906 C 340.851563 161.980469 335.449219 161.980469 335.449219 158.378906 C 335.449219 154.78125 340.851563 154.78125 340.851563 158.378906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 362.109375 143.277344 C 362.109375 146.878906 356.710938 146.878906 356.710938 143.277344 C 356.710938 139.679688 362.109375 139.679688 362.109375 143.277344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 383.371094 126.496094 C 383.371094 130.097656 377.96875 130.097656 377.96875 126.496094 C 377.96875 122.898438 383.371094 122.898438 383.371094 126.496094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 399.316406 114.75 C 399.316406 118.351563 393.914063 118.351563 393.914063 114.75 C 393.914063 111.152344 399.316406 111.152344 399.316406 114.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 421.238281 99.648438 C 421.238281 103.25 415.839844 103.25 415.839844 99.648438 C 415.839844 96.046875 421.238281 96.046875 421.238281 99.648438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 443.164063 84.546875 C 443.164063 88.144531 437.761719 88.144531 437.761719 84.546875 C 437.761719 80.945313 443.164063 80.945313 443.164063 84.546875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.457031 430.558594 L 434.59375 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.457031 430.558594 L 121.457031 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 199.742188 430.558594 L 199.742188 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 278.027344 430.558594 L 278.027344 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 356.308594 430.558594 L 356.308594 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 434.59375 430.558594 L 434.59375 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="118.121094" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="196.40625" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-3" x="274.691406" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-4" x="352.972656" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-5" x="431.257813" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 395.824219 L 59.039063 64.410156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 395.824219 L 51.839844 395.824219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 329.542969 L 51.839844 329.542969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 263.257813 L 51.839844 263.257813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 196.976563 L 51.839844 196.976563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 130.691406 L 51.839844 130.691406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 64.410156 L 51.839844 64.410156 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="399.160156"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="41.761719" y="332.878906"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-3" x="41.761719" y="266.59375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="41.761719" y="200.3125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="41.761719" y="134.027344"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="41.761719" y="67.746094"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="166.554688" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="176.159375" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="184.955469" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="193.751563" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="201.760156" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="207.364063" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="212.159375" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="220.167969" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="228.176562" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="232.971875" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="236.972656" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="244.98125" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="252.989844" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="256.990625" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="265.786719" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="273.795312" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="278.590625" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="283.385938" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="287.386719" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="295.395312" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="303.403906" y="34.675781"/>
+  <use xlink:href="#glyph2-1" x="307.404687" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="317.009375" y="34.675781"/>
+  <use xlink:href="#glyph2-17" x="321.010156" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="329.419531" y="34.675781"/>
+  <use xlink:href="#glyph2-18" x="333.420312" y="34.675781"/>
+  <use xlink:href="#glyph2-19" x="341.428906" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="349.4375" y="34.675781"/>
+  <use xlink:href="#glyph2-20" x="353.438281" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-6" x="260.726563" y="485.28125"/>
+  <use xlink:href="#glyph0-7" x="267.400391" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-12" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-7" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 403.375 C 77.101563 406.976563 71.699219 406.976563 71.699219 403.375 C 71.699219 399.777344 77.101563 399.777344 77.101563 403.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 99.023438 379.882813 C 99.023438 383.484375 93.625 383.484375 93.625 379.882813 C 93.625 376.28125 99.023438 376.28125 99.023438 379.882813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 114.304688 364.78125 C 114.304688 368.378906 108.902344 368.378906 108.902344 364.78125 C 108.902344 361.179688 114.304688 361.179688 114.304688 364.78125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 130.25 348 C 130.25 351.601563 124.847656 351.601563 124.847656 348 C 124.847656 344.398438 130.25 344.398438 130.25 348 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 150.179688 327.863281 C 150.179688 331.464844 144.78125 331.464844 144.78125 327.863281 C 144.78125 324.261719 150.179688 324.261719 150.179688 327.863281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 170.773438 307.726563 C 170.773438 311.328125 165.375 311.328125 165.375 307.726563 C 165.375 304.125 170.773438 304.125 170.773438 307.726563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.019531 282.554688 C 196.019531 286.15625 190.621094 286.15625 190.621094 282.554688 C 190.621094 278.957031 196.019531 278.957031 196.019531 282.554688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 219.9375 260.742188 C 219.9375 264.339844 214.539063 264.339844 214.539063 260.742188 C 214.539063 257.140625 219.9375 257.140625 219.9375 260.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 239.203125 243.960938 C 239.203125 247.5625 233.804688 247.5625 233.804688 243.960938 C 233.804688 240.359375 239.203125 240.359375 239.203125 243.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.8125 230.535156 C 255.8125 234.136719 250.414063 234.136719 250.414063 230.535156 C 250.414063 226.9375 255.8125 226.9375 255.8125 230.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 276.40625 212.078125 C 276.40625 215.679688 271.007813 215.679688 271.007813 212.078125 C 271.007813 208.476563 276.40625 208.476563 276.40625 212.078125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 299.660156 191.941406 C 299.660156 195.542969 294.261719 195.542969 294.261719 191.941406 C 294.261719 188.339844 299.660156 188.339844 299.660156 191.941406 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 320.253906 175.160156 C 320.253906 178.761719 314.855469 178.761719 314.855469 175.160156 C 314.855469 171.5625 320.253906 171.5625 320.253906 175.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 340.851563 158.378906 C 340.851563 161.980469 335.449219 161.980469 335.449219 158.378906 C 335.449219 154.78125 340.851563 154.78125 340.851563 158.378906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 362.109375 143.277344 C 362.109375 146.878906 356.710938 146.878906 356.710938 143.277344 C 356.710938 139.679688 362.109375 139.679688 362.109375 143.277344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 383.371094 126.496094 C 383.371094 130.097656 377.96875 130.097656 377.96875 126.496094 C 377.96875 122.898438 383.371094 122.898438 383.371094 126.496094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 399.316406 114.75 C 399.316406 118.351563 393.914063 118.351563 393.914063 114.75 C 393.914063 111.152344 399.316406 111.152344 399.316406 114.75 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 421.238281 99.648438 C 421.238281 103.25 415.839844 103.25 415.839844 99.648438 C 415.839844 96.046875 421.238281 96.046875 421.238281 99.648438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 443.164063 84.546875 C 443.164063 88.144531 437.761719 88.144531 437.761719 84.546875 C 437.761719 80.945313 443.164063 80.945313 443.164063 84.546875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 403.304688 L 78.238281 399.199219 L 82.078125 395.109375 L 85.921875 391.035156 L 89.761719 386.976563 L 93.601563 382.933594 L 97.441406 378.910156 L 101.28125 374.898438 L 105.121094 370.90625 L 108.960938 366.929688 L 112.800781 362.96875 L 116.640625 359.023438 L 120.480469 355.09375 L 124.320313 351.179688 L 128.160156 347.285156 L 132 343.40625 L 135.839844 339.542969 L 139.679688 335.695313 L 143.519531 331.863281 L 147.359375 328.046875 L 151.199219 324.25 L 155.039063 320.464844 L 158.878906 316.699219 L 162.71875 312.949219 L 166.558594 309.214844 L 170.398438 305.496094 L 174.238281 301.792969 L 178.078125 298.109375 L 181.921875 294.4375 L 185.761719 290.785156 L 189.601563 287.148438 L 193.441406 283.527344 L 197.28125 279.921875 L 201.121094 276.335938 L 204.960938 272.761719 L 208.800781 269.207031 L 212.640625 265.667969 L 216.480469 262.144531 L 220.320313 258.636719 L 224.160156 255.144531 L 228 251.667969 L 231.839844 248.210938 L 235.679688 244.769531 L 239.519531 241.339844 L 243.359375 237.929688 L 247.199219 234.539063 L 251.039063 231.160156 L 254.878906 227.796875 L 258.71875 224.453125 L 262.558594 221.121094 L 266.398438 217.808594 L 270.238281 214.511719 L 274.078125 211.230469 L 277.921875 207.96875 L 281.761719 204.71875 L 285.601563 201.488281 L 289.441406 198.269531 L 293.28125 195.070313 L 297.121094 191.886719 L 300.960938 188.71875 L 304.800781 185.570313 L 308.640625 182.433594 L 312.480469 179.316406 L 316.320313 176.214844 L 320.160156 173.125 L 324 170.058594 L 327.839844 167.003906 L 331.679688 163.964844 L 335.519531 160.945313 L 339.359375 157.9375 L 343.199219 154.949219 L 347.039063 151.976563 L 350.878906 149.019531 L 354.71875 146.078125 L 358.558594 143.152344 L 362.398438 140.246094 L 366.238281 137.355469 L 370.078125 134.476563 L 373.921875 131.617188 L 377.761719 128.773438 L 381.601563 125.949219 L 385.441406 123.136719 L 389.28125 120.34375 L 393.121094 117.5625 L 396.960938 114.800781 L 400.800781 112.054688 L 404.640625 109.324219 L 408.480469 106.609375 L 412.320313 103.914063 L 416.160156 101.230469 L 420 98.566406 L 423.839844 95.917969 L 427.679688 93.285156 L 431.519531 90.667969 L 435.359375 88.066406 L 439.199219 85.484375 L 443.039063 82.914063 L 446.878906 80.363281 L 450.71875 77.828125 L 454.558594 75.308594 L 458.398438 72.804688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.582031 416.800781 L 78.21875 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 420.617188 L 74.398438 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 84.53125 398.339844 L 92.171875 398.339844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 88.351563 402.160156 L 88.351563 394.523438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 96.492188 384.917969 L 104.128906 384.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 100.308594 388.734375 L 100.308594 381.097656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.078125 361.425781 L 126.714844 361.425781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 122.898438 365.242188 L 122.898438 357.605469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 132.367188 346.320313 L 140.003906 346.320313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 136.183594 350.140625 L 136.183594 342.503906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 148.976563 332.898438 L 156.613281 332.898438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 152.792969 336.714844 L 152.792969 329.078125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 162.925781 319.472656 L 170.5625 319.472656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.746094 323.292969 L 166.746094 315.65625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 182.859375 304.371094 L 190.496094 304.371094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 186.675781 308.1875 L 186.675781 300.550781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 198.804688 289.269531 L 206.441406 289.269531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 202.621094 293.085938 L 202.621094 285.449219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 216.742188 277.523438 L 224.378906 277.523438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 220.558594 281.339844 L 220.558594 273.703125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.679688 264.097656 L 242.316406 264.097656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.496094 267.914063 L 238.496094 260.277344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.9375 250.671875 L 263.574219 250.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 259.757813 254.492188 L 259.757813 246.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 269.890625 240.605469 L 277.527344 240.605469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 273.707031 244.421875 L 273.707031 236.785156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 284.503906 230.535156 L 292.140625 230.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 288.324219 234.355469 L 288.324219 226.71875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 308.421875 213.757813 L 316.058594 213.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 312.242188 217.574219 L 312.242188 209.9375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 321.710938 205.367188 L 329.347656 205.367188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 325.527344 209.183594 L 325.527344 201.546875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.640625 193.621094 L 349.277344 193.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 345.457031 197.4375 L 345.457031 189.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 353.597656 185.230469 L 361.234375 185.230469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.417969 189.046875 L 357.417969 181.410156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 370.871094 173.484375 L 378.507813 173.484375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 374.691406 177.300781 L 374.691406 169.664063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 386.816406 163.414063 L 394.453125 163.414063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 390.636719 167.234375 L 390.636719 159.597656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 406.082031 151.667969 L 413.71875 151.667969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 409.902344 155.488281 L 409.902344 147.851563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 423.355469 139.921875 L 430.992188 139.921875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 427.175781 143.742188 L 427.175781 136.105469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 438.636719 129.855469 L 446.273438 129.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 442.457031 133.671875 L 442.457031 126.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.582031 118.105469 L 462.21875 118.105469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 121.925781 L 458.398438 114.289063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 408.75 L 78.238281 405.027344 L 82.078125 401.324219 L 85.921875 397.640625 L 89.761719 393.972656 L 93.601563 390.320313 L 97.441406 386.6875 L 101.28125 383.074219 L 105.121094 379.476563 L 108.960938 375.898438 L 112.800781 372.335938 L 116.640625 368.792969 L 120.480469 365.265625 L 124.320313 361.757813 L 128.160156 358.265625 L 132 354.792969 L 135.839844 351.335938 L 139.679688 347.898438 L 143.519531 344.476563 L 147.359375 341.074219 L 151.199219 337.691406 L 155.039063 334.324219 L 158.878906 330.972656 L 162.71875 327.640625 L 166.558594 324.328125 L 170.398438 321.03125 L 174.238281 317.75 L 178.078125 314.488281 L 181.921875 311.246094 L 185.761719 308.019531 L 189.601563 304.8125 L 193.441406 301.621094 L 197.28125 298.449219 L 201.121094 295.292969 L 204.960938 292.15625 L 208.800781 289.035156 L 212.640625 285.933594 L 216.480469 282.847656 L 220.320313 279.78125 L 224.160156 276.734375 L 228 273.699219 L 231.839844 270.6875 L 235.679688 267.691406 L 239.519531 264.710938 L 243.359375 261.75 L 247.199219 258.808594 L 251.039063 255.882813 L 254.878906 252.976563 L 258.71875 250.085938 L 262.558594 247.214844 L 266.398438 244.359375 L 270.238281 241.519531 L 274.078125 238.703125 L 277.921875 235.898438 L 281.761719 233.117188 L 285.601563 230.351563 L 289.441406 227.601563 L 293.28125 224.871094 L 297.121094 222.15625 L 300.960938 219.460938 L 304.800781 216.78125 L 308.640625 214.121094 L 312.480469 211.480469 L 316.320313 208.855469 L 320.160156 206.25 L 324 203.660156 L 327.839844 201.085938 L 331.679688 198.53125 L 335.519531 195.996094 L 339.359375 193.476563 L 343.199219 190.976563 L 347.039063 188.492188 L 350.878906 186.027344 L 354.71875 183.578125 L 358.558594 181.148438 L 362.398438 178.734375 L 366.238281 176.339844 L 370.078125 173.960938 L 373.921875 171.601563 L 377.761719 169.261719 L 381.601563 166.9375 L 385.441406 164.628906 L 389.28125 162.339844 L 393.121094 160.070313 L 396.960938 157.816406 L 400.800781 155.578125 L 404.640625 153.359375 L 408.480469 151.160156 L 412.320313 148.976563 L 416.160156 146.8125 L 420 144.664063 L 423.839844 142.535156 L 427.679688 140.421875 L 431.519531 138.328125 L 435.359375 136.25 L 439.199219 134.191406 L 443.039063 132.148438 L 446.878906 130.125 L 450.71875 128.117188 L 454.558594 126.128906 L 458.398438 124.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-9" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-9" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="338.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="344.705078" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="351.378906" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="356.048828" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="361.679688" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="368.353516" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="371.6875" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="378.695313" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="382.029297" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="388.703125" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="392.037109" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="398.710938" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="405.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="412.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="416.728516" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="420.0625" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="427.070313" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="430.404297" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="437.078125" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="440.412109" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="447.085938" y="346.695313"/>
+  <use xlink:href="#glyph0-4" x="453.759766" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-9" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-9" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="331.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="338.03125" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="344.705078" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="349.375" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="355.005859" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="361.679688" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="365.013672" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="372.021484" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="375.355469" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="382.029297" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="385.363281" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="392.037109" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="398.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="405.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="410.054688" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="413.388672" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="420.396484" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="423.730469" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="430.404297" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="433.738281" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="440.412109" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="447.085938" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/baffle_fishway_suractif_slope_15_.svg b/docs/en/calculators/par/baffle_fishway_suractif_slope_15_.svg
new file mode 100644
index 000000000..95a96f51b
--- /dev/null
+++ b/docs/en/calculators/par/baffle_fishway_suractif_slope_15_.svg
@@ -0,0 +1,454 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -7.5 L 7.5 -7.5 L 7.5 0 Z M 1.6875 -0.1875 L 7.3125 -0.1875 L 7.3125 -7.3125 L 1.6875 -7.3125 Z M 1.6875 -0.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 4.46875 0 L 3.414063 0 L 3.414063 -6.71875 C 3.160156 -6.476563 2.828125 -6.234375 2.414063 -5.996094 C 2 -5.75 1.628906 -5.570313 1.304688 -5.449219 L 1.304688 -6.46875 C 1.894531 -6.742188 2.410156 -7.078125 2.851563 -7.476563 C 3.292969 -7.871094 3.605469 -8.253906 3.789063 -8.625 L 4.46875 -8.625 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 6.039063 -1.015625 L 6.039063 0 L 0.363281 0 C 0.355469 -0.253906 0.394531 -0.496094 0.484375 -0.734375 C 0.628906 -1.117188 0.859375 -1.5 1.179688 -1.875 C 1.492188 -2.25 1.953125 -2.683594 2.5625 -3.175781 C 3.492188 -3.941406 4.125 -4.546875 4.453125 -4.992188 C 4.78125 -5.4375 4.945313 -5.859375 4.945313 -6.265625 C 4.945313 -6.679688 4.792969 -7.03125 4.496094 -7.320313 C 4.191406 -7.601563 3.804688 -7.746094 3.328125 -7.75 C 2.820313 -7.746094 2.414063 -7.59375 2.109375 -7.292969 C 1.804688 -6.984375 1.648438 -6.5625 1.648438 -6.03125 L 0.5625 -6.140625 C 0.632813 -6.945313 0.910156 -7.558594 1.398438 -7.988281 C 1.878906 -8.410156 2.53125 -8.625 3.351563 -8.625 C 4.171875 -8.625 4.824219 -8.394531 5.308594 -7.9375 C 5.789063 -7.480469 6.027344 -6.914063 6.03125 -6.242188 C 6.027344 -5.894531 5.957031 -5.558594 5.820313 -5.226563 C 5.675781 -4.890625 5.441406 -4.539063 5.117188 -4.175781 C 4.789063 -3.804688 4.25 -3.300781 3.492188 -2.664063 C 2.859375 -2.128906 2.453125 -1.769531 2.273438 -1.582031 C 2.09375 -1.394531 1.945313 -1.203125 1.828125 -1.015625 Z M 6.039063 -1.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.503906 -2.265625 L 1.558594 -2.40625 C 1.679688 -1.808594 1.882813 -1.378906 2.175781 -1.113281 C 2.464844 -0.847656 2.820313 -0.714844 3.242188 -0.71875 C 3.734375 -0.714844 4.152344 -0.886719 4.496094 -1.234375 C 4.832031 -1.574219 5.003906 -2 5.007813 -2.515625 C 5.003906 -2.996094 4.847656 -3.394531 4.535156 -3.710938 C 4.21875 -4.023438 3.816406 -4.183594 3.328125 -4.183594 C 3.128906 -4.183594 2.878906 -4.144531 2.585938 -4.066406 L 2.703125 -4.992188 C 2.765625 -4.984375 2.824219 -4.980469 2.871094 -4.980469 C 3.320313 -4.980469 3.722656 -5.097656 4.085938 -5.332031 C 4.441406 -5.566406 4.621094 -5.925781 4.625 -6.414063 C 4.621094 -6.800781 4.492188 -7.121094 4.230469 -7.375 C 3.964844 -7.628906 3.625 -7.757813 3.21875 -7.757813 C 2.804688 -7.757813 2.464844 -7.628906 2.191406 -7.371094 C 1.917969 -7.113281 1.742188 -6.726563 1.664063 -6.210938 L 0.609375 -6.398438 C 0.738281 -7.105469 1.03125 -7.652344 1.488281 -8.042969 C 1.941406 -8.429688 2.507813 -8.625 3.195313 -8.625 C 3.660156 -8.625 4.09375 -8.523438 4.488281 -8.324219 C 4.878906 -8.121094 5.179688 -7.847656 5.390625 -7.5 C 5.601563 -7.148438 5.707031 -6.777344 5.707031 -6.390625 C 5.707031 -6.019531 5.605469 -5.683594 5.40625 -5.378906 C 5.207031 -5.074219 4.914063 -4.832031 4.523438 -4.652344 C 5.03125 -4.535156 5.425781 -4.289063 5.707031 -3.921875 C 5.988281 -3.546875 6.128906 -3.085938 6.128906 -2.539063 C 6.128906 -1.785156 5.855469 -1.148438 5.308594 -0.628906 C 4.761719 -0.105469 4.070313 0.152344 3.234375 0.152344 C 2.476563 0.152344 1.847656 -0.0703125 1.355469 -0.519531 C 0.855469 -0.96875 0.574219 -1.550781 0.503906 -2.265625 Z M 0.503906 -2.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 3.878906 0 L 3.878906 -2.054688 L 0.152344 -2.054688 L 0.152344 -3.023438 L 4.070313 -8.589844 L 4.933594 -8.589844 L 4.933594 -3.023438 L 6.09375 -3.023438 L 6.09375 -2.054688 L 4.933594 -2.054688 L 4.933594 0 Z M 3.878906 -3.023438 L 3.878906 -6.898438 L 1.1875 -3.023438 Z M 3.878906 -3.023438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 0.5 -2.25 L 1.605469 -2.34375 C 1.683594 -1.804688 1.871094 -1.398438 2.175781 -1.125 C 2.472656 -0.851563 2.835938 -0.714844 3.257813 -0.71875 C 3.765625 -0.714844 4.195313 -0.90625 4.546875 -1.292969 C 4.898438 -1.671875 5.074219 -2.179688 5.074219 -2.820313 C 5.074219 -3.414063 4.902344 -3.890625 4.566406 -4.242188 C 4.226563 -4.589844 3.785156 -4.761719 3.242188 -4.765625 C 2.898438 -4.761719 2.59375 -4.683594 2.320313 -4.53125 C 2.046875 -4.375 1.832031 -4.175781 1.675781 -3.929688 L 0.6875 -4.0625 L 1.515625 -8.472656 L 5.789063 -8.472656 L 5.789063 -7.464844 L 2.359375 -7.464844 L 1.898438 -5.15625 C 2.414063 -5.515625 2.953125 -5.695313 3.523438 -5.695313 C 4.269531 -5.695313 4.902344 -5.433594 5.421875 -4.914063 C 5.933594 -4.394531 6.191406 -3.726563 6.195313 -2.914063 C 6.191406 -2.132813 5.964844 -1.460938 5.515625 -0.898438 C 4.960938 -0.199219 4.210938 0.144531 3.257813 0.148438 C 2.476563 0.144531 1.835938 -0.0703125 1.34375 -0.507813 C 0.84375 -0.941406 0.5625 -1.523438 0.5 -2.25 Z M 0.5 -2.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 4.757813 2.382813 L 4.757813 -0.664063 C 4.59375 -0.429688 4.363281 -0.238281 4.066406 -0.0859375 C 3.769531 0.0664063 3.457031 0.140625 3.128906 0.140625 C 2.390625 0.140625 1.753906 -0.152344 1.222656 -0.742188 C 0.6875 -1.332031 0.421875 -2.140625 0.421875 -3.171875 C 0.421875 -3.792969 0.527344 -4.355469 0.746094 -4.851563 C 0.957031 -5.34375 1.273438 -5.71875 1.6875 -5.976563 C 2.101563 -6.234375 2.554688 -6.363281 3.046875 -6.363281 C 3.816406 -6.363281 4.421875 -6.039063 4.863281 -5.390625 L 4.863281 -6.222656 L 5.8125 -6.222656 L 5.8125 2.382813 Z M 1.507813 -3.128906 C 1.503906 -2.328125 1.671875 -1.726563 2.011719 -1.328125 C 2.34375 -0.925781 2.746094 -0.726563 3.21875 -0.726563 C 3.664063 -0.726563 4.050781 -0.914063 4.375 -1.296875 C 4.699219 -1.671875 4.863281 -2.253906 4.863281 -3.035156 C 4.863281 -3.863281 4.691406 -4.484375 4.347656 -4.902344 C 4.003906 -5.320313 3.601563 -5.53125 3.148438 -5.53125 C 2.6875 -5.53125 2.300781 -5.335938 1.984375 -4.949219 C 1.664063 -4.558594 1.503906 -3.953125 1.507813 -3.128906 Z M 1.507813 -3.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 0.375 -7.015625 L 0.644531 -7.84375 C 1.265625 -7.621094 1.714844 -7.433594 2 -7.277344 C 1.921875 -7.980469 1.882813 -8.464844 1.882813 -8.734375 L 2.730469 -8.734375 C 2.714844 -8.347656 2.667969 -7.863281 2.59375 -7.28125 C 2.996094 -7.480469 3.457031 -7.667969 3.976563 -7.84375 L 4.25 -7.015625 C 3.75 -6.84375 3.265625 -6.734375 2.789063 -6.6875 C 3.027344 -6.476563 3.363281 -6.109375 3.796875 -5.578125 L 3.09375 -5.078125 C 2.867188 -5.386719 2.597656 -5.808594 2.289063 -6.339844 C 2 -5.789063 1.746094 -5.367188 1.53125 -5.078125 L 0.835938 -5.578125 C 1.285156 -6.132813 1.609375 -6.5 1.8125 -6.6875 C 1.304688 -6.78125 0.828125 -6.890625 0.375 -7.015625 Z M 0.375 -7.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.789063 0 L 0.789063 -8.589844 L 1.84375 -8.589844 L 1.84375 -5.507813 C 2.335938 -6.078125 2.957031 -6.363281 3.710938 -6.363281 C 4.164063 -6.363281 4.566406 -6.269531 4.910156 -6.089844 C 5.25 -5.90625 5.492188 -5.65625 5.640625 -5.339844 C 5.785156 -5.015625 5.859375 -4.550781 5.859375 -3.945313 L 5.859375 0 L 4.804688 0 L 4.804688 -3.945313 C 4.804688 -4.46875 4.6875 -4.851563 4.460938 -5.09375 C 4.226563 -5.328125 3.90625 -5.449219 3.492188 -5.453125 C 3.179688 -5.449219 2.882813 -5.367188 2.609375 -5.210938 C 2.328125 -5.046875 2.132813 -4.828125 2.019531 -4.550781 C 1.898438 -4.273438 1.839844 -3.890625 1.84375 -3.40625 L 1.84375 0 Z M 0.789063 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 4.851563 -0.765625 C 4.460938 -0.433594 4.082031 -0.199219 3.722656 -0.0625 C 3.355469 0.0742188 2.96875 0.140625 2.5625 0.140625 C 1.875 0.140625 1.351563 -0.0234375 0.984375 -0.359375 C 0.617188 -0.6875 0.433594 -1.117188 0.433594 -1.640625 C 0.433594 -1.945313 0.5 -2.222656 0.640625 -2.472656 C 0.777344 -2.722656 0.960938 -2.925781 1.1875 -3.082031 C 1.410156 -3.234375 1.664063 -3.347656 1.945313 -3.429688 C 2.152344 -3.476563 2.464844 -3.53125 2.882813 -3.585938 C 3.734375 -3.6875 4.359375 -3.808594 4.765625 -3.949219 C 4.765625 -4.089844 4.769531 -4.179688 4.769531 -4.226563 C 4.769531 -4.648438 4.667969 -4.953125 4.46875 -5.132813 C 4.199219 -5.371094 3.800781 -5.488281 3.269531 -5.492188 C 2.769531 -5.488281 2.402344 -5.402344 2.167969 -5.230469 C 1.933594 -5.054688 1.757813 -4.746094 1.648438 -4.304688 L 0.617188 -4.445313 C 0.707031 -4.886719 0.863281 -5.242188 1.078125 -5.515625 C 1.289063 -5.78125 1.597656 -5.992188 2.007813 -6.140625 C 2.410156 -6.289063 2.882813 -6.363281 3.421875 -6.363281 C 3.953125 -6.363281 4.382813 -6.300781 4.714844 -6.175781 C 5.046875 -6.050781 5.292969 -5.890625 5.449219 -5.703125 C 5.605469 -5.511719 5.714844 -5.273438 5.777344 -4.984375 C 5.808594 -4.804688 5.824219 -4.480469 5.828125 -4.015625 L 5.828125 -2.609375 C 5.824219 -1.625 5.847656 -1.003906 5.894531 -0.746094 C 5.941406 -0.484375 6.03125 -0.238281 6.164063 0 L 5.0625 0 C 4.953125 -0.21875 4.882813 -0.472656 4.851563 -0.765625 Z M 4.765625 -3.125 C 4.375 -2.964844 3.800781 -2.832031 3.039063 -2.726563 C 2.605469 -2.660156 2.300781 -2.589844 2.121094 -2.515625 C 1.941406 -2.433594 1.800781 -2.320313 1.703125 -2.171875 C 1.605469 -2.019531 1.558594 -1.851563 1.558594 -1.671875 C 1.558594 -1.386719 1.664063 -1.152344 1.875 -0.96875 C 2.085938 -0.777344 2.398438 -0.683594 2.8125 -0.6875 C 3.21875 -0.683594 3.578125 -0.773438 3.894531 -0.953125 C 4.210938 -1.128906 4.445313 -1.371094 4.59375 -1.679688 C 4.707031 -1.917969 4.761719 -2.269531 4.765625 -2.734375 Z M 4.765625 -3.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 0 0.148438 L 2.492188 -8.734375 L 3.335938 -8.734375 L 0.851563 0.148438 Z M 0 0.148438 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 6.339844 -5.050781 L 0.667969 -5.050781 L 0.667969 -6.035156 L 6.339844 -6.035156 Z M 6.339844 -2.445313 L 0.667969 -2.445313 L 0.667969 -3.429688 L 6.339844 -3.429688 Z M 6.339844 -2.445313 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 0.382813 -2.578125 L 0.382813 -3.640625 L 3.621094 -3.640625 L 3.621094 -2.578125 Z M 0.382813 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 0.5 -4.234375 C 0.496094 -5.246094 0.601563 -6.0625 0.8125 -6.6875 C 1.019531 -7.304688 1.328125 -7.785156 1.742188 -8.121094 C 2.148438 -8.457031 2.667969 -8.625 3.296875 -8.625 C 3.757813 -8.625 4.164063 -8.53125 4.511719 -8.347656 C 4.855469 -8.160156 5.140625 -7.890625 5.371094 -7.542969 C 5.59375 -7.191406 5.773438 -6.765625 5.90625 -6.265625 C 6.035156 -5.761719 6.097656 -5.085938 6.101563 -4.234375 C 6.097656 -3.226563 5.996094 -2.414063 5.789063 -1.796875 C 5.578125 -1.175781 5.265625 -0.695313 4.859375 -0.359375 C 4.445313 -0.0195313 3.925781 0.144531 3.296875 0.148438 C 2.464844 0.144531 1.816406 -0.148438 1.347656 -0.742188 C 0.78125 -1.457031 0.496094 -2.621094 0.5 -4.234375 Z M 1.582031 -4.234375 C 1.582031 -2.824219 1.746094 -1.886719 2.074219 -1.417969 C 2.402344 -0.949219 2.808594 -0.714844 3.296875 -0.71875 C 3.777344 -0.714844 4.183594 -0.949219 4.519531 -1.421875 C 4.847656 -1.886719 5.015625 -2.824219 5.015625 -4.234375 C 5.015625 -5.648438 4.847656 -6.589844 4.519531 -7.054688 C 4.183594 -7.515625 3.773438 -7.746094 3.289063 -7.75 C 2.800781 -7.746094 2.414063 -7.542969 2.125 -7.136719 C 1.761719 -6.613281 1.582031 -5.644531 1.582031 -4.234375 Z M 1.582031 -4.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 1.089844 0 L 1.089844 -1.203125 L 2.289063 -1.203125 L 2.289063 0 Z M 1.089844 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 5.96875 -6.484375 L 4.921875 -6.40625 C 4.828125 -6.8125 4.695313 -7.113281 4.523438 -7.304688 C 4.234375 -7.605469 3.882813 -7.757813 3.46875 -7.757813 C 3.132813 -7.757813 2.835938 -7.664063 2.585938 -7.476563 C 2.25 -7.234375 1.988281 -6.878906 1.796875 -6.414063 C 1.605469 -5.949219 1.507813 -5.289063 1.5 -4.429688 C 1.753906 -4.8125 2.0625 -5.097656 2.433594 -5.289063 C 2.796875 -5.472656 3.183594 -5.566406 3.585938 -5.570313 C 4.289063 -5.566406 4.886719 -5.308594 5.382813 -4.792969 C 5.875 -4.277344 6.121094 -3.609375 6.125 -2.789063 C 6.121094 -2.25 6.003906 -1.746094 5.773438 -1.285156 C 5.539063 -0.820313 5.222656 -0.46875 4.816406 -0.222656 C 4.410156 0.0234375 3.949219 0.144531 3.433594 0.148438 C 2.554688 0.144531 1.835938 -0.175781 1.285156 -0.820313 C 0.726563 -1.46875 0.449219 -2.535156 0.453125 -4.019531 C 0.449219 -5.675781 0.757813 -6.882813 1.371094 -7.640625 C 1.902344 -8.296875 2.621094 -8.625 3.53125 -8.625 C 4.207031 -8.625 4.761719 -8.433594 5.195313 -8.054688 C 5.625 -7.675781 5.882813 -7.152344 5.96875 -6.484375 Z M 1.664063 -2.78125 C 1.664063 -2.417969 1.738281 -2.070313 1.894531 -1.738281 C 2.042969 -1.40625 2.261719 -1.152344 2.542969 -0.980469 C 2.820313 -0.800781 3.109375 -0.714844 3.414063 -0.71875 C 3.859375 -0.714844 4.242188 -0.894531 4.566406 -1.257813 C 4.882813 -1.613281 5.042969 -2.101563 5.046875 -2.726563 C 5.042969 -3.316406 4.886719 -3.785156 4.570313 -4.128906 C 4.25 -4.46875 3.851563 -4.640625 3.375 -4.640625 C 2.898438 -4.640625 2.492188 -4.46875 2.160156 -4.128906 C 1.828125 -3.785156 1.664063 -3.335938 1.664063 -2.78125 Z M 1.664063 -2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 2.121094 -4.65625 C 1.683594 -4.816406 1.359375 -5.046875 1.148438 -5.34375 C 0.9375 -5.640625 0.832031 -5.996094 0.832031 -6.410156 C 0.832031 -7.035156 1.054688 -7.558594 1.503906 -7.984375 C 1.953125 -8.410156 2.550781 -8.625 3.296875 -8.625 C 4.042969 -8.625 4.648438 -8.40625 5.109375 -7.972656 C 5.566406 -7.535156 5.792969 -7.003906 5.796875 -6.382813 C 5.792969 -5.976563 5.6875 -5.628906 5.480469 -5.339844 C 5.269531 -5.042969 4.953125 -4.816406 4.53125 -4.65625 C 5.054688 -4.480469 5.457031 -4.203125 5.734375 -3.824219 C 6.007813 -3.4375 6.144531 -2.980469 6.148438 -2.453125 C 6.144531 -1.714844 5.886719 -1.097656 5.367188 -0.601563 C 4.84375 -0.101563 4.160156 0.144531 3.316406 0.148438 C 2.46875 0.144531 1.785156 -0.101563 1.265625 -0.605469 C 0.742188 -1.105469 0.480469 -1.734375 0.484375 -2.484375 C 0.480469 -3.039063 0.621094 -3.503906 0.910156 -3.886719 C 1.191406 -4.261719 1.597656 -4.519531 2.121094 -4.65625 Z M 1.910156 -6.445313 C 1.910156 -6.039063 2.039063 -5.707031 2.300781 -5.449219 C 2.5625 -5.191406 2.902344 -5.0625 3.320313 -5.0625 C 3.722656 -5.0625 4.054688 -5.1875 4.320313 -5.445313 C 4.578125 -5.695313 4.710938 -6.011719 4.710938 -6.386719 C 4.710938 -6.773438 4.574219 -7.097656 4.308594 -7.363281 C 4.035156 -7.625 3.703125 -7.757813 3.3125 -7.757813 C 2.90625 -7.757813 2.574219 -7.628906 2.308594 -7.371094 C 2.042969 -7.113281 1.910156 -6.804688 1.910156 -6.445313 Z M 1.570313 -2.476563 C 1.570313 -2.175781 1.640625 -1.886719 1.785156 -1.605469 C 1.925781 -1.324219 2.136719 -1.105469 2.421875 -0.949219 C 2.699219 -0.792969 3.003906 -0.714844 3.328125 -0.71875 C 3.832031 -0.714844 4.246094 -0.878906 4.578125 -1.207031 C 4.902344 -1.53125 5.066406 -1.941406 5.070313 -2.445313 C 5.066406 -2.945313 4.898438 -3.367188 4.5625 -3.703125 C 4.222656 -4.035156 3.800781 -4.199219 3.292969 -4.203125 C 2.792969 -4.199219 2.378906 -4.035156 2.058594 -3.710938 C 1.730469 -3.378906 1.570313 -2.96875 1.570313 -2.476563 Z M 1.570313 -2.476563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 1.398438 -4.042969 L 0.316406 -4.042969 L 2.382813 -8.734375 L 3.234375 -8.734375 L 5.3125 -4.042969 L 4.253906 -4.042969 L 2.804688 -7.539063 Z M 1.398438 -4.042969 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 3.007813 -1.390625 L 3.007813 -3.742188 L 0.667969 -3.742188 L 0.667969 -4.726563 L 3.007813 -4.726563 L 3.007813 -7.066406 L 4 -7.066406 L 4 -4.726563 L 6.339844 -4.726563 L 6.339844 -3.742188 L 4 -3.742188 L 4 -1.390625 Z M 3.007813 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 0.570313 -7.464844 L 0.570313 -8.476563 L 6.128906 -8.476563 L 6.128906 -7.65625 C 5.582031 -7.074219 5.039063 -6.300781 4.5 -5.335938 C 3.960938 -4.371094 3.546875 -3.378906 3.257813 -2.359375 C 3.046875 -1.636719 2.910156 -0.851563 2.851563 0 L 1.769531 0 C 1.78125 -0.675781 1.914063 -1.492188 2.167969 -2.449219 C 2.417969 -3.402344 2.78125 -4.324219 3.257813 -5.214844 C 3.734375 -6.105469 4.238281 -6.855469 4.773438 -7.464844 Z M 0.570313 -7.464844 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0 -1.5 L -7.5 -1.5 L -7.5 -7.5 L 0 -7.5 Z M -0.1875 -1.6875 L -0.1875 -7.3125 L -7.3125 -7.3125 L -7.3125 -1.6875 Z M -0.1875 -1.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 0 -4.46875 L 0 -3.414063 L -6.71875 -3.417969 C -6.476563 -3.160156 -6.234375 -2.828125 -5.996094 -2.417969 C -5.75 -2.003906 -5.570313 -1.632813 -5.449219 -1.308594 L -6.46875 -1.308594 C -6.742188 -1.894531 -7.078125 -2.410156 -7.476563 -2.851563 C -7.871094 -3.292969 -8.253906 -3.605469 -8.625 -3.792969 L -8.625 -4.472656 Z M 0 -4.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M -1.011719 -6.039063 L 0 -6.039063 L 0 -0.363281 C -0.253906 -0.355469 -0.496094 -0.394531 -0.734375 -0.488281 C -1.117188 -0.628906 -1.5 -0.859375 -1.875 -1.179688 C -2.25 -1.496094 -2.683594 -1.957031 -3.175781 -2.5625 C -3.941406 -3.492188 -4.546875 -4.125 -4.992188 -4.453125 C -5.4375 -4.78125 -5.859375 -4.945313 -6.265625 -4.945313 C -6.679688 -4.945313 -7.03125 -4.792969 -7.320313 -4.496094 C -7.601563 -4.195313 -7.746094 -3.808594 -7.75 -3.328125 C -7.746094 -2.820313 -7.59375 -2.414063 -7.292969 -2.109375 C -6.984375 -1.804688 -6.5625 -1.648438 -6.03125 -1.648438 L -6.140625 -0.5625 C -6.945313 -0.636719 -7.558594 -0.914063 -7.988281 -1.402344 C -8.410156 -1.882813 -8.625 -2.535156 -8.625 -3.351563 C -8.625 -4.175781 -8.394531 -4.828125 -7.9375 -5.308594 C -7.480469 -5.789063 -6.914063 -6.027344 -6.242188 -6.03125 C -5.894531 -6.027344 -5.558594 -5.957031 -5.226563 -5.820313 C -4.890625 -5.675781 -4.539063 -5.441406 -4.175781 -5.117188 C -3.804688 -4.789063 -3.300781 -4.25 -2.664063 -3.492188 C -2.128906 -2.859375 -1.769531 -2.453125 -1.582031 -2.273438 C -1.394531 -2.09375 -1.203125 -1.945313 -1.011719 -1.828125 Z M -1.011719 -6.039063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M -2.265625 -0.503906 L -2.40625 -1.558594 C -1.808594 -1.679688 -1.378906 -1.882813 -1.113281 -2.175781 C -0.847656 -2.464844 -0.714844 -2.820313 -0.71875 -3.242188 C -0.714844 -3.734375 -0.886719 -4.152344 -1.234375 -4.496094 C -1.574219 -4.832031 -2 -5.003906 -2.511719 -5.007813 C -2.992188 -5.003906 -3.390625 -4.847656 -3.710938 -4.535156 C -4.023438 -4.21875 -4.183594 -3.816406 -4.183594 -3.328125 C -4.183594 -3.128906 -4.144531 -2.878906 -4.066406 -2.585938 L -4.992188 -2.703125 C -4.984375 -2.769531 -4.980469 -2.828125 -4.980469 -2.871094 C -4.980469 -3.320313 -5.097656 -3.722656 -5.332031 -4.085938 C -5.566406 -4.441406 -5.925781 -4.621094 -6.414063 -4.625 C -6.800781 -4.621094 -7.121094 -4.492188 -7.375 -4.230469 C -7.628906 -3.96875 -7.757813 -3.628906 -7.757813 -3.21875 C -7.757813 -2.804688 -7.628906 -2.464844 -7.371094 -2.191406 C -7.113281 -1.917969 -6.726563 -1.742188 -6.210938 -1.664063 L -6.398438 -0.609375 C -7.105469 -0.738281 -7.652344 -1.03125 -8.042969 -1.488281 C -8.429688 -1.945313 -8.625 -2.511719 -8.625 -3.195313 C -8.625 -3.660156 -8.523438 -4.09375 -8.324219 -4.488281 C -8.121094 -4.882813 -7.847656 -5.183594 -7.5 -5.394531 C -7.148438 -5.601563 -6.777344 -5.707031 -6.390625 -5.707031 C -6.019531 -5.707031 -5.683594 -5.605469 -5.378906 -5.40625 C -5.074219 -5.207031 -4.832031 -4.914063 -4.652344 -4.523438 C -4.535156 -5.03125 -4.289063 -5.425781 -3.921875 -5.707031 C -3.546875 -5.988281 -3.085938 -6.128906 -2.535156 -6.128906 C -1.78125 -6.128906 -1.144531 -5.855469 -0.628906 -5.308594 C -0.105469 -4.761719 0.152344 -4.070313 0.152344 -3.234375 C 0.152344 -2.476563 -0.0703125 -1.847656 -0.519531 -1.355469 C -0.96875 -0.855469 -1.550781 -0.574219 -2.265625 -0.503906 Z M -2.265625 -0.503906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 0 -3.878906 L -2.054688 -3.878906 L -2.054688 -0.152344 L -3.023438 -0.152344 L -8.589844 -4.074219 L -8.589844 -4.933594 L -3.023438 -4.933594 L -3.023438 -6.09375 L -2.054688 -6.09375 L -2.054688 -4.933594 L 0 -4.933594 Z M -3.023438 -3.878906 L -6.898438 -3.878906 L -3.023438 -1.191406 Z M -3.023438 -3.878906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M -2.25 -0.5 L -2.34375 -1.605469 C -1.804688 -1.683594 -1.398438 -1.871094 -1.125 -2.175781 C -0.851563 -2.472656 -0.714844 -2.835938 -0.71875 -3.257813 C -0.714844 -3.765625 -0.90625 -4.195313 -1.292969 -4.546875 C -1.671875 -4.898438 -2.179688 -5.074219 -2.816406 -5.074219 C -3.414063 -5.074219 -3.890625 -4.902344 -4.242188 -4.566406 C -4.589844 -4.226563 -4.761719 -3.785156 -4.765625 -3.242188 C -4.761719 -2.898438 -4.683594 -2.59375 -4.53125 -2.320313 C -4.375 -2.046875 -4.175781 -1.832031 -3.929688 -1.675781 L -4.0625 -0.6875 L -8.472656 -1.519531 L -8.472656 -5.789063 L -7.464844 -5.789063 L -7.464844 -2.363281 L -5.15625 -1.898438 C -5.515625 -2.414063 -5.695313 -2.953125 -5.695313 -3.523438 C -5.695313 -4.269531 -5.433594 -4.902344 -4.914063 -5.421875 C -4.394531 -5.933594 -3.726563 -6.191406 -2.910156 -6.195313 C -2.132813 -6.191406 -1.460938 -5.964844 -0.894531 -5.515625 C -0.199219 -4.960938 0.144531 -4.210938 0.148438 -3.257813 C 0.144531 -2.476563 -0.0703125 -1.835938 -0.507813 -1.34375 C -0.941406 -0.847656 -1.523438 -0.566406 -2.25 -0.5 Z M -2.25 -0.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 0 -0.789063 L -8.589844 -0.792969 L -8.589844 -1.847656 L -5.507813 -1.847656 C -6.078125 -2.335938 -6.363281 -2.957031 -6.363281 -3.710938 C -6.363281 -4.164063 -6.269531 -4.566406 -6.089844 -4.910156 C -5.90625 -5.25 -5.65625 -5.492188 -5.339844 -5.640625 C -5.015625 -5.785156 -4.550781 -5.859375 -3.941406 -5.859375 L 0 -5.859375 L 0 -4.804688 L -3.941406 -4.804688 C -4.46875 -4.804688 -4.851563 -4.6875 -5.09375 -4.460938 C -5.328125 -4.226563 -5.449219 -3.90625 -5.453125 -3.492188 C -5.449219 -3.179688 -5.367188 -2.882813 -5.210938 -2.609375 C -5.046875 -2.332031 -4.828125 -2.136719 -4.550781 -2.023438 C -4.273438 -1.902344 -3.890625 -1.84375 -3.40625 -1.847656 L 0 -1.84375 Z M 0 -0.789063 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M -0.765625 -4.851563 C -0.433594 -4.460938 -0.199219 -4.082031 -0.0625 -3.722656 C 0.0742188 -3.355469 0.140625 -2.96875 0.140625 -2.5625 C 0.140625 -1.875 -0.0234375 -1.351563 -0.359375 -0.984375 C -0.6875 -0.617188 -1.117188 -0.433594 -1.640625 -0.433594 C -1.945313 -0.433594 -2.222656 -0.5 -2.472656 -0.640625 C -2.722656 -0.777344 -2.925781 -0.960938 -3.082031 -1.1875 C -3.234375 -1.410156 -3.347656 -1.664063 -3.429688 -1.945313 C -3.476563 -2.152344 -3.53125 -2.464844 -3.585938 -2.882813 C -3.6875 -3.734375 -3.808594 -4.359375 -3.949219 -4.765625 C -4.089844 -4.765625 -4.179688 -4.769531 -4.226563 -4.769531 C -4.648438 -4.769531 -4.953125 -4.667969 -5.132813 -4.46875 C -5.371094 -4.199219 -5.488281 -3.800781 -5.492188 -3.269531 C -5.488281 -2.773438 -5.402344 -2.40625 -5.230469 -2.171875 C -5.054688 -1.933594 -4.746094 -1.757813 -4.304688 -1.648438 L -4.445313 -0.617188 C -4.886719 -0.707031 -5.242188 -0.863281 -5.515625 -1.078125 C -5.78125 -1.292969 -5.992188 -1.601563 -6.140625 -2.011719 C -6.289063 -2.414063 -6.363281 -2.886719 -6.363281 -3.421875 C -6.363281 -3.953125 -6.300781 -4.382813 -6.175781 -4.714844 C -6.050781 -5.046875 -5.890625 -5.292969 -5.703125 -5.449219 C -5.511719 -5.605469 -5.273438 -5.714844 -4.984375 -5.777344 C -4.804688 -5.808594 -4.480469 -5.824219 -4.015625 -5.828125 L -2.605469 -5.828125 C -1.625 -5.824219 -1.003906 -5.847656 -0.746094 -5.894531 C -0.480469 -5.941406 -0.234375 -6.03125 0 -6.164063 L 0 -5.0625 C -0.21875 -4.953125 -0.472656 -4.882813 -0.765625 -4.851563 Z M -3.121094 -4.765625 C -2.960938 -4.375 -2.828125 -3.800781 -2.726563 -3.039063 C -2.660156 -2.605469 -2.589844 -2.300781 -2.515625 -2.121094 C -2.433594 -1.941406 -2.320313 -1.800781 -2.171875 -1.703125 C -2.019531 -1.605469 -1.851563 -1.558594 -1.671875 -1.558594 C -1.386719 -1.558594 -1.152344 -1.664063 -0.964844 -1.875 C -0.773438 -2.085938 -0.679688 -2.398438 -0.683594 -2.8125 C -0.679688 -3.21875 -0.769531 -3.578125 -0.949219 -3.894531 C -1.128906 -4.210938 -1.371094 -4.445313 -1.679688 -4.59375 C -1.917969 -4.707031 -2.269531 -4.761719 -2.734375 -4.765625 Z M -3.121094 -4.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0.148438 0 L -8.734375 -2.492188 L -8.734375 -3.335938 L 0.148438 -0.851563 Z M 0.148438 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M -3.109375 -0.398438 C -4.261719 -0.398438 -5.117188 -0.71875 -5.671875 -1.359375 C -6.132813 -1.894531 -6.363281 -2.546875 -6.363281 -3.316406 C -6.363281 -4.171875 -6.082031 -4.871094 -5.519531 -5.414063 C -4.957031 -5.953125 -4.183594 -6.222656 -3.199219 -6.226563 C -2.394531 -6.222656 -1.761719 -6.101563 -1.308594 -5.867188 C -0.847656 -5.625 -0.492188 -5.277344 -0.238281 -4.820313 C 0.015625 -4.359375 0.140625 -3.859375 0.140625 -3.316406 C 0.140625 -2.441406 -0.136719 -1.734375 -0.695313 -1.203125 C -1.253906 -0.664063 -2.058594 -0.398438 -3.109375 -0.398438 Z M -3.109375 -1.484375 C -2.308594 -1.480469 -1.710938 -1.65625 -1.320313 -2.003906 C -0.921875 -2.347656 -0.726563 -2.785156 -0.726563 -3.316406 C -0.726563 -3.839844 -0.925781 -4.273438 -1.324219 -4.621094 C -1.722656 -4.96875 -2.328125 -5.144531 -3.144531 -5.144531 C -3.914063 -5.144531 -4.496094 -4.96875 -4.894531 -4.617188 C -5.289063 -4.265625 -5.488281 -3.832031 -5.492188 -3.316406 C -5.488281 -2.789063 -5.292969 -2.351563 -4.898438 -2.003906 C -4.5 -1.65625 -3.902344 -1.480469 -3.109375 -1.484375 Z M -3.109375 -1.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 0 -4.867188 L -0.914063 -4.867188 C -0.210938 -4.378906 0.140625 -3.722656 0.140625 -2.894531 C 0.140625 -2.527344 0.0703125 -2.183594 -0.0703125 -1.867188 C -0.210938 -1.546875 -0.386719 -1.308594 -0.597656 -1.15625 C -0.808594 -1 -1.070313 -0.894531 -1.382813 -0.832031 C -1.589844 -0.789063 -1.917969 -0.765625 -2.367188 -0.769531 L -6.222656 -0.769531 L -6.222656 -1.824219 L -2.773438 -1.824219 C -2.21875 -1.820313 -1.847656 -1.84375 -1.65625 -1.886719 C -1.378906 -1.949219 -1.160156 -2.089844 -1.003906 -2.308594 C -0.839844 -2.523438 -0.761719 -2.789063 -0.765625 -3.105469 C -0.761719 -3.417969 -0.84375 -3.714844 -1.007813 -3.996094 C -1.171875 -4.273438 -1.390625 -4.46875 -1.671875 -4.585938 C -1.945313 -4.699219 -2.351563 -4.757813 -2.886719 -4.757813 L -6.222656 -4.757813 L -6.222656 -5.8125 L 0 -5.8125 Z M 0 -4.867188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.800781 0 L 1.800781 -9 L 9 -9 L 9 0 Z M 2.023438 -0.226563 L 8.773438 -0.226563 L 8.773438 -8.773438 L 2.023438 -8.773438 Z M 2.023438 -0.226563 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 0.519531 -3.355469 L 2.546875 -3.550781 C 2.664063 -2.871094 2.910156 -2.371094 3.285156 -2.050781 C 3.65625 -1.730469 4.160156 -1.570313 4.796875 -1.574219 C 5.464844 -1.570313 5.96875 -1.710938 6.308594 -2 C 6.648438 -2.28125 6.820313 -2.613281 6.820313 -2.996094 C 6.820313 -3.234375 6.746094 -3.441406 6.605469 -3.617188 C 6.457031 -3.785156 6.207031 -3.933594 5.855469 -4.0625 C 5.609375 -4.144531 5.054688 -4.296875 4.191406 -4.515625 C 3.070313 -4.789063 2.289063 -5.128906 1.84375 -5.535156 C 1.207031 -6.097656 0.890625 -6.789063 0.894531 -7.609375 C 0.890625 -8.128906 1.039063 -8.617188 1.339844 -9.078125 C 1.632813 -9.53125 2.0625 -9.882813 2.625 -10.125 C 3.183594 -10.363281 3.859375 -10.480469 4.65625 -10.484375 C 5.945313 -10.480469 6.917969 -10.199219 7.574219 -9.632813 C 8.226563 -9.0625 8.570313 -8.304688 8.605469 -7.363281 L 6.523438 -7.269531 C 6.429688 -7.796875 6.238281 -8.179688 5.949219 -8.414063 C 5.652344 -8.644531 5.214844 -8.757813 4.632813 -8.761719 C 4.027344 -8.757813 3.554688 -8.632813 3.214844 -8.386719 C 2.992188 -8.222656 2.882813 -8.011719 2.882813 -7.75 C 2.882813 -7.503906 2.984375 -7.292969 3.191406 -7.121094 C 3.453125 -6.898438 4.089844 -6.671875 5.105469 -6.433594 C 6.113281 -6.191406 6.863281 -5.941406 7.351563 -5.691406 C 7.832031 -5.433594 8.210938 -5.085938 8.488281 -4.644531 C 8.761719 -4.199219 8.898438 -3.652344 8.902344 -3.003906 C 8.898438 -2.410156 8.734375 -1.855469 8.410156 -1.34375 C 8.078125 -0.824219 7.613281 -0.441406 7.015625 -0.191406 C 6.414063 0.0585938 5.667969 0.179688 4.773438 0.183594 C 3.46875 0.179688 2.46875 -0.117188 1.769531 -0.71875 C 1.070313 -1.320313 0.652344 -2.199219 0.519531 -3.355469 Z M 0.519531 -3.355469 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 5.949219 0 L 5.949219 -1.117188 C 5.671875 -0.714844 5.316406 -0.402344 4.875 -0.175781 C 4.429688 0.0507813 3.960938 0.164063 3.472656 0.167969 C 2.96875 0.164063 2.519531 0.0585938 2.125 -0.160156 C 1.722656 -0.378906 1.433594 -0.691406 1.257813 -1.089844 C 1.078125 -1.488281 0.988281 -2.039063 0.992188 -2.742188 L 0.992188 -7.46875 L 2.96875 -7.46875 L 2.96875 -4.035156 C 2.964844 -2.984375 3 -2.339844 3.074219 -2.105469 C 3.144531 -1.863281 3.277344 -1.675781 3.472656 -1.542969 C 3.664063 -1.402344 3.90625 -1.335938 4.203125 -1.335938 C 4.539063 -1.335938 4.84375 -1.425781 5.109375 -1.613281 C 5.375 -1.792969 5.558594 -2.023438 5.660156 -2.300781 C 5.757813 -2.574219 5.804688 -3.246094 5.808594 -4.316406 L 5.808594 -7.46875 L 7.785156 -7.46875 L 7.785156 0 Z M 5.949219 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 0.976563 -7.46875 L 2.820313 -7.46875 L 2.820313 -6.371094 C 3.054688 -6.742188 3.378906 -7.046875 3.789063 -7.285156 C 4.195313 -7.515625 4.648438 -7.632813 5.148438 -7.636719 C 6.011719 -7.632813 6.746094 -7.292969 7.355469 -6.617188 C 7.957031 -5.933594 8.261719 -4.988281 8.261719 -3.777344 C 8.261719 -2.527344 7.957031 -1.558594 7.347656 -0.867188 C 6.738281 -0.179688 6 0.164063 5.132813 0.167969 C 4.71875 0.164063 4.34375 0.0859375 4.011719 -0.078125 C 3.671875 -0.238281 3.320313 -0.519531 2.953125 -0.921875 L 2.953125 2.839844 L 0.976563 2.839844 Z M 2.933594 -3.859375 C 2.929688 -3.019531 3.09375 -2.398438 3.429688 -2 C 3.757813 -1.59375 4.164063 -1.394531 4.648438 -1.398438 C 5.101563 -1.394531 5.484375 -1.578125 5.792969 -1.949219 C 6.09375 -2.316406 6.246094 -2.921875 6.25 -3.761719 C 6.246094 -4.542969 6.089844 -5.121094 5.777344 -5.503906 C 5.464844 -5.878906 5.074219 -6.070313 4.613281 -6.074219 C 4.125 -6.070313 3.726563 -5.882813 3.410156 -5.515625 C 3.089844 -5.140625 2.929688 -4.589844 2.933594 -3.859375 Z M 2.933594 -3.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 5.359375 -2.375 L 7.328125 -2.046875 C 7.070313 -1.320313 6.667969 -0.773438 6.125 -0.398438 C 5.578125 -0.0234375 4.898438 0.164063 4.078125 0.167969 C 2.777344 0.164063 1.816406 -0.257813 1.195313 -1.105469 C 0.703125 -1.78125 0.457031 -2.636719 0.457031 -3.675781 C 0.457031 -4.910156 0.777344 -5.882813 1.425781 -6.585938 C 2.070313 -7.285156 2.890625 -7.632813 3.882813 -7.636719 C 4.988281 -7.632813 5.863281 -7.265625 6.507813 -6.535156 C 7.148438 -5.796875 7.457031 -4.675781 7.433594 -3.164063 L 2.480469 -3.164063 C 2.492188 -2.578125 2.652344 -2.121094 2.960938 -1.796875 C 3.261719 -1.46875 3.640625 -1.304688 4.097656 -1.308594 C 4.402344 -1.304688 4.664063 -1.390625 4.878906 -1.558594 C 5.085938 -1.726563 5.246094 -1.996094 5.359375 -2.375 Z M 5.46875 -4.375 C 5.453125 -4.941406 5.308594 -5.375 5.027344 -5.675781 C 4.746094 -5.972656 4.402344 -6.121094 4 -6.125 C 3.566406 -6.121094 3.210938 -5.964844 2.933594 -5.652344 C 2.648438 -5.335938 2.507813 -4.910156 2.515625 -4.375 Z M 5.46875 -4.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 2.925781 0 L 0.949219 0 L 0.949219 -7.46875 L 2.785156 -7.46875 L 2.785156 -6.40625 C 3.09375 -6.902344 3.375 -7.234375 3.628906 -7.394531 C 3.878906 -7.554688 4.164063 -7.632813 4.484375 -7.636719 C 4.929688 -7.632813 5.363281 -7.507813 5.785156 -7.261719 L 5.175781 -5.539063 C 4.839844 -5.75 4.53125 -5.859375 4.246094 -5.863281 C 3.96875 -5.859375 3.734375 -5.78125 3.542969 -5.632813 C 3.347656 -5.476563 3.195313 -5.203125 3.089844 -4.808594 C 2.976563 -4.40625 2.921875 -3.570313 2.925781 -2.304688 Z M 2.925781 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 0.808594 -2.75 L 0.808594 -4.726563 L 4.691406 -4.726563 L 4.691406 -2.75 Z M 0.808594 -2.75 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 2.511719 -5.1875 L 0.71875 -5.511719 C 0.917969 -6.230469 1.265625 -6.765625 1.757813 -7.113281 C 2.25 -7.460938 2.980469 -7.632813 3.953125 -7.636719 C 4.832031 -7.632813 5.488281 -7.53125 5.917969 -7.324219 C 6.347656 -7.113281 6.648438 -6.847656 6.828125 -6.527344 C 7 -6.207031 7.089844 -5.617188 7.09375 -4.761719 L 7.074219 -2.453125 C 7.070313 -1.792969 7.101563 -1.308594 7.167969 -1 C 7.226563 -0.6875 7.347656 -0.355469 7.523438 0 L 5.570313 0 C 5.515625 -0.128906 5.453125 -0.320313 5.378906 -0.582031 C 5.34375 -0.695313 5.320313 -0.773438 5.308594 -0.816406 C 4.96875 -0.484375 4.605469 -0.238281 4.222656 -0.078125 C 3.835938 0.0859375 3.425781 0.164063 2.996094 0.167969 C 2.222656 0.164063 1.617188 -0.0429688 1.175781 -0.457031 C 0.730469 -0.871094 0.507813 -1.398438 0.511719 -2.039063 C 0.507813 -2.460938 0.609375 -2.835938 0.8125 -3.167969 C 1.011719 -3.496094 1.292969 -3.75 1.660156 -3.925781 C 2.019531 -4.101563 2.546875 -4.253906 3.234375 -4.386719 C 4.15625 -4.558594 4.792969 -4.71875 5.152344 -4.871094 L 5.152344 -5.070313 C 5.148438 -5.445313 5.054688 -5.71875 4.871094 -5.882813 C 4.679688 -6.042969 4.328125 -6.121094 3.8125 -6.125 C 3.457031 -6.121094 3.183594 -6.054688 2.988281 -5.917969 C 2.789063 -5.777344 2.628906 -5.53125 2.511719 -5.1875 Z M 5.152344 -3.585938 C 4.894531 -3.5 4.496094 -3.398438 3.949219 -3.285156 C 3.402344 -3.164063 3.042969 -3.046875 2.875 -2.9375 C 2.613281 -2.75 2.484375 -2.519531 2.488281 -2.242188 C 2.484375 -1.964844 2.585938 -1.726563 2.796875 -1.523438 C 3 -1.320313 3.265625 -1.21875 3.585938 -1.222656 C 3.941406 -1.21875 4.28125 -1.335938 4.605469 -1.574219 C 4.84375 -1.75 5 -1.96875 5.078125 -2.230469 C 5.125 -2.394531 5.148438 -2.714844 5.152344 -3.191406 Z M 5.152344 -3.585938 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 7.542969 -5.257813 L 5.597656 -4.90625 C 5.527344 -5.292969 5.378906 -5.585938 5.148438 -5.785156 C 4.914063 -5.980469 4.613281 -6.082031 4.246094 -6.082031 C 3.75 -6.082031 3.355469 -5.910156 3.066406 -5.570313 C 2.769531 -5.230469 2.625 -4.664063 2.628906 -3.867188 C 2.625 -2.980469 2.773438 -2.351563 3.074219 -1.988281 C 3.371094 -1.621094 3.769531 -1.441406 4.273438 -1.441406 C 4.644531 -1.441406 4.953125 -1.546875 5.195313 -1.761719 C 5.433594 -1.972656 5.601563 -2.339844 5.703125 -2.863281 L 7.644531 -2.53125 C 7.4375 -1.640625 7.050781 -0.964844 6.480469 -0.511719 C 5.910156 -0.0585938 5.144531 0.164063 4.183594 0.167969 C 3.089844 0.164063 2.21875 -0.175781 1.570313 -0.863281 C 0.921875 -1.550781 0.597656 -2.507813 0.597656 -3.726563 C 0.597656 -4.957031 0.921875 -5.914063 1.574219 -6.605469 C 2.222656 -7.289063 3.105469 -7.632813 4.21875 -7.636719 C 5.125 -7.632813 5.847656 -7.4375 6.386719 -7.046875 C 6.921875 -6.652344 7.304688 -6.054688 7.542969 -5.257813 Z M 7.542969 -5.257813 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 4.457031 -7.46875 L 4.457031 -5.890625 L 3.109375 -5.890625 L 3.109375 -2.882813 C 3.105469 -2.273438 3.117188 -1.917969 3.144531 -1.816406 C 3.167969 -1.714844 3.226563 -1.628906 3.320313 -1.566406 C 3.410156 -1.496094 3.523438 -1.464844 3.65625 -1.46875 C 3.835938 -1.464844 4.097656 -1.527344 4.449219 -1.660156 L 4.621094 -0.125 C 4.15625 0.0703125 3.636719 0.164063 3.058594 0.167969 C 2.699219 0.164063 2.375 0.105469 2.09375 -0.0117188 C 1.804688 -0.128906 1.597656 -0.28125 1.464844 -0.472656 C 1.332031 -0.660156 1.238281 -0.917969 1.1875 -1.246094 C 1.144531 -1.472656 1.125 -1.9375 1.125 -2.636719 L 1.125 -5.890625 L 0.21875 -5.890625 L 0.21875 -7.46875 L 1.125 -7.46875 L 1.125 -8.949219 L 3.109375 -10.105469 L 3.109375 -7.46875 Z M 4.457031 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 1.035156 -8.480469 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 -8.480469 Z M 1.035156 0 L 1.035156 -7.46875 L 3.007813 -7.46875 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 3.085938 0 L 0.078125 -7.46875 L 2.152344 -7.46875 L 3.558594 -3.65625 L 3.964844 -2.382813 C 4.070313 -2.703125 4.136719 -2.917969 4.167969 -3.023438 C 4.230469 -3.234375 4.300781 -3.445313 4.378906 -3.65625 L 5.800781 -7.46875 L 7.832031 -7.46875 L 4.867188 0 Z M 3.085938 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 0.949219 0 L 0.949219 -10.308594 L 2.925781 -10.308594 L 2.925781 -6.59375 C 3.53125 -7.285156 4.253906 -7.632813 5.089844 -7.636719 C 5.996094 -7.632813 6.75 -7.304688 7.347656 -6.648438 C 7.941406 -5.988281 8.238281 -5.042969 8.242188 -3.8125 C 8.238281 -2.535156 7.933594 -1.550781 7.328125 -0.863281 C 6.71875 -0.175781 5.980469 0.164063 5.117188 0.167969 C 4.6875 0.164063 4.269531 0.0585938 3.855469 -0.152344 C 3.441406 -0.363281 3.082031 -0.675781 2.785156 -1.097656 L 2.785156 0 Z M 2.910156 -3.894531 C 2.90625 -3.117188 3.027344 -2.546875 3.277344 -2.179688 C 3.613281 -1.652344 4.070313 -1.386719 4.640625 -1.390625 C 5.074219 -1.386719 5.445313 -1.574219 5.753906 -1.949219 C 6.058594 -2.320313 6.210938 -2.90625 6.214844 -3.710938 C 6.210938 -4.5625 6.054688 -5.179688 5.75 -5.558594 C 5.4375 -5.933594 5.042969 -6.121094 4.5625 -6.125 C 4.085938 -6.121094 3.691406 -5.9375 3.378906 -5.570313 C 3.0625 -5.199219 2.90625 -4.640625 2.910156 -3.894531 Z M 2.910156 -3.894531 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 0.167969 -7.46875 L 1.265625 -7.46875 L 1.265625 -8.03125 C 1.265625 -8.65625 1.332031 -9.125 1.464844 -9.433594 C 1.597656 -9.742188 1.84375 -9.992188 2.203125 -10.191406 C 2.5625 -10.382813 3.015625 -10.480469 3.566406 -10.484375 C 4.125 -10.480469 4.675781 -10.398438 5.21875 -10.230469 L 4.949219 -8.851563 C 4.632813 -8.925781 4.332031 -8.964844 4.042969 -8.964844 C 3.753906 -8.964844 3.546875 -8.894531 3.425781 -8.761719 C 3.300781 -8.625 3.238281 -8.371094 3.242188 -7.996094 L 3.242188 -7.46875 L 4.71875 -7.46875 L 4.71875 -5.914063 L 3.242188 -5.914063 L 3.242188 0 L 1.265625 0 L 1.265625 -5.914063 L 0.167969 -5.914063 Z M 0.167969 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 1.035156 0 L 1.035156 -10.308594 L 3.007813 -10.308594 L 3.007813 0 Z M 1.035156 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 0.335938 -2.128906 L 2.320313 -2.433594 C 2.402344 -2.042969 2.570313 -1.75 2.832031 -1.554688 C 3.085938 -1.351563 3.449219 -1.253906 3.917969 -1.257813 C 4.425781 -1.253906 4.808594 -1.347656 5.070313 -1.539063 C 5.238281 -1.667969 5.324219 -1.84375 5.328125 -2.066406 C 5.324219 -2.214844 5.277344 -2.339844 5.1875 -2.441406 C 5.085938 -2.53125 4.867188 -2.617188 4.527344 -2.699219 C 2.929688 -3.046875 1.917969 -3.367188 1.496094 -3.664063 C 0.902344 -4.0625 0.609375 -4.625 0.613281 -5.34375 C 0.609375 -5.988281 0.863281 -6.53125 1.378906 -6.972656 C 1.886719 -7.414063 2.679688 -7.632813 3.753906 -7.636719 C 4.773438 -7.632813 5.53125 -7.46875 6.03125 -7.136719 C 6.523438 -6.800781 6.867188 -6.308594 7.058594 -5.660156 L 5.195313 -5.316406 C 5.113281 -5.601563 4.960938 -5.824219 4.742188 -5.980469 C 4.515625 -6.132813 4.199219 -6.210938 3.789063 -6.214844 C 3.265625 -6.210938 2.894531 -6.136719 2.671875 -5.996094 C 2.519531 -5.890625 2.441406 -5.757813 2.445313 -5.597656 C 2.441406 -5.453125 2.507813 -5.335938 2.644531 -5.238281 C 2.816406 -5.105469 3.433594 -4.917969 4.488281 -4.683594 C 5.539063 -4.441406 6.273438 -4.148438 6.695313 -3.804688 C 7.105469 -3.449219 7.3125 -2.960938 7.3125 -2.335938 C 7.3125 -1.648438 7.023438 -1.058594 6.453125 -0.570313 C 5.878906 -0.078125 5.035156 0.164063 3.917969 0.167969 C 2.898438 0.164063 2.09375 -0.0390625 1.5 -0.449219 C 0.90625 -0.859375 0.515625 -1.417969 0.335938 -2.128906 Z M 0.335938 -2.128906 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-17">
+<path style="stroke:none;" d="M 0.597656 -5.738281 L 0.597656 -7.550781 L 7.804688 -7.550781 L 7.804688 -5.738281 Z M 0.597656 -2.617188 L 0.597656 -4.4375 L 7.804688 -4.4375 L 7.804688 -2.617188 Z M 0.597656 -2.617188 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-18">
+<path style="stroke:none;" d="M 5.667969 0 L 3.691406 0 L 3.691406 -7.445313 C 2.96875 -6.769531 2.117188 -6.269531 1.140625 -5.949219 L 1.140625 -7.742188 C 1.652344 -7.90625 2.210938 -8.226563 2.820313 -8.699219 C 3.421875 -9.167969 3.835938 -9.71875 4.0625 -10.351563 L 5.667969 -10.351563 Z M 5.667969 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-19">
+<path style="stroke:none;" d="M 0.640625 -2.652344 L 2.609375 -2.855469 C 2.660156 -2.40625 2.828125 -2.054688 3.105469 -1.796875 C 3.382813 -1.535156 3.699219 -1.40625 4.0625 -1.40625 C 4.472656 -1.40625 4.824219 -1.570313 5.109375 -1.90625 C 5.394531 -2.238281 5.535156 -2.746094 5.539063 -3.425781 C 5.535156 -4.054688 5.394531 -4.527344 5.113281 -4.847656 C 4.828125 -5.160156 4.460938 -5.320313 4.007813 -5.324219 C 3.4375 -5.320313 2.925781 -5.070313 2.480469 -4.570313 L 0.878906 -4.800781 L 1.890625 -10.167969 L 7.117188 -10.167969 L 7.117188 -8.316406 L 3.390625 -8.316406 L 3.078125 -6.566406 C 3.515625 -6.785156 3.96875 -6.894531 4.429688 -6.898438 C 5.304688 -6.894531 6.046875 -6.578125 6.660156 -5.941406 C 7.265625 -5.300781 7.570313 -4.472656 7.574219 -3.460938 C 7.570313 -2.609375 7.324219 -1.851563 6.835938 -1.1875 C 6.160156 -0.277344 5.230469 0.175781 4.042969 0.175781 C 3.089844 0.175781 2.3125 -0.078125 1.714844 -0.589844 C 1.113281 -1.097656 0.753906 -1.785156 0.640625 -2.652344 Z M 0.640625 -2.652344 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-20">
+<path style="stroke:none;" d="M 0.625 -7.761719 C 0.621094 -8.683594 0.824219 -9.367188 1.234375 -9.816406 C 1.636719 -10.257813 2.1875 -10.480469 2.882813 -10.484375 C 3.597656 -10.480469 4.15625 -10.261719 4.566406 -9.820313 C 4.96875 -9.375 5.171875 -8.6875 5.175781 -7.761719 C 5.171875 -6.835938 4.96875 -6.152344 4.566406 -5.710938 C 4.15625 -5.261719 3.609375 -5.039063 2.917969 -5.042969 C 2.199219 -5.039063 1.636719 -5.261719 1.234375 -5.707031 C 0.824219 -6.148438 0.621094 -6.832031 0.625 -7.761719 Z M 2.164063 -7.777344 C 2.160156 -7.101563 2.238281 -6.652344 2.398438 -6.425781 C 2.511719 -6.253906 2.675781 -6.167969 2.882813 -6.171875 C 3.09375 -6.167969 3.257813 -6.253906 3.375 -6.425781 C 3.523438 -6.652344 3.597656 -7.101563 3.601563 -7.777344 C 3.597656 -8.441406 3.523438 -8.890625 3.375 -9.121094 C 3.257813 -9.289063 3.09375 -9.375 2.882813 -9.378906 C 2.675781 -9.375 2.511719 -9.289063 2.398438 -9.125 C 2.238281 -8.890625 2.160156 -8.441406 2.164063 -7.777344 Z M 4.386719 0.394531 L 2.925781 0.394531 L 8.417969 -10.484375 L 9.835938 -10.484375 Z M 7.578125 -2.3125 C 7.574219 -3.234375 7.777344 -3.917969 8.1875 -4.367188 C 8.589844 -4.808594 9.144531 -5.03125 9.851563 -5.035156 C 10.554688 -5.03125 11.113281 -4.808594 11.519531 -4.367188 C 11.925781 -3.917969 12.128906 -3.234375 12.128906 -2.3125 C 12.128906 -1.382813 11.925781 -0.695313 11.519531 -0.253906 C 11.113281 0.191406 10.5625 0.410156 9.871094 0.414063 C 9.152344 0.410156 8.589844 0.191406 8.1875 -0.253906 C 7.777344 -0.695313 7.574219 -1.382813 7.578125 -2.3125 Z M 9.121094 -2.320313 C 9.117188 -1.648438 9.195313 -1.199219 9.351563 -0.976563 C 9.46875 -0.800781 9.628906 -0.714844 9.835938 -0.71875 C 10.042969 -0.714844 10.203125 -0.796875 10.320313 -0.96875 C 10.472656 -1.195313 10.550781 -1.648438 10.554688 -2.320313 C 10.550781 -2.988281 10.476563 -3.4375 10.328125 -3.671875 C 10.207031 -3.835938 10.042969 -3.917969 9.835938 -3.921875 C 9.621094 -3.917969 9.460938 -3.835938 9.351563 -3.671875 C 9.195313 -3.4375 9.117188 -2.988281 9.121094 -2.320313 Z M 9.121094 -2.320313 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface36">
+<rect x="0" y="0" width="504" height="504" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 403.992188 C 77.101563 407.589844 71.699219 407.589844 71.699219 403.992188 C 71.699219 400.390625 77.101563 400.390625 77.101563 403.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 94.464844 385.695313 C 94.464844 389.292969 89.0625 389.292969 89.0625 385.695313 C 89.0625 382.09375 94.464844 382.09375 94.464844 385.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 107.152344 371.054688 C 107.152344 374.65625 101.753906 374.65625 101.753906 371.054688 C 101.753906 367.457031 107.152344 367.457031 107.152344 371.054688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.84375 354.585938 C 121.84375 358.1875 116.445313 358.1875 116.445313 354.585938 C 116.445313 350.988281 121.84375 350.988281 121.84375 354.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.875 332.628906 C 139.875 336.230469 134.476563 336.230469 134.476563 332.628906 C 134.476563 329.03125 139.875 329.03125 139.875 332.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.578125 312.503906 C 160.578125 316.101563 155.179688 316.101563 155.179688 312.503906 C 155.179688 308.902344 160.578125 308.902344 160.578125 312.503906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 175.269531 296.035156 C 175.269531 299.632813 169.871094 299.632813 169.871094 296.035156 C 169.871094 292.433594 175.269531 292.433594 175.269531 296.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 195.304688 277.734375 C 195.304688 281.335938 189.90625 281.335938 189.90625 277.734375 C 189.90625 274.136719 195.304688 274.136719 195.304688 277.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 216.007813 257.609375 C 216.007813 261.207031 210.609375 261.207031 210.609375 257.609375 C 210.609375 254.007813 216.007813 254.007813 216.007813 257.609375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 237.378906 237.480469 C 237.378906 241.082031 231.976563 241.082031 231.976563 237.480469 C 231.976563 233.878906 237.378906 233.878906 237.378906 237.480469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 256.746094 221.011719 C 256.746094 224.613281 251.34375 224.613281 251.34375 221.011719 C 251.34375 217.414063 256.746094 217.414063 256.746094 221.011719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 278.785156 200.886719 C 278.785156 204.484375 273.382813 204.484375 273.382813 200.886719 C 273.382813 197.285156 278.785156 197.285156 278.785156 200.886719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 300.820313 180.757813 C 300.820313 184.359375 295.421875 184.359375 295.421875 180.757813 C 295.421875 177.15625 300.820313 177.15625 300.820313 180.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 328.203125 160.628906 C 328.203125 164.230469 322.800781 164.230469 322.800781 160.628906 C 322.800781 157.03125 328.203125 157.03125 328.203125 160.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 343.5625 147.820313 C 343.5625 151.421875 338.164063 151.421875 338.164063 147.820313 C 338.164063 144.222656 343.5625 144.222656 343.5625 147.820313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.585938 138.671875 C 357.585938 142.273438 352.1875 142.273438 352.1875 138.671875 C 352.1875 135.074219 357.585938 135.074219 357.585938 138.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 372.277344 127.695313 C 372.277344 131.292969 366.878906 131.292969 366.878906 127.695313 C 366.878906 124.09375 372.277344 124.09375 372.277344 127.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 388.976563 118.542969 C 388.976563 122.144531 383.574219 122.144531 383.574219 118.542969 C 383.574219 114.945313 388.976563 114.945313 388.976563 118.542969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 405.003906 105.734375 C 405.003906 109.335938 399.601563 109.335938 399.601563 105.734375 C 399.601563 102.136719 405.003906 102.136719 405.003906 105.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 430.378906 89.269531 C 430.378906 92.867188 424.980469 92.867188 424.980469 89.269531 C 424.980469 85.667969 430.378906 85.667969 430.378906 89.269531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 443.738281 81.949219 C 443.738281 85.550781 438.335938 85.550781 438.335938 81.949219 C 438.335938 78.347656 443.738281 78.347656 443.738281 81.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.925781 430.558594 L 434.914063 430.558594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.925781 430.558594 L 121.925781 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 200.175781 430.558594 L 200.175781 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 278.421875 430.558594 L 278.421875 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 356.667969 430.558594 L 356.667969 437.761719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 434.914063 430.558594 L 434.914063 437.761719 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="118.589844" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="196.839844" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-3" x="275.085938" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-4" x="353.332031" y="456.480469"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-5" x="431.578125" y="456.480469"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 388.742188 L 59.039063 100.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 388.742188 L 51.839844 388.742188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 316.773438 L 51.839844 316.773438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 244.800781 L 51.839844 244.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 172.828125 L 51.839844 172.828125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 100.855469 L 51.839844 100.855469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="41.761719" y="392.078125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="41.761719" y="320.109375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-3" x="41.761719" y="248.136719"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="41.761719" y="176.164063"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="41.761719" y="104.191406"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.039063 430.558594 L 473.761719 430.558594 L 473.761719 59.039063 L 59.039063 59.039063 L 59.039063 430.558594 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph2-1" x="166.554688" y="34.675781"/>
+  <use xlink:href="#glyph2-2" x="176.159375" y="34.675781"/>
+  <use xlink:href="#glyph2-3" x="184.955469" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="193.751563" y="34.675781"/>
+  <use xlink:href="#glyph2-5" x="201.760156" y="34.675781"/>
+  <use xlink:href="#glyph2-6" x="207.364063" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="212.159375" y="34.675781"/>
+  <use xlink:href="#glyph2-8" x="220.167969" y="34.675781"/>
+  <use xlink:href="#glyph2-9" x="228.176562" y="34.675781"/>
+  <use xlink:href="#glyph2-10" x="232.971875" y="34.675781"/>
+  <use xlink:href="#glyph2-11" x="236.972656" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="244.98125" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="252.989844" y="34.675781"/>
+  <use xlink:href="#glyph2-13" x="256.990625" y="34.675781"/>
+  <use xlink:href="#glyph2-7" x="265.786719" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="273.795312" y="34.675781"/>
+  <use xlink:href="#glyph2-14" x="278.590625" y="34.675781"/>
+  <use xlink:href="#glyph2-15" x="283.385938" y="34.675781"/>
+  <use xlink:href="#glyph2-4" x="287.386719" y="34.675781"/>
+  <use xlink:href="#glyph2-16" x="295.395312" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="303.403906" y="34.675781"/>
+  <use xlink:href="#glyph2-1" x="307.404687" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="317.009375" y="34.675781"/>
+  <use xlink:href="#glyph2-17" x="321.010156" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="329.419531" y="34.675781"/>
+  <use xlink:href="#glyph2-18" x="333.420312" y="34.675781"/>
+  <use xlink:href="#glyph2-19" x="341.428906" y="34.675781"/>
+  <use xlink:href="#glyph2-12" x="349.4375" y="34.675781"/>
+  <use xlink:href="#glyph2-20" x="353.438281" y="34.675781"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-6" x="260.726563" y="485.28125"/>
+  <use xlink:href="#glyph0-7" x="267.400391" y="485.28125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="12.960938" y="274.828125"/>
+  <use xlink:href="#glyph1-7" x="12.960938" y="268.154297"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="261.480469"/>
+  <use xlink:href="#glyph1-7" x="12.960938" y="258.146484"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="251.472656"/>
+  <use xlink:href="#glyph1-10" x="12.960938" y="248.138672"/>
+  <use xlink:href="#glyph1-11" x="12.960938" y="241.464844"/>
+  <use xlink:href="#glyph1-9" x="12.960938" y="234.791016"/>
+  <use xlink:href="#glyph1-6" x="12.960938" y="231.457031"/>
+  <use xlink:href="#glyph1-8" x="12.960938" y="224.783203"/>
+  <use xlink:href="#glyph1-7" x="12.960938" y="221.449219"/>
+</g>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 77.101563 403.992188 C 77.101563 407.589844 71.699219 407.589844 71.699219 403.992188 C 71.699219 400.390625 77.101563 400.390625 77.101563 403.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 94.464844 385.695313 C 94.464844 389.292969 89.0625 389.292969 89.0625 385.695313 C 89.0625 382.09375 94.464844 382.09375 94.464844 385.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 107.152344 371.054688 C 107.152344 374.65625 101.753906 374.65625 101.753906 371.054688 C 101.753906 367.457031 107.152344 367.457031 107.152344 371.054688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 121.84375 354.585938 C 121.84375 358.1875 116.445313 358.1875 116.445313 354.585938 C 116.445313 350.988281 121.84375 350.988281 121.84375 354.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.875 332.628906 C 139.875 336.230469 134.476563 336.230469 134.476563 332.628906 C 134.476563 329.03125 139.875 329.03125 139.875 332.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.578125 312.503906 C 160.578125 316.101563 155.179688 316.101563 155.179688 312.503906 C 155.179688 308.902344 160.578125 308.902344 160.578125 312.503906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 175.269531 296.035156 C 175.269531 299.632813 169.871094 299.632813 169.871094 296.035156 C 169.871094 292.433594 175.269531 292.433594 175.269531 296.035156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 195.304688 277.734375 C 195.304688 281.335938 189.90625 281.335938 189.90625 277.734375 C 189.90625 274.136719 195.304688 274.136719 195.304688 277.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 216.007813 257.609375 C 216.007813 261.207031 210.609375 261.207031 210.609375 257.609375 C 210.609375 254.007813 216.007813 254.007813 216.007813 257.609375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 237.378906 237.480469 C 237.378906 241.082031 231.976563 241.082031 231.976563 237.480469 C 231.976563 233.878906 237.378906 233.878906 237.378906 237.480469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 256.746094 221.011719 C 256.746094 224.613281 251.34375 224.613281 251.34375 221.011719 C 251.34375 217.414063 256.746094 217.414063 256.746094 221.011719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 278.785156 200.886719 C 278.785156 204.484375 273.382813 204.484375 273.382813 200.886719 C 273.382813 197.285156 278.785156 197.285156 278.785156 200.886719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 300.820313 180.757813 C 300.820313 184.359375 295.421875 184.359375 295.421875 180.757813 C 295.421875 177.15625 300.820313 177.15625 300.820313 180.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 328.203125 160.628906 C 328.203125 164.230469 322.800781 164.230469 322.800781 160.628906 C 322.800781 157.03125 328.203125 157.03125 328.203125 160.628906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 343.5625 147.820313 C 343.5625 151.421875 338.164063 151.421875 338.164063 147.820313 C 338.164063 144.222656 343.5625 144.222656 343.5625 147.820313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 357.585938 138.671875 C 357.585938 142.273438 352.1875 142.273438 352.1875 138.671875 C 352.1875 135.074219 357.585938 135.074219 357.585938 138.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 372.277344 127.695313 C 372.277344 131.292969 366.878906 131.292969 366.878906 127.695313 C 366.878906 124.09375 372.277344 124.09375 372.277344 127.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 388.976563 118.542969 C 388.976563 122.144531 383.574219 122.144531 383.574219 118.542969 C 383.574219 114.945313 388.976563 114.945313 388.976563 118.542969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 405.003906 105.734375 C 405.003906 109.335938 399.601563 109.335938 399.601563 105.734375 C 399.601563 102.136719 405.003906 102.136719 405.003906 105.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 430.378906 89.269531 C 430.378906 92.867188 424.980469 92.867188 424.980469 89.269531 C 424.980469 85.667969 430.378906 85.667969 430.378906 89.269531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 443.738281 81.949219 C 443.738281 85.550781 438.335938 85.550781 438.335938 81.949219 C 438.335938 78.347656 443.738281 78.347656 443.738281 81.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 461.101563 72.800781 C 461.101563 76.398438 455.699219 76.398438 455.699219 72.800781 C 455.699219 69.199219 461.101563 69.199219 461.101563 72.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 404.910156 L 78.238281 400.410156 L 82.078125 395.929688 L 85.921875 391.476563 L 89.761719 387.042969 L 93.601563 382.636719 L 97.441406 378.253906 L 101.28125 373.894531 L 105.121094 369.558594 L 108.960938 365.246094 L 112.800781 360.957031 L 116.640625 356.691406 L 120.480469 352.453125 L 124.320313 348.234375 L 128.160156 344.042969 L 132 339.871094 L 135.839844 335.726563 L 139.679688 331.601563 L 143.519531 327.503906 L 147.359375 323.429688 L 151.199219 319.378906 L 155.039063 315.351563 L 158.878906 311.347656 L 162.71875 307.367188 L 166.558594 303.414063 L 170.398438 299.480469 L 174.238281 295.570313 L 178.078125 291.6875 L 181.921875 287.828125 L 185.761719 283.988281 L 189.601563 280.175781 L 193.441406 276.386719 L 197.28125 272.621094 L 201.121094 268.878906 L 204.960938 265.160156 L 208.800781 261.464844 L 212.640625 257.792969 L 216.480469 254.144531 L 220.320313 250.523438 L 224.160156 246.921875 L 228 243.347656 L 231.839844 239.792969 L 235.679688 236.265625 L 239.519531 232.761719 L 243.359375 229.28125 L 247.199219 225.824219 L 251.039063 222.390625 L 254.878906 218.980469 L 258.71875 215.59375 L 262.558594 212.230469 L 266.398438 208.894531 L 270.238281 205.578125 L 274.078125 202.289063 L 277.921875 199.019531 L 281.761719 195.777344 L 285.601563 192.558594 L 289.441406 189.363281 L 293.28125 186.1875 L 297.121094 183.039063 L 300.960938 179.917969 L 304.800781 176.816406 L 308.640625 173.738281 L 312.480469 170.683594 L 316.320313 167.65625 L 320.160156 164.648438 L 324 161.667969 L 327.839844 158.707031 L 331.679688 155.773438 L 335.519531 152.863281 L 339.359375 149.976563 L 343.199219 147.113281 L 347.039063 144.273438 L 350.878906 141.457031 L 354.71875 138.664063 L 358.558594 135.894531 L 362.398438 133.152344 L 366.238281 130.429688 L 370.078125 127.730469 L 373.921875 125.058594 L 377.761719 122.410156 L 381.601563 119.785156 L 385.441406 117.179688 L 389.28125 114.601563 L 393.121094 112.046875 L 396.960938 109.515625 L 400.800781 107.007813 L 404.640625 104.527344 L 408.480469 102.066406 L 412.320313 99.628906 L 416.160156 97.21875 L 420 94.828125 L 423.839844 92.464844 L 427.679688 90.125 L 431.519531 87.808594 L 435.359375 85.511719 L 439.199219 83.242188 L 443.039063 80.996094 L 446.878906 78.777344 L 450.71875 76.578125 L 454.558594 74.402344 L 458.398438 72.25 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 70.582031 416.800781 L 78.21875 416.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 420.617188 L 74.398438 412.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.265625 402.160156 L 88.902344 402.160156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 85.085938 405.980469 L 85.085938 398.34375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 92.621094 389.351563 L 100.257813 389.351563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 96.4375 393.171875 L 96.4375 385.535156 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 104.640625 376.542969 L 112.277344 376.542969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 108.460938 380.363281 L 108.460938 372.726563 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 115.324219 363.734375 L 122.960938 363.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 119.144531 367.554688 L 119.144531 359.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 125.34375 352.757813 L 132.980469 352.757813 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 129.160156 356.574219 L 129.160156 348.9375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 135.359375 341.777344 L 142.996094 341.777344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 139.179688 345.597656 L 139.179688 337.960938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 149.386719 328.96875 L 157.023438 328.96875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.203125 332.789063 L 153.203125 325.152344 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 164.746094 314.332031 L 172.382813 314.332031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 168.5625 318.148438 L 168.5625 310.511719 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 182.777344 299.695313 L 190.414063 299.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 186.59375 303.511719 L 186.59375 295.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 194.128906 288.714844 L 201.765625 288.714844 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 197.949219 292.535156 L 197.949219 284.898438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 209.488281 277.734375 L 217.125 277.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 213.308594 281.554688 L 213.308594 273.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 227.519531 263.097656 L 235.15625 263.097656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.339844 266.917969 L 231.339844 259.28125 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 240.878906 253.949219 L 248.515625 253.949219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.695313 257.765625 L 244.695313 250.128906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 254.234375 244.800781 L 261.871094 244.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 258.050781 248.617188 L 258.050781 240.980469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 270.261719 233.820313 L 277.898438 233.820313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 274.078125 237.640625 L 274.078125 230.003906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 284.953125 224.671875 L 292.589844 224.671875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 288.773438 228.492188 L 288.773438 220.855469 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 304.320313 213.695313 L 311.957031 213.695313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 308.140625 217.511719 L 308.140625 209.875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 315.671875 206.375 L 323.3125 206.375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 319.492188 210.191406 L 319.492188 202.554688 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.050781 191.734375 L 348.6875 191.734375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 344.871094 195.554688 L 344.871094 187.917969 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 356.410156 182.585938 L 364.046875 182.585938 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 360.230469 186.40625 L 360.230469 178.769531 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 370.433594 173.4375 L 378.074219 173.4375 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 374.253906 177.257813 L 374.253906 169.621094 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 392.472656 164.289063 L 400.109375 164.289063 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 396.292969 168.109375 L 396.292969 160.472656 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 411.171875 155.140625 L 418.808594 155.140625 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 414.992188 158.957031 L 414.992188 151.320313 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 429.871094 145.992188 L 437.507813 145.992188 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 433.691406 149.808594 L 433.691406 142.171875 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 442.5625 140.503906 L 450.199219 140.503906 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 446.378906 144.320313 L 446.378906 136.683594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 454.582031 133.183594 L 462.21875 133.183594 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.398438 137 L 458.398438 129.363281 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 74.398438 411.421875 L 78.238281 407.253906 L 82.078125 403.117188 L 85.921875 399.007813 L 89.761719 394.929688 L 93.601563 390.878906 L 97.441406 386.855469 L 101.28125 382.863281 L 105.121094 378.898438 L 108.960938 374.960938 L 112.800781 371.054688 L 116.640625 367.179688 L 120.480469 363.328125 L 124.320313 359.511719 L 128.160156 355.71875 L 132 351.957031 L 135.839844 348.222656 L 139.679688 344.519531 L 143.519531 340.84375 L 147.359375 337.199219 L 151.199219 333.582031 L 155.039063 329.992188 L 158.878906 326.433594 L 162.71875 322.902344 L 166.558594 319.398438 L 170.398438 315.925781 L 174.238281 312.480469 L 178.078125 309.066406 L 181.921875 305.679688 L 185.761719 302.324219 L 189.601563 298.996094 L 193.441406 295.695313 L 197.28125 292.425781 L 201.121094 289.183594 L 204.960938 285.96875 L 208.800781 282.785156 L 212.640625 279.632813 L 216.480469 276.503906 L 220.320313 273.40625 L 224.160156 270.339844 L 228 267.300781 L 231.839844 264.289063 L 235.679688 261.308594 L 239.519531 258.355469 L 243.359375 255.429688 L 247.199219 252.535156 L 251.039063 249.671875 L 254.878906 246.832031 L 258.71875 244.027344 L 262.558594 241.246094 L 266.398438 238.496094 L 270.238281 235.773438 L 274.078125 233.082031 L 277.921875 230.417969 L 281.761719 227.785156 L 285.601563 225.175781 L 289.441406 222.601563 L 293.28125 220.050781 L 297.121094 217.535156 L 300.960938 215.042969 L 304.800781 212.582031 L 308.640625 210.148438 L 312.480469 207.746094 L 316.320313 205.371094 L 320.160156 203.027344 L 324 200.710938 L 327.839844 198.421875 L 331.679688 196.164063 L 335.519531 193.933594 L 339.359375 191.730469 L 343.199219 189.558594 L 347.039063 187.414063 L 350.878906 185.300781 L 354.71875 183.214844 L 358.558594 181.160156 L 362.398438 179.132813 L 366.238281 177.132813 L 370.078125 175.164063 L 373.921875 173.222656 L 377.761719 171.308594 L 381.601563 169.425781 L 385.441406 167.570313 L 389.28125 165.746094 L 393.121094 163.949219 L 396.960938 162.183594 L 400.800781 160.445313 L 404.640625 158.734375 L 408.480469 157.054688 L 412.320313 155.402344 L 416.160156 153.777344 L 420 152.183594 L 423.839844 150.617188 L 427.679688 149.082031 L 431.519531 147.574219 L 435.359375 146.097656 L 439.199219 144.644531 L 443.039063 143.226563 L 446.878906 141.832031 L 450.71875 140.472656 L 454.558594 139.136719 L 458.398438 137.832031 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,100%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 342.398438 L 252.839844 342.398438 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 231.238281 371.199219 L 252.839844 371.199219 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 244.738281 328 C 244.738281 331.601563 239.339844 331.601563 239.339844 328 C 239.339844 324.398438 244.738281 324.398438 244.738281 328 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 238.222656 356.800781 L 245.859375 356.800781 "/>
+<path style="fill:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 242.039063 360.617188 L 242.039063 352.980469 "/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="332.296875"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="332.296875"/>
+  <use xlink:href="#glyph0-10" x="276.988281" y="332.296875"/>
+  <use xlink:href="#glyph0-9" x="280.322266" y="332.296875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="346.695313"/>
+  <use xlink:href="#glyph0-9" x="270.314453" y="346.695313"/>
+  <use xlink:href="#glyph0-10" x="276.988281" y="346.695313"/>
+  <use xlink:href="#glyph0-9" x="280.322266" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="286.996094" y="346.695313"/>
+  <use xlink:href="#glyph0-12" x="290.330078" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="297.337891" y="346.695313"/>
+  <use xlink:href="#glyph0-13" x="300.671875" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="304.667969" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="308.001953" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="314.675781" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="318.009766" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="324.683594" y="346.695313"/>
+  <use xlink:href="#glyph0-17" x="331.357422" y="346.695313"/>
+  <use xlink:href="#glyph0-5" x="338.03125" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="344.705078" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="351.378906" y="346.695313"/>
+  <use xlink:href="#glyph0-18" x="356.048828" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="361.679688" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="368.353516" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="371.6875" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="378.695313" y="346.695313"/>
+  <use xlink:href="#glyph0-1" x="382.029297" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="388.703125" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="392.037109" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="398.710938" y="346.695313"/>
+  <use xlink:href="#glyph0-6" x="405.384766" y="346.695313"/>
+  <use xlink:href="#glyph0-7" x="412.058594" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="416.728516" y="346.695313"/>
+  <use xlink:href="#glyph0-19" x="420.0625" y="346.695313"/>
+  <use xlink:href="#glyph0-11" x="427.070313" y="346.695313"/>
+  <use xlink:href="#glyph0-14" x="430.404297" y="346.695313"/>
+  <use xlink:href="#glyph0-15" x="437.078125" y="346.695313"/>
+  <use xlink:href="#glyph0-2" x="440.412109" y="346.695313"/>
+  <use xlink:href="#glyph0-16" x="447.085938" y="346.695313"/>
+  <use xlink:href="#glyph0-3" x="453.759766" y="346.695313"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="361.09375"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="361.09375"/>
+  <use xlink:href="#glyph0-9" x="273.648438" y="361.09375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="263.640625" y="375.496094"/>
+  <use xlink:href="#glyph0-10" x="270.314453" y="375.496094"/>
+  <use xlink:href="#glyph0-9" x="273.648438" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="280.322266" y="375.496094"/>
+  <use xlink:href="#glyph0-12" x="283.65625" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="290.664063" y="375.496094"/>
+  <use xlink:href="#glyph0-13" x="293.998047" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="297.994141" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="301.328125" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="308.001953" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="311.335938" y="375.496094"/>
+  <use xlink:href="#glyph0-17" x="318.009766" y="375.496094"/>
+  <use xlink:href="#glyph0-3" x="324.683594" y="375.496094"/>
+  <use xlink:href="#glyph0-4" x="331.357422" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="338.03125" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="344.705078" y="375.496094"/>
+  <use xlink:href="#glyph0-18" x="349.375" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="355.005859" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="361.679688" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="365.013672" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="372.021484" y="375.496094"/>
+  <use xlink:href="#glyph0-1" x="375.355469" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="382.029297" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="385.363281" y="375.496094"/>
+  <use xlink:href="#glyph0-5" x="392.037109" y="375.496094"/>
+  <use xlink:href="#glyph0-6" x="398.710938" y="375.496094"/>
+  <use xlink:href="#glyph0-7" x="405.384766" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="410.054688" y="375.496094"/>
+  <use xlink:href="#glyph0-19" x="413.388672" y="375.496094"/>
+  <use xlink:href="#glyph0-11" x="420.396484" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="423.730469" y="375.496094"/>
+  <use xlink:href="#glyph0-15" x="430.404297" y="375.496094"/>
+  <use xlink:href="#glyph0-2" x="433.738281" y="375.496094"/>
+  <use xlink:href="#glyph0-14" x="440.412109" y="375.496094"/>
+  <use xlink:href="#glyph0-20" x="447.085938" y="375.496094"/>
+</g>
+</g>
+</svg>
diff --git a/docs/en/calculators/par/calage.md b/docs/en/calculators/par/calage.md
new file mode 100644
index 000000000..905f051dc
--- /dev/null
+++ b/docs/en/calculators/par/calage.md
@@ -0,0 +1,38 @@
+# Calage d'une passe à ralentisseurs
+
+Ce module permet de dimensionner une passe à ralentisseur. Les types de passes à ralentisseurs supportés sont:
+
+- [passes à ralentisseurs plans](theorie_plans.md)&nbsp;;
+- [passes à ralentisseurs "Fatou"](theorie_fatou.md)&nbsp;;
+- [passes à ralentisseurs à fonds suractifs](theorie_suractif.md)&nbsp;;
+- [passes à ralentisseurs mixtes](theorie_mixte.md).
+
+Voir [l'ensemble des formules utilisées pour les passes à ralentisseurs](formules.md).
+
+## Calage hydraulique de la passe
+
+L'outil permet de calculer l'une des valeurs suivantes&nbsp;:
+
+- le débit passant dans la passe (m<sup>3</sup>/s)&nbsp;;
+- la charge en amont de la passe (m)&nbsp;;
+- la largeur de la passe (m) pour les types ralentisseurs plans et Fatou&nbsp;.
+
+Compte tenu des paramètres obligatoires suivants&nbsp;:
+
+- le type de passe (Plans, Fatou, fonds suractifs ou mixtes)&nbsp;;
+- [la pente (m/m)](../hsl/pente.md).
+
+Le paramètre "Espacement entre les ralentisseurs (m)" est facultatif. S'il n'est pas renseigné, Sa valeur standard est alors calculée. S'il est fourni, si sa valeur s'écarte de plus de 10% de la valeur standard, une erreur est générée.
+
+## Calage altimétrique de la passe
+
+Les paramètres de calage altimétriques (cote de l'eau amont et cote de l'eau aval) sont facultatifs et permettent de calculer:
+
+- la longueur longitudinale et au fil de l'eau de la passe
+- le nombre de ralentisseurs
+- les cotes de radier et de déversement à l'amont et à l'aval de la passe
+- les cotes d'arase des murs latéraux à l'amont de la passe.
+
+## Génération d'un module de simulation de passe à ralentisseurs
+
+Les résultats d'une passe calée en altimétrie peuvent servir à générer un module de [simulation de passe à ralentisseurs](simulation.md) à l'aide du bouton ad hoc.
\ No newline at end of file
diff --git a/docs/en/calculators/par/formules.md b/docs/en/calculators/par/formules.md
new file mode 100644
index 000000000..fea7ece75
--- /dev/null
+++ b/docs/en/calculators/par/formules.md
@@ -0,0 +1,57 @@
+# Formules de calcul des passes à ralentisseurs
+
+Pour le calcul de :
+
+- la charge amont \(ha\)&nbsp;;
+- la hauteur d'eau dans la passe \(h\)&nbsp;;
+- du débit \(Q\)&nbsp;;
+- de la vitesse débitante \(V\)&nbsp;;
+- la cote de radier amont \(Z_{r1}\)&nbsp;;
+- la cote d'arase minimale des murs latéraux \(Z_m\)
+
+Se référer aux formules propres à chaque type de passe à ralentisseurs:
+
+- [passes à ralentisseurs plans](theorie_plans.md)&nbsp;;
+- [passes à ralentisseurs "Fatou"](theorie_fatou.md)&nbsp;;
+- [passes à ralentisseurs à fonds suractifs](theorie_suractif.md)&nbsp;;
+- [passes à ralentisseurs mixtes](theorie_mixte.md).
+
+## Cote de l'eau à l'amont de la passe \(Z_1\)
+
+$$Z_{1} = Z_{d1} + h_a$$
+
+Avec \(Z_{d1}\) la cote de déversement du premier ralentisseur amont, \(h_a\) la charge amont.
+
+## Longueur de la passe
+
+La longueur de la passe le long d'une ligne d'eau parallèle à la pente de la passe \(L_w\) est égale à&nbsp;
+
+$$L_w = (Z_1 - Z_2)\dfrac{\sqrt{1 + S^2}}{S}$$
+
+avec \(Z_1\) et \(Z_2\) les cotes de l'eau à l'amont et l'aval de la passe, \(S\) la pente.
+
+La longueur de la passe le long de la pente \(L_S\) doit être un multiple de la longueur entre les ralentisseurs \(P\) arrondi à l'entier supérieur&nbsp;:
+
+$$L_S = \lceil (L_w - \epsilon) / P \rceil \times P $$
+
+Avec \(\epsilon\) = 1 mm pour laisser une marge avant le rajout d'un ralentisseur supplémentaire.
+
+La projection horizontale de la longueur de la passe \(L_h\) est alors égale à&nbsp;:
+
+$$L_h = \dfrac{L_S}{\sqrt{1 + S^2}} $$
+
+## Nombre de ralentisseurs \(N_b\)
+
+Pour les types plans et Fatou&nbsp;:
+
+$$N_b = L_S / P + 1$$
+
+Pour les types à fonds suractifs et mixtes&nbsp;:
+
+$$N_b = L_S / P$$
+
+## Cotes de radier à l'aval \(Z_{r2}\) et de déversement à l'aval \(Z_{d2}\)
+
+$$Z_{r2} = Z_{r1} - \dfrac{L_S \times S}{\sqrt{1 + S^2}}$$
+
+$$Z_{d2} = Z_{r2} + Z_{d1} - Z_{r1}$$
diff --git a/docs/en/calculators/par/simulation.md b/docs/en/calculators/par/simulation.md
new file mode 100644
index 000000000..d6005c233
--- /dev/null
+++ b/docs/en/calculators/par/simulation.md
@@ -0,0 +1,26 @@
+# Simulation d'une passe à ralentisseurs
+
+Ce module permet de calculer différentes conditions hydrauliques sur une passe à ralentisseur dont la géométrie est connue. Cette géométrie provient de mesures topographiques ou du [résultat d'un calage de passe à ralentisseurs](calage.md).
+
+Les types de passes à ralentisseurs supportés sont:
+
+- [passes à ralentisseurs plans](theorie_plans.md)&nbsp;;
+- [passes à ralentisseurs "Fatou"](theorie_fatou.md)&nbsp;;
+- [passes à ralentisseurs à fonds suractifs](theorie_suractif.md)&nbsp;;
+- [passes à ralentisseurs mixtes](theorie_mixte.md).
+
+Voir [l'ensemble des formules utilisées pour les passes à ralentisseurs](formules.md).
+
+L'outil permet de calculer l'une des valeurs suivantes&nbsp;:
+
+- le débit passant dans la passe (m<sup>3</sup>/s)&nbsp;;
+- la cote de l'eau en amont de la passe (m)&nbsp;;
+- la cote de déversement en amont de la passe (m).
+
+Compte tenu des paramètres obligatoires suivants&nbsp;:
+
+- le type de passe (Plans, Fatou, fonds suractifs ou mixtes)&nbsp;;
+- [la pente (m/m)](../hsl/pente.md)&nbsp;;
+- la largeur de la passe (m)&nbsp;;
+- la cote de déversement ou la cote de radier à l'amont (m)&nbsp;;
+- la cote de déversement ou la cote de radier à l'aval (m)&nbsp;.
diff --git a/docs/en/calculators/par/theorie_fatou.md b/docs/en/calculators/par/theorie_fatou.md
new file mode 100644
index 000000000..d8948bfc4
--- /dev/null
+++ b/docs/en/calculators/par/theorie_fatou.md
@@ -0,0 +1,91 @@
+# Passe à ralentisseurs "Fatou"
+
+## Caractéristiques géométriques
+
+![Caractéristiques d'une passe à ralentisseurs Fatou](theorie_fatou_schema.png)
+
+*Extrait de Larinier, 2002[^1]*
+
+## Lois hydrauliques issues des abaques
+
+Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(Q^*\)&nbsp;:
+
+$$ Q^* = \dfrac{Q}{\sqrt{g}L^{2,5}} $$
+
+ à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+
+![Abaques d'une passe à ralentisseurs Fatou pour une pente de 10%](baffle_fishway_Fatou_slope_10_.svg)
+
+*Abaques d'une passe à ralentisseurs Fatou pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+
+![Abaques d'une passe à ralentisseurs Fatou pour une pente de 15%](baffle_fishway_Fatou_slope_15_.svg)
+
+*Abaques d'une passe à ralentisseurs Fatou pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+
+![Abaques d'une passe à ralentisseurs Fatou pour une pente de 20%](baffle_fishway_Fatou_slope_20_.svg)
+
+*Abaques d'une passe à ralentisseurs Fatou pour une pente de 20% (Extrait de Larinier, 2002[^1])*
+
+Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+
+On a donc&nbsp;:
+
+$$ ha/L = a_2(S) Q^{*2} + a_1(S) Q^* + a_0(S) $$
+
+$$a_2(S) = - 783.592S^2 + 269.991S - 25.2637$$
+
+$$a_1(S) = 302.623S^2 - 106.203S + 13.2957$$
+
+$$a_0(S) = 15.8096S^2 - 5.19282S + 0.465827$$
+
+Et&nbsp;:
+
+$$ h/L = b_2(S) Q^{*2} + b_1(S) Q^* + b_0 $$
+
+$$b_2(S) = - 73.4829S^2 + 54.6733S - 14.0622$$
+
+$$b_1(S) = 42.4113S^2 - 24.4941S + 8.84146$$
+
+$$b_0(S) = - 3.56494S^2 + 0.450262S + 0.0407576$$
+
+## Calcul de \(ha\), \(h\) et \(Q\)
+
+On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(Q^*\)&nbsp;:
+
+$$ ha = L \left( a_2 (Q^*)^2 + a_1 Q^* + a_0 \right)$$
+
+$$ h = L \left( b_2 (Q^*)^2 + b_1 Q^* + b_0 \right)$$
+
+En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+
+$$ Q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/L)}}{2 a_2}$$
+
+Et on a enfin&nbsp;:
+
+$$ Q = Q^* \sqrt{g} L^{2,5} $$
+
+Les limites de calcul de \(Q^*\), \(ha/L\) et \(h/L\) sont fixées à partir des extrémités des courbes des abaques.
+
+## Vitesse débitante
+
+La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+
+$$ V = \dfrac{Q}{A_w} $$
+
+pour les passes à ralentisseurs Fatou en utilisation les notations du schéma ci-dessus, on aura :
+
+$$ A_w = B \times h $$
+
+Ce qui donne avec les proportions standards :
+
+$$ A_w = 0.6hL $$
+
+## Cote de radier amont \(Z_{r1}\)
+
+$$ Z_{r1} = Z_{d1} + \frac{0.3 S - 0.2}{\sqrt{1 + S^2}} $$
+
+## Cote d'arase minimale des murs latéraux \(Z_m\)
+
+$$ Z_m = Z_{r1} + \frac{4 L}{3 \sqrt{1 + S^2}} $$
+
+[^1]: Larinier, M. 2002. “BAFFLE FISHWAYS.” Bulletin Français de La Pêche et de La Pisciculture, no. 364: 83–101. doi:[10.1051/kmae/2002109](https://doi.org/10.1051/kmae/2002109).
diff --git a/docs/en/calculators/par/theorie_fatou_schema.png b/docs/en/calculators/par/theorie_fatou_schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..36e32a67245d6a04746cfdd59638c267741f19e0
GIT binary patch
literal 138046
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
NXUsFXGR@ZSe*yC50x$po

literal 0
HcmV?d00001

diff --git a/docs/en/calculators/par/theorie_mixte.md b/docs/en/calculators/par/theorie_mixte.md
new file mode 100644
index 000000000..b9c77c510
--- /dev/null
+++ b/docs/en/calculators/par/theorie_mixte.md
@@ -0,0 +1,78 @@
+# Passe à ralentisseurs mixte ou à chevrons
+
+![Caractéristiques d'une passe à ralentisseurs mixte ou à chevrons](theorie_mixte_schema.png)
+
+*Extrait de Larinier, 2002[^1]*
+
+## Lois hydrauliques issues des abaques
+
+Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(q^*\)&nbsp;:
+
+$$ q^* = \dfrac{Q/L}{\sqrt{2g}a^{1,5}} $$
+
+ à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+
+![Abaques d'une passe à ralentisseurs mixte pour une pente de 10%](baffle_fishway_mixte_slope_10_.svg)
+
+*Abaques d'une passe à ralentisseurs mixte pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+
+![Abaques d'une passe à ralentisseurs mixte pour une pente de 16%](baffle_fishway_mixte_slope_16_.svg)
+
+*Abaques d'une passe à ralentisseurs mixte pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+
+Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+
+On a donc&nbsp;:
+
+$$ ha/a = a_2(S) q^{*2} + a_1(S) q^* + a_0(S) $$
+
+$$a_2(S) = 0.188324S - 0.0427461$$
+
+$$a_1(S) =  - 2.47998S + 1.25363$$
+
+$$a_0(S) = 5.02138S + 0.709434$$
+
+Et&nbsp;:
+
+$$ h/a = b_2(S) q^{*2} + b_1(S) q^* + b_0 $$
+
+$$b_2(S) = - 0.0733832S - 0.00839864$$
+
+$$b_1(S) = 0.176261S + 0.661656$$
+
+$$b_0(S) =  - 4.97686S + 1.30546$$
+
+## Calcul de \(ha\), \(h\) et \(Q\)
+
+On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(q^*\)&nbsp;:
+
+$$ ha = a \left( a_2 (q^*)^2 + a_1 q^* + a_0 \right)$$
+
+$$ h = a \left( b_2 (q^*)^2 + b_1 q^* + b_0 \right)$$
+
+En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+
+$$ q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/a)}}{2 a_2}$$
+
+Et on a enfin&nbsp;:
+
+$$ Q = L q^* \sqrt{g} a^{1,5} $$
+
+Les limites de calcul de \(q^*\), \(ha/a\) et \(h/a\) sont fixées à partir des extrémités des courbes des abaques.
+
+## Vitesse débitante
+
+La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+
+$$ V = \dfrac{Q}{A_w} $$
+
+pour les passes à ralentisseurs mixte en utilisation les notations du schéma ci-dessus, on aura :
+
+$$ A_w = h \times L$$
+
+## Cote de radier amont \(Z_{r1}\)
+
+$$ Z_{r1} = Z_{d1} + \frac{3 a S - a}{\sqrt{1 + S^2}} $$
+
+[^1]: Larinier, M. 2002. “BAFFLE FISHWAYS.” Bulletin Français de La Pêche et de La Pisciculture, no. 364: 83–101. doi:[10.1051/kmae/2002109](https://doi.org/10.1051/kmae/2002109).
+
diff --git a/docs/en/calculators/par/theorie_mixte_schema.png b/docs/en/calculators/par/theorie_mixte_schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..400c43e8eaebe4fb753b91bc51276975adb24b8d
GIT binary patch
literal 99570
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%0DxeJ_kuwpEVm)~yEdHAFcnO4N-gc7h4x?Q>5B
z+y}<N7Hg2P(PkECVcmr3(;v5%Z)1Jn&|Dau93h<t&Wj)O;|XXAZM{s-<@WX)(QLyK
z&$x08dn2-Eu-w5b8q!r@Vc#@fZY%Om*ta5elQZ&@4Iy@h6lYVvy>u($ar(`h7uwRa
zC1ktd<*BEaw#+`f17Dj7f46;&FD#UxZUUl3*Gmg+HReG)?!f~G%0g}W|Lg0rpWAQg
ze~+ULDIA_s^SMw}11nLaWXBi7qUA8jKR(I*1|xFy@8;9R`$^zv$4mSEB$&y!QNi;l
z{*&b_9b-$&`_y0H>|hn4R%=)_722;~y&5B$c6MQk%AvVJC3^Yqp8=>3n;VWa8I8C1
zBkXY`8=2j-nBd}aFTAz9SBCEln`>~G!05Q894X)mG#V-{`-8T0lT}t#U0b|D<~YMU
zL1K$o{cynG(9^WHE7MZ+YfrBD^oVp&RmUPc#7`D~{!R5(jdWy#EqpS;=(Tcrdkm@p
z{FOS_CcleTt2i*eqfT-Dq>J;*_ZGmtd*K9~j?-vG|2<G(tgWr@w+%WS+*Id{8!3)R
z@LB*^P1C7cvXYN9FWui-I9&Gce|~Y5{I%-`Kq06uTOA5(ZZI8wC4I@uE8yLkt2}K<
z3&4WC>aOyjsefF*86{;zs!8_Xt3`f~KZsBWB_yyf@x0uzU-g1b7puYZ$@Dte{@gG*
z>S*J|Zd=eOe*rK<Kn3CvZyu|*FC#;6wAOQ;;B3Eb+cuh;X;zTy@1X~K7_2KwbHC@a
z^i7D<f`nPbLvCY|!}lHRPY#^L<_c}PHvjy&<oH%QBfb8!O98Uy^szC~6p{+!BgqOT
zYH2X#$?-7VhKj&f=IzVJx6|3?(SRVdm^Xf`S_;>bl!=;d`l)$Nu+3*5IC7>xc?&2o
zpiAAO@v6$;(4z<gyi(>0Ww@)N$U;4PEDfgR%o<DmcA>|pQ8SYlhE%@gooVH0PF_%T
zWJ*uBW82gM$(Z%7lXe$HwWoTk@lAS0r~#lqvG|1q<$Uz>FM}35N=Qn&`{9H`1Urv3
z_u-8jo1Ug|N;LO;UQ#lL`l{x)9ykM6nf>f4%ol&FP%fGxG4PsClv+lw`Ofz~I}A1@
z%jZ$Fi;XPJ;pFc^$h$QWv&V)Sfy;!g0$(gVJ{e!v;yc>Tm~rVxPcVMr#^mHIS-u?h
z7T(~HTVe@6EM0oX@aw^9@u#SM_?e@@G2Or8xZt3m>`~X^d*{q$15p|VQM~Hs0UWLP
zvo<QqmNeq*g2%Aav>>#g^q@Vew~>=mcIpAId3ukwnSs9k$Li`jt~Kb!SX<i@PX$Rl
z4-7iIC-g0`!qm8<-?y5klas7#(|&E@Rmu<lks<VOHfi@IN2;#Fups-SJMKWiKR#db
zE@}h9LnkG|y87kIDMeDF9zARp3!ROMi(0x-WROc1FGfoi`5Tb1_-+K}&t+P+4-|wd
zdROUDtN(HVPR;d4TG64ef#h9nk@47184H}rYVF65=j=-i`5EZv3<mq|!-qfg!@l}E
zyScm5zQ^{EFVM^|p+=w+b7uZd7C2w?Gsh#!TLHBJW*q;+l1w;h1PHui$E7qAo4Q1v
z9H4R+!7kv#rsw5r*renw7QL79%<D2~V(l)Qaoo|wgPYPauu#v11N5}j(Cl#Glzx9G
z*9ge9T!J6p<I8K-5O!J8;@O0A%LLpd3j186f}9mSE=`Z;J^%c?O1Un7YhJ8JumXmn
za~3<++_|^(=6Sm8O6qcbRZCMp^Qu;^myq++PjPAYKzCYR=+IpoE3aNv3ibt00c+h2
z7qxvP)xbT++Z>ox_Yc9BcmA};U{si3DR$h#d_YdX!#*qia$NN7+jr#1OH}m;+mJ>I
zEh^SM>nrib<IduS$m*Imr}y9Qz3>^?Z<?cM$)eA%<@-cp0dxu(3@c{RYYqbSW)F%W
z%&|rbva_WtS3(-3ZSjHdgNav4#vQVZb6Elq!HIywkaq~hMe2xEfe4eL8z!PE=VpBS
z{(TQH;^SL=|FoI&1J;Fr8Ie8B_w^+kA1T=Y4!&*M-M7ci9ykCpeuzwn7oR-2ubJ8P
z$B!RBcyQ)Tv%|&f90eaMg)<pYVHl7+=Nn4vnY8rDgi%O;TYBgj&!3ZFI%*B}5Gig(
z--UDMzF|kNq_ZxuW0{<sdn+UFs@G)14RqR>wm^DC1PumBki`SMpIGmb^_TL<Fw2)a
z2GjV`rAwsK1)V%=rA3Jx>WD0;j~4Seg?gB*32{5kFYz0v1>$jWU1t!Gc>A}<hG7m>
z9NjVgxOxBnTNi8>XpgnEu#mGYalInlr?-4Rwk-d+xh!wS?#?|%<@xW|<k;*f%buCy
z0WaUa<F@15j~sa~;O$E~ClQ-b>Os(gTOIOaq1(5lPqX5^E4;uO(pDCgmd-=9gmQp;
zGi$hwS9!N@(P$=au9rPqFMKG01>m!^-*W1LyLYFIu+JguV5>;GtZ21vuxgiK=v1hv
zd%M59wbIr$>e8i=)0g^5>NT8{zaL1bpgP>4oO$4YX4kHspI$h=;L%xI^*Q%}RDZ*l
zrOgd~JI+vdzN@azxAJNDyCT%3_lW-eD{z_PT(rEoGF;v}W#PFG+^J2YTzW^FL<af6
zKl8Z~6Jg$^{B?cqvqT&cB{dG`{0SiSJ<G3N^#vg*w>g6~lirm)Ls{O;9V1V!a4`=7
zAXPkYnlg?)_$3t0!?X70!PO}>Tj1-ft)cPtZR#4yz6^8<5<3{DGm`eryLVW9j2=mm
zSSl}`O^qFIkWE9VZs~I9q;#<|Hg6@Z`Tiruna-vlCbp}{M$bk{STvec8YJoZwQJKz
z4@sbB?^xp`g#~%((r^B@chOokI>c-*kmR14%0fx^@uSDmjA&Hq0M{HT*-txZ&}oJ=
z(qrldV;LvR=m7aY(_LH!&bgkzRnXd`Ufei2wTi5c^@}M?4uSN{9)0A}gWwk8oOSCV
zrR;Dl1Zlom&MU9x$`(92m6kel)IN+ghYS%qz^S`*U%Y(D>gW&n9{q`uAJeHelQbl#
z!C1MiYtv6JeA*1pXX}moVp*Q{x%qCNDvcvgoCu_=JJ2*}gePm?_vVfqD5J6CcXQ`t
zk{55kezLx++FwM=1{qhEGfHjR7#kaFNC0&~Vm~aijj(PtN*;oWkG8hX&_JW&ogs}M
zN+w<3n~=DDd(OH>e_PXArKRtxPQK;*g26V*O{Z<*j%K=^oSwMd)z`fkz2YrlhUQ7w
zv3^dTo?-AMC8gL)1vCxS92J6HCYjXoWy>n1dDb-5$u_BQS3z6%yAF;;eIgfO-8`a(
zcuwI~1^NV8@r7nW1u$sV%*$37lv-G1bKA0g$^S^HE_|4O|KzV<zvy>z7msu5I`8=n
z*dgp<k`>CL(mf;l_Fcrr=HcKlP<!vlwt;0(PhIfq>aQqD9|+5s(+2s!_63PZ-Q(qG
zz5BMNuPP5z()Wk$vn;5iq_R~JY*-HLy(3?I`7-lRfA1Glns&9f5NhK`%J3}XOVXy2
zZwf;dR8$g9NNof^Sr?KX6{Fcs_QaDAh>oRp;?1;5k@Vu3Q0iLnlq(ibTYk$V9eDOR
zXEB>8UDbvPISa`E<UNfSFv&L%^B4iqC9&)FE97`-ipEK;+#rULG#=Qw?j_W-FPHz~
zq;c+ndQXwqrFV?;y<<@(CHWEZ<nz5(Z<FhQC8PbMNyai+RFvfNepWJzY-a#IENxe}
zCyYde1=Di^1ij&57{Ie9bb10QHB8*-Ul4id;6Xb3SB7n8C05{x+jp7o1k=@If?O33
znPYkIXGIo=kU4&-I&$<V1fT@(wZ{@jeqr&w_`MEy)_l%<tA_`6K=L4A0F}u6bB2IB
zdVkv9y{)EBfVrJ*t1eb(bMXF=4x9w#z3y-`KwZ@(AOwHN{RkzKcJ`lx52EF(jx8F%
za~R-RX<zyqXp&B%q|<Mf44c8D9eYn4G1C(t4h-ntl%*a&dbDNv?NZQx%*ooeYqxaC
z5<*N#Y#UkmU{S}w8+aP(oi{?qf?tQ%OHK#ifpH>Jm_&dHQzF<I7IDWg4imCf2imi4
zB2~PbPju0(D<?BYX;TSk&aoYO%RtBeJzV9f$2|pm)IM9Zs&Mh4Bt&T@sfau-zo(9Z
zNoe`6`gV{2U9oI$Y5hkQJ6Sxb2DNScjUiKIYRwvp&BuN!zUr*gxif20O_=@xQuM)P
z66YHmp{<zwY_@BS4&@k^%Z7#kdElnYL{lL}f`JXV6H0rI0=9mf5dX8X+6PD-d;k=P
zWYnJL6E>|AGAf8?|58-wWh8zzmjVrR;q;>>qxMet8jtk{RCQKqNXRep?(CDDMPjn4
zJe~<#S$tzkmRHM5dOg4>0Z(^2H&YkjXEJW=Sh9bri8zPB@pz1rBtV=hsh#<)ibhcN
zmoI(QM6q2*`lDt0c0^tB?#9+HyYCrn4f5QWOag}CCSMQ;U!<=2gSRSQNc`wOOyoGf
zcJ0WDK7T0GAl1<cpAayiYc}}_xI>{8Bn&DKs&8rLdBoCP<9g2NGh2X$kD-9aiRkTj
zX!yP-4aov+fPu^28Vp-zSEC7n!`*~wFzc3Uff-2f(+fYKY5PALI%G%?J#y;UgbH9X
zG~tzxAGeE?L?2M6^942J8ChZ0TSZBl1(ZmDuGAYRtW7c2o^=+NN&{K^%&?zhYocfA
z%w?Ofzvh0M^dR^HyGkfXZvC85`$wh7`m-{R`-)JoyO`VGLH)&wcZMhV3^2vpxCDz$
z@yK-q7Eo!R_tezq94f_0RvFX6!t%&8Cw!bh)=t&;=yYb#N?Y<ssspM-(mHPkmig{W
z{tF;cr;p!}lA1cxa`+2A8SW8)msJ%U@TZ8N)Gl%QL$|8c)YfMHBl9#{;zdY=ii!~_
zS=fP#{*qG4Z?C7f34CztNU=Amsvby)?L7E4JsjF^@tV|yUxP0CbIgXdpbGQ|Sa0X&
zXPR2(+tIES`-pRl`mYu%pLN<oIA(KG{Q-#|Oz5PoEl@`uJxZRKTadT{b9MA7*h#)W
zKCD--cJ6a44A!bio<{`Fza84Qc)up;fy?<_4t|)e_U+bf?VsmkHkVH>dvjN|o^0_r
zvqly^8IrqOTQKRw8VbSm@Zq~gx>C&nxf*$<5~sFJZrdZ*M+cjzvXYYYbLZSz{Lq?r
zmp(Xm{pL-^Mu2&|%4?(C%fg~OKi>=Bxu$QAm<GZB^g;=v!_+E3%FHe&br#FQ=AXMV
z4zRnqU6%XlwLK?=Dn)q{ItZ0hAI`bZMPHvg&9X(`*l$*`h?Mlq;`)=0f|e6IgLHnX
zv2kN;Ebh^dFu=o#%qR~>hjDOsqqgkA){nSBhRw4l!mlmjtYi^Z*20yciccA}=8wQ^
z$v6ae?^wXW?)LPDGV$I324&?4w8os>8LksWPL7Tu4)ugsX&FqRAM`4s$7oB^u&g;6
z<yOKTrILZ(aE@q%0}2`Ve*V;6Z{WQ98Ct&@ob8K>iiDmc31+>kfmr4^F;8;xb%^UH
zJ%gIz<UE31<GIB)vtF_#Df?zFPgAb@{B-z^n$}*4N<|i^9y~yQX-X&D$IpJQs&Bvr
z_|$H`nU8YhREqFK-FQ}>kY)V(eepyA0hE*P^6t=~9)^bbI5aNxX{Qsl6D#wOX8?Zi
z43eDjZ92(LZJMr!P<q#{Z$DdrAXhlR#1OirH*W#~Sgq8&kS#jwePp3bO|pEg)5b?m
z_OvsAFt7PeZBNESW5H1ULJ~hMkp76Da9A*}a$1lBbw*9K74al;Yt@rT=e&V*f;n#N
zL1>Ot{yw#B+Y|~cJn7#mv*lc+(%w*D%6b$HZ{2~vuiv>jp@OhEpEEkyocis!yK#C0
zjmnQ}=ybC$>`XDHs64wUwSnhCG?@TKLtRzb4$_@SMdjne<ImY<R!JJlonG!u5UjZn
zUnOoi?>R&wO7jo>IrYZM81Ee<4wy2MX7N$^|5KYIep3@&h>pHS8+nv=dg<-kcrA1_
ze{3hpIddlQ#4GpO38uhRLEk@4yQPQ#P@q@>#|xfaoy_B3c)*n6ZKJfFz3?EcExdPF
zICT9tICFFMu`}n#Q0<S6n&MhwF=54u?}WL484vDXz514|1m`GlXkW<q;RCGv@#$TN
z@wl$8-|X3lg&~*^$nCk^%*13d<E@r2UjROS^!M+^j@?lt0PQR%zz6IR=H{`~S+AHg
z7v`#p#0~QKvL}{l34c(xvHW3!5uj!9s3GctM$mX*ZWb{7z<K4?`xJ?`H*a!2Jh`}P
zz=e0;-g4L$%%3ptIXBMH9!ypMwZVXNA9VtwK))V1A=}RM*6rJPA0BUXXFCxB2U2U2
z^E@oK*q6WrLAd0FhbKgN|6`W}(*eY2YyYR6cmj*mY)ubP6#S#hvIq8~lp?0`5QBn-
z{KL-%F4>JY%u$U=rX2q#X@Anu0i!_%gY{&|rt|1RCUksC5<?L0*1da4M=KcW!1x03
zb@%Qz?e+4n5FELLNy!6`ys_tec}^Pu6J9b}SU6V8-o-ZwV;snw)?X&9pkBH8M;oc~
zY?yVV`N%?i2197=i{BPGQughj_B4Pl!=F}FjpJYjNMH)u>zX+J^)G*y#k1Zx?0xu0
zf{e!Vf;)GX(0e3XZbF3~V5Ke*Ez#E3=Xh_whRaIEy8LVl3_9B8?~@D@J;5yLjR|e~
z#>SzY0Q*kTQ75>KPc1pusj=ee*Go6hR5#V7LG%Ea6^V)ZoMa#0Mf~IK?p%2n3^4z1
z$=vy&Tn2l^d+>^jf^R@uG3c{)^q9JG$^@bPb!uKc$wl%w_lv|2?g-F$f-|U8w6;5B
z)fJG@{GMI>NsGux!?Do$5ySwEzEh;q)8MND5W75{q(pJ}u+|kJn|!YNqrvGqY?&x<
z+(y9owWdcbQ<=~+#H?@MRJ1SFb$|OV>7gcyQqlcNyzH~TiUAOUP6y+l{53rSTS~EU
zQ@gc*h=VjYDUc;%Xu6Lk*u{+XPRf2x_Cmu8?I@5fo>trqA)`r7j@7fYr)_(^QP1CG
zw^}zQ0j~VK8=1bYu7G8}8$R!O-ler`C2%&D`7&gSF%S7pG!{Mr#+*)3q+UgeS2JBf
zuJx`R{TVXZrIWI+KspB2LuJB7?cLQ<cgSKd3LK7ei3o_qm%8KLx8}xLSv;d2tw$>e
z^&wrlQ7b;~z;C{DFT(#9{%0H4Rge<wbgf&(Q=qeZ28;;PG0BFMlo^66?|RkOQx~z#
zIeh6|ne^#nEF&7PtjzX4v3;~DgZ>!)FibpV+O(nO<`b-Hm9Awj_$uGA%)uMQ5O^C1
zLun{&@?AVrdLoiOhr*9-#O-e5WR3BYCPfWZS1A%)sp5a`q7P79f6wvj%r(Eqif9tv
zdi&iJd$Px8dWU#IBIZ4@GX3m3PLy`s7+oiZ$6;ftj#ojwp?%$L&`yIq+0wv3xaXr>
zUGO{#QY(D^JXP%kN1Ff2sFBS5u!6*yD~DwTlOh6+{bf>JTXDAgD>$e}j($_njnW;w
zP+zRz+=&0ITc6fi)KIY-v+Ci3x8A8@C_^99sy4XvwI*QmxBB`jvTl;?dE3=vp@LGm
ztBVw9LSW?BZoYoMSz|7T{T{OCH{3|F@|X2NKtie0uMOzl{Us+fN30GeL*g+uHZOXW
zso99cpV{t<yu7SUsr8`y`Cgvun&nO^r_gI?M+pZU4}}jl#m$Y5)L=v_bd!pnoPt%y
zU4<oz4*oPX3Yo}xAV#=fn>SBnZvr5JKGWGh12&3b58`8q-I68s5UG*&ByHIuRui$p
z&IUJrV1IR#2s8n*d%`U)r0{qrk%iFtgxS{8DVB+R71VnK4WPCd{h|E<kV%tJDn;eA
z0D`ifI2AGUnaW4k8#G^s9?B=PN$1YmhXtLUTbA%pa9|=JV#b1sGILMi!-q*~{TZ3^
zb5F7}H2+7W0!S-!Hmx?4mB%SZO@M<C2AzpDe!a9*&A{!7MGP*SSSQC_WrsgPCgvSs
zE2=?4P-OR$0}1)V365`BJRxM9tt~40?P{|YF3byjeVtmjK1UPC*GNXiD<}!j5gDp+
z63xgBWQ-Dbv1ri}#AJzmXLblMYkYrq{fxiUo{+AK#I&#WCKRd#DJdycg~g#qu^0UW
z>(Gf}!l03iyIT5ZcbG)Sr8ASCG@_~0L}GB7?DP){k>paw*G#8GV;!*WtXu;@KfS%v
zniAPo9VIlSKu`PRd}9cRNKE~obmEc5c9sKjCW%BY=BN@^@R`(r&_<vc(+wf3P!&)i
zBwGgPMB&Lx#lv?%_&Iwif(>P8ZC<~9J3wU$%l2*`o@na;gN0Qm6mQF&{qv85f3g~+
zFg)Ir6eS0%0l6?(2Uk&-0CYl3g36DtluViWIrBj%jX+sEwV#DbM;#p#H4&T<!5;jf
zFQ(iVfl@-Pp0mfib?oXP+ZDbT|NE~O#mvV5$I%J<_U^T&X1jZL+fxk#1J&*`$>Lm=
zud#p6arXF>pZtv_Il~#2gkzAp1dIUgL!Up6r0U!|@7K;to;`b3lh&?s6kbmUx4DG)
zyTox~(@0}A=%H0hO;zpuVh&l*^;@?he>`^0oJ@=)m$0_Zr{hTJOBe3)qa*4WeHUN$
zh4gi9iO-6~t05V%E5NeTQnmoP?%LJvZ>&zgwQBs!NqVx9QaB4~`cd8(^|I&4=6m)_
zT)WwsAqhLx3U3F~^@f83cb}exk&(ha%{701_Wa#2vXyu<EX(L&FviJPpwRbZ$izQi
z-{0L?rxwWElIW3Sp@AhXDdUy;EdqJ26!-4kUSsH$l9DB%vzBa*d*qaJdO&5*Nwe_R
z*v{q_STn0juUs+4%}lN4^=s}5=CHoeqhZz!TwI+`H#Rz{>}5R*=Zb}(f+eHyUa0zU
z6f{4u9UiOQ?n~fDXui~++nL_Kdv_NT-b$ncFZWO>63pQbektrkDM4wEq@{52ZXz;t
z16tQ+rlzY?%s95a>C(pcSD+&UP{2|Brq-oZ+VKfS8aO=hL+y2G3&snuI3bHH?>Svd
zhSp*L7cU+y5<?J_x+aFz*C>Xj6gIcb-qJqETDjYIrM16v!Vd~vtg25$L3HRHl_M?c
zJ!_m+Tr-M3E^yp&_P~9>ZTC*afZ>}KtzvL1tD@>J7Ci<dgIz+`gYKzI0G5gm{ZW?y
z0*Rgb3@CUw`EN_g+MdeJBTxLDV`^r`iXR(#gIt#V)fI6Wc@2yF)6)xQ{daOmW_}+-
zb%LC%&+yM0w;RbeK?<Kse|#xVlaEbk>4W@)YRE^XM$S2JAXJ&h*RJtsamAe2l0}O0
zI{z$aiIlcB$?J=NoQoF$kOZk2iFJ9um~z#*^q~alJg;2kR3{v@1SsGaL^Zo<f*D*Q
zIxXNDYkVq!H#wF&3Z15^;;Up5JO^Gzx~6-phL{a&4)^$er1@}Dr^80+4J=PtJdv7$
z?4&fft~!Dgbn#+~f%esEZVp?Y;wmodz1x`ywQY~IgWyzk*r|JEhs<eRMg}kA9?C_0
zY%kBDHYwR;tdw>qU%VSxD$@nx|E!7{Nh)`v>)PXYRB@L^WtyTUWI!y|refF|5Fl2C
zgpAgAXc_rEy;gqkWO(_I3RZu8)%Mq|KnM^VF<D4eXbhbDuH0PDy3vpzh~wnHdhkP9
z0?oYm$zlaeN%3?bS6wmaIej_!H^dnE)QKqV?bc2(U5*L>TL%gQAXK~MPRc`GvOeh+
zC_bjbOx?Zv36%xg`<<`)-+K<Bs`-~`1p;w${z3uqt(x3RtZ;B6)K>ahOXs(xuM2y&
z#<jO+6VHHdj*#tujjd4HVmI60Ur$5h1az<+hs^dr3brkOxT8KIEXd+wk{S`KY(x9L
z1f@JQSM%nX{7%SE=rVsfcIm7LHY1fiTL&J%5HlmA+0b0*n^TtO!T33I<~zqTnaI0C
zE9c_jO7;tR0&s@09PeJg9-Dd5PdAEUQ!H!vST&_3jgtr#2VW~9rpdyL$Zg~MSAeh6
zU?K?e#h!@r>q6l$SEr3tG)B!){kB>RB|vu{FredH_d)ayU__}DQ2?FxyBnpZ!Azbm
z`aE5Jmm=+>+eQv09z!n^6X310g5AjDv)RE#EbyI^2Uy`Sar1%N356UV)9ROPdue57
zdY`0)E)h8~YdQ6-Glphf3T+136myTG)n*~LeSI>HlCS6M7*(0SBXi7CU(qo|N+y}r
zRqf(_!?)x7{Enbc3#v05)1M+?Z@Z)P))*G+tJCIlZ!b|ZsI>Q=V6p^)F(g7t*EH7>
zD8ArPGBriTNUC!Ci+-F$RBa?%KST2{a^NKNQW!27b&>H!NFME<%m7YY%(v^>Gx0(`
zcMVQeq!xQe=0I;863RC?6yba_AK^ssU-qF&5zzOE{d=KzT)W-mr2{i!K;05bUiD?u
zml2|S^oUHUhelR7Rn=YfV~pw!nVgRuJToJ!QqY_D#;-IKDq1YYQox#-4f4NdGIHdM
z8gXgqcu|D3`|Nc<4Fv-tos^56ST08|D?gtJ3P5W1os<6k-x+fiw;maNJBLPf+sH!7
zc)R+?B>whCpx`7drc-MF9%f)#&It}xzPn>q9@~j>ibIdvlX>{?sRfS{Q)b9j&sa?_
z<-0>R<XC9>nd{b#o<H9_ujo!34C7J=tYD<%KopXY%NP0kn`!-8NUs%@X~l^-H=4hH
z5=5D#f#2Ptyn#?J!mFY~^#|QOfy^fkH?&v|Mmn~j0xXPBdcEJ%;4{)5!6AScOau4?
zc)is+28Mu#%zrS+{yhLJ6>R0eWR)Tqa*`Y{ZRscg#AEyb)^Zi0^V3X3IpZ>GpZ%8$
zU^k-J;wFJl__grEDi$GgKfQZ<(zlySPclv#^THq*LOcslJjPIs(1QvMh%2u1;0|*`
zM<8N;SDpqS4@9uIGfBh)JR;DrLKBBVz*HCT<wuNTf3{vAPyxRY3jpd5@7u>sZ~%}v
zmj%Rt6%xHlVuzN2!tITmVI;;#C8MKZf%TBlz=z|ZaL~HD%&|-96P=%{yb|QDX%|_L
zXW>CZn<w1l9k=ALTY_Ao9yHTKO->N<ddNI31#9iojQ`xG>p$%lI_?^YOEaee8QeOJ
zKNqejhDW<#LcM4E_QuFQ2I7YOg}Mf(_xHcmWNo(_IzKf9j*V^omVx>4g_!$10IHB_
z&}&{jGe=nG(U<Se+rFf_;co}^hgdM~-H)?71L%y*%K3cJKR(fuVbTy2WV{aqlPU{l
zfmaRIsB|6C1W6AqYclNcq~Kv{l2P4mI*7B9zd0MaoWyR8o*kL+<EpBH%087H)?F@M
z>Xf|(EWwA}R9^3dNmp|6^_TS^^8Bz!%sq9(a^Pdz+>GFccdg||prxe-Q5-+tBpsrL
zACt^j!cDspoiU~(9-YCMhEq7YEP8$ZHP_P35o*l^LcXYzZv8}XAqFK5L3@Xt3?wZ@
z`P&r07g-2h<JjpI^>ypu&BVq|0$}34qc2zO8u#|yI~_cM@mgRF3eDjSxV|t?kTMn;
zeXRaaxk#kffE~Y@ngk;ZJ_pTu)+8Vbq%j)RTQ;mxF|cYO*s@;9NEpt@GGY`GCJjHx
z+KKgand(-@s%3Ou_2WQG_+oR#t?gE>{E@NqjQ8o$(YgkVi~9A8D~wmGK$TJ&%M6cD
zO7mvFE9>z-5EnBps*`Rr5<h`PsL-ZO;WW}+@10}1#+{`rd(hsKsSfmvW>}_brIvvP
z9!@$05H_PoSQSHF%3m9AYkP$cO!-&Uo4!N#)c)exWEbSJ*ei@!wt``c#Pj3X+3`YR
ze+s5h>3|onUt6L*A!agC2t^NUYf12K|FZrJM4&fbCLP~mE>p8gy-cl7ntS6%p}J(0
zeAkl7xeNZMeLTq2@i*Z|kMWDVeJ4EUzKoWYpOwE#SzP0$+|WBsIyaP3?QARGP`h@%
zp?en<KlI4f6w3|>KnU{|-281u%!??0$i2yqiBZwH82#TDFa(^n>tJCYp$4unG~Yy#
z|Hxjo+ONrf)V7kN{QCo%A1=rV|I)1PwM~xyN&>?t(lL>UuC*RyD*URE5;y4IZw#>d
z_a9hG{7Sq&yY=616b%5!;wLK){O240r<eMlAMpIod%XGYOI=m^_xg7I=lbUV=lZh8
z|K|f3|K|hz?>}I1U+drBoH9eW7`qPH|GnJ*{d4@!n{ShJ`UgmE`uX!kHQhjo$ZMO#
zma}0E5bo-S!iQ>}>gB0C&9PtO3~j#uZkHhp&Bht)zi3RJu=*iTmRiOdo%DD`+kb9R
zTmGp2?;n>88PW0Id-8vJ_v#qcY5bpXsdBfQ;?-|A3HPiR9%ZM0@2im)l*)hq`2YXw
z|LZ=er3Qhb(wNT?mc%Hmod-kgXg*dlShjwmvaX{&2o=S3?S*dK&kvie4dE{x{^A}w
z`u|ztA{P7e9FFzPD2nm|c$s$rj|u0ns8>I%*|pBcbarbWQ*?3wKCwPL+jqW8sZoGm
zcK_(v+BdXR<SXpP$?fuf*7vlQvo)O^vFe|nYBTdsQ!m5T`!)L)3LEYBDGPfi_yMJI
z!ggyIP-HUpw1vI6yRhl_?fshf3oriP);aGc_s_ePsrZJvu=oGx&4s`2*F5phmi~S7
zKkp>^=bi2r@=l9`jQ>CGrT^<@3;S-YnBD-36nzdL)zL5Kg(&j8pUrC5y?;QFk=vjM
zzqfKMduny9Nje1_=uG2`EsO4yb^T|ne|SZ%Mn|M^#->H;|3sLyVH={Ok9;u;-LH^P
z(R^(5>U{}?1M>esPhUO^K($;o+*waYr}WR}%W^deBf1{Xt92}^)@45~4>k*$mFIR}
zc(3Uu=_FU{E(?!k1<y!LQekgrmmi^-y6&HiXy+~r7~@SY{QDWlr)Ou^fu;+Wq5W^5
zJAx7n--m}Qd*{s<wLBxUuC5Ng*ntB^5<6s&fa>(Vae3)*7VO9<R?sA#hkYp7!0`(g
z2n2Jr>xW(6rVKU}toqc|Td(;`#wUw++HbomIQT(8x^S7BFy~0#vc*QEJ8aoJ46(=r
zYA@J6-<>+FZwaYym9gT5vB^CZ$Q5MeNi=R(zOU%v_kI4IeUT|CPqnjd(j0<9ArkZE
zT+rfSEn4w)Q{JY(<EXvg+xhl@E5fpB7)y@2;K@0s<dI~$C`<qL_+V{{-h+Ho;G5VP
zb(6KA?Sr1RwRhSb)h~x)ohf@A4An^U3fE8+27muJUUZ~!Xo0YpSNko$HLoS|gFsq<
zcsM|1v<MJ)cUD&K>4X1y|8b_M_h?>#8MXS$1P1td&RsV-34Ql{m5W@d;VAttJz7mi
zlp^WXAE`?FNbod}LIEWCLocL~lpT6jcxm#ApX+~=>?i%wn(ynz35;O%d#*O^kiuKH
zvKaRA2Whq)0+%MNa;wV9CeQjywl&zVLgv$mwM3P%FlslUtc?(i-#PeP_Tt8jnpbZ4
zZe4t3>(BD9|16kbio+qS=SXH}%%?|q6L}Ra%gUzWq#<8^e0CUXT74Q7Z)XcHYYcfV
z2t!%{L%4Ywi()CSuv@n1(<k=nK6+0tUfcmLV$cSaA$76C?iyYTrK^4|l!y*%kaq3Z
zxpVyA`Trb~c_!Z<Z~uKTt9f;==kr>hQsqv7tMGDl^)JU&T2bmyozr^jyX=|473~Sj
zk?8kZ_4O5vD{}3r^i-`vNztqB+^HvFlCBgemmVIwp~qA7Lhm9o1z>}P);bPX33Umm
zHTcx4uj3&!o^!3p&u=B^0_H)l`$@YoERhs=7(gx;V3(5&SAH)hu3`jI^0?!>rFmYS
z8(H~a@f5Tda&vJ21}$Sm$+78YKZ6Kkxf);jlV5<pO+rTtH!VRR(bHW5zo~miX(<xJ
zbN&qMoi$M+a_b>5--rusRJ(c<-R8HbuLX`f3E`Z}E<yn5ZI7YmaYPpY5lkwq`Xm%r
z<onpKMs+*TkbcG4(f%LVFNhzb+HTMC_O=nVRaVY;^mkcZbphA~yq1C$2tFtyD>r-V
zxP51}JSi)~3yc!z82yR+dwy`qP&{F=SQxLn`m&LE*f(x~3DhoaMBFc25JhwCu=6@0
zcUV0)yf1r=`my@P!h}zchmh#PTlu$@N++VG2kj<d{4?(@7ZL6<_=mz(XP4S`x0^U}
z7+cC_+E-@E&<6kGJAx85?B9dwQ)(Fw9z<U&kfA+&d-durL%2s7Nv#=K(<8rHh0zZ*
z{(u<^mz5*<8G-97i8_1s&y(%6EB)wkkXmQnor0@8IF`J;d~IC}k#6fF7Ws=f_p8nT
z&af6PK9FnIt{tyDQ3L{V4Vu`E8$LZ1S^;_jKnkzKRa^d8R_(UYe>FQiVgBsd#ebge
zwUGz-cK`B)PJIpn2>!x221k2@%xxcIaxvG-ixGao&^1`)@Ng&W8Z@ybhDvQj*RtZ`
zS8&z26V8vw=;<COBqnZ5Jx1&_Hjeteh-X6^o}Oa&-^15AyE{28A(T)|Ja|2gSnA??
z+SU}*naK&-vA(!;>HwwDRl#RK+|9G-cJ`12J0tf?!IoFQJ=jYdjw|>T`1;0E?HFgf
zfi;HDTII<6AMdIw2eZQnag1naP~BeGf#TwS$t6&agsH0f7nr^QmNtXdAsAxKfN?^{
zlZ6eaM7Vs)Uf8?0nvTtw`77Fd?9{QNe2+~X7p2&BhYRp|a$DNd!!j-Hom@c;k=01g
zUJm`~d|d-@MI=sehE1bu)`})3-6VR{R%b`U`UiRY(M3^`7nIP=%*>zFRkxBG!4`k}
zXcvbforsxOXNX_1=;piHQ85ZM4Np}0+Yldg($zI}>X0tnC$?MZ_3Pba6j{`qTg{%%
zpvTK`qknvotLs_nVOGhnSkL+7q$~L_j8HL@A(Q|>v0rM(`YJhTvjMy>lF9IYK63ct
z6vT{YaO>@V4rhd6xxrj&tJJ>Vj<=0@wQK0oH|WKu*6ulxQd9eDt&=j%B#9mU_s8dD
zThy?YJ^bjIImjpzBkStsRc4EimdeFRIy06?P#_A@@s!LfqrA#!&2m<NhN0J(2=#-$
zER?93Gyggm#dCCnfrH#$5pw$Rea+2Pk~Jxz*G@?A5YDBqhh0*Z7&vT6N%;h0ipc~_
z?#!K<WyNAGfug7=7jgXfA|^!+91Hc}pK)9kar^h~4OhcJ13D;=ANM#Kb&xzCB1-Kx
zXwQSPGGV8Yc5v6%7p4vOVGGo}P!fbsd+dx(oH=8KCyd}&Z)33WiPCFH1P_RA@IMv9
z`-0NdUsEP0Ra?F6Zf2H|on2m3^zzqgjf`ffFFa&Qc~FdE{LKJpApnekkIM1|1G@FH
zo-Qa=I&xWe%z9}xcK2X?kOW*$EQiv_Jzzh+X9YkqB0Q5}Fk=$bTp&6y`f$uC`Ti&A
zTK<Iv$*RMX-0N|tngzn1rsuvSci_Cq^VwE#cs;J$h|*FYtQ<LGZAgNgu?he`7qG-&
zdh_P$f)D;P8BbgRkF09!Kx9OC4f!%OR&=ej6qzJXxHsq(b@J(*2L-`0hn6UpwmwX@
z$_(ZKGC~u#q^YZWGaTV9!ka%rUz#s)PXf&Rz?<+b!A{1t90nN@nuhNyK<d*Bl&BF^
zIOxx<485nl!d$WQvLl&vK9St0O8_&^LNm&JaO_!Ko}~0O=V!c<kZaR!>VNh<$cmTv
zE2&d~T9yAM<+g1jhVHXaIrLx_L?0L_ABIK4BXdQ#8+y~C$im|JX%>F!jbdp}wh>%<
z9lFqiza9y}5XQ;r4!1Xb)zpASb{0(!eo03%Jq{7h+I8y?Ox-!VXy)hiNSTZ&ZiF=z
zy@4A-`~vHR3taRZ$-ySorHRw{X_Ou00$|d)Nygf+F9E2?!sy$*@^rVciHM7f1NDF#
z`=jFAw;w;sZr%C>m`;OzNT-rXlOb~Z&RDeXl_<|_;smBTulo9XZmxg`5*N+XL?0d<
z2%m=dWv8%#{JL|<(SmF4f4}9!j?`!5d_P0OX!|s*r;W&w%-~WfUC>3NmVeL`L#OVG
zw#O$6H(u=4PMrA4z)(Q=A&JJ?KzD?2@aUC*d_OAiP7`{%aGF4IKBq5%G%n;FfWf3+
zOU&(!G_WYnFYHItA@E4oaWpcA55K^^0kH{csuTZ^<E+FlhBP14OSlW&w#);SAJKIY
zttJhF@w%js$Am$%!o=}w>A@acE?Nhg!BCOJBS)r$M6f1%2*+b4uCO6~C;mYJhYTP7
z&{gr3+<CL6(6AY*va==^tbeF}AKkJh(BZF4C+g?(zkkMwhN3P=iS@s;uY`t^PSlpl
zFeC^t76_WS6UA!nPe4dKW9-;Dpq8vK5BqJ}1_r6L@Zg46XRdW{0-9dGp2h<1voL;3
zGow!6G(gipL!?k=*>ma8x-_uFK?pDI+-cjPL!wWQIma~8T`o!sE?Li$;(>(WNPdqS
z`w#9$I>*x#fc~nJ>wgK}b{d@~{K4eum2~vZUPTrvk27#QsrG!sX{)KJNlR8?XsgRs
z@A~Jl;4kf-;mPh5iQ}i_Osf8EYULlV76>NS*YRp_-OGWov!{Tx?jNTrDJ9WLAN66W
zlXB2Inh2p*m+^MNru9hx1E~)Z6oF@3T0(h@N?FQ7ub8o|AuhrlKbLex5YTXNkVN<O
zIG2Cv6vmDM4~uGf(w*ad5mX3yhrrf~kqX^;I<FyK;lmkn?diENAb_b=Y0`o%L78hq
z{GQlk3XN+hPH#Q+UTL#%17V&1sQ93~UsI)M*_UTCE{@Nk_y5o3pB!iERkciFN0yR4
zYU9rd32VdrBf1U^1YHJM7dBMgm>V9W-~2seHoMO_PaUB_6VWvu*Q(EoL_TE&IUMyN
zL<>t3{>a>$It+B8ZFhHa-}IXTG&ePJw^?c1B8&M)8SlIP<$Wi6$VHf;K!*QFPhrp6
zrIvFPQv26WRs7MP@6Z+ziP^=68iSWtleEBpK#M%y!QrLnBa#Jf&mq)b&dy)A_ievl
z6NfB~p?SDr(k)3k{MPlm@Np7N&#nG-CSlxtwREp8WZ-;~fQO&?Bu^H-teiR)`;n{r
zUO}>Oh1XwPYy=fH#E-&^BtaN9${9s8fX&0y&!g;2vgq8){_`_yI_tVJFl5DwGxP>M
zW}!DBZDcf+io4d$LywO))BH8Q>NXbeosEV6q5+(s-X1gH3_~BL%!Ot%q?2O3%RDI=
z-;MNO=R%Vb4!g|QfTKwpwmkX$(P<;>lM~0^aXO`s*!VLvK@ytE$xnM+!c&!!NmDhz
zzH)YRE4?)Eb4yDL2M$@$H)@g3>7Slm+Ew<JW6g#ij_BXZ+<f+Qt?WpL)jR`lkFf;8
z-=5mN=vIL1)BgdXu6FL=F$q+caK{S^F5A6548I+bqB_W4`Ni|IBF<TKhcms41orsi
zh{g~>U`QcA781GSR{tdVQLVTw0kN6+CSy4VDQKW`i^Oyp5R&j!WKy!SFPRwpoB7*>
z*3NbL^l0Z+8>B3(LFAY|3&wW41IXG|%<uiVzEUgo<$uZ6Q09ft^ysw1MXA%w>Ng=A
zGO+zEj;($9$q(J|o;{v|225Jt8)D~Yfus`E9)Vi^rGfLL>@ge*ws0O0D?6Ar3PPOE
z>98OKA|9s`)Wn;E)nZotX;}rYg-~>5<kW&te`)BgC0e6aC9G|PsVgakMvPT##<Sn|
zoHinhc98AaJ3Z}zysqg!P4gWGFumx!W18901-emqknDhGB%V!1=dp2XcLM_hFs(Dv
zf^?H8Z{Yg$y?ZT~e~zT)xZZWg_V#}8&to#HhbSq)o|r~TIDPuA-wzVUO&ogd`gM&(
z(#575f8NVr?h}zM(Y5_h^cfaAYdH>|eEDnSt`&GhtX-b*4%#@a^C5Zrb)q7c?;!bT
zS>ESU&p7975|7EEot6QK`T^1}VINFNNI#8|HEHc{d(&x5vx(x6;D*Bx>PWTVtq*yS
zOC-!Q`SIzo>z9=d;R~dtb2^l=EFsb$_#*1$5}D}#5SbL^3djy~lb{Sptx~BE7);yT
z`{H6|aQyRY^!zuljndLE=vV$x@k#(#XeE|sRC~HZxjSXHSLwjBk!${VI5=c-cCkxd
zHpRl1&>g<Q9HWpM%MQ7FC&+mv)Qp>AIebq_N|)|mOcXz=zO?3ciig}xf22~xWcV)b
zTKb!|a!eTLxRPv69J+E4Gn+Leu$5nIa-OvO=zu71d<4bq9uPcC-_{BqMCM-8XZ~ze
zT<~_(@Zpb%RqT60QOHitOe%j`;TAn!Ob=SxKXqY2)l|i#eQ3Gy?k=OowhC^ri`|}(
zYsJbZai9dAG<ot{H@yk_-qZ)h*G=qWdGv*cPWoP*^rm`xX>Vc9(dM@3-NYZr2DZM*
zKW}U5brx;8b!Imv(K(!M{Ui)}*pj~XeY`vrZ?=9Brrlw`tzgD@|5y9fFv8IaiC^*C
zPkJr=^vIG!k@I^;?vLK#cajPI7AF(hZLw2`wxvo>Vlexc<6Sl_SiAJNz&-kBLx_{k
zFTv2&tAicv>;e7z4@sO#!VuiRw2L1DPgoY2DCV1#sN(FzmeY{1>8Bmq|3NQ3e9h!N
zBgTu+NkR|WmUAU_Lr-zy3B8$muQJ1*B<pXQrSpbH@%pmPSzmt5m?wpEJgBw2Hu;;D
zNTIuJOnARDPujieFgG!<EURr&(Lwhlhh~LbwdgUxMY21|PaL4P=Orh*6KW{FKK#&<
zom5g(q_84b`S@W3K1+*SIxxe>(!#zq*l6l)tQ3B9%vG79gb;_dFH?i6JFJWJkV#}y
z1by!HF;Aa7Y)vj;F>O+xDRsFWqsP=_DaWRBJTQYzO#-2=_D7g@{{h$&;joh%lX))m
z=Ls}g;B}X`n0LQ<$lUGg^(<Z5<)R3e+9wX%IC?fhtt`0d96J_~A{ZRffgiOGC-+%3
z?OaE;rMa@ZRw(YHKfeVYnJ(2yZ>5udSjq9m*iD_(B?yaJa5(2&7VLaF8z+6eEJ={G
zSlgS%JfOSQ`^R!?sBUbirqDcQRwV6vC3oyIDPnd9QRw49Q#E%jf*Vq&z>NLo)n=ef
zq(JGMF2CEvdczjfCV0VYDed1aY4Ct?^RF!YoNGC@8$_*+LKBVI#WmB<4YN1BY5w}#
zPks52y7Xlz2Iomjd#pDfCwx*8)LE|D+j39QoTR~NV)kd$_uIq!Y|Q-icjcKJhmKC~
z?WXt?biH7!xXr|E*72OHhn?p48@u|bY23(8V>Y+XDd}Up0xfv)81)O`*2PixW~}gD
z`T6(nC3!a&ty{2j`1y{htNy-lc$jk1cg0*^tEHbWrS7K_8ru2lqzva)&f5!>t-D*5
zcU-b$iOx$La5G%Y&?(w<4L5U7x3jlzroRblFsHw6oSEXdF=J#NeSUoVw*QO#SIS2B
z)BX_|dsTV}2fbtF-ZfEo{ZCWRI%eJ%Oqz`b>v^>oy>%_<JY)g9qRnc`?b}loX<R$C
zj-0hXB>H_(Ife=04mwe~BZE)fpXfAn$km0-?uvt^Xi*0>+<7;C!UTn@3vC{RhvLy}
zwq4mJGTTn7Y@Olk);dNIS)qc>`}-&4^H|h3GDf#lI1Ija`!*(fztE-tU<sp61P9c{
z`sZ%x;fpdz+IV!?7AU%Vju^4~tLg5gAKOR^hIbGfK}4kmj4acuWkN@LHH#~Jq}@J)
z(}I+*>S$|ep;C6*f9K<q)+x9C%LRCT`T6;f_5IphR%Y4(bBvOQ$kf&q)ZqfqU4|>9
zdDMPeQGw3eSFgf-2LIMmi(!i0CT?S8QroTKk-T(JfOFV43ptcIn@Bn%G!7I#$=Ox@
zNzhe-8cNOXgWFZ>nYe6q-YyrPq4_`-(t!yali+BRHn%vxJqHToa>ThLbOxYTZGcC+
z-p8GFHeVqp1YZ=(h`7L6O6~Pdc@?ZBsy^#Agkt5ERIxo9n{lqezi;RH3|VxGRPnm+
zL745ZD<(<ZwCf%yNNsfOk3XdRe5)KOQG2P7Rti~hdwRk*Gq=P!(>hIXx*DU~eUE!&
zfmgVCJaPQ)!}VBEdj|yc+T*U+Bn>}n{Q6mso;`8UgnxzRX>z_K*(JRdb5XY=M63*N
zEl;tdrCb6Rv~HAiK+9bQT_16YTE8Ctp|O!s1LTL<hGCJ#SG0CIMD$}o0QH>*&lA0E
zb*Byz;i>MX=;D4-D45;*wswjZqWvDrCJV-5_yaFnvIHWA-bDS@tuHIrJvg8ub#zqI
z*PkEokB(>7r)x@pnhmFwogc){f(jUzizM3PFie2U%8LtXx+wJN$9&Gr<u3vc6na_Y
z&!6ZfUzmP94hYtNU^0tj+UoWquVZHOYO2>{D5q6y%g_vWNzd+2VwL5bzR^7k4{02I
z-MP)VgHd9ykBnUY<yn_M*G_ySS)I9PQU0P5rS+2z!K8me%EL^Nc33YQ-ZW(BP-Kkd
zUk$4(!Dt-*n&3L&NipSrKV!z_uoUB1$9z4tV^eK(vw$=yT=X`-A@oj74c&X+zaVE<
zSbIA}brh<)QLWR=HEv23=a?Lp=8H-<jhddBe`5a7s|&9W@CVrtrSTb}XSXlKfWlh3
zIQD5vtK;gRZEM#2rG~W${O{+n*!B~T3Kkp7SWn60`-E0&`t6*+&IR6@iN0AEzm9kB
zOuV+&r0+Uu{tF}oTA5q@JRhHqnwrZ<EtE^xgqtTAXVUS%G!sjYDCV*pR-X0g(5j|o
zOIc)UT`%ABUmh5ELanWH>ywt-?R)qRDgE`h4@n1VC&@g}ySf{i1E=f(1KE+O{A`I=
z+_^S=jJJ)?H(GUQjHsX9W{VUd2X0tx?dAQ*b>`|GQHfj6%~vq8u&|(P`0-+0dvu=!
z?$2-EDy_SikURe0;ITQdOb!0$SkdWucjR_0SCst-*D~IKaotsT+?OtyDVjvH8D#Mj
zj4AqI*i=9496v{pbN5$y2@$U9_LezSpdQr1JR9nJx8HtUt6dad5777378w^y(yw+-
znWPk^MW3K>*+{dA##3N1+DJFNI_w=|BPATHK1B}KT}CV#YhZ8UmZ*63GeG~{aq`lB
zAk<s*3m^rt%^zmE#{IcU+n|P$;N{D23?IMl_-{0r+RCSe35B>RR)m%}lWvH_hz!1#
znU&DmP?K<6!@gs7M7~Z>BcqF(%@nT;VQSPV2MUTYV~SbIo{j3A+7#<>f4b^lcrotA
za80pMuU<Fcwr5J+x_BHkV{_V`j5YZFnNG|b<Kn{fYdsCt6_lqtXp=X8c{XvU%9V2<
z$D%aui}H5yNDDcp;jYAaLE`#DZohiEvu>9z3!chfZS5zjRGJNpCrTp&+vu&dWST)d
zY~b>c02bq2aN@_0J9n!4)}e>gwAB%NZ$-Dn%`q`!M3#%5>5o`yaizREgr-1Ks#N)~
zCu>Z}^N#=N)X=Zj9v^njHV>hfCvyx8?EiOlh;F$OhMt?kDg)_p1?E0sc)+9BO|9Qe
zGutq;geZm1P#AOC@19xy^lc1TmX-?>JT3(<m&I4UkuF|sZIXJ~dwjMet(8=);g%Sw
zu4dC5J^_<|@jz^&#LoNW{Lk)g*J<-v<IvuaRBc33sFMe$ivM%j7FXJ=E8soF_ox$b
zVH`vQO~?+C5F+zj#!?nBb^F?E!UX8RDsZo~_;Pw(Eh{oKF^xO$eB9FfoX%mVEJ~WC
zJEs?dns2wCL(V=mGd;SyVfEVk5J-1qT^rtk)3L5;&eJY3_ehUE&vSf~ChEs5f#L*O
zhKDWG8JT@t*W1U}=BbJfnRPI*GIt4XAc!q&FKTbR%?~VGrRe6Kk-OX)Z^|-9Ag-Aj
zabs>f*n#<DFj#U9OFLkuXec#3YD><;0-oJpckqM7?B*n^2`xCoqYbD#!@|9lGW;yD
zfU>>p`t@MH+1JfVc<Z3g6`9?AVuoJ*O!?z%HQ-Za&ggXKh_U;vhdLJ!gQPa{hd1)@
z35(NLH|U+;WV+qH+0qcY8<wKq8XC|As~Ziru~=EKPo-p9*0<??jf2814XLx0E-PQ3
zXS;t1BkK2>9Sxg1D`r~a>tShAzPI+CHi)y_dq>%*zq?Z(ZurkZ^ApgU(}AyZ>hVc=
zz5Di6eKz-6w;=NqW{PL0WS`LV$Tso8nc(S_D+g(2xo0K1{qpN-^&5z2ui3j_-SaPQ
zr1s2vX59F6@7?#1R;6ZI9(`6_Ezp5r^{}k0j5e3iN$*yZq`R$FCx0Cym$@A8mfAs!
zUxYt>(Hw3*GjDf)+!Rd@naS+pmCt!$6YF}s>u<ey%I#~jPq0SxRH8Q8a<FrF1gWY|
z-(J|#U7_K@Kv%6<L30b|#6HE$VE;_{6DY@IjwCuwz0az5%9<*8R@z*&q&%zr@<la6
z68}U&+_R_B8)<mP-iVX#+N0&QJ6!S{g>*MkVlyq%YuXu33uvq=MWPDlF=}`=!Cgeh
zV*1<6;tGjG!j0Dy=L2+9v>rMBlMdF5RM>RX-usWbES{LuOH-NLs@YvY2yX^xO;!54
zbdKpneMu>awr<q>%AD?B>Swfm;iA}JUZOeq+wP2Tb+s3PuT%#uEvT`z4jKof2cEf8
zNAKKXub6`A9fx(jTP&9G_y^A`-|L)i4_sCF+D`GPdHRnBMzW*mtkN78XA~A@u?p+L
zrkWm23E!@sb)dSHv~}#$fe$@m1Q1zjCNS73)N{UzM3`%XKt4t^dA%xG7S9oTV>Vtv
z7F!N0FaCH?zcnLabC+I4?t#gS(Me11m9&(AY|S>bn~GLqyP0&L-Yt-;NQZ5SIN2=z
z=*cj{i-jSBLB+|RQg-jQmO5^<uxYjE7E;G@Rc&Fa-0qC*#T~~xx7vDuCwKWkxQdpt
z;*b@>Cu?cAJ6V)Qo7m;uk(w;P9Uos`rHr-49j*is?e?0**zR|HU*E=GtGaSxM<t(7
z7_{&@sh;RPwB6oyWcAwD@7|R*n!jFc8<C-QV9mjBdb}8Q#CYr2UnX0ohby>AF*k$}
z@crzRC8ZSoY%5b`q1Bh`f!fk>N8a}<^R^ynWi-CN>(}G)nzDEf=A9GXV91i3Y~OMH
zfH3^DB6Q}j8$Ye*GDoe3?uIlwe01g#qh~E%9aWWVpB@MxA^SWjcg~GYj7k0cxx>i*
zvKw1Qox3@`qph{*X@|8TLhfzyWwG4aesA<IptoN2*VAhySf*S?4OzpiN*j*{PxjK8
z$Tmz}sUOpC;5_|d%S^TyMV8oYtr<C{W$W7R2;seTnC#Wiuq=59y&<nVO#r^L&fnIQ
z6Yd+&6gP@y&sfmPaiWPkENoPg1yLSji_;v1d7ufuPNUh1@;<-vOP{DMU7S}uB2CB_
ziC*ied7SB*M(=On${__W{<%8SH9WIwTWi^bQ)|OD!&hkm7z_;4I(O66@rVm&vFldN
zPTj_D{1Lxq%Yl3yglCCMKOT(s>Aw@^@g_BQ{QYyjr*D?`*UD}q6P_i;MxrzxM!W5u
z+Xr9TBmD5Xe$UP<=q#}tks;SgiiS{?^}6HN2#q_tcgoZbe_}{Pa`_y^j6wt%VzG@;
z2pGv1go8h&b+P;JzPI|*<df@>hkI?%Yv~=M@vXT{t6y^7VT9Stic^=6|AJ4e#VpHP
zGCE+qvd07AwCmNo_h#b`g93Vrw>ot0!)3T=Wv^r`T6f7jAUV0YrJd^@j1k!ws3kl7
zq)}^=B^hzjJA0?k;7b{;ew`p~Sa<)tT3h8-SAxicMQJ2^&T|{_;3gpjixf!T+q<@}
zJgQnsXL()?$mp7{*LtcHePlc^7dY`^>Q=eGsz|Ih{29+t)#FV2FZoF|mgJPsIu1oM
zu56fBeyg1mj5AhfRA-sml~phsT*W2QG51dX&=uG}Y^u<k&3X>ZZ8=$H)vHgRPG%#6
z^N-8<YbB(y21@ScN6NpElJ;JAq-XzN-awQA2z1uIvW?6289Y(nQ7bT)Ep+Mlu(BRA
zm94*~2R#SuTQPKe!Nk5nBP;c!%HJlhU!~O$U=8LZIEg0RK;hlpD=H!U>|7STscYh!
z*RSz%PW0Zvx!iU~*G1M+6OJS+LpqF3CYsRTWsUjWUeKJ_onfdcub|@-|FQ0gN|Kql
z<Lg~oM_Z>gWQIG^LI740j>57sZL`t#UY?3E;pN4MK!s^i+wEUNWA$uqbHu*&Mbemn
zo?a7=&AjY6$vJ;?QRl&@&L1$G8~gO)Z!@o6>k2F&)<jCwnLECCUuc02taT0j3#Q|&
zvBp4rwts5o*qT+XPFm(}PanAQIz;_m+pm+ezF#)1-;*V6#X3Hu)!j`=UKGnf73Ac@
zyr;ZQ(mJf1=8;Xe!pKY-apR&T2If6WMH}qXn;GBg8M@BMwAFa$i;IvK0}}@Z@8bo@
zvDu=dO%~nazT>ADZ7)@mApKGNW(Ku(-e+NU$G_8ZfYA@@e4gN*HE7_#dsnWsIlt+S
ztohBZMQRdQ3lH8elcbN6|JdQMGHox=rt;zfoxfxeqBKDn=szsO^Elr2=a}XR&v;&}
z;guazv;ft{=-+k1mCsC?q0r0W=l%6w9Xa@j@D$qG(#U_WcRkvNE!zZ9>&eBvw%93q
zyjjc0zBNEA$wR2D>c4$kx@?(d^w{pL0<2BCTxcsOyU>}!gb^lDumT;K{PDSRV$(B+
zWy880eKPH||MtCYE9Ano*2aW~-ygPP-$q{r1sBEDS#q}4oDocyffQsCb*Z~7e5T^1
zb`RJr$b|0sTMj((!ZXQ8(Qv%7l|b?L)<p=g>Q>wHG=w7mzJieR<QIC1GZ37Ey4e3-
z+tQNAl*92GA#gn{q{V0&PD&7wac<?8uD7Nr9u`dU`hC<?dRy5(W9<*M$&kL;A!GNM
zWlvk#@49+CurT<B+4k$SA<K)^JH^x!Aa@P)le~A0xbg8uzNVJDU%O<}H7ae2FlL$E
zzluWQ=h*77ES}`l%=>%I6mD(ldG4m-riz@-J}Mdez`)<sKI<VwoPBcnlV78}rg{*G
zm6R|BVfqs2dYRPn#)6vaYR83hi>R_nN{&p;(vzU_Ya^Z=5YR5G-TQABgB#646FvGI
zFMk$2&N;rn^aUkX#@dxg)jl^hH?y!dUTxC#QR(9bY9X^Uyf_-M1*)Gbyw`{Bh8}Zt
zY^{L?Y_?4XhoXV2sa!&%rDW;V9&^HkvvR;wrCrmqHu)<6;moET$v^3S0P{SXljHY1
zZ{+`?>PrKuT;H#a*(7ZlD>5WgGFL=lix83aHk8byfzV*cY$HOFF(pK%L{wB{3Ym&D
zCo_>wgd!F1dg}N8@b>AP&PjVe&wXFRy4G4(0f&-M3+Pc{MOi|qM$l`nsFpY6&`#v#
zW7t=Z@<)u0nbuDzrg5XycI<#4q)|M=TMBd3!kU^I;3tAA1Lnt-)3r^39F5@_;IKLi
zLgqLMg3_Gd=kJU7y^VB?w>RJQ$w}l@WD-wphvl%J#@Wl|XV+kL46@{0jVUYRv&$In
z0TuhgoCxj}QkWSZ(<TGF*JLABT=VY9@3<H#?W5?=_@%cphP=CyB`f_$R-1Od<=C|w
zcklB4mbKrsZAwjW7|vK5#8`?boQYx8S+c$@Ncu(qZm{4byraW7_RimXKxHTh5T~P(
zQH#)UY2&4L0mgi~GI0ni1+__-GLJW@LB2;J+NrA<3p)cAJn7_HX8zxHD?o~FU;vvi
zbRvh~z_qZ*WiIG6J$+rtNk8JpK58NpY4z$Of;XYD2CAZ3y9_S(xpU`$E$x4;NoS=3
zS>1wCioJ<s0MZ<c^s(?nP?e|ID!=E<#0yrTM@K1ZIU^DIlsS1oyvbB&6LflZCu9DE
ziTT+o2ipjPTd&oPC3!S8yq4rO!|E&`_TNpyYEGJj25F-x6ga@a@@<$g2u+4_*K3$M
zZr;2%kvBv_MwUVT)J3R^MPz=}*Bv}nz?SrD5dDiN-Qt!Nx3F*x+$KE^GB>Nq%5sR!
z!4V?$9I<Vqb9kV<PZMZ?ipb7F{J`T9+m_}9y$>-3sNjm(#9a~rU;`^sh;dabcCkiH
zGE*L`7(tl}dK<1<z>hEKIHPm^fhdh!l;0J<{&vU!e*$9!G6iEI#{^y>Ob$TYgJC^<
zhUHuwv6f1PGnykgL)1Q&jZ-kBV=-hpUIpv`I^n>j=gl&B(6Z1x4-a^!-wa*9gy1gF
zil~Jcf`L^iA#)yIl|@Ph((ZjrGBU^B+%~aI;5Cy~%m<Ievk5B{B8nyE$I!gg7@4b{
zcuN+0iRmG{TyCMK|E)v-HR}w&eR-!6r+*;3g{j*J<s(`eZCcl9fkr`WwqT$(A!kMG
zP2kU741uxMW7OjWF98O|2#@xPf^cU3edT>dgkYS$86OfNx2le;r}cAl{}vC$br7|1
zM+dHD+x~2?N-2}aTf2a7tQ0p8@0f13tXJc!CmPVF=pYDnKbmYq^MrY-xpc?W5K046
z6BE6ZZ-Y@Hu>H{Tn_=;o)<(AjnEAW^AEeroy;Y%P2&7q4#UdS0$3>7|9J|-MnIwj3
zC8j=r2({_>?X_{uNZJG%g^}lB+zbqb$P}z?A|?>?Ay4Drk`c!C1i|VGSRA<KaP<NZ
z1B)YB%iEd|BZC)+c`(K=<9be;>+BUlqL@UuCbz61i6MpPkf4m*rJ~Z)P|~*w-vkt&
zd4%5gl_y0uY`ASEE!SV_4ecVZM5L?;5Fu38In0i*i8+IpMo=}e8RE3i=)RDcHINVi
zghl=&jKIfLH*<<PL!E?A3f`$5@(ysZ+H2x;xP$+MN**^M0Mkzt*uKG9Ocat1$pn5r
z_@ThV4gpca(zhuyaD~tdEMw;r=pw^|gJNzssf199=z<}3hg=^6CvM8`$3Jle0jmbh
zfAl$6!vFP<qdi(^$g9EhJoxam%#=zD`32ZeXb}h?Wd><(WMabF%&hM4GB*V`12j)P
z(ls@&hK4d+N|YQ&1jj&D$Ir5L796{5x=V)y2rT6Ly-k=KL+1mRNaowq+V=KYFfhZP
zcXSk=cZ3rmh2+%nF|Fg<_wOaN;*?hBn7Fu6+gpb!Z-X=}HiDnH<C;87zs2Sdq*L`7
z;CuwL!$!ppJa|+=ObT$2xqs|c44L5K09<Ie0AFu!FRwd`7q5ldX_Ubt6NVZqD{bJ6
zj&J__s=5lsx?h{Hdz`>{VG=}aDnl7dRQm*@iB{aO%+JS19G`V@H-S|4N`lLVBV>#J
zif0z9zp?r)x?ZID&!-<E8R5pjmAn%9ve(5RzXt{kP1rU78-WY>`!aCZTisNbP}_J`
z3=&)^e9UZ(JhQsTBtbLyR}KY7p`1DK@!>sG)%Y7QlM<STPw_`Y=NR(muI%uL?9XpX
zYmdE>jdX}yEyA@L8%$9N^6-R{7pH=k&%qgZCAJCaLClPmNo=QAD?$ZEY_CLOf~s%8
z7Ag1`$P<+D8y9!^D?I}?Oz<TDMAFXM!_NeTnkbzUlodEQ!d7C}uD(~VzK5^g<%?-?
z;E#78a;=R_M|Q;h8*D;nP<p5`o?MPtD!59Uw8g3{3zuvtkr(ID8VXp@XO47Uxd+EO
zUuq22{=lRUbO49Ap-G>|c$N?-O6|LPUY6O_Vk15A@@4QX)gUuR&hYXYP(Z<Ahuwf3
zoO&dnTC?C70O0Ard-QTh|5h;xC8ayaNeEvh))hC+9AGIU(RU7D6c`oTPP}E{*|U^K
zP+xFjI3mK%t+_3Y5Ii$IO+0fDxgt6{W2F0j^FIchE=I2^=aenxt<Nzz1x^ZlIlclj
z2|qu&Fml-x5(9j&2bRP-hSZ=TV3YXM`4+_}-rj+}2IesQ2tYLInrbf&=}xH>up{2$
z&KtS8EMgLgcc|<RmukKV12^hF9h#6pR%8G-J;V~WpW$RMs`MWCKpPhbmuFzDkyrRQ
zxv^~!0YXbl%c|ZB6bR1;s02{!`~?e=F5GxCsnm>tx7P1zU6i!2fb6(n39tsgmgVgw
zvf*XBWt9x6J!4Z7UJy17)Ni~S9^MGaAqJ!PU|6jC2a82<J|0w6)eXf1<iU}xgosmY
zWPJQBNRg-;ajL<ZIe}0M&JG4;8<d?5pzj2)matyLSwu$*{W+FLFA?_cc;V=gy0xUV
z3tt_Jbbu-mqH_X^$7mG)8;@9S&xG%Y0zNf<tsopo4s72YKNQ#S35N+M05d$r1P66`
z!bxmB1qcJ)8YdT*K8e`LiKTZqG8^d_SmCo3y*g$fid_RBFyoP!ohz%TSPvNivLrV}
zIsFTM94MRw&#uaABSl(N)E=L8U0k!KALS|H6)$$zW5XKuBasMGZP*uqy%t`dWl_BO
z$H(fkZw78Ws0ChRU|`ko%j;Wi|H_pc>y{A`zvAG54E%f7<h5^Oe39@8f`%Q(b{r+I
z-VwEj4<3N{eog(<ilwz=^1$dQs}7R0HxTZ0;}y$T|2c#FQTJty7!~Pl_LUG)Hx>nH
z`Fs^>78HAlZl#NDbjCq&44)p~9IGYtNVvOjd$p_azXy|%{GL!22f-DKBulqFV48;J
z86m8lJ$32^`zAckZ(0$p&J>aor_=XQc2(^e)pHJhEGaJa_KSHvtMr=I7x4-Xg9}ba
zY+<^)e@q7+2%XF9*9*)G2hPm09IW&>{MCI7#H!o9n@9VYmruMZO8!ZNOyy-eiUGJV
zsIiYNWdiYXGjLTW{|B35{tu;0C)$&Z@{E6s?Js!~u7n8_XJY|XR>%7Woos&ape%Kl
z;?_M03P$9Cx>jf9JafafMknC0l5Q;5-ZttTK?$)QRBS5E(fUvs74lPCI)WmW+CFik
zo4J-Z*+?(A#L4=#vvR!xrp{Kjc_A$`7)sXID%d~xQ!?!@bqiH-!v_qMH?8^L=fF7Y
zhdm7()(z3GcdCG~hTlht4UM&`S6$QU-6M!k5k?nR#C}6N5<w2z+M0B>2~6GsYT=sm
zdofC7;u4~`;gHZBrv~ck>qLaqloodAwutETsyML0(<^4Tlg87nt3aD!bNO{9_8XM8
z_~NJ!z$gweoO$*M1>=t&KQLv>`|@@V2_py8Ra9wS&qJ4bRkoad{zMRPTdL>AU1%i*
zgStxxS0ysZ?Fj)3(dTl{Bl_f^b+$;E+9uY!AsCj!kS#~^Kh(P8(Xfc370gMm1*e8G
z4rz1l>NCjnm^^)(TL@v6y4<R5+Epi9h0=HBr7T75Pl`A&=tRtd1_hnc9JfNJll|fb
zqZ8+k5QOurlb7J7q4U7THqR(oYx(y9PM>(l>Oc#huFX#}!eJ(6@r6{y3X??MCys{D
zK`)}_YB=nR6-AC}O16!Y60Ggzc(7M<t;(HSHTF(k3ss8zmKuCU$~^WP<~rzau~tob
zeIz#p016s_)&32i^A#lOCfM7|*ES12Jg0i><v2Pdrcs0B=fofQJJ$spR{F-;IDI$U
zdvK>wddd4>U#>{dLN?sLT>_a1>2;$bGBJN6*BS~O<mE26j(=x)DfQ&06eKn<&E@hB
zlgvZ(g-J}&tIuHLI}|?fTgz`00|&RS^1bjMP`bLlbZ|70X`kp@2d;6M#mr0a#F^c!
zfyu&83&+d6puWJ7<3J%5M3KCJG%!DiiDIK7I%%H92N#r9RP-TXN4r?JB_S>%F~5W>
z7Rttz$zrQ|L$RKS%|-fa9gK`qW>$#uUd{A`ooifN9uk%{)<+mi{u;WV;Akh=@_$?a
zz`B@l+`)F32R3~bM@-Y)wHqNmPBPjw&hGf%plqztI6M4z7Qe;gYhkt+r+;doj!{ho
zZMT)UjAAp2>%p%L$Y)FEt7*1UGDuY(@-le*yOpQqMDcARYA&}rr-;bzH{__=^6u?h
z_%&XevCVlii2=XF|Djsd4%Yl*rd@BO(7mtTFfvDfrSOhUF0nXNY_a8QT{nxWASZZ5
zsJ+D1JsB*oLn4?hGKCed**5Ybu=V=$Cu7Y*G9hv+q+$bJyS-u;5N%+6c6sLTF$m8T
zeVxLaB{jZUs5z~N2dCi^0ejeI=PFLE5ihDAPYs)Hx3>mEpdcvYazeuNi}~eq>FTE>
zD}AsnFC*g69l4cp?@`--v*<auk$6KsK4{<H0X21z#>m2V+WvtJ#!K=B9!W?G0EoQ(
z!<65{?P6^tvFrvXhQ;vWiWHZ72i;LXRWa|W2=}iELUHFgFkUPDm!#lv6<oXA=P^Az
zE5daW=G^S9&mx-|<&}dUfJvjOmsQF~cv&7Sxow_D@F<>mE+BKdgP=RXz77mi^!GZZ
zX|=cCOu|<xRc?}Ll4sOgeTvj2at8eTQa@8HdHp%ZOz%SE@CzQ&7)YjZgx8y)$MH^N
zlKfC>nl``tUI3Fi|DNQqVpDL7fX>Q4+9JangZdg*x86-PG9p4pM2#}v6{)oJJa`G!
z0?aG%-3WXg>HBJCh^6n8sLue(2NRw>Rv=^zq<-(*-k)YH*=JoJiLN`b)%j{BS@pm!
z=+kxb%whV)HpfB$1_+^GD4?>1RY<zkuW5%^I5=X@8GapIQDm<GqjbAlrl9;VmE{^;
z0^tjn32S1C1wPw0ZZ75>iyKtOsCD-K)@P3-(DqcHF+mS9Ff*_J#4N9C;xxcl$}6d=
z4~e1=_9Go|_&Z{xk@VbMuKiiM3Y*x=G6!A3sj?kAuH8o3@f?tzkJs?TlUV~y7vG{z
z4x4c%=Aur52csAat9WVw=h2XF@esL<pWe}CHs+66mh`{193c^pRlTxEY_m!ae)5cg
z@>7>6tLN;T3q4zDsRG5|Mt5C5<}-f5;~&P7X)$=`VD#V@nzprKs@UO(8XMKis%__5
z8a{1d400ZWVf@F$nnsHfbNkru{(%6ijq-B#FP7ya#p6zlZ8%jD-|dFZDbZLG`_kk`
zTU`k-=zL2srSwfyWF%No1*TnJ4jURqKgcA@?^&`}*{K9k3h_#+I)WWhM>zV*HM;oc
z;H2%i7O%{kF9ifUqAej3r5H94y?yttskzxab6=Jel+j%1)Lv{SzL>Wihhj3<s#T+Z
ztfyjAEoC~^VxcL;4HnLhf}eQ!tNPO_V8FlkY|lgDq!Huy2nt60TvycO+M)Pq2r&NE
zaUEv4DsOnI2S4*5a|F+fM2k*<?QPD)7N23zzW!@nbZ!}o=D8oYplSh2GhI1ClI!;h
zh<D@3_+&}lZoG|6M^Nf<L@=!rGLH=V$&)3;(i)eDPY#1$eDdz+*Sn70Lr-axH-iSX
zbjPuOXDGB?{v|0J)o<VR@6UY0U-5|%)>?n(2##Kw?Cea<X)e}o86Nv!C$#BNbctmi
z!%nfwt!Sb2{C3Cc52HtEsxYo|R`wbeR`r_J`c60a%!4<A`bRna1b`Nbu-YZ#fY6T!
zZ0pFx2UiwtFVB)ffAs8Q3jJx47TjEv(}_(4n8GNhqn*YEU67(!$4sq+rRBW*!!UgE
z0z3nrHzgbVSIJWOhX1iZW_27|6E}TqFAF%@e4H>v^sD7xcmxOOO}e?Si_AkZwMhhP
zd)K<R+rWD}KgdmX(u8V?-UV@x^l(xS55^Ge<LuN+G`&*B6h|OXT~TXT)Plh~Yl`zR
zWAb-I$Piaof$}V}<M;ieY7kKw<sryC1pOUX=zs7a(zW1J7UO65i81}YWgGr)e$BUm
zSFu^Hy`gjU-%@g+9ZVtCRyHT1$)l5>9&4}kpQptP4LKH=60<N>FU4lb%j}O|pj+oY
z{#=Ev`J%{0mV@RjlNxYE7EN4aF%EDLjGU?Crd0KZ8LTU15FCb3SCo#<RbOP)m}xBR
z<g9*m&`tXvp4mLkzW7rJgC}!oUcB>zB^Kvd3hP|sET!N0*vEp2x#R2?QqYH!n#3u<
z0NcXX(cXHSygZi}6#)Cli1X#vIn*|8s_W21q1DtGDm{1)P@KNYVUJ=Tn>>*Bx!Bnm
zKe)D;VeEI+y+ZUsH}g^&(2X0bS@kypY~yYH9gV!))n%sUnN%zKwJ!8dq3;5i;tqjP
z5i4)nHlj0t?Iq5x;AbAWc9^C`I0#OExM@6r(+N5k_LvsGigB2-&sMl4kQd!pF1KJ^
zA7FeUv^D16<2_Tvi$Wh0`9Aa|4+MZbaZ^f<&0*2sH84ejzcmQ}&T7Kn0$tGe#Rc(F
zgbkz}=mbDgigQ<yKh&>;NllqMzhNp%fhmY-aOS><SU+2VaDK_)_kD*Nl;U(Y<tujN
zju!eNofZ_Wz;rYK%_e7~*`leo>hyJT>mnEBDZ0*4@1IAm2d?-z-KX)l6vZ@ooV{v>
z<I2$pf(DPtU)}Q<W!?pAuSvaVR=cEs-{Do#J=@YK>-~TG0F;pT4hEvU5$N|r(}~=c
z@w^HQ$pDirI=^WgWqM)XbBOG>wbH%$bbMS`-B0)M%&gev33jCgC&$=&5uVo<%p+xe
z26i*Gmygb|tRnJE`{>ZO>u=GQn-}8vN!8eWLQP}8#8Q(SA?oQr1gb<*cE=y3Ew!2d
zV`W-fV;FZ1Yl?uG9=qp{NIyCg8tm`uD@qRnn-Hv1tPjO%+*M+#LBAI)H(hKxm{;fG
zF531^ZYHwAJ<=uW$$REkSNqT6i+~T}*AiMoETYYqB9bGBb*SdBbO6^mslURu6c*pl
z2kVFlW$#x{|FE0U0ydG_rr4cJ>|e@K{Tbf=TMFgtoc~UOumE$-SI4%FvxA*rip8s{
zwv0P<c%VE?=;6r~f5Srz=RVP5Py<5A)LV0|^6EHQH<<~0M4WM`c{w7C@`!z67ZO2I
z*MPcG(%eC1b=MnXVFCB#hU!%;y(w;r^DTE5y;$ricF1}d*c}}zlUq5f1f6e6M#g5U
zzbfh602s=r_WyLcQaY6e_u0IoEDKJQKnmv{4aH_W8fqaGNfv@{WWV4j{TmQXVY3ku
z=(?<37%7YJ@aXyp56nFw20#x>a18qNlZP-Sz<w@66O++ve4EZE?Ua65Y9}H#0xv6%
z!F#?%yy%+rZxE_nfN`X3)Zw9NhE5Cc+4q7=F2)3EKth2b0U{0O44}<e-NMxL!x|Uq
z@cO!sDd+E9;F+EPS?(U_5O`owhZI2Hp(?3XHw#Xl-m%Ecrq$}rwod}pNtY+Oo2@lR
zSw2;+np9!!sK}|yKl%QyVV*gF06>Ih`pi4Kq2GeJP^foqTh#3Jknh6PweB|eZK)*|
zx>{xb*f0Y$j#wq%H~xNp^)K)GEN4&zol;zehljzxG2V4PHda-jY^c!O6E5rxw}MV=
z6AN*%uCeV$&HZ*IsMugq-~=wOM>TW5Gs*5zy*-(>o|NJOjOZBbG_ip6N)FR$FTz2Q
z;s!3%v?=542mw0aYU6J}dm{Pxe95j*rETfPzyepS+Or&?aOghh7ikw|4E$AzH!7uV
zYNkItw;O(_g3pYnTX@@onSS4I|1NM(2&af-n}<<eCU`8xuX;7V`UHRdW0yPx`Z?zC
z8W+(TId)S~@%IPJnt)!_QA|?2%1tI~FInfQK`(ng8t89b*;9Z#%ZKqK?$q0p*x9*{
zr8CTJ7BF3Z9wo7l(B)PZe{q~a+dE&m8bZUr=gjfg;k*=Z35n5rcm^&SUQV+pW^KF;
z7FvvRAfOx#oL?BWxdeuh2|m$2Q*v=;x@YqC`42bQ^+<!i@7ukqZCpbTzo^Mf@ycQ>
zuKBArXr?)&VQ6e7-!Q}$cKWc54Q7d0ZZYxcQ@(j2jP@F$xr%?8!*P=H>V>+4*DH=L
zetk66Rx^vzn3RnfvQ7~)IjXQfJ~SC^)2E}}ZA-#}PB*&M5I8{z$lON8Cqor?{Nux|
zql;X(cX9LcOGfU|{{2`)Emnz0^Dvz>Ud!RJcl>(Lhu53H(8j0)4Fa|$WEm3z-(&Z7
zVBHX)l!7_m#`0Tce>CjR3Vga~IJ<>N@ddK1mN(D^qHzMh4yF&gNgyR3$~U^>H|t6_
z!-?=rmze>O>6QNQj(>84voZ*M!qleV<zM~4eH&hMLBQob1t+g7h~)VNAQr#8eR%x}
z9ndhQi$?CK74dp1s(o<1vLsw}B9ZZ}cyw+sTk`@22p|I>X5@Uk9-`1zy~`oFr(CEv
z^u|<wJ*t_xDF(%6#bBm678B`xrodyV1#@n7#5kr7XmV#~+@aKG8t*|5v#)W(0Xy^D
zcwr6#>+t?<HOuq|nWCp_HHbrYC@&=Ox776j3MpOFPg%;sH@{^yT`96yjFa%26cGc%
zs%6VpfkvAc5LFZC+JJ0rU)oJS2W0jB?c2H!Ag+QtT8>@;ljK_Xgy&t-GtUc&7QO1O
za#N5we3kkK*GrnLnJ`Bzu~=FDm^m|9%H)a!)gwtekck*HiTIyeap(IK1O0P9W8-wG
zg3x297d<^7u0se1-&NhUZM`QCCG?^L+Xm1akg%f2<(UtWLH4Cn3dht@IFRofeS3H0
zx)>dc9L_5}hJhajh*423kL*~Yz$0>ms&r(8Wd(|$poPIGQZ^<J;p61inAIsRd)o%e
zw+A!NKL=mYcfC!2oW2vN&&5~8iFblAf~qQ2J{1V%<zJ+r>{xv#d>0+%5w-wg(+hGy
z-ZBfr{C${3BWQ`O$z}b0pPK@Qw}`!4YSjdtaJks_X*S>VTtaPb)vv>okF9{8d2lUr
zf8J(c+_e*{KtFuQ=;2Xi)O%GMPHy<=t{WIO)=?es(;JYcdae5+vlKX?jK#bd4|XwC
z6cmtbj{<%J$lylMuf@`hUF{-`C3Q)xFjafEF;ceagDxj>w7Wj3J44^u#U=g2wnM@x
zE-;PA?sgmhWD4fo^J9SU=T-@@FuuM(c^B*5$t0L};Zq$WdapF4aECOk(t7Wv`r-*=
zh8~?z!Mjn|S*gx}0Ri+9qKU~t<sY`-1klr>&^+Rhf-H%617${cuy3-U^VGbTRRb{2
zI*pw{Sy)X$H$%yRPOt~#LV&LLhvx3?{n=(vbMqj0^{sjPp2jhK9rI;uBlSLt%sLOi
z8dst12@7MhhJ7H=lP(@iMVOb_C%=mR9SKkMUDNQa9!@C#F3j0@{@4<W7|R^Xf^~Pm
z;MGi+Q`|N9tweAd@oR8U=O<6I>z_6~^Xm*d;k5_TYUyA}z_Z{<jQ+kwZzG6`6q*bm
zDc~m2<e{$v(*kk&8!xxQKe0_icLS)~wY9+y>b0sY09vovON+5QvB@Br=|l!M1>*AD
zyIj?X&=|UXs@$@oW0EIH3XS-zNEeTzqGFvOxa^n-^@ylF3#L%nxI!{zu4WFHVBUsF
zjoMBz<Z*&f2&xYVg$dt<QIG%|<TYI8O4DLwrX{h-D=Br`n34!0D!s_O?nwtxj6G5v
zERVKE_*9?b^a~+VFtL%AQU%GEtymVNLY{2X-pZU(b5DQAt}GoO71hIJ3h?Rmcq#A1
zyXk9KV!xs5!;|f}K5&h%Ic?S=C%}R~0eg>u&3F!IU)eyWlL4ZD{)he$M1gGY8*Hha
zEkeL`T$T}B8JE(SBwI58F)#l5b!sV1^$72qTILmHC8RHU>PYP90o+ut072kL9a|<i
z&Dlk~T>)M%3-<T6at1RpOM$?HTE5TFf|pJ<f<RtM_4E#`=MkZ}Vdh~D5x}AS7BW>1
z3m{u~nOOYv0<*D;NA%Ydh6Pi2Nt#P9vm=92{gcur*{`Ur2oLSy8T#qvb^I7QP?iJt
z{g~ZFchjz;wm}Cgqw9rGUQ=+!!TJaIoEVyFlj;XVJJ%A%^0QK4fX;7wW=w=Z^Sr06
zt#>La5aUrbjdG>b+k+jk+CF8&l*DEZ*j5JYf9@Ddgo3m*Uz{&Q^e0cApvZIb(iG)b
z8B|FFk&cP?x0bZXDWzsirswD91zMftzhHfK3&=0^!C_-p2~>>>0z7MpNt9{8HfYkk
zb8OFSOv%ShR}BLG?o!Fax5oc5D9q+`t7pQ#W*k@W$${(Bv$Mm0p&6&?78b3|j4C6m
z7OX=TZl0(n_5xbmwt3gw9Jzjqyp1MKlW8lfHVReRXKYLulwVjr1WGqnFeD}IwmrKR
z^&PZO#t=7NbJqL0e9d5ayI%{9W8ogAbo=B}iLJmhN&;g}-uF8#qFk)^nVQ{>a<x7S
zzx}^VD-JMAVP7urxef+Bmh!0=^2_K-V{^Oz%>j&fVrDDWVPW1VPlZ|CMZ`lH-SkOz
z!2VC1m31aE`fh=Pu^B`i+2qg2x?v+f%uy=XJ0uVFv-%$y(z`m~b13g0(#F|1H~HqG
zci<j;ctAD4yjy>>Q=TI3X4hiX$@8N_p5NKKcnF2WLSdSS+7%FRj+QCz(PZOt>iB*d
zjYln1R3#Scg@kUINfYC~(M`ouuE&lQf!!Vz#b&b1rM3#-329d9iP`l!*YI#?gmYrC
zRu)9wB57U@B;ypY*BMq8^DfKh$~I|~n4jpa;y!Un+EN}Crdg;U5PpuNGc34cI7Y0b
zm?=anFFv8bu~QalU~w*6(-Q_f0L625coL;2p}e%aZf|Xo-^0qr);{X3bAq3B5CemO
zBWK{qOyDrYR*u&`=N*<<w(*3`eUAnfUtyFi>p8&E`rp=ntx>g>eJsQzxGEKRyI^>L
zcn|AP%v<q0Es2lMSA`LEub4C7N>VmT*aOcv;dn4TGgBU;^1fKjZzfm&M(EEp`qx5U
z`Aas-TvyB}jFg0>Iu}=0|8wUqe6C~s-~3}7*Nf?XD4Ap74$Rl!!IPm(h1VKdIIKx}
z^~Q(6Dyw;O)rsn1;g?d-TQC~XV&<`j7gkAZbEZI?<*e;&yJayKz=4Tsv1!{=34(6b
zmgp8&?%z^XKhso6uO`j4;c;Ub>45pQiM4WQ!y1aTxHv`P;#3{3E1bkI?ln*kW_qt(
zK$U%V|J~=@yu9>Z?mc8-;m)7#7e=PNfF(TdfI;x7S*gCx+y4NW>XT?(YOm%p_>^w<
zIKSCE4@6v?Zpq7`?kZC!l$sSKIwsirvRPQ>c4OX=rL^8edb;9@vI|FNqCevxmkrEl
zWVUEH3|#;~2XM4*iV%b1SP=Lsu>GTy(Cf(uOLln<goGHrV9?@+*~#LPFk<^UX;RY0
z;JWkJ0(-P~=yQyINJ(9A4%ixm3SS_K?H|f9wSL<81Wa6WH|?mQ(4Yze!M?jTI5@ms
zdzQ>_;C21|bRV)q=(l*hc?gk#0FJXidv3&8=f7XgQ`HOZQcY(E2uug0GJ@p;5|7OX
zhak9Foc{cB!u_q>%otuf)bAjY+0=UXY1euSPC-NIkCD)JTgKoHBxA5uIMVvoU-~B+
z=r_RPTPc~W??2XWf5LBxBAXL&;L#SEs^MFf-%{|4fe~%T#-|@bdU$}4<wb`t7fL}K
zA}K;4jkABP`xbu|bQm}l-6@$8rGo&}2NPx-O;pA?(Tx+)NCt#lC;fUd$})&Mq;&~>
z8uSvF$aIx!7f2i(xbm^i*rCr0NM|vv7+?aUO2EeddtC7P0iEh<CQz2l2>v*J3mLVH
zCLmUQhUIcAm(ozk&!q%Y7$-I0+4lUJ#vb*h9njfy@eED$-+_BB#*0{gikOWAalSJ+
z%*8tGB0B~{T(Lf${uIv3oZ6<+yfK(}wV8q0+vTR3Q)F5ffOaf5nt51w>hUg|Y(gqJ
zjh)$^;J6W_12kNdqtiGHQ%gM4%#q81fNfFgW7}da0t3oy-5+xkq4gq)@a<h$*}zYg
zX~U6Q8<sf@Y0AER{LZNp4?G9Mpd_lP3AC{h8q~PUxhG-v1HWz{)4&{y%P?OTU_3{F
zx0F#y5~jX%+?QF5V|stH-(E%Mdv2<R65<Xx9#_oh<mn24f$)sul{Z=PoYb4R;D;!m
z1-oQrx=|_R->0XhVPJ%h=siy?uE${8vS#gAV}?r5Z(rZ9p<8=;C-EFnzdsVaxEq|K
zv4#!10^WkJWR*A2Ha55I0#J2MIOF7k69Y^pX;um$dBF(=Nrs%Jm325$7^A3vV_jEz
zzC@ktr4+zI2L4~w-4mw){MmnyixhUYer;oF78$mPVvQZsv9V4M>DvDg;d<V^dw@G)
zQTTVDP+*oUK75^|@#z+%7n?Uv<}D{*zrKuxs_nWpB~YKGxx9lIK#UGj0=o3=PR*Pk
zmwx$DcT#A1HniDZ5g;?pi;1EWhPLE<hsMaPF#v$T#xN5_<*WNMmi0HPvMi|)Z@-8i
zUunqOt{-}F{o1yXVfdja0j#=1Bfbm-T$HOfVRV2K-^6<{cP!|GTsuda*s4)3p^L(F
z5gKIr+S(yD@==Q{odTOg1&84a2d)Te@tGej5-xu<Fav`47DcT?YJ^EL8~PTN{Cswo
z+r-t`{<l9EJBeygb<e8Qof(1C^=xyK6>fk*we>VEUFm_r6FQ47Ik6GNb#bs&tGIVB
z@LLl88HMK@qWSL=eurorDK20H!_;SfzQrZ{R+p6USWRlrd%Q;tiW?Agg=Y1j-)fWs
z@L;aWg9gPz8OIjFa}#?qjBhfj*p`j~(~{e?ii_)ZS6@w$QT@AZ2jqDeKDa_kf@y$s
zzLYPnFE-<mlGpD<EGEV&Z1FDdP`^RU0}?ggW(!i<hMh>aC)H}*zb%+LySj#{|ACu`
zjK~n8o^;V7z111-e4M=xh=+d;Fl|2n@qqO>lvz2~3`V`t;6aZqri#6yeb=9{MkQZ_
z9JQ(c8Q4|a6kPk1<y(D@$&TOzk+SjPFO{=xty+c6zn7|~$5+H{BP=^HHdwp%=iI~r
zU*9G{?7b1E!>jpejURAeQZ{S_Gg?Ax(Z=f5ipOJMP@|tXtemX^&J)LfhabqY24n!>
zN!hbmAe~@@F^h<ZV6T>&*As=Lzh?k`w8VLz)W8M)J2D4o@9I2O*{Sgo<DP)PK-io$
zof;60!=(YHBDoHrl|Lm*s1W5G-V}Z7Lwb&+vvPXJpZlx?U;0EjcUtSr1qM6Pcr*eM
zKG(`C8%0nCnRUy;y+wN75fogcrK{JjbsiD2ApK=!17dz^vR7K*6TS`BIgqkrXfnRJ
zj_g-+6-)nw<rW-%w9RiYbs38B)XiV8qq1(8iXTOR%UsO4SxnPyH_1S$#Z7@&1>~25
z5bab{s89%hsM1TkVRu(G;<O@e={bFfRa)`E6$y<bAGy*8G(8+VOwLrZJAQ>mJG>!@
ziL$V&dxA;l<K>lY^GI4wa2Vg4V+h|ltiqkYb#M|p?};4FG*jqi(Q5(E2yGG!rgS*{
znSz8-ZM3OjWQRlG*u}Fuk=LaQ!XpE`CvFO2rh*TTF?<64W3{yzj%(*9!*nzYfkDA2
z1~8>K9aNM*=7x-=7>1Tuu7wxObF8w<s^qNN!;AqeG#v_o>ytvj$o&1v(hihPz$`-Q
z-Xj3adSMn;EDn{(aqy|eO3{77zEVn5bO5+KUM@WW5>+li#Q^}Ik=w}>!AM*hUqeIo
zN*Z1SRhF-rAbK}|R|yIFYO&KG?ku!JwD9=XR}ILH0I@7#;VFN!A9t*mm6a7dqM*db
z`DLpw0YBmt4D5HH9K^mLkke-4c?1M1om&$TzkEKwjFyZKsSDL5-8<QzIa3GDFYm|g
zpZ|{wAfuvk3N%<W6QET-_Ea~&bp1N9$NO@tDqPIF=Blk9c)J)IcfjjnEjCcK%viib
zvjK-dYy-dr_6a(|Yr}(GcOq-oLX+?cju5~)l{q*17V&k;Vy_tBef*7orFSPY$T_c$
z0hq~sbu4&sA|Dmi$_yzj+pB9u_wR>yDR7;WkP`?7D;+^yIjwmz{$L3XqWpXgHijdj
zXrQ@A(Q(AtIc?eU#ECC>l7xF1F4MT=H}TCDx6%MEQ3`<Gcpd|n<b1tg&zHBwqI58f
zgFs*f=V%ghf!`i5Pr~9XED6E*X^U^fxnOwRgKP%ufF(KQ)Td|Azt`mE622*bJv#wQ
zVjC65MqW}j$Yjux0v|>hdj;Cc^_(lxjZ>16a^FnCBQrfAp$zR7vH?D4^tnT*RxlNi
z@hJm?0v1Bb=W%DAEK9;4f4!<(!o7+CQ~V>ANkQi0w>cM}HB5rJu;hA$tsU&eU92&?
zx!elDMzz(!gGJ_rP%#UyS!4e74~E5<$(?;5fI$ofNbNOG%jItE#cI1hIH7kBZt2~G
z%`M^K;rN=Es)}#i_@?AgYI?f$z9WBkoS}b*K@Z!hi>MzjXJ+2^J?AeZ4hlHuQiEa#
zKxD{E8Wnpt_hvwW0g|HU*Xy8NmjcYd4?BBy+j&lp%^r;aOw(J$=ubyyP-)4-!<YZ5
z7#;9jvwOQc*MWU*qICFvVw>6w4nIysPOKzB606mPfFUX>>gU#<{Uo3H!5V>-Jt5oe
zV>>sm5*)@P3$w@9P$y|pFi^3RJ6z2hL8))rUc1-hZP_616-xa1A3x;h?Z)J+%Cv8E
z2Vey-XQLqJia7m7#n>>iW9t!1UO^8XQqz+sn5(Q<;tB?1`_%GEOczk&%4=wx!!a1+
z9(WFsDTE#HSH1dy#UcpP@>w-{0<<4^-P-{J>qc@C6psAsK^!j%dt2D6d=z!`>z)$y
z#;NU!U*#5DehN2!%=Vp%h~Tc;&ceoqxf`Et2UY|lV4(4(QeVPuq_e*kni@o|l$AMV
z(#RGIR~CBndlB04gBPK^ge?2$Qmul=TM*%~(Hcv{upLD&zlV>Xzld5?X_Ytry5s{!
zy^vpJUcXMr?-V;wT!~)vrV%C{NK~z(GvL&!ii(Di6H`)tpnw5;{)YZ4Bo}%YY62<a
zG||hgf|0=IS5pem^^XoYJ3B+82?D++5HF*=#3Yjy0m)BuLTz*4mTmBR^-PeBW`AHZ
zaMW|YzIB^XuYt6C02*~%igvw_qYQ8wQMk4jP+Ws$V1l2F_|Ba*D57L!3K4Kg*`U3`
zoC7&$4(l(08jQKFBU9k|i>moQqC^_ohWQOr7E)4elWasr#vvSM0AV{^JJNvq31fRE
zA~igP@eai31PcJ=`>}hAxQzdBYOwrmh>|}i2NQX)mSMLkv~C?-8uyY44?p?=Vk{!&
zBlHDO)c_9`#|nFJ9LAbf?=!^aLxNcG?3o9yW>&jBM`hW$Jqr5?%I*@IpO$>))MKOl
zU$2$=d!fzkePPD6kF8pEmp}`!gaB2M4a2yQ9S;Y>u&b4D`-IpAq+WPHlCmL8)`V}%
z7J2babd;|wu?mdIMugn+nKqMHZnxXOA25J`Ve`%JLl;I+2OB89vjDg4^;rjohfkr`
z6-a$T^j70tq31Ge<WC~|V52F1Srqe~os#>qTNd|6%pv~ndESC?@fSG1Y%aU^><LCa
zSJ1H|(T9s%i`j+3ndcI8+>L>}3kIN+hm(u&n@BNYBbXb2APC{2`xbFllaZkzZ<MJx
zti<XiuoXei!**QyauIk&IEhfvSJ$G7!2wmr<2E*qy>Y_{M*zC52EF45G{{TO5HX>%
zM?4I~H5?P(txlL(Z_xAwoDNA57JF+aU`EKx&yN6!dYPMIpCUcFLx5s{aVBLPoj0J0
z?EjHRS$%bks7dIKz&e|?L`nM~B4H|xh_(Ly@W*+ClYzGnqU-i`adPd-BmFl1Mbe@&
z=#?2=2Zi)+fC6SA&D&nS<J!KiFL<32OO|hu&T9j?iB<8u9ITz<aOk}VCUC76w@h<Y
zuaGg_4Cf5Y<Ut6Sry#dcur3FS=oFwCg?;y-gVe%lC8odv0+*oRfMF-G`w)gZxHZN5
zZ!{w-ELBQ0?Nt)w1S1&xrLT-uoG^GN{sM&%5Do-65kOSP{;76Bm)b{FTgenWP&i7x
z!m~pHRp!)PIy&$zUW_gTuVd(ZL;~l!xAzA$(vp37L_}&Kz(B3^2Qy<uBPoMSO?Vq!
zfrqi`?SMNgJ@nvU7%tBVGzMTIkA&_zk{I63ug}G$yc~LP>Xoa=`FS7A2T9{JGc&U?
zkT8%|84rxI*&IQUM{xZ&?M=ZvJZi>9oZfL&eHNuO^nHP7IO%PdeUu@|9fnXFuUq+K
zpJtyWUsbgVCl5Eb7uMBjY1M)prlT?%-tG3K`$m+6j9e1$va(yVeIIjO$q!niLFv1;
z0Qm^p(kUoPC<O?CbBza~DR#lyvc&U^KYStRAY~&-cSkh{;;FNUse&k4JoO$|oSOo}
z(yq6ulDy~HBOP$nPbdn~+Y$f)7@Rl(cXxLn{ZMgD)c%Ku4yDdkJYc-k-9krPEi6*Z
zB*z7Z(MWAQ_VQ_cy_mfGK5*(1Tie^iCtQGFXRR)HGYJdgwUIDK5t!$mbNDINna3b^
zb?>*SA@?)le=6(BzaWQ^Dab*5?~81t%rR6h<hb0r`?{dowLj1`Ctc%<AU3IyvOz~7
zB|e87ZJ=_uNX(k?X>*XzpmSSv17;1q9FcG2<!@e;B;k_XudKvq`RKlVT!93~nO1V}
zRe%37J~;R`*{cenkeU0E*TM1r-P;czbT!sbnwyz1Wa^<RzQNg4egYSGZZB3JN!?t^
zaZA{7iHZNL_#YpD-imT-Kv;B*xbJ_*T`*sEaem6Qzq!v%6)qYum_RqSKXMHV>Nu!8
zBOM6msYSOcV;Z<KOb4GGTnW<@G!}4mBYo^y-|UNtvQeHg<mzwr^sDOyTbi3Otqi~{
zYd~NRd%o-vYO_VRIr~`rf!}}rpdZ2ds-s*Y)98rc#<O_yQCLE1Dw}B|@u{PkQ-8r7
z41^eP&nr)5C*G3&AIu_#w%I=K6*#e=1l=)W^el25s0#(YE~$h;+1|alkYHRv;-}AJ
zBn?xbKvl5F?l|rFJ0)T%oa|yqmJJSG2FACTUx{aoJc+-h#A367{~Vxlm|nx<lrSzz
z%7#x3ZGVNUiH?y*SOOL!ffPSBhC8^m%?uc*R#0zW9})T#?VS&+(Uee&FS`Ak00S=v
zXJf8=;h$H^w+-I#C`>ybez_IAK)GIy+V`nBRaJtERfJKntFf??F$rk?T6OPS8+kiI
zqh!Y9sJc#v){&;fe86-U`lGNl+^X&O<x!!AywV1QJl9PyW}TdR5G+6vZc{Llws+ZT
zS&Ui936i_kag5)vG&WNBi6Hjezb@F{`0*pr?IvX#yxZ{$$9{Bdi~|@TJ~kL$UHz)v
z(D@<5BpHn&Mn$xh5opZ7pIhcu8jPD&u=>^G=4W&YTY5ilO=S9u_;+~2{hHvQ>Ha<8
zN;Z$+v=yj|*{Ng^xVU#0`?lCUwvoI{xVUWHnr!ymPQ~)CE>ymlMw|&%Xu4McFzQe=
zMh#m(+5E7M#~e@vv>H1#HNhIt7vZ7m5ir)w%=vryH^x4FYIH)|lGg2(8*5=>1ICKa
z^afsu8V<3)vezjw{K;X7h|#DY_=q6yA#drCu={d%>6;##SjA?9H$Zk!?Dm&AFi)v5
zIVz_=URpd(?;<8)f|6O$7G`F|Ir+y_&Q>1j#MK<}RxjXKRPMk4jGKa=$k$lS@%9?l
zK|>fS$e6vl%B@>G-FO>ZX3h941S04OAPGZo-}CXKu)ek%#UYm1)qdp28~i9(o)u3W
z#wzMtjOnUJ*VGi@Gh&W*_s*SYc+<5!lKl5I*2BPgU0md4Ui85H{Cxe=G9)puWXB*a
zPE0U`+bO=LLqVF4G;Cn_Ux&ch=7Y0xH@!hHyr}HnJ-!UM)8)OHbl5qKslJ_fyoS8k
z2&nx?eHbTK2INlV)qTan3^Vyug3piB3ge1cVjF}5i-fv*x-zdAq2KPJ8%S&vy;>x_
zWlLUw1+2xcAR8IwJ%ndrh~Z=Ie?}nvM2c&BaJp{C-R&N3(Xf#?buR{Ef=1TVu{F3Z
z7N{cAUO&?~AA)gisUup<q@u8-SF-SFE7?WZXi!-@inCf<>=hy7vyx9OwXV?T^szC&
zzv9WWXSbo8QY~US%Lc`E7z~;OJXnwl>t4OuitT^9#=yXTbqu{%i4M(bUJX{)4Wy@#
zogB4DsTW`^5=S*_t9>Z`e>#7JtDLL3;3kHf{XH3qrNqoJ=_2g^5CsqmP*<^gXY<nW
zQ^Sk0L>OD2Kab)jPd<B1ud%v+0@MwpYbaEAj0RyIM_gHlG+etF9h&Dx(Yd0ql~ouj
z<1{EdU8#pL5Eh%kmI#k~qV@-jHo*$S*+{LvT9k&@UU@Larw)ukw7vL?@7}%ZQ*r#S
zbBP1%0Pps6V~9+l{6TR)fo?Sev#?<1jdWG__aF?xnTDQVUPvu|1^HTfSz;K`3OlTN
z3U|42g({42?7zUdSv>L=kIVtW<Ak07Bo)!B@YQF?gUo-3ZrUBs7xL=~x+J7xG8y+b
z+<Td}pKywRSeG#UsG*(xtY?2;vVfz_kFQJvlsHF0S3t&d`JrYQCNTub&Go@@hIJ*s
zC;@Z8OjuhaZVg_IoLsE;DpE6G#dn>ZozI^uVC7<!kX`iOH(<qBwFDA)@@6UQqb7MD
zZg$zX$8&W>KrzSG?F#bpsP<GS1!%D6e0ZPHtxnvFL9cPD$+M4e#DE<Q*u!=ApT_vu
z#eP$${T)U|_X&ZC_~~CRf89z}7BxKlYReE%Iq>!)#OFGa9M}pjC<dK|^kR>;G`#a6
zgne+3b+lx@xb!iF)OlUYj`I<AQR7nXrFY@9PdqQcrc<D_fB~l0aZ5B>{tGD<3`KuP
zVwRR~VE^nCYkF;m3n&_2zsf(=oBn9P@jJ{3#n!UIL6i+xC4d$cP1ZghBkh~eH?|oY
z$S4?s+l_u2vFr!v?zcAMCJ%(spq+x-2Ayoihdj<FuHyi6ma_6BW!`46sQP+o=A83~
zDF&{tH!ogX9q6!{w-uj|n*vOMPf@pT<kKhJk|BJLoQsgEncy=6*!f#Cl<NGIir-@R
zCj(c7#p?g(64~Ca;n+MG71N)dD@sShTR<aiWg<8ypFbPbTJ0lOZ54&?Cbxsl3ES?+
zzkJ~=q7-oY<uV3`6%9bz4wMi<;)ozRw5_{Uw;z6X=ra8GkmNvVf;b$7h+er5Jpqv)
z`_T69b6;UtU;YKquwW#5lz30}8B-Y;QjO7KMYJ+^tt;TbqxLA9a)*TkEDPZ6W&<5k
zYHEv#q=K|Gb`-yHQw0_#KfjLxt-TFcCY@0R0K9EyPtSNrutwRIve9(34qYafgBYG?
zZk@kRSn2HsG6nq{T;tupmKdrtG2J7$jfdvPo_tS%mwtZjOIK%S*vtWNAm%(HH&-@k
zL7p$kCB{OHFfT;+RpzPwA~7>_12zzC-U|y7{4~TAM3}%LNu@)~;szx{Xo3{qvQ=#D
zZ{{*eWJ-{TNCuR(2U!VZGuh*vN0w@*O@T_%yWm8DbIk*l9`puS!(<mEv&Jw~X>3P!
z&$;7{vG{Vg%?mM&kX%8-?@}W|Hi{ygbv}E>FTH11T|_dRZLT&%Dq*$zZN!t*)Kp*B
z#suXSkK3zBCemdGAtM>Q`3@NzM~An1D?Ti4F;oFi7CkX57IiIR8l#yRg#vO>;_QJ=
z(2Xi#p9v=c_?}p$Bba&JivnPr{3zNnmLQcv^@%a|>XhS+SI<&k@BWpi)L(;R0-1sp
zGi4%-6;Ng;%rB@BuRf`)sW`~`heVReC|N5g2<EG<<9``EpWd3hV;j+<i6v&-7KP8G
zYa6j*5d>WbKQDa|mOoX$=E<FmV%mB5Ap9he-~@W?CNO!t3t(N{s<Qrk|AL^)2DCCj
z*)XD5_^tKV6n1!dxx!};8y`38osa_3HZx}a*a#~pOKMq@?T!6B$8SY9uh8fDvLz@s
zTD&<dtH3bHsxBtRh^AA>VW3c{QmfTx_rr%#wW`8*QvJEsOkI25uf9_imA~G<>8Q?k
z(4}{Q;d{RMp49@@avTFa0EpuJ+}z#D%GBgsGWj#D%kqmP{WtW;Jybr`Y>8~BVaI6T
z0LFT=usC6Nud9bgAF?}O;o~2VM9Nwb3cCG#T`}-S1%U)K)Al1f6=OrN>c^;j#R#|_
zs3IaL8<mfWitRSzQ!EYhW+CMBLM<TB89iiaVkp6$mawg&Nwl&Mk>KBGOM^hpZn)WI
z?rcQ5%$qlUGq+AeRMDXV#krtU{b;xr0Nbo*ER+Hm1awWJc0Sh=|EfVzU2`ujal5<6
z(!L~1KGhIQ#t(*OkvUPH{B&sAd~$8Vjmy}}89&TI%RUSspKw6sptAb%ndeHb!jZ!F
zelqB{p)HkNZ@&u#-MiVHjF}Fg-pAgRZ=#USe(%{qsfj6lyvR|_u?~v1Tjqt27ltl?
z>558}=l%orx^3IvFbNJL3qE@Ia0M$XyF!?*S#40@%*oUt;BZEH=BB1o0I?oIFSl>s
zGZ1MvnWi#<+rmv{{nNY`T>KYr-VjG~!hN+7y=UcT8uX`$kAHWg#e<P5D3=a*V$ZHG
zC?s4-UvR?{ZGGD*!-KH(AQgp`J8o|l-1dlxCgu>SYX3h?P|2-Z<EajC`UN)<n?W>*
zg)wr5i8<I`LZ-6jSu&>D)fXqo>W-N+bmVn0X+Hn8uux|rV2i>$^xhOi&GM(5vBI13
z6w6N32<)T$j0{74vEbHYR2Z|3-lzj34HzpVKO23M-?Liu!V)F8jgiKfp|N+NLxM?d
zi-QQc;H`-+&^=(&s9jbjTRMlq3#A4=6{shUy}otS*?IT!xl0_GpN5BqfPhgE*s?iN
z+<=<`8bM|SU*Psf6`n3CUy?2BbC~HWd-STkEr{LlzfUbVjDy%X!j7zfAO{{SznHU!
zhpp?-&Sv<Cu@K7L??4Yw%2x(2FDWw3Oypm8w0_8|4Znh0jNfKva&B3MD!~vy_;1^-
z{H`&YoKq+(%?$c$;;@<-pSgte8k>i!Nz^YvFhsqXp*({K5J7Qpap4mdhJ5Q_)~%~q
zvb$SC`}ZPKU^7bg$0iM?E<&ZI-Q=+tsLetnSg-rzscuCaSN>Z$5C>ZreNvpTMvC{4
zRGke+$OGPk8#OhB+72-iqYKQ%BlbMIvh~8Snp(%pm#5)F2DMZ7n>SG}qDH$P?qvip
zt5Xxhy;0vR65j2hYvMpfPn6hh2>-mvg`)$0K}a5du>!+H!A+ip?${!I)jsFCnP28I
z9GJ)y7?q>E_V#_jT2~Bfnxt%Cj{t=RLB)*FcWwZhomE{!w*@9rCGlXtIQ0tw^N+4g
zhSd!=Y<OOnFx~g>*((nY4g&3xIWSnH2^xYX5DA#@-tJvtf6zz9;Ajnp;Sa{pc><kJ
z_AuXM7@0Ki;#yZK+SIjCNge|%qfGZcXvcm--%6&ST320ZJ`jgnKp`lH+FV?h8NSH>
zXqCF&RmvDj*@$WHK?OU>5T$(v1~Bi`6gwXeFTbIY5i0C+fpNEIhlUj~u<zrMRZu9!
zSimT6252(<t51s!hxYcv9PUzCE+ZR3%1)$yY0f)WiFRLT+shOQT_eS2&F77~MEiq&
zZ7~sAn1bQZMcE?XADN-?AE1*#UAQGxv6;|Xs(GM>rtM#?tx8P&lk?_iWvbgfFA>ar
z^|B)}9j|l0)MMBIIaOLl26zZ24^^8!ZG2grb*m&==^1ct06&y$HB5ak^BS8|5!%WV
zc$u#7J&FiBJVfCW5V$C)L@A`guo6bV^nzEP(UGsDmEkHBzrqd@opp!SyWPRJ?CNDd
ze7XQ|uyk@8c7}DO>RculgpCqa&1wTHE5Q>3u#*+1p|@{o*?#OL$s)x(65a}cHScH1
z-aY4ftcb8#@1~2>Ly90B1{j;8t7OQCFq^e@Yd52_aw<ioJWCcpBF)OmK*igdN@a=I
z0SsO8^59R9J9KDWxld*Tf`WGaE`mXXp50>Dnl!<S<gl2JN!=js<>%*b2PTW|&+x@%
zIyf2VFzlGclMY68x{fm3VhoM>*sx19M;(*})c$dCCMYL`g8cCyWOPSAeG2~Z?g-Xo
zV&TP*c-aG9hK#-0;r8hdc&q02GrSJLh$3=k|Gly@Gc&$5aFuKpEVB0!+M~rJt{HS~
z=Q;lNx=7fMM8td~u4KI+{9FX6de~M)Uu!O2z>!vB$nzN$4M{Bf<-^yZV@ZYhjsH+?
zVl^1DRA*aTqV%4k0GL<7J!OCKtDHxxoj7M@IXO9jw#$lhoswY~GancAJ|)8fSi@c<
z0h2p3{&d(vO#k@tx~B(yeFk-6zxd17*es#$QUGFhK`!i_9+AGwN*_NSHUW{UZD8OZ
zlmM-5#a*}HaCHnYCe~F04cc*W4a$Efc>Fp!=}yq5H5CeCU@Tks;)V`Bw_T|?NY()A
zu<|8KwvYYa71Sx~u;J*uD1AfLEeHCGx9{Hr+*$rJ6>PP_be5g~?SEPcJKrO{mioM+
z25ee^YN~;=X%mbL?;hoGaW^@yOR}!^RicpewIw>Kntz!RU?jR()UOd<#SsT#E?b+l
zVOqYM=TY}g6mKtHzNU{|)%1Ju^l1SEm~caSF)E#ja{TY`1ek%$@#AA7BcMC6Q(65|
zWj1!?F{I%IK7F0XATcKk1PKn^he~aCE`Fakub-_(lJ%}$tFLWrVuImY9`yb?G_z;L
zPtlGZyaVR%CE4vpS@~JEdZ>`F^4(BfYDG*AM-fFbq^Ruv{hR$kqd;W;J`o9s89{NI
zmK}R`ZSMpP6Qc@rg7{C|+}z1ptJ3x|DyCA{>b=j%u&~g?zA%e(#d=}s3i6Wsi4$4(
z*-~0`2f@?JRumZBC925S`SRr){?&X`pBcx-Qin%MLE$7!$z+p{VGi=bSwG72y|#NN
zj(g7+I#;Tg4$ZAn`q)}Wh;hGs$#UGD{lR3rqN16dT`hW^u%ZOj9-o`lMP%X6;JZN6
ziA(_?+Imxe!{7M7<9x?q4mi&UxE_yRw>4&_P<+P@)Cr65+5xQUopzoJIbL~FT8OKo
zqxaWd^+N9(^(`%XvdvUIdIe?AUbvZ+Wsl~TBVvd^&Skgz`(_HDs;K73ez~JVD2W{w
ztdQK@`q!38n?3^p95ntkOR=cyeE@|e(k<&}H48YP<=f6DBhUQ5V{Y|Bo)!2cEUFdW
zveCWsV=-$$)qy=ofP;KlkN--KPV(nNyGNfjKP`k0cjAQ5nl<84XW{-qso|)49}|Co
zN>v4QnVt~f+Niw_^hIn{0T$if(UEJ&=~N98v(>0Utw1cDAobu2Bh&fKjdS1p&^r3z
zWUU_Q44}vD+bv%RHH9cWd-@cOqg~+l<Z=D_)jxpRVQ)K%&p>F<f+HQ}S&>T*JAr<W
zcY4apONWFXhCS~NcmX9H>-#H^IX`_uEb3*WfBK2G2*)|hGF0a5%>;h9S7S$V(ocG1
z<dyVv01K_ouSqY9;ZagNqSBiIHREe4-;7Q}pmx^FMO+F$$KQYcj|;HL&{!5TPHkG<
zTD?<2Fv;f@yNji86XiE3XeI1Qhrj^G2gS&D1??OEzjOFz95eOB?RfOf$sg8^?0m$V
zds+njF%$^AJ7*bofSTIZ+^qlB?9h8^6RrvMR|pD2EhKg*Y0khoj5^Uha==xD>}99c
zTm`#4;K4#I!fKw{Gn#tg%Qa}OsgQ#tXm0cD9s#z1mw&gsJnY?-oZ)FrEl?EbU8vJt
zUhK%WWyNu?qS64OHwIOljA{OR9v?QNUTQapK@UzF<KDelo>jCU22IrdX9*Xhqfv{X
z8)MvK$%Q0^DU%MWYcpUtAfK?&#0))>LW)AJbsgPss=nAvHW~O}s^U(6>=QW&j_-qV
zs?fiMZNPPse=9xS4h{pZ4CWLl7Q68SL9GJm53QkL^7>6KRMu5ce8bF*-<R*?=UxAz
z-d0>Qd^#if_?GvcGAy9j)!AjkM;X?t$wqicn|~(l?7CIL{;6Qx3=(L5Y6N|440CFH
z2(C+-w+PuYjVk*}!-T<qHP{7MHVb?`)Kcu>6li%_1NE4ON|+>Y#CidSL2)sD{5U+M
z;9AE=jUZxs0SACD_A^+cMmNJ;i-(72vnEP7hEp=9<B)i9EJ3Eiil^j&8~nJ`T3RAM
z7_&<)?;Lr)0e8;S)bwYP8(r2)s0G9H*ctWj@Lq3#l3=2HU~;nEODM1=hVVfxwgiU;
z!a$><-tj@dT^KP4GID?P(R{9(&AoBs#&o$p?ht>zxqDl&Ee4_mOyfs~X;2PxP@CYF
zqGx@aU>SR!De5wG`Fk;hiIyuY*XoX=-lqPDd!Nl28roi9q-Oq=x%}L`hYrmkdBY}(
zdnceWo`*``ySlmn5yEE(wBGI~mtt_uWOxxD*xCZML5|o;BcAAr7jS|GScLF@Ma{*i
zWN*5(unVG5`~fQ~l5K=yDdkb;lXVqap}5_va_9oN+~ebp_+iMAEgtJj{V&E~i!sB_
zdM}&ND1&=n%^8qT;P3cN);IGFm2Zu!LHNNEm=)t|I;=7PKMD+6<cLVzCD~*ne3~nP
z+KSDXp8`vJ+)Hd4LCKWuxP5e80zQ+ps(92Y8y4Tpi}CR*XgVsTVV{0taDe=(LwoA*
zl>nTIi#JmU!A?@eJt&aaA}C6r1L6Pae3MS(i=k`vf`oUey9~N>VykQh7tyVM2)>~%
z^B#87ot>*}=TU8(O4`*3qaJug(h~{`kB;_7xD1#l1Wz%ek=Xr2EYG$H;E43j)$H7|
zXLb4Hx}oHTUB>zrFZlIhGh(u$Zud`85!12bF}u=PY4A5B+6u*Hl$ol^%4>@3qvM&2
zm|}8bG-@`ny?~`hs2?A`bXN2%od56?;)g*X80p$UId4|VM2#3%!+j>!%$|BJ@b@WK
zs}KWsG1MIx@4{tq<=23dMK8g)Kj>OMf`Ur>K0(F!x`^2u@+B!7_?1!4xL+m^+dU)@
zcWQbbjSQGGgjp(qZ-A$BrPKwZ1!O|x!=zai34~L?lxtqkoBvqAbYDF_L(MDa^`r_#
zSDOYP7hrt8s!2FE8SGXh4t32j4iJ%T(HQbbVRIdhR$1tUTkA-CkI=A6Z_dIb8h`3#
zL&Fe)5E5{-*`0I5JK{Tsaofrw%CzR+AUY&mM{I3@>7`Ke>xW1VZdmg}kycbpNIG{F
zv<xhW@bvcHQOYRi0g_2n=7qSpCP9?tooI!hJ|)(?CTeEqegsz8H*we-VT7pY?vJ6*
zmbotb<Lk#_sw}F0xyv8<2Q(RJI<>1w1u=l=_cv$nR{QB-s|QtrEEshWyY=;P=POat
zp_)arxC&37pd=tVQ%J@YSnSQHqQ48whj;Jazb-t$_M?;A1WSzpTVP~$241$}t1AtA
zijkIBs$-y?r3n2Ea=vW7nYHKU<ta}wSxMcMqT@9L{A1AjMkK~0q-;#+Q!bu@H4xnl
z^+<$(L(366yM7L>9oV-Fi*3Su3k2R-#4@mszW-N<MbihNJVwsDc2G(rm5D5S76Y9F
zyISG8%_yb{y=IA4=WztLHZ`2}-Gm#QHYSjRenE(F0Bg(dk707C7GG>vyKD5|npPC?
zU^qp^d>k6^TS5qPb#=w@QMRt$I1L05Ze#GOkDdjQ32j7ZQ9|@ujLSDWNS$umDhmHI
zW{MjI+Q;r)dB7X8?;)>j{IJ<8hUec9^dl|~sBu|H|NQl<)V5}wEjQO=?@<m4rZVuX
z@q)dtq@*NVEb!#`TD$-@ld^%su51a{1a*5%EuPF&+9-k=Sy<K0Z2x|4AwQ5U2tk&d
zT*te2KTWp$2kI9dJcO=&6U8Cnx)ch6S^u{Sg+#Y=1~n#lfKIVdoNL8*#A6w*r{^>*
zYCs)dZFf&-y!XK@=KVFGeuGmHzG-tjTB7^M-*_O<;*!8_?UJId7oKDt_T1u&<2S5<
zDwq_&{R9@04<0>gG^Z6R=N`cqLDU<E(<H<TM~95l6df@11DgZ}P0`c`h7DjQ;_vK-
z4+t>hw2VzVo`L>^{WX|8V{L{+hnXsdETGN|qLu_%4#UIUEjT#w4<7u)X^y#YA^R3r
zi&y!Mz5RTHk0l@S&2f(y@EP)DegXy?PlmIDp!|0Ua35pH-kzRyqc$<{rb#u#I@$$%
zY&64jjo{C6u!S!V{`X(WTDB!D-rhqZ_-u%AV0%C>_RknS>TtF1ervAy;kMd^vvBi0
z_f-b_F}l{K?X9<o@nIIn_(taf(s4WLMzYHlkySkEwTqvNL6S&KN+N6$@E8QQov?z3
zfu9UpFp95~Xv}lU|1L9n0`UYqbuht&pp{Mk%fNs11aSBuo!q}Ij_eIE3FsfjA3gQ;
zp~~yR>+J(HG0-?<Wfd@P`l%zYfXpYBD?7B*Z@g-5IX_sO4!@j2Yh%M%U+Irnf@ZSd
z4T7HlFK<#pg6FRv?wx8Bcw?e{YkzX5y!;AY8IBFcg?78(2#FZH;y=~Z2c&s%`sPZ)
zBc!lYc&-~Gh2deC^JE9xrD*ML>rd+oW?5@KD&K^6VQ*vCb5(i@iz2Pu9#?{t0<;Ur
z#emwgrlw8O(gp|GT%4Un=~x?_vo?yHc<tK9+Tdjj<>_XaK!G%m7=@T#WiD~@T0FZk
zo@&9d)5AlpHZdH9l++vq0)kiRtP_D9wX4PE2zGI|3r;00o{aGWfP&qm%0`f;?F6j}
zic&N;DI0zGMtYHDsk{*Lat$yhtfNF=0QVSL9&q82IHB*9NDXz-6lC9sT@jHUH`WW7
zj+s*p_#X0tn+eO?)$HsK0A3PcH3vt~um85w6EZT8#lSSf9FZd;2d@kiQf%Y|pUWAu
zWz6YFVrb;e>heKIgXEEvO-x+!@?PCOjFo|l82I({{6F&EG_K~hefzE?s{xCWP_&3N
zAQduHS``gC8<crSL}n3^h^&-3B^jGkhRjnWQmAA~$efZPLPedD)cyVCy8h4od_K>c
z`|~{Sp59z8XV&@+$FU##zU|w#?T@-yEb-p^t}GtL7_??=q}lnrqPB)H>+hyuQLA?1
zzgOaQSwkdg)oKG~gR`NAa8`rgF>#Dt5wK!~U>7XWL!FGrXJMh(aALoy8MVYhI9w<u
z0_my*2ErY_4R#G6NyVAf)KJOkb2%g9;@n3cSZS~f2mmXWE-e}pC#F+0pV{qNS{49~
zc(frOw&}MMXvu4*^G=iqA3V6UQSa9uzS;iIrvsNYI(dZk#~l~L0o)i!;7=#qxN~Pd
zNyF(9A}?)h=BP>)2wvRsOB(WzGbw~7X9k`*9lVN|M5#xD6Z%~!aGn4{O`rA(Iv8aN
zMBFA$Rcfat0Rgpjb$^iHgA=e(xZ*a>)+F)}RUMz7XUdmMd{4TN)l%>Gt1$llUT1fS
zcJ73iLo*k{$?6e#dnBV%spmM~OAPXn$O!hHP>qPz4hIt)L=vu=;K^XC7ec;r2$b;N
zfuWCzi&wBQ%%7}IrpxTj+Xq0TKRCq9?2vNIzJ0@Z4K%9gkkU4_J*H-FD*}N*xKMn1
zdn?vg2uwFNuFya*Wzumm1v|@U#kW^;7cT7Qh|>1TN_fDl(5R!gEh&lX<H<XsjQzzq
zLh}GC4(FIezrZ-AzTf5uLRR23y)*jn03r)V4%OY)M~5Fk^~O%N_wBJpm#$pFebMWv
zCltDfEsV)sFmt9EG*Oy)&inTdmh>2+RgNHvY>4E4Wl-$#f9rK+-do8nwutu)Uf4CU
zq*o~cQ79e@6Xd@{AGJ@AAWX(r5d>|8ot>iZc_gL~N+dFYa&!LbUImTthhHq505{Zh
z2-&VQi2ZaVOsFD@u4aPMnmeOz#wcDqXF7PWRY+5&#?YdU9XhyU*tWeK?-IYa-dk72
z^)Q_!%JYW?Rs3zPGBw)57v|f`i%(893P`aq$%XED42$C}Tbx-&FUwnbuMV!z9r0iX
z%I6mQ>nt*~i+OFv*d4@i<j*&`1bx=VPqIVDrH9sk{Dli67DUd@cc{h2UhF?;P$$iv
z0#_wT@o4F)?!y+bmuerH5C5m#e!J=s4}JvWq_lp0Hob~{jQ8wff=?Jge13if%P?w|
z1BOVL*5YT;#p%Sj8$Q2*-QO;~6?P$Km%&)Ez(U62=l3~_;lpn<886t;ex!cdoV8#2
z+pk@Fjd6+6{Fg7Ue6PweU1s3@Kx4*@l|nL%!&CJh=gUJ<Jt07&2rVos`VOr^cHh&%
z#U<>7|M-(rZvV&(7<$c2Y9vtm6U+O~gk|kkVNt(u>|saM+<Izq0!M;=U)${5Jw$1C
z3yqDg@Tn+cQaq0K{i7@uW~XufcaZWF!nZ$K^mE2mX!SBNi@nvoy~-yp1$<(L`$Tpj
zXNB@9vseZ1{$cGDR!2!>Y&)ao{u3{2P_cioScE#Gwp%!JUf(dh6gy-qt7)4b`>n!0
zoSCWh>bnxDQ)mRN7ekebDefUJk-xY7(3nr$(%H`zrCclcCh5VdKMjL?`#$UV=<#E7
z3cRRSeX)!F^dv17J|D_;-y`JO)Qj881yHq)9>`;LbN|4&HkN{*4WUoj^8bK<0@Xe$
zwEPkSX1u;nozT61>)b$g2QoD{xiDVL{Y4VA3P>$a9z00$b0A>oW<jt*WGr>{&Ilh|
ztxp5s%<Owzzc#2dC<I6nC<%FnZ2O_P3A6Lu*SdSGAJ|SsMZr?OTqg<LI!Wad+MQ#^
zJ^~`Row)w_^XDvs!6qgaOW%oHthCA@Vvv~`X>8_%Qtz@yowOpbO^UUA<DZ{z_611;
z5B{x~#fd%jrG5Z7F~PB8rl{Dsa)v*m57&fb0o6U54iD)VAa+m!n3W!oEd_0@;9mw|
z@lsITF+Gf>f>3p6(t$`;Ti)EXrs5J+hU3y`#Tiz8-Zv`8edK>Dl=mEvctyRX-Nt?I
zNK7mfEOojVT3d(QjOaiq!}gDQHwtmyZM0>q;-{w$?@;=o{{lc46TJ^116x+Z$(rx)
zo$uNELGZ3lY5dsj%($s4`EG%C`@vdN69wgzlvwrYGitNqTzN}(s&cmTxYXe#in$i}
zo6?yEAjyJRB<oV7Td|2vxv#i`6wB)A9C+lP_M=BTV{}w_0E%(9E?t&?d$o6|;Gyur
zbzPipS7(Rw3b|~m$%U*h5D#H~_u<3oOp7F^OuTd{Fn4Pg?YuvjQ}3E?+LRvGHv~jN
zK&!h7w1RWV|5Dk<tWqmF>74zeapjvedH%03z`{aK+NEvxWj3x3QQdn36LKD2ID1yX
z(#Dn!9DA7s-@iwQg422C=)G;B2+Fo^*}i=@qSe4S>*b$!ojEfQ|E&NGATV6h7yJ0|
zhot4p6lNZX#wK;;;-ig-!AbNY^@cd%V@w6f9A-9<ZI8CKcI-9tkFI`yLC_4P<8L0l
zgQ7E`q<`!F{bmX#Z1ncVZWJ6)fxWT^#~Rx13s$uB|9D@gz>mE`#vrT$P(<H`^T&2(
zmV0N~_Gwa-3rYf;<`kCs%$DPW<m&WGJ$lbgtr~+p63-eqAHl7xW8)^+Xy6`gIq1ks
zWKR7kQx`$`GJTA1QBtSwxBr4+qgWikO`s(O&r=APi=633u~c?Fq<X;71o-OR2Uo!F
za8u7NmXbD5Jrm2PWd_>(x~tQri}H_wzD54mS$3^0X*t)*h;|A3=bcesQbpI*)v-KX
zej;DUX}O;K>>!59C|TCfr=+MVl7-gkux?haSh4oEp5*U_*D=Y32X2s6KAvQchidra
z-=9?;U}rc#$xGgqmID0u9M&$Nku#o}8v5A`t5n&l&E;G~)ZKX9u1z;74tse8?V=Vr
z1i=NV6_2y}&z5$*)3^7Mm3mmtm^rgmlVaN?lRMVR^tu$u1xZspbS#539(CF#3}y!u
z!7%5S`iq4+E%+mgFG1gK<$)zup!8j8?Iuln@lwFH|F+)TCNcxk#voLerh>38{xdw1
ztLfD;&;b&^hKA?fCwr=<W5U+jlJsg!mt$j|&pt8z1<MJO22S}kEn{C~kqofhW9|RG
zpwp+N$<jh~-h<$b2QTOBvGlghZPnDkOhN|@+BGnHa2rdTSxaVz#<}&?fV882P%YE_
z#JKiM+A6o0@J2E>)d&BkC7&u`V{H@P)Jl8uS?HV)IMqMTy!NNx7!SEI9)9vuGH#K)
z>L?DF0hV0)(6OVS&=@6R_Ri;nC3PiwVbzMdo8oj+UXFas`~dFBL(jn(NBqa<m|E5S
z@8G^k6nIcEM};ho-c0v*A5OMSm;)u2pTAb4B6n|n(96@Q8$I4*Lirbd4wK0oVp9X*
zebFT_`0|E<KY?-K4SV>1iNV@Y0!)D9?e*(K@!kqdK_RBMu+t94#r<PgWB;FKp3cyt
zK7n!L)1Ht;jTYhVy7<{?`F|UJR98pN(u?}|3(B3cB!GOiAZtDt0&AdZPJdeLbakN@
zvcy9d;^LQEPnAkCbQFkf%*FMAO^rhzzubMyDs{=?=vGky+H${Fj?8n6>SlR5B>dX7
zwM1-4VcS3T=|TtWIf)WgC27M_3o}@)-kBTLHgBheSg1}K8QpV`@-qf4)T`HaJ7qlS
zyhx&VH}AOG0`STYJol|Nz!)kWwKk3*5@D_V=IFEcFU!Z5;2A(y@9D#b9VF&hQSvyk
z7H`ll`G;DIwhHt)Z>v<E%1nIN5su(k8hAHl)2Q~j7R=;2lJ25Ty|sHcLO@l=%#}yQ
z!@g0En)@&LWH*V|v4yVA)rCmG5<i4jn5h&Dw!OM=pG6eShkN(FLLrEYD<L<W`&KMX
zC>d<{y8Re>yuB8@8<jQi3wPN;niKTU>Dre6pc+z9)DYCMlh4j_Wcjf&#Zt<^!K7cK
zz7+Jx0zH5PQpe|s5&=bVL%X-v?4wI|+2q2;@_q*_{C!#`YI4>KlTkoM8P~<XNli^P
zZyT(NLskV@IB}6EGT+y?^{UOPbWeYxupG4DSv4<BFj<_`&o`qA@Ay#Aj75vSQPe(%
zG5ByVCpfQ%BbxvlKXh3t#m!QSl*Dpicy#)67A|y&E}|5g@#`&>hiv<!o{=Mif*K+v
z0+oZK9S`WR<95lNyLNqnK3j^z{B_(7Q|rvk=#l|Ua9dBw$Qk4@YT0Z}I@{>o{#v>d
zkw#Bi*m((5F_cwQA5GK)#5wa{a2NxHZrsa@ZB<lI6lfj`s5A_@9b;B|qHtSPqOn)v
z*kjwNaYFzOaQkgM*2YcC?GR2^&qz+6Kkp*B>3_h)>&l3#cOLY4gpvY<CX-(9f0gD#
zaVRKIk=-GN3*^Lj^*AG@#{diE<R}#MbRYGbXzOVh<92bcm8BEbR7G&u_E_8O-Ql))
za=RY`vm4Zh;rX-ERQGY7M)4M>D81gL8ln1nTL*61u2g9chAVKbmoEzyE7V;~Y*O?c
zd1OxS<5h+I3tdWG8Tqkyc9UYJKi8w3$0V|GH$R&Z$cKIM$Y0YxtdFXu@j87{t~8{a
zRlZ77R>g(<X}Ca><jk2GP?v$2N!+3`6D3k!U!5B;?$s1}6R6W6F)`=0y>;VhASoco
z{d@PW&p*P0`(u*$Vc{m>EJ|E1+{^j7V`p6L+ZI}nbj_HdYS({^7!WW8PkG<-0Gy(_
zi@hCPJ2EGMcI!l_n%s7)yLlS_wtCcm!~;fK*M5EZlsbl5{m|CkDC*w7?;YPD<a0UN
z0K^U3#xn?et9TwTA?=-r;xm6+_P*3<8Ga81L2=8R>K>LscIF$W4$Ng8Q_Vn#>MYdi
ze@GGut_ocuQkEDLAi!Non}Q{WjACSrD*Z@aSji=S+bP{752~xHQ3E@jZF>`FQ!Pl^
z$5%5kF2>_%a<Jj8l)B@xI-On9cj?K(!vTTJ8HIGV+$4AD%dA%Gx_%6`wo&Kg-Ly&h
z%bUdIvOm`a^rFCxnJ#1m6b@`8{YjQ)WrnUIWe$+RgE!XcBvC0)b!G${P0)`xQcMC^
z=n^Y^shnvB+6ViBNk;Kj2OB4Qh@~8d79mZIyo0Al$Bx!|wQ~x`m=L7!B4og1ipO*6
zX$*3xwRH-tiq5y2sdlGb*x7sL@_<ZpQalVsd??Zzr5qd-9GpoT+~epgRHjSLsJE%u
z#IjJWJAS_8I&lso;C<^2{lc=cveYUUss@ElyJ7Q3dFIS=WcDXkYD@IsoBnImCM2}a
zBwqd0((#&FT7H~Fj(;{GJ=T<X?hP8Zc)g>_I!Bd$>jthxph0A%EUWgRs+At0{rc`r
z)LWn&79+fXNt3pt6NJQ$_r{T)j`GV5icd`+@FYh)UtFuWYoVr&O4F5vF9(N7F^98L
zS~*3lN=|T(Y`kKXs(n{k@E^gkwBgTi0vKo%Nz$w%`giZ$Gx&Jidu!rdAE8i8N=nA7
zB%X*uLGh`wQWY)xcBS7dk9Zzq<=-j0dsB-c23>3IX3y^9as)O*p*m3e#-Nuij1?2d
z#MUOcjJA-9PB2w8aG<WPoa8aXQ@<~EM2$F6CYW}Q4DsGd?K3?kN_xy={1S=L*o%An
zJf@-=x*gw!m>X-olh2o2lqM!TR8J0Al#psI30ECbp?qYA<FBn(;Mz`Ht__Bu)};8S
z`+}GOFB{hier2pf&4=QjJ%v<gppVSssK&pYV`%Z)F3a37%C)qpC_XeUp~|9<fm|Ph
z^K!ZM#9jIFGTIpwV-IMA3Y0=P4m&*c41i<lK;Hh*2yw6*3eZFcl|ps0@UVtGNvB4S
zcz`xuRq~keu9q%Z44v|nAo=i;|IF>>?Eb#3c0W{~G+L`_-S$Hoq0&6er=9le3;P^q
zWyj*jg$LZ}$|mR=j=gx<X}xRbT3LEJ?f?T_MqZfo_0y-LZhhaKzP3Re`k%_K+vQE$
zZ~Vwi{ok(qKp{2(>n3(UT3Q{B>=fK{Z?CZ)9^TuN5jW!F5q4RFBGNQgBWK~JwcSLQ
z`rS@mVD`#D7<ev=#K+tBJf@6bB@{m{eSXJ8FVz`6KoP<PVX0?y@r<oAw)H=LG;vd_
z2TDTPRWNvd=NXx;B<75^y)emT?f{!LWA>8$h%iZI_TU#>GVbOj4>coW4mhCqO*L9W
zE?Q&KNDCToYuezFS~b1t?#2+}#msm4JC{5I&89nh7*A>XF+;pWksFc)59rI6SD}cj
zNMDcIad^ch5U+>&qz8dWkMK?nY20b5@#T%=)ysEF%8I{O6u42m6n?Q7dVaf@_HGf!
zXG5KiNl4D!yK0Tf%4Qm)n->56FBiZCQenj=WR4v(YT8|x)HX=r^UQ+8DzurL{(i+P
z<+Nr_7|?*zyTh~oERNT^H0sMoO_>V&k$I#Wlb@BhD&C?}cX2L5iNIAkysG!4Ef0+A
zA<UBSBZu7O{G+v{e3MLj-S!Qe&hJX}e(TKgpH<{PlGw|OlW!@h471wWd9}(t%-co=
z=W>9A>t4{yrE;~3kIyAFzRqsa;m9HN?KtkKH;m440xxFLa)SipsMFIt&07+u6pv3|
zzfSe^v{QHLXp+mSbz5JL-?MD2O8~ZiXD7Xp*BO0z+AhC<DID1_H`&JB3)M**Ys+;`
zPh)n^MYr6M?Sx6W44MTO<OnmL<2hqSSwx3kbP9x>Fb1xVE6z##iZOqSD8EG1&p8q)
zv$o`D%=qNtH(b8oA$v!tljA_j8qPW-pO1Tj<r)U}@0UF4XK1+3WQKy&4?Oi!fP2~{
zw|zK#Y}dPfc>W4)tbik+kdq{^!Jh=VKYP^avuj~+8MuSp^ACnX<e}o{s&uc}4-tQM
z%|Bc+_*Z&d!WRo0S7hD}xZ`E(wZ5(w)-I`^qr9(X*g{>uwap3oxF%sBvSrBBDH(Nd
zVfy2^iekan6muFOP58Z1EH%j`dqx-mlK`h9V;60Y7yfP`(st6wUHAPL(Y5;0!Bstc
zSMfQ{%WY$76?3&}Z!+MAdfx9XC-Hl?2b*`DtXfAs5Ypyem)1Y@HH|089g=qZplsqO
zPrTcZImdCmbLGMtfunKuy^=Dy|Gor$zy3RcXEb@e@d=l^X9u|-N$(duynny}W}lB7
zDd(asL}vN-akGj@OYD#8JA8Vvc#k#10Su#yvu6+C13bW9aS8YjgH3yZ+146BV#Z;F
zaSk3*t{m>&Bn#Nvq}meD0wRA7Fz|j(!?W$Dyy2x6_0%nGL<Yvj(8A7gbTPl@ec)&(
zC;Cv%Jc)N^CGt9R{QLqN>-`J-d~0Q6#Pgzx=3n~DFi_@f>u<2+(}z{KzVI0uI*K!=
zxVh<8D9?@7i0vp*{JikWl`D@Pzw9FrBI$c%H?)iU*t_72!k%QgJ;{YOB|DPE-%c%=
zY-(a6h_fP|Irqy{Ef{>GQMrSS-eF)7GCAJ6Ipr;2F@-cU^`11mjv(q?TVAOdpq&z@
zD`V2e)RuV|&g05;h}>OfhJF}nX|(royc}H^l+Y>lxhcY_WH_{fgRTGTtV2M-9-lTr
ze(|cCd;9NV`EJ!4Pj5@ht90ig#-y8f-L>%F@86?tFm&;l{@-Dj%5{O^sd14vTz*oM
zQ9McPDlEjIO9iypz`*gD8K(WY6UMscCoaDfu<aYGo#LLCbNjX+l=L{d>p_zav#T%@
zNc>{4^-O|3TsNZ`8yAPRoawLSN42HMqN_kS>>#D@LZZS?%;gCYkqq^~E=A*d!fovW
zV-)HheS&Z+z<zXRxdmr5fMsII3M~8uVv()r_Pu*`)zy%9YIV|Kha7p*H+p+3k_8k{
z_xu^oa=0RIIDWr#GH1f=5J?b97X-b;VVS!c-&cc5&=bgjOxVKG#c5yA+dt;pP`wQ4
z-MVQ4%0IhKI}aZG6JNFFsmFNl{iHEUm-@BsVKrrf@yX>0O*bipDk>*lV0_vKR|jS<
z>kb=Kr|8luv3!K3rNMk7M<DP?oa<sK@$isZ>$;1R87LGVG%i73MqaRr$%fmuwUzpD
zVSB!rM{b7B+!YY!)~C7a{&3BiJtiDAS{IX1G|2n+Ko`NP+xUX>PM|6d4d^)yc~dUg
zkq{Q$+_{@{oAgTh(^KW=;E7+~2)~2^v%(_KKETJ@nCfawAD3P!aYDzgFf096r_P3$
z(vGXU=s4HEfwWdV!_3Ues(bBCg5AK^$uk|Vr_>GX{XEc@i3FlVpfu+_Wg-6qktDdF
zNbwxyA&g>~<j4bh&3Do2Vl7=?JR#tsiJsbyDM=d~L_`e5$ASSG3GnYN(#a!TuiH&3
zm@Ep=)^hInzOQ^}+yv&Xy{}z+#JcS5+n(Wn3d+W#ByF>7oZr5U1GjJ6c7hr8Qa|by
zuMAPr_vF;neF!x?BE~$+Dz}W^+X8x2bmi$8^)i6$q8Ee8kx|k3TDbKeezR-kaKsnK
zlJ*=FJ)U>LZSnr^9=yP{ixNCX<}qPzjx^6*g_bDhKKX{ny6PzuE~yPtXuc8`Gv+fE
zw?eiXCbh|$zKWJF2bab64S($47Y?hin6SroZxQG9(Cr%<)T=JfZMlqyckv!2R^?r1
zYIpA3W;6xe*uV}=pnV0_&3*Ls!%fcsp^hCp*2eWQ16`w@{wZ(}I`aa5*iCcO_ZbQW
zT7j!q-<fsQ4^$V9ulrnT`C?i~?fz{Q%}&~<)8<r!Gb}`sSX?UN!-mS`UJ{h|O^W@e
zzL5_K^;>NxC;qoeeDzwZ5=;ot!eRA3X!_HhoHeGq*vES5D_geS=9O}5*K!Jwvv&UW
zT;O$W+H|zK{`m3Zf<f1iKneiL<UIzCLUmzmy~86?$2^!R+tTY4$>XjqUmUAZy@!zu
z`?l;%jVo-h-?ppx<?dN)+Kd?(eLJv?Zon(5puSlP6U%3LM5saVr+79GlGaa35T5J8
z8>iGhPqgt5+6U#q9kYe+N7G$Ic*Tch+cexB<-FTi-ZHV@ogcko87Br>zXrP&5a!V$
z0nyzr%x&Ahc-GsIV?8cJ`7~iBD#-sx*ML%-k9rQKahB71c24XSdf5E!pt(hglE=)>
zvsl0i5=rQh>SH4wI5Pg@=1xY6j%N_`6{LT2iIOt#!uX|H+whk~gt1vmCmV8N<21w(
zm3b1AO?afLbpzk8OU3TmHD#ZUejAB{)1CHr_YZ0RVdmzwBf>s_!*mvi0vbcj-Nw4Q
zHBAuuYb^S@;|`ys(-SSOMhuv;C$fFz@bjx%&5X)<^Cqj&_UxE3eon{SJTOWDw#Qo)
z<Cg1-<!1kYks7u1>3qcUwzfB*BX|r`@bUHaoiRf`ysgeK4T-1Ys_g^&qv;gvL$>{S
zu*DfAL%?BaBF*gM!IdR?1_C>XB4DuCd;c95S6vy~)vm%RM5#@i{d@L^D(!p!<Eh~m
zl0)OUR%TIptgVjzkPsB_;AOwG^Va<Snl6)?loiz_fmxe`NGpwWBXU2iO3GSBzFR9J
zTiG>nbL&{m!6~msw4eX@Tth?UsW;7y$}W47;d?>2eEL|OPD<?U#_3MSjtM9ojcEH6
zqwX_$57|0ha3_eJ{PGWpW#Fn+%FV_G2Dnjs@d{VPeO%Rj-0D=sdVTuPd~EDz^jlR`
zbv$x-<Q{*R8`$?tM^6c0!)fVVdLsuXjh``fb7tm<34NAOi5HAc6YnW*lis_)Es9y%
z=EC&hNQBX+pCpO`<Jyyz4;plW#-v-1v6Uj7&h!MwE?@U?Rbn~FW$(M7&{0u<cwMng
z?7PSMA)pRjD_WAWkE;OZ_E@_!Y&+w33qen_R(9TT^C<k%Cmx5$F3@q0P?xRvm0#&`
z-Qd{J-g1)jzzK%=?y8=N&g_SFvcjm|&JLf{<z8*vKWP4_l7>jxKr8>ZidzG`w>mpH
zDXx(Vq2JG}(4%7%>p$Ye)j?31Fmh09$f5&uEu?<rfr}eBN5jM01mz7iy>!5Ny@2zD
znJRIDS?B_Utu)k7>HD&A_khn=-KR`ZYqF!{F-Y$y7m~zwfLXfR_K`^9_Q0vaV&CzE
za#}J5(c62a>^PjDFSMz<xD=|JvKgJ8R;WbB+Ry0(yMO+CcxCTRO614S;a<;ask}Y%
zWL}|q)!~wVg~LFa4>Hm_zH8q$p0ddA8-~@63}~UHgk>=>B+ox*PS&TZjB4gC)+yUz
zf!)-gI&A={m&uGAmWQAoqhTXNN^zI!O%#GO8DN|L%}IO8P@M;&VZrqv=uut=DSiI{
zT5q%^$2X;kztetyaPOYI2qg+8R*eFG3_C{a-(SoE-4$h#aFfRz9CiT_6$YkM1ffYq
zJqahT8Os2I!xVvJPec230b*RgRB&k`9l%8-da!E;a_YdKAS&0LXK5YcfcP8C?{{4#
z&Q*i=29T_a&tjL^qendII$^G+dD~3dT0qj+A};&>&Jp{Op#g6=QgH=Y<m-C@o4<Wk
zBQQ^5573#%Fb6vr^Ly!f%Cblf0IGd!$R)^szzQ^DJ5EUz49<CBAR7X;q|(J!xW_|9
zM_awPZ$Bck@nx0o;#D(g@`R1|H1wh;WmU1*c3s*q$1}7YaGJzlN&8!|cHULY08q~G
zK=D!v9bb?c*3xoy!R7{zHw^)(DE1<T#`=P8)4k+hdl|-P=WXj@-Gr$!mWf<&r?=O8
zu!_)g3qlmaH9Q%p2}8haZ*`vj<z;&N$7ANr`wS>O$l83^upj_rnvv;e&mIe|#9aqN
zX@loKZ$XRc(S_X3TQ4L+AUs@NYM<h9H7zo1vKM-MG8L8q81J-caEVXuGk-JW*s-Q{
z9G7KP;HAuE1KhdxsT5KPcCz>)d9y0$tF}H-iZkuEZzoqhqnp)U+d|H^y)T6#7tp!S
z)ZHI>1*B8oUR+2^P3U6oCsr%)>?jDgXTRSu2QrLOD~V!y91D0QtbGBCQG8??u)#1^
zgZ@2ZXD@y*g5=VvyMW6gLDkgIFs2FK(rZ?b*oiJfn&;ZFKlIF9qsk)ZKaz)j#m<W%
z2t~Abp<85Jy5!egZ~&nTv}Cy5kj>(b-MeFU^jkn1HShTFSTw8i14&=_<zt>+Yb}GB
z7Y$Pk#?h7UCr@iCw{K5N{pkwL7l$!if)@*IiCmtAFih`2Y@%|m)<0dLob2goCwhL?
zSJm+Kp(A&Vj{&ejx|S6Jf~H-*uKb@NQRqX$HYAR@1uSk}?!A=*af`TtEjVKkT@%<7
zQqdZOtVRFyHnO&ihM*R4J!S^vx!NazzM|YfDEoFwDb|DN7`1=3=KJ^W=MQcPtVo+<
zg{xf4ptVm?MOI!%3hv##ixLw2)SMCt1u+2UsR?Hg^W1#-vYTWVKD7a#JjnQ=e-e=}
z&SqLh0t*d7p*U9;P@8dAhYx?`8Ljy8Oo+i~mKtG<oqoBE>CIvBST5AQy~Uxhg^~<r
z^|-0nQPMNsm~Eo8p++KgYI6~ALdkVdhN9#h1=MM8JFEWqgef)plM-;87G&NkF1`qW
zcXnQDORODH663~x?xOn6j_qbnS^n@wP7V^$=$IJaMT^>PY0tZ<EHB?6cKYX^i-ciw
zbJ)4oj0yrGEy%hGUd*d^`@IU;V@rB*<fPe*92tPZ+;OTB8T0^%W6<-?L#+UfBIyEu
zBGdpqKmgFVe+$!Qprc3qr4F-Z>3!KR?3AsBzO+eB%bm_l7K}C5u5Ah#rDfv1PPdB?
z+_-b6<)(9sl3R@SCzc(*Rxnb;Hg}<CLj%7lbtcUx%m;M`kM8H@Wn`rYRL%xg4Y_jZ
z5)z@YuCDDRyP~5}Cu`zg#u<eMAHe2#<7#MWFf`lfgm9Q4vc6GCX846B67-G_LnR{?
zYL5sM7h7^aOk%8LBsMn=5lr1~5dgXQiPmu+!AE7EC&VP<g=l5f^!l1A)GqJL;cUlK
zZotmG%Rb>TXS@X8zO^vC+UM^-Iw|(;hEfzCFzHY=#8eHII&caSpz&xB$|ggX9ogQV
zgAk{FAqm{u^>)VktgPn!xe@O%27d)9VtdIKk9EoUckY;(m_Vy<+W(f`Y-V81TWf0?
zdus_|0F_9a>K|;#+uCIrO<9Kj@I0K%?e%#1!H+_fRwXs8d*|vkQUs56jJx|o4w4`A
zSH?AMtG-H$YxKESno!hEue<V?OJL2OT%DGV1g`stdKw_sg%d>(_;d{@4jS*ID@>dF
zFzFUw`9=dFv%aCBO4EIe9o94ikkkXI!+#Ciq$5ha-tyyW^=lTsa3v)rtcS(Fis)9A
zK7xrOxfV8Tw3pX|MmJsAl+3^mGlO~11+LNSkDhSw{A8}QLDIuKBtPTl<l+OHPko(o
zQ#bif>NwBu9t-Bpg8?$REWWx{Ko_n-4KOq;c=N{E*w`2+)lqjDbxE1HjT^`8tV^*t
zvv+#?pI1)wv|17SmUr$}{qoJ59v6L1>4nZ}%Fi09RBjvoXynVw4i6^BRlVO4`6DDl
z<81~rPK2M=uMdhl!p79ns;H_8DbH>D%=`V7s%s29eGF}z^Q-sQkDpC?TyaJqa4;r@
znYfRRMCrF#W}v0^8Uf1EQHHTerZDFNIRAmgRNJ+iMkV;Ayi<n`4>>vU<>)`@{E@9w
zvlq#C`hMn$MovSIt^Ul0e*bacz)c0-6-swgBKvuLh4G2aIwx4SjvY;*Yml<Z3elh=
z#BLHszKwh6oxV=x*R!dcvG`C4fl+@V=eySX8U0&tNbH8j?tZ3gY?9h(v#*3l4uUW-
zK-d>S_YTlXP@ebU-!f)0+#LPY10v|$;@!f7h4bZh`>XXHJ71H4Rv$d_H6<Ts=52=%
zGd_?7)Zy4Z=Q9w}ptaI?Wa*9(4vSn;I=XzyR}P<@JTff!asOMev;V-)DT_yaLrd<&
z-Jae8Ni#!!nZdiQk^c&d=<FyBulFfnQ8hr?+~gY4b8drSgDkx)GWpYgKg*tG^4{?f
zIX>Rqdt-_UMBnw7HO{7dA3A>SPloDzr@hL-%ru|j2u0c5OksJ}FF|TGFSe(iUh-Wd
z+NuN2by^)}5*wObi1<)4CnMlf$8Oyw@9hN=eC*^lnYc}xHl#cR8r*7V#X~l<`J(A2
z>2cKAM#M<Cq0%GxRX}1PD!_|JM&S6*KU65P#Ixx)^bG$#>x)|0ZM=LrfB2T>nGovH
z3KCnG$_D7gsT}cIp`fNFLxUrhK-OI{3mPZ9%J(!spun|nuC&fl|L+6RikZW&0WNI<
zazbG;{@KdO8+SZTDYQHA23?(!?GW$&tq(<^4K<#4b{4BX$0#G{MZ|}40A&BQC<gy7
z!mTTP@V4efSS~XtQCwyK72G@cF;BsL6@**%x)u3%{o#{wgOgY={Hv`yI&%pnoe;n-
zTlNFh&do*g@A;~;=gwhRoD~z(spXf%!Y?VKJS5SIC($}HdE`*`m_p2=jvEZm6xy=>
zVJvf@xmTnj|CKA-IA&jaY07HU6DY*OnldSgK@XbUL%8aVmo<F&j+SQ_T60n?Wj4BT
z<GpK>U3gO+|L2iZZN6|}InRtHdrI2jZGQYmrT_VlJweBml$3;LoIOQl=YL;xwpjj3
zYfsTKgPZ^J)NHkd_j)%)tQ>vh??rAD35(_b_Hl28O*Nx`n8SbffQj98_9-R7!2j!`
z+x-1#yPW^L|4@m-3e_V#n+R6te?HpcKOfz(k9(JvxS-ZSSkpWTwf}h(H-!+uNAEQG
z&%XDLSod1NQ1-t+7D>DRe6-Bb^Y7cYRTS<6CH-}Ql&xgj**hvUTlnKfMH9!CKPcG(
z%eMT-4HEeUx5BlaZEi38TO%v2zxQWkWtWrs+mtOix#s`iNj<9-DDZr6$Lo5nTmGP?
z{Qvaj7K0~yQK=BUuq?Pp1c3?q;-BzrZ#RE<fgB$&LBHB1e*}@E41aN7+D1q^k)J!I
z;H2<yMSoM^oPlB~!aolA3kOBQcb!*?*6{Ui)kCf267*PUJ{%(OA78(=?AbGk4czh-
z5i)U(zi=9W7_-zb9Nd0WECsUMp)*|R-s2U+GB&X_FOH4uV7O4fIx)%Ps8|Zl_$AoK
z#A-_EG>Sr)V9Tr0$B5kfYCsPi!-8!;#v|BR^mJE5L<B=bM5k6(7B58Q`(^13;Tb#a
zNv^*n5{U#m4n`I;uz=~OTeiF;IVLf{g&_IsV_wsSni)4z=d87(2m>Wcy>zKQyvJHT
z@e;KgzXwX+N<rcL!LA!5)2C&v#Vq+OGsDpCduB}ERZQ#t`PuiRCcx*Wj+?T*``;RE
zNBKunR;it~U;?(i9K0Dbt<#LhT=?;pcfLrgCnM7FO&R9@_GXH6ET|3kN)h6H!&ja}
zAazl_u^Dfjeu8axP7*x?ENeeeY*2LtERHfLZx!mec}E0YZ#<rbIcwA#*U%h5ImgTL
zVziIRJ1Hm^PtM!hJ20>w7!^0xX&=@hO))W?rQm5NkXI>wa8cMMj9qpIoy8IpE3Z-t
z6SGy>fe%a^YdWB*jg1}e?VZ3&f%D60cV&6yzc60?h7VA({XGWrZFo7PHLLFoBx?&^
z{41gt91OBBN>>c7w_&S^w=YEVl&{HJJvtZ;7U?TUMZt@6dVGgp1ZqX=ou&s29+qN9
zDQ?fFDX`if>7=&tyvTYM$S&0wy@GTNTj&P6pS(E2x*76kDXZYgybDkS*RPlVz22;(
zo8iPiQY+ok)#Vo7S~Vz0o?yFPSMhK|xkcQ^_Bz94R_Di=XcZ}Z%!-eHg9s0Ak{hsq
z;Wd7NW<26S>`>Ez10nYAGd)@}QZ$$BmpL)jDtZ2JgW>7W!dbRr#UdO+Bz6;e_76YM
zWmx-e_4N^`w9lSCeTl4(gL~e>g*uv=O40W*7K0h}{It;qyh8XfCzi_!Dfqj<hwa|I
zB|8{?s<{-(`|{<>bp|iM2V?)mWivPcc;qlv1O^ODT>*j>K*Trvp$R@PcMB_o6|c1~
zfQQO+l8G@=qKAt|GNAlI{kj24YFbzo=D|@gh;a%F^-}cq>v1tJTuUSY+yHkCsjp5v
zbf|pwZ?~4TnF;g%bkRppFPSxOo?(uv3wl5^GqWK>4&Pp%9jR=xxdzuPBw2S{2JVvd
z>?!y$^Vp~bqq3%G)m!+#m5ouFuQjZ_`o$g{DYF@{kf4_1e*m0}pG(en$vk`Y?Adpj
zx5+GpMitVtKFch3;t<U;qwvbC9QOih&GDpNT3f%<wHrHv`UYVkDXw^q6+Y+yxIZ|B
z?_Oa&BXONZa)8}VN!>Q>JV4gAXD;vE`m^<Z=bCI(9^bjru&^+OS6mCMNjiPHnqBc$
zX*75woswMtDM*xI0`iz(zM&k_d$2dV(2-3U&wxGP&&7*(BwyOO;S#?3!f02+WsQ^%
z>K!|ZrDPTOXn2?FZ2hU0#?f}-af)tN%w?D-^t&iU@YV{3K2G5>Xb0Pwq@aVpfuoaC
zXnSG?Kfh5&kzYeDg&$J!;RD)6{RuXCyDyt*?Ze%Bz=YG+A3gfP#c$iRi7GF^-+w4t
zDv>I1$*QHSJ(UeiMm$gW^qr<Bcvdf<;v<hn$kT*&@l9<dCIM3jF<iHIm)MvXFLt9~
zGzp>4U|+tsrwV;*y-7!%v;AMeRBO|=s|LFL&Ygdz-XLj}JkkH~{ykMHKRsoz+5m}o
zQf;x1Tk*m~OMzr|W4t3|MYcvAND-hEDN+e^2_TAn<7|S18<7bas=ckKct+SX%`(0)
z$r4c$%aU4_DmkfW{y%$fh$K`n))>!GS&iDNWz(us=gxn*03v3#T?a9tbcB>`?dfu;
z%T^T>1zP7TJl=iyK$&k0|Eb?-+S@KTINu!IViQ|Z8$v<aLCP`{j%)Mv@f+YAlDfj5
zvDnVo@^9qOOb*Bjtns<m!x=uj)YjHWO+nLs@AP6W89OMRSq^Yq=KFoo`}eQ@TccyB
zK54=PU4b*o!VHGa$uZ&dVw_U>LLo_dvD5&?Svzfu$hf$*Y(ZFh;bCED(z5RARU-yu
z1jEQz3J*;OA4Pl$Kn|V&->*2)whclgfimIsa+Ywdw%}`+I4L$CF!e3qLP?-wjVFeh
z_wm9F43$DgjxGx0oSnK|!E0dYJ%t;Da7bjGp)yqkF~RB6rvY{dj$F;Ub?ZPeB;&MV
zYf4Crw9XHYRglb@JNFYCzN~D$m^?KDm=O4kLjc=;zYoK%U$NLO2+B}<QSoB!D=_Q7
z4?X>8W43r*{0+n(VIet2U<STxjiD%x2eC0ygEnG4D_<<Z7pa)ldT{@KaJHo%?sk!h
z?_L>!mp?MOpxO%eKI_32UH6y>G@k0sx-QRLy_SNf>IOehphEjpa`lSGQ9BW^y3hw_
zSyLaReV)Zt@(?<ygh9se3K{3i0&qD0-eXtuO;#Su{qCJRs*(WaJ>U;bPsD#ymu}tg
zcb<i`8qjjpVQn(xF7-pNXF4SNPb_S-{gFSU^}|Nr-hKL@<yDoOr>GKggK(Dv76Mx7
z8{i0Q1SpdS0v%tN6^QDZmfe7B^`U<}(?SU|<18df1?qrYOhMkNGh8_J8s9~`9t(Qt
zvSP)*fRda+qqlYK9p2h%L5HLNJme7PZAGlTl9KYCOV+y^o?RbEh`b5oHE~uk3rQ@D
zgYn&7L(4erNvCU9$Jl=bTfTmBtpcny+U&)+>O=Y|$o$DGKxD`9)Ch^XG!<%ydq%NI
z(*}Yjm!b)WQ(H0%;Ef7SXQ0nb0{fdeT}g+K(M7u^4(>ylL6XVgewDKcnBxsyQsM@S
zN|0kOQ_J%&-Ik@Zy&Rqyw~+GdEoTPHZV=W~tSZwyo(!1TzI|OgbSV4sr4f%2!qMK7
zgSIv&0Q45x=o*kL2-5}_!$iiUvV(orGgnLU?%TIT%mw?E)gq*Eb#cL!B;@ItC>Hwx
zt2JGlG>x&pJ0g=Q!p5Uay*B4f=)Dy2hKnCO_%JhL;{^zjt3Ik5>GkX>s3>BdA38!c
zB2ca+y_IaQh&syy-|<**e($QKb$8#OG)nlKFzGSZqt*K!aa2<Gzz)yI$bcY@bo5e2
z#;DPw^?Uc`IV5p|wek1GM^5)*wo}5XQ<x`?|L|?yK=Qe(%+x!*=OpS9B2)ur+)T$*
zQWL4FE?d6bGNdWk-~WtL%4Z;EI7<Z!lHRcw2yiSZ6?+$&H#`hx^!*cW^%YR~)T#Df
zVdMaW`#|so?D%m(n>kZ3;umli?hw?Uck%$TnpjE(QqR<S@;ae&7&xByLqAk#75;jU
zty9m31yh*p^$efZBd62)!Jv#7NPFgFb;v;re}&Xby<~u%I@;RLlyeJLmFmHQt3(!^
zz-;<0&h#&mEq?*Cai-1T<o+J30}NSOT1qhHeJMyVkvj;xSO;3BzW(Ux(|dG3^n8H3
zVS(!|iHu<eR}&KCV)i>O1Gr&rV--D<<%N&8xp^&`L;P&ChXwe77&5q+Xae{-m}i2_
z5_>!jq#3l0Fr^kZY!MeRBUhR)#J~9X#S0eP^?wCy&$(Mfw--DWJEFu``W&Dj7YG^*
z5cx^3g`mc=UW~^)!3j(2Z#;A4_uI<_!?~S11#kz=;=+Y%$Q}6v>?#_fh03h(?dJB}
zET{MUn$Lxt(a`ER7fv-cPr4R-dFRfD_$;(-+jdY$`>G)}O66->>0bsjL4q5(vDx_R
z?e^JkG@d_u7Kq$w-zm||9vz4ER`YCdVU4U2qK}h@M-fR4XAeirE8bvzeV}L1t#%^O
zk#Q$pK;-Vjpd<fRB$Z#kekCgbuS!ts+R{TiJ?#)k1&r7c#6hr-LDu)Nt)oyOtN#6_
zxoJpC*APLQ)DN^}-^wIG%gS5eL4Y@4_b8IUZ08uLZ)oUlu_OUxm)yhH&=B7<kU&u)
zGv#U78W|adgoJD_-`GyaDI}`p)S6n8cx&2fX9a$Xa)I0{n@&N_eWTpG8~ck_ngn#L
zctci~9i@Gp8z-G4jg#x99218GWWgTG)hlpCV@Qwi{$O~9sf4L=yxGuqD(eTy{z%e%
z<2-)?8@Dl>&xY_tl!DBC8BiCCM{KS{i<Lzpyk)htM7_tJJ9}0v1>6QV6-JQIY@%fV
zVtSBQLvF#oU|SVqLqK6c3yJOqr`n3bMN?J2u6VwGDVWs2tv3*UWQIR^rnWKIWbk0{
z)@vy#y&I#adM@u)AvC~9s_=4GGc!BKkfK9NSB8`DLDW()>nrGpqEeSg-do(K`g-JO
zxNLn`7Qh>H{~w$SLbzmY)3zgBWTD^1cD3YtL*0Ct8-)}<du7TJItC1()O*&g#XXRm
zldB;i|HGb!Fd6kO(^tSJoZUavQ9q(hlofI-oDBsnPn-^yKotIJtW~9a=@Jbl>7Tgo
zPlw&R(n=r#=kcrTgD0$v>+9rs6y;4WzlQAgH)uIKr~sfV@dI0sx418NPqko<P!=MQ
z1;#y~1wZyMjs~Q8@q^}%3k<Y)@PmSoU37|OCz~GSy7yz-sNr{-=T}*kCtZ56aee%A
zCF85(clJ?8ig55!R80ug(daOL%$THyS~HVw_nSB7OYcp(qcjdFtoYJ%u-N%#L_mtO
zvWvHY>RIC}W>w)oN`8ECnV5at=W<hz#<II#?mjo0GyCM_`+Fzmdt|oD_Xy~3yL72(
z)1mX{HQN7LRcYT!ZrzY?G5R4v>py&$Jz^e0>h4+VPiJOouk><jc5c{L6Cxa;9E220
zmoHp+LZ`K;=<JP{d@^LRPxNPy)9Mp5*>oWx&FrRw*maN(-MG<9B0<qb^gVgf%C}$_
z|Na*b=JV&z^<kq-b|*a;xjX4bExV&}^vszv84@xgT}iH9x5KHf!)#q+qoXmRe_s>G
zDO>_AnzkYoo0><-R|`D6VNn5m<_>gXQr<hC`W-@Zbi$dpl;WUwYnCioGHO&V`Q(e2
zF9}B#Bl4)#Dt5pEYNWx%eCw@A*L9t1hUq##OjM)M5M{kRh~ZnVt`E|un##!q{s@Xo
z@jf$w;(_wKiQ}K9><%%*4Njju3!UvUxi($1pgk!GtrZpVMmd_622gVGN3|;9k2fj^
zNXTsknLty%P($Pe>k21A7d0ivsQRlXX>VZJmy(h~2k&gg@sYdV4zk%TT`FMiHD=GX
z)^-~x?|P$^oRtN#1ggID^XI?xcTPNYs)vrww$6J9agb7~yQPSwGyyw_6iExtojD^B
z3E=I?liR1=AOI#EIyA`KJY)E6Hr+_x5U>NSp7^O=US5X|9pXZ!mGBy$J{1;fy^Mfu
zNwO8>#g)O&^EorY%PU4#)TvVpvIWu;@ao&2?OaM99!?nFcQg6q&a|}o$nh^+sAJ|M
zTW8$y2@g>dhd-T5je^|(`QYtMY`dg39ec?vwEuB(QdzrPSEeB+SG{wc@vZrx#$oU5
zURjT37$pcXN2e(6VH>%1JCwGj1nQXVmY!7;6u*cQPd}p#4#PfSxxC!<yjEv5PAQ+&
zsMR1ijaVQIu%J|*9$XW~7DOAoQfHf-oSc<IBp(u)5@~EpG^FU-AZC2*@wBx4)*)7F
zCF$?h&6>m|qRy;&1Fr`(X7QOX{JRoewnrbf$I!GZt*b5WL0%Im!0h%L>QA0L;e*aG
zR>e=oJ;-wpmFtY{V|^n%^fm0sVTJmy=T1N3E32F5O|~rvVvuOh^7XA7yt$p6T&YWF
z%bnZDo=Y}ff*bg%RlmrS{_txe$>t;w6kJW<{WKJJzuB5E`M|nZ&JIbRs3I%G7OM_%
zlyX=O9`yVm3E~8DoY-AX?)vZ6e;>=#`=1xdZ%zsvQ6ikz-(GJC8FcuD${WAE@^W&S
zt$8ReIJuE{(EnP;^EZC{XM&LTaSR(78m>i{gi>(Oph2%86Jj?JAJU75Vk$pz^V8&`
zM+NWb-9s9hW)t%2=PY0rlVF=Jp0{{$-hlj2W3D$?i!D_W_~x7jxD3Y~hcWavTamq;
zogkZj-LE~5;A*Rhn}6P3eK19Y8wWdt@1_f~NnBK1EF4d0z1ZfYN+r_U!bQ7t(Tg*m
z@&F>4XKG`UO~%u;TQ|xSfjc^2!1T$J(@2N5iFxaC{BHc;-{s6g9V{7Y@96lcZHzjP
zXtEODoBKO1g<GngvBCJ(?{{k+c<_Jf*V*iTdsTj-3V*ILWdXSAI`hq?2V3(Glx7+5
z*O_;?F{|~$J+51+Im@7=Th)Typ?T%K_4Rwn2t;Bj$jA}a>eEy40Bi9v9fdD!Bi!hf
zy(tc^u9$44G+#mID=UNtKyhp5u3>J%cRTQguh!h3Z6L^@Q&Pf0T5TOn7GgEPkgrN-
zp;tw(G;_`_ThhlhPP<DNM^|@7`&_t?5<afh#z1&J%Uhn$IpO(`?#*&YWLx_9NUi0*
zU)&;+lS>%D7p(cdNO);v>tp(iHP$R|7EJzLbmE0A&{{K9u3AF0#3Sc$^KjU5R>o?4
zwUxZ2b>udz>`JZ82MuDKy-p9~>#F~?agd*N<IyAaX8eOwjvae(*q6U9Y@?ejcXkF-
zB90&5Dqf0}N#$7{TSY6ehum|ML4$-uwq+*dnyH%n{Tex`imn-aoX2<%n3+{phPM22
z^)#OM+HQi?!yC+osk7$I6DFn&e{k&R(GDU-(tumd%Yj!Y_DU9g;@{MEQIKx_+1lRy
z`Sa%xY1T{?&w`>~T3TIj3mhmWCZ?=4cS*d7RN%MeOyy<@Z&OZJxGsK1DskETtWz85
zz+K46b@`uPl<=zM<YsZ9!vE&W32{qKE>d3ffA|6GT3at-<IAlJ*|9ECdJ)m$DtdPu
z5b5dZy@a3(c+F0mU_5SmXP4PBX&Eu8U%!6Jp$;T=4<5ub{VDd&8rA)&eGP{WT_vb6
z+qNZQk)|E$yID7)<mAV{Su<rZPMe>8<<(py0G$IHr&mQKM!S9`wGK=wQ6fMTGl`(1
zPo6lj?&1g@jJ&Qx)R#)rU<;~zkQKJ9aww;shW#cxk|Q=yhpt^4x{klL(v3YyB1W6B
zJBv_!lOu!UZrsF)oO{1DFWxV&;a1X)9h+dhd*jAYUS3ZsPcTaelIus{P>%kqDh9{W
z(nzoJKmM3#yc?q@8Vv-n>ThwdIq;|g!nFGJF8Zkv?<@1^gdVxePd;$hz`xf547{MA
zfRsYuAj0hdy`d(1LEVhMGnUST3bC|mbr`jz@0>Z15jrZ`h-J~yV_~XgW;VY3HI1Z^
zGmq7eJpjS=)Ya}&CcVuHYRaam{QXxjX$oZuzl7RLMtvWSWMK)#Ai=+OMHo*hyMD>p
znl+1f_^c>ChAzOR{kASH3waB{R@Oax`fv)-Mun3S0uP<~0;JZy=T1fd;I1w`l8{ge
zM@A&UD~^7F<H>)?zu|h=iD*i!TD|&FY#K&+05#%fOAt4XQYV9#<c46+9i-&(9F2j!
zEw;rYhL|#Cs~8r0S6q_9+tVDkH`eSWj4RH2zZ4!pO9D?yL8=B*^*c%x*q}A(*Ns3w
z=lS_ve{-v(r2AqcGqWF5@HChD4H)p?_H7$cUDcZqnx3zxu4%21U03<E<_$MVYf#aK
zgNx@<wwUhIAN;!g=FMC2t^N`t?wp-fr4cvE7!5Ja>B9L77bpgln=SF>ygje%$1k>G
z;BLg9EoLR4RU|{5rGE4>zyU^yNJ{z|8O@(JkIiuTM+1mFKOLkC2CvSMDW7^ex)ou#
ztxCRh*|Kwqi4tiAg{#i&n!rq8yb>%5^lszRFN*|FKG_K5QS&R93Ul!OZHJk6fps?e
zfhfIIBjR{^@9h0hymOrCIYRF7TKYv{|2=Gj$HulUuL&gjB#+PWIRgegDoW4ZUC;64
zgfpSt-`R+7(wDEStgJasndh)wx$x;zVMr=q;4t$z4r?Y}9y>+`)L4Ip5ndaz6SD4r
zBi-^DXzvcrWG`9+FS>R}Ol+(*zOk{sR5R%LlhSj_me9OFJH)>1f4Pnft~BYb>rTDB
z3=*YAnkY=_qXw+VRECl)6P%|idefG2^Y93LdJfZNz=R;pEw{ec)Fk$u#}<FBGul`a
ze&JYAA`j-ROC#7wZLGbhtZCo0!A4}T@gp51-KeVS3v8yBWyowfAb2KMuB;}oP)XI)
zK>&G6IZS~ll92cE{lto1GAc5>qPsG=@!dO_n1QYF4pBF4Zj*g1higgxJ`qml#EF-W
z9Es4o-LCb73-dZj^T{G<2aq>X28a?_TkaZlfZ)Ak;8=8dm=Ce=KoW^$LSLu88tlQI
zGI)Ti_&ktk(rMPnRDcOg7(@~{)A)!v^-N~90oK@xfEg=E`=N@aZQQ6N^`k%bIE33N
zB-MwSb*=Hcvn(<x$>*aXF9sRSND=D8eqbSRPe2i+!eCIQH?ASO5lL{_hb6`$;R{M@
z0!dg~tOzN-{n_7;ZbXR)BLYecERwy?Jr|}g&X^%EIYisEhn{6B4ZhtNHrUvdvDg1`
zbp^gl2aJ>At+xz8dp*PWT2k`1q&}*uW`hTh^Ym0xRRu1IpXK0RdR<;=17edb)-8bc
zTkm`(bhMd3h_MNclnxH+<N*;%Y5F7vgHUI3?lR4<T7iH^LMci_JsSM_&)Y2n*f);u
zk10uz<|19I=x~8RQZID%?lBlEo>+cg()yYrG)Gle>s8<1k+lNNNZohw3DODza-imp
zJTtT&Zf?+|hEp-OxK3VEq&4@16M4vxm1Ml4L=cTq*N2kU-wtbmCrzH*t$!}1)i$x|
zpg{{4F1#fPOG`_0>zmxyNw4EJt%0Ff4nKLa{74d1H;D|yR#8EI+5=jd%AriAPwuN?
zJ^2jj-u=49iif?Zr{O#O`|pYo@39ISErL+Lva^R^sTU~3mUin9lodUC#G;4kZ6AU#
zMMH3UaE#Jx$rWE9e2g0ewEgOrG%9(P!$3M1GWgvZalJLS)G$)=+5O)nKUQkh(^Q@(
zq`3#Jd3%}ST+zl&gOlJ%VWA1wG(}zcL=Y4<0D=4pojG;`oKbQ2?rT34^@iX*XU<0;
zO|7n7Jv0V^^Z@n2@*q1Q%<u+rH{<d3pfgK2t^GhUJS?!<TUH3fOiP2c!qHAgA|W|>
zS4_;4qN1d<wACP0z;mVV?R&bj&B<`6!W*ip6{ehK6B`;CoqN8Zar&#EipAuI?F@2v
z^w<$A5&00s5StX-zn?opQR+vOthdpknP0Z#rjI`=Ix>LXX`=Sph~Ec=-^iYyTZy;g
z3<yNwC!D*|N}$vBcU}ji;h*q}w68C}Y!U}!P_HqZx(Y)zp>_tVVRkg8eA?r|XW`71
z+H|TN_^7PXIq7g|O;12I>}qzu!d1>l+h1;7`%WWjB;CgJiN5n5R@rwBIL@i4b28}+
zJ3ATn6g*4+g+`DPT(!}sEm)w}Lp@>6s=z=ydwUj0Kc@0>rchNsEiSg=)Wdp<00N*N
zz${J*6bO}p=%eUv^E*2>Z_a6@HIP;fggm+~5NL$i0)jCc*w>8Nvo|(7yKBTh*s*O}
zO6+**TzB`frI%U5w#{pF6&@t@I8{-7T=p(xcrz&~JcHM(7KPV2j2j<rm=sH1Nv&HD
z-Ic71fInj8H|@1c#!sE9(_a14(ix$;6k5Q(dUrN9Q)Ub31<xu>Dv{>r=SSS0wPJ#6
zxb?8(^5sh`F!PM+rUNUJ{r4`1JuO*p9JZjZfx)l(`U8Y}-V!e{>cDbPTXcYgJdlHc
zRa>ygY^LE{7S?-CP2dQkAB|}WL9PV{4g7h^iKFqRzE1ePG4=O6!3aup98ZAQ4=-7O
zSk=^MI;IX;$kaNBtTbZ)YTnZaMahVc)7rZE+ykrO!SyCKVuCy`GI79Wwt+O!4W&#$
z0rR>~Qh6-uPGBRDKrDIfYcTB9h4QSLAMFk<{x&=W0QNUtY$LvGNa`CrXMnyw1K^Tp
z835Za2Qz6GuCA&1;q6=S28JhH!OP*>S&a)9F3=Ju^NV`<e(7c6pEWXZiZX5iZOahv
z>+2v@E`wJJl;ft6l9*Uin%!!c23vxR@<zF|;vU6*n=pm5BctBYP!~%Hf#3m$!*zGX
z#+ILK^Xkx!u{D$>x0WH5@bvPc9;7WBdbs*m@T;TKr%d@$S-C|_pZCVO>iGwGqSa>c
zAa3=OoZUSg97NKJ%2Qe2Ub*gwUpvOtHSZBs>cfyc`?qsOaZh1$yvB_~a#wbEB=W-b
zVnn#N)@W+jbE>qJ2(a+CTn{Ew^pXjnvWANP!0JnM5!HjJr)L@jnpc1}4u7n-_6WZd
z-aY!vj2lWL!lH)l_TjV>Nrr6{Z?a=7=}3<}4~Wp^6R}_7Jk)M?I5Ba?t<9YreB9=&
zS!20&Wcv7-23V$wr5vh(yGQCWVJmN}Hx+29ZR?3DdtnSuJn!eu40F;v`o(3GJIulA
z+<E+zDc~I7wbLGdD$WGH<+P^VI5u?*O}R~2fiYlXN8WxWe9<dr>l2{K7aPc3N#9A6
zI!UOUo-lt3uG)bEf|F}~ef{I7PkUGf?b3|^1uBbj`1S}e^l(ZFrF+$u0oQazZ%LU%
z6433<NhCQm=S^uiaE>my{0ffZA677lyWkDK$&T&~(~?x$wd+oUg{lQf09y>}L#CRE
zr9yja_=*L=!6W``gDOc2jPZTYH1^OO0dN4FkjSnv0+O|LEDynvs%9fS8uEJ5?=E!6
z>8_GoPc$xu=<Yn=)vvMj`{~#SY!IFVWdw;f4VcPBGe-Eb_DBsW-gyo{NOVMypJl)9
zO?D3+q-cXAL*wHl&Y@wQ6K<5*xuSd{k8Ys$<ji>d<cYwXg*;5EKf*!XX14-|c$B-J
zLf_3v4pBm2Vgr8q%)C1c2=a;Cs_@;HSZFuu$`wC;eBL`-;nn0FVj>U4*>7@*>TO?m
z))f=glxC8OlL+cMey5!gRdvzl+;h<Win9(Qx-X_Gi89(tSXgVL;21@^nexUtdzLAV
zc!49j$9cKC5A?n+*BGT7s*64m;?fv*Pr~&dg)~q?L8N}8th5ubKb^|mC7S#1HI;?;
zSdufFC!yVL4i^%T&3hQC-L7fp_I5>&-j`IH{g(^yh^YDLp^|pHHgCR-)u?-STfJTQ
zkND=s!#}pIb#b`|^}Qn92Oue!8cn-h-m6!cKXM>Ol`XLVZwfS0Q|g6htX@Ydy7A*b
ze)urz=?OY89F!K?+esoE^njK%!*4ui-0id-{Kd6vRwvKkXtu=SKz_c%h)UjObZ{0c
z?mZ&=X%E+d&a6?g?$&3fhJ6P`e-7)$b2H#Q)Q7njg_mO@G-vkgp0euRPD{rzyZ)Lp
z8BJAnhGUQsdJ-0aM{#rQr?HJ{p>P!NJCxMy%YX4=(ukx-{I}fP)EjLuh~OQYo13!%
z^@gnBpd$LTYd^oVlhfMH!G{K<czZC*G(9y{Ng|BdJ=Uh`;LSU;X3s{Z+DnGWep`>c
zueZn1^{F<>{Zz*~+3?^aR9m9S8U4vs9pfKl`Ijq6Bks*EKkV%7*+;IlmC}FlhTQ)G
z69NP!01^V`Bmfa-{{uke|DXPXcP+RnKh=`|&%urV*XYRqA3wmmZn=EPaVP;4f>C<U
zS82xHVN)<H;X_Rz1q^xMY}37qvt(=1GBSn@8YD~#B4vH}(4V%GT5j_WQ<~No&)T~)
zd6!gU&1764(XSgD&pI=K1jED2>+4ti%o_7yXB|&X?PF~nuXh_%1A^$)%WZ3ZHS%{#
z8xl{PxaV^<c8+_L9+kLEnn-lrxG{JBspLzSE}cK`Nk6){STo*I?`LRcX0VG(TgND1
zCpJj)T6ItmOY61PkE5Rr-`22XlU)+In7ZP__nqT0xSTrmAf6IZKiafJ)iqN~`ZKYf
zW1Sw0m#1f;`YoRti2OpbOsE2SVWc*G`4P9?PCIe=^ywvn31qwQlVZ&+gJ$H&7(bLb
z(#I!>ClP)7)wwx4jI)ZeA{p!4snc>=gFM8i({9t1+%qOMBO}Pi=dDp^O_3sJBemS2
z`Ims1bQYT}p2YJbYeS3ztL%4%aWj=O8ql<(M=?gNtp&1qQ*ja8SxYT<e@S6CuW8e)
z;M0Wa!h5mr`EdSm4hV^b#h!b!d&w}Z!TWA_RTwNE7;8!!IxsIL+NJh${hBteK0Pvj
znqF&iNKQ`v0tQF&bNTY#q`o6|>fNS{Sn%w$jjp)V0Q(%a|0wwRpswwo9*B+YtfjSQ
z_wG^d8a85MO=rE1JW-%d1lu&xu#U`L{Lbi)s-9yUhHA8OIh;5pZyY``<OHJ{0NTmf
zNRuhNkzg&Jaj5DN6+DJ|)xR1U33iV*-Ki}<nqzkF#w_|2=pkPLTg!Bu(qaclVl-dv
zdUlAt^W^E%Ii`CL{tR{NyX$M8SzdwF8-q0@VaJYr#uSPirMEuI?HCM^@bDkMg6-{Z
zJ<VUAC7}$YL?(Y=ZOmgZsYyCYpPoIXeKr2U6rREziL%g*<M&C_2ST}t(=!Q^mhqWX
z=AuxjzmNH|kkH1)rc+Z9^GQFxK05<B@$J3f%h!gGu0nw^)lwt-e_DSjG&E=Uv)Ln=
zL~d)_3K0(XgbH)i&o}Fb941e{dUdM3{d?dIi{(#O4FFiVy+XbDdwuK0Q>GtwEYZy<
zw;en72Nm$a&SH@wKK>ih(|;lj*}rdJ^-W?t+{KC1x!t<)lA7tDkUPO7vtIT=P3WGv
z^Jn_Eng{D(V^#yL{P;ognbg<N)U+rsZw|swWT$E(5iLSqo4ma{CpI+<U>dX+I_As(
zo=A5s_EzfH%JU396EfM$WF($IdSl04S@ok&({|XtJw;ga96x<JGU*5iDLfv|ReJBs
zFE_F1kdn$G89ByKYRjvcnXj_5<t4Lxd|-RqepDMmRZAHQf{0Z&Z=j5ls&+J4Fh%qr
zC>oSF{CkKxWDaHRLdm-*+kXH0g??}$RS8EmY=e}($H1dTi~tXw%0hvCMeJeS1zW{W
z`$%+xn2l|r7{MNGN%*a=7SrmSj%Arx5on|8+qY}TTQd`R8IWpj78QAnAHNc|Bo)vC
zFvzseOQ+w=%@vHf*y{WQo*{_w+^MFyRakaR4pglw;P4ch4*?M;Pky7pjDq2b@BX7l
zj!b|%L+g{02TmmAkHN$<QQSOynPDIu#4a2}v*C6C`7lVM|JJ+nFZ@lcp+2L8!1;AW
zK){!$r{1teNZK*-#^IY?0jaPN9$8^spOkU9QosH3<?ifr%As0}Ljddck3F#K!|SPg
zTPxV$SO*c7e}N2!^ne0iS1ignK4fzeSQ0^$3<|)epRqB(;tJ+LP3Z@zsLMbf#qb+c
z^2BhY&k4V)^c;^q>%aWD#?j`l^>7y6p*7+o`DegccOWi}FD|3&$-o4JIY=TSVl}qh
z5)iN*J6!Q9go}|eJlsvA4)6pS4v<8*u3Z_t^_fm{%8r9PJi;n$6d+<>@;aov2is3@
z49G+9W`-YH`RC7@f98O?SFDZv_QH!O%pRb1BMJrcqW%-8R*0I0RfXM0w>d(6#bsry
z_%}bwW1}kSE57T2X_?dRMEnD@JmMBfY$hHn)UhEU&CGk-oJ8_OrdnQJ{(~~h>1f-{
zN#IYW?0zy@l!a=GC+T%uSd#fXFHgU3-wIBT*B8#Te=u6dBj8)-0sZ<xoKv)HROr!-
z<8Vx$WkfrlGlH`s%(>B{KO*tVHKN!iw<O^4;yZ4+B~0YlkZl4<cgYf65$H=fo0sDU
zroYa&18QyCQj%mCuOeIlx%m6nK!p*7MyeSA`$2lHrSyEY>sRo#`1l?+Vs<F4UJd&{
zltjjwTW-(#1~c+b3}bXS0nD_vVmOg{<Cpo6AwR({h`qs9J$h_Yv;ie@`p}Jc*xXP#
zU~>{!&g)mNhN*eEj~kcU<_T~<h@OS^ebx>M_J(W$(s9re204V6E#M{z9z<CUdto94
zCJ#&dZ^#y@s8E_?&!%X(Q#XQ%XFDB)D}^R;+f=Mb!6!gjudh`UcAo6z)%$YZz=aFH
z!dEEonxKF7`4@u5{e`I<MYfh=#Tj$w?uCVW`TMCUmy?bkzgxD1?O8GDR?OBry?#vM
zi<kTROGHR=L1)6I2};D=+>IsTEw>u*>W4vLu=(@Jade2QQ+CBIV(bpK2Ul0E9RGpM
zmT0^8`2zHxX)j;A81{5Bff+?!cxL*61F!hY$&)4x+oe)f(Qba^v@-{nKh+@8RzymP
ztE}1Y0Rv~`D0bhWpVE%nGtO$wJRhIX<}EvXf_eZH(HmUxd=cpa)_=t_WW6?I{}qaK
zsC#oqf6J||gBNIZ4<1=13ckK#WVi+lg{apNAYJr^ax4>HUq}Pvy<LvQDo!rcxGPIk
zb)=i);*}{ghb_oKs+d<^*I1uYnS3RB!qlm+TkI8Jo`PEdoV6gn{uTn_*Wl-S?m1-K
zsI|Mwew&jNG&WK*E?IppJzZavlb1L8`|eL0e!3?Mh9I4dCzwo-a{mJMcFQ4(fui|v
zernFFApjEN1g<0HW%^{}0Rs?mGlOie$&Ap{)Y;7OqvVagEzrf`snCdD$;;flSw;KZ
zil$5a0<+NA)ZiGy?$Re;fp6vV<?v!i6Y6SeHtpE)^wFc=yeg``Y5%LFvyZ3xZsT|l
z+N_$6rbmV9BzBthT$G2Daz>hyLWwffdR0hB5i3e4)xpdZ5k-qLq^KkzlbcFgk4p65
zDNiA!biaR_zwX!W%{hL*@AtYs*XQ%OuFHOgTufRja-NAcvHa)zH2-oEDdp?$y;C#8
z_NlPXdP7V@BIGXv%aL2ml<~|joI3SjVGTR>=0Q4fPEmjuOiCl*n2@DCFHI9>%$#XW
zHsI&UlPgI{LdbH?cvM!_geMT{2pUx^#na1(jEm{%t^`{yAfN$&z$bLQe}7h|5upTX
z&xmFMw8i}|bKyeyE$8S`BT9i4U_xLnu!^i@r(;+#=C&iDp^dIio+-x(?a)2wn7F#Q
zpZJF{lEPMNu&<+{q6HKIx22r$A2G2aW>)g9ean_E6;GQsJLZ2lv7v-HM{9s~OiZUe
z)Hx%kEKf^qC}RwShzmENq@?tx-35{nDhPI)zpkxm_+$rKz;ba)f7h+DvM{Z~yb+^#
zP4c9w>P8nAkQz(joE#m6<;3gLZWR?>z<|V)0}WBflTp#Th`lY+j+P(az_c>fT`sOG
zkG17}%Ve`yk#NG?6PF}ss$#A;(jVgQDz&+Y@T5Y_X!IA@=%^hE4lXG!W<X>u&x$9+
zucl(BKVIN=gXeZ8Id7HyUJDn~P^>g)|Jk!|cpqS0*r`Jz0X~9SlK<XlV-pDkXWfaZ
zKv1FTDJSr)(I>wMoC()z5ZZj#6^`d3)Fc)#z!r{{lLlVjl0{2hKuo)Np`EsnS3Ljf
zeckKp24AvJGlMBJ(ATF;p`R{TKnD>PR(3fZX_4N7RSvBido}2dLIyn*Mza=G#`m>j
zeQ(T<bhs93g9M)E{$YK)-Qw81rWP@JCj>>&h8g4#Vrcu(34sNCC_uqEV*%T_lapzx
zEh%6!koD%RTSHb|qlWJ}T~=Dk%yH@_KEv<K2+h20MxhyMlTRSMns^M2EpPF=;<k0G
z)Y4Kct;9)5g8)EATPiQCp_MD`^17mKKWwRW?hBA*uQA}>Ts(f3%U@)0QU~c9FW?oL
zdN|lTFTZ<@X_=XsI0&gq{4|$nZin0AUrNv!I={Vw>Oj@hQafwf%GEUkYanir(;*(Y
z9|*J1Iws07zyHn)wzjv|XT9c<C4pMXgmDhmeiM`U7eHcM;}k2P3y~=$0Qm76WhGvr
zuwNto4t*2GrYUF(X=&e~;{xB57EibPQ%fukDs|y()ZQQXue4KCeWKWzhlaB%`P?}~
zAf-ujSiy_CY<7$#do=h{aEH@V;>WP5Q{6*MbyxxMZWsd239+t789+)AfnDv+N&Qvp
z*QZg+Fw(}wCCIq=wFmPY!01GFv9Y6*QvlLlhTU5{7kJT`fO>4)?6cHMvu8($OOey`
zO4f;#X5!=IR%O{;K*s0JYHMrro>^}qT(YC&7X^#dDICi;8~e1K&d#2@V1W-q#?;L4
z*Jv7ercg%RshdA%j(O@o40UmEa*8k5@Zwc`NJyz9c6an9E2*?#Pbv`(*X<Du?Yv%w
zMs3V`>@!fhNTU@;FOoc^G4hO7zc+6_4musy3O~eI%NWz@L)c4rE8ZFwlk%JwR_*&?
zD}A%soz8H7JRxW~ZBug{H9h;xrCOpkpKJKW8@%f4>c*(6_n}KNA{?tW-;^)NwPk+M
zJxTQT%VH^Sxg9&TgWhhcQPih@#Yf;i<!;sWed@v5=8XfNPE=Qq<)(MGR>zB_xWOPz
zZES6)O`8TR_j;Jlv%!BId`6RsU7<MECrfTU=y>X@al@BI$JU#0X<F~MGzJxHI5I)s
z1Da})228-pB}>j+y7b`r^L~&O{nwo7qGKI)_V!#A)N<YB<D$#(s5@gj;p9QVf(3xk
zWM;O6P}C;d^at0SQP$0IXhFp3>g=r7B^8{SvfL=%2{)H@BqupFRo7JcaxPM;${4vV
z5TDY2<n{3osx^8cqzs(qFD6WES^c`BSD5M3bdbJ)(cA_frnU3fX^y67+*@;VNYw|9
zQ<9%3V5eNn<o({;X`q!IJC2U9Vzx0qK_WA2VWO8UMnvqMIQcQZpQfJbc&4#f#C1>l
zek9+HWM;^85NJdo0P^Y1U)2R0%??*rf&!D^dy42IV=A@RqRSm+X2fTAAJ6`ey@CoK
zLf#>etzLaEcWUXrdoj?Dq%Zt?aO*gh;h#^QI>k_9o{aCi>-zy3T-F0xw2vOnS_(o{
zOsKl;oI$nJ{()ZtPs;3&!nzKA4f*Q3r)!gSC6bp(W1`E*wuAN$*peib|6N&mvs|8-
zqVeF{=BRS@%a>I)VS~cHbrpV{zY^l%@pi#ki7NK%bo<GV9|uvNV<-7WX(O^B_i!2w
zO*dGv#rYzX12-xq6S^+sR_=YI#uu*tX$5b))CGDe!oYLaE;wqzNe!|fq;c)Uqr)h<
z_4I=rGM~xR4hAo4sIR|!ZWs>&K?t6j#|wH|WPN+!)2XFvH_aH!{fGMDV|exO4~AQ9
z4ZF1~f(-Tjlm8CkPo~7;hqbQ!4-1Phg`$-lg8<GnM}7!uOn;;{B5Za(0mVgPWr3uD
zub~Pfq^*=QjrZl%4x7K9wp$0Oaqm#aTkg&d7Bz}=UZiUUi6TmqUT))hJRECSLF#r$
zfAxEN`x0YWGNXSsZrooor_=lOZ<LA{enqB~3VqCki!%=BXVX2VriS>NQ<7sW&)Q8#
zvY#fE>-}Ok-H2v5E35Ft#9Dk!ZA%YmUGa67fK_yKQqG?bEq12Wpr@~|q@<+o)hlzo
zC88jgRyQxNE>bXMqpB&?6I=zl<~7D5#7RWT=5m*;$8y60+1<V{vGjwt18yRI)~$;*
zdb03sm<q|3zM4xINDwrKDGf4;4*>J9!HLR~Us@Nn>1ST8o7-|_ua-plpxuS{KPP|I
zmdf5_f7`2jO)<5ve_?c5aQ2g$DT?jSC*Ho0p01&)n!&H*YY>zGKLA7;mw9rCgXatF
z$96ZJ`JCqRMd1FYQZ^;-o@goGE6cd3G0zMS!k%aH3!(<EpE=_V4ZVCmQ4A^!=l$p~
z_;dV34L)Z79*%7TMnoje4;rk3NoKNYoZjnSn!{Z#$*inY0vyC61?G~O|5457ZC(7e
z-<GyZlC8*@zyK<1%5Y3yxen=BS-Tj%PX>sHh=2zNb1pwJmd<p?J&`e3QgU*bii6<0
zfGZ}EgcUn8?9PAt%D4cvpLF+{Gd`m`n=yKKQ*VMJrOPyWd?-vhC*33Xynd>`mD2*s
zR5Q~zFreIdB?S$>@9Jt^Jqf1Z_G=GH>iVpN@Nkvu53#5<myRc~0h7(;?3!()j;?P2
z7Loj`S(`&Tb=u=I?BGpAEB-R3X%MTE&Ycsq@j~}Y6;!bvt<Mcrg0uJ+IL}~v%q@{|
zR4;@8V)bXXlr0jbzoCo@b_}qOfno*fqN8J+)?s+hH=h)w6wes#<^lO8?yv!<dt6|$
zf&-hDXqlGE35<=ItMUiyMTgz#TW~O31hIyGT1|<Lq4()}4I%xfq$q#>Ze&Q?;oW-C
zeEPQ?Yn#)aKWJ>4>t+;x$7L3KAsI8w&B|wJ5~uKh7FW-pl`RXKxWs<DEvAWiX6}uq
z>(=!}t@p{>k)F3BbmFy46)uTFp^(dEuw5K(q9BzAG{=>7lL8BFd=*Dz$jqFz=!C02
zKv}U}EQ|d0*UEF;qC}x@AP)PF)uHC0r5`L0yX^dku}9c{RO+&M%N8;k#~b5ejsH;w
zfomLlh^LCYnV>OY6N1shhqhK$E#xa+aT=r}oA5OHd#(2$ul-CR3-)IS5-9oj@#EA$
zWLZL4<ySJ!cFBnObLTRgIs4*8{vTGE{*W(~QE~_V0*0YwVX0gke@EE7hOds}ML^oS
z+ME(vE(ZByw*Eox0vrMtq3NFrTw!Smf7jOC-P+=R6K~FziP-7@?4<g2Yu0$vI0dmv
zDx<#Utndd}eE)@i<S&UjA0OeN(bvzt>T9$XU##8qHy*j99g-0_frFUn=12b^Mmeec
zNO(8{fcS5Tk55Th5TldE{Zr#ROIW>|%JObAYeDk84|=1d0vj*^aBH3IUQZ#T<Hn+Q
zwi?G&W~K*2QUK+{h7T7jAGm(5Wa(t<XkYu~%Y*wrFd%JISTP24RL@V;J-^1pJYL^;
zATh=G^T*kgdE!!tg6f=|gN1(7RIsFQe&QZ}Yjx+EV@Ejc&iu@sdla(F%WFNZ5{>#_
zM2&t+kmkcQ57X$=PWKi_7v+F8c=j?GK04UEDN~0X?7Ecu{!iWhSc3^{*rDf{c0!UU
z6(iln`xmae3bMZyKC$ez2M#+9wIef|&>3iIc&Sc9r*3>ycw!2<X_=W>NO7%T5N&f$
z_%Vgvk?oIWJia6mH_e{ZSl%u<NF+haCW+9302!2?uIGQxA9mi?ccK5IQC)9!@DwtC
z#W-&zj6}mH#u6DaeeA!%VqNdIU3W4H4L_#AxHTq;=lJzvS$+@AOoU!03c@B8R-D)&
zf(awpq2n@^V3_}f$nwn=t)9$@qgxBZP+@di>-D~LkmB|0amCK;*IxZ0C%A&kLY$$8
zE|VRVRqniGRZ~8>pztq>^0r4k6%!4|1{e0CytX~M1z=@pdtjWIsED>z<4>LUZ8eT^
zvjEQU-n~rp`Sj@%2^|V5tnXN|I1x<4_krvK7C3L&(v6j>>dPZpMvUPDVN#>4kV?lP
zct@8N8+P-tXyO!5H=<8MZez6lAI&V#Y2*l@$;!e)9dJ#@7$??5OW0Z0(a|Jb8Fccb
z0~{li6-1QqNa!6ytEvq)Cesr>+NDa9Jn3D4@5h-Du0G$&<7+@J_6DjP2rxRVfkl2s
zPU4ZA;e9v=WwN_m(VXfl85yc>o0y>hh?=GN$99eBmj(s~mD{4qUT4}(heo8On2=0k
zsD;~e&-wXDRP%%kY`p=@eC1eBNeO$BF$PjqSGmSmz9HeWOOk610f2y@Ef>R2{OdS7
zNdYU#w{eU8gI5%Jwx_j8GzmfAb#wD6x%}qKc0fdAjnQvdAc*|zGu8usGWKuL_(O?0
zv?&U7&GS23w1SimAQe!Ct%D@z)<U%g7W~G3=)k}wkY&T4j*@r9h`L_%K*uN?zS4+{
zVE2=CB%B%rKX3_M3KMN`A-%;nmhW5{K8xV9dv`bfILwSpW`JV9vZaw|0%``~l?3iF
z-f%p*N0W;Ww2-;G|4HtOE%)~DNOX&9TkQ>#1WM`AcGOXW7xp31D6UDds2H-!jC}=x
z1v<FX6bg($j>H|j!M=U5OL*RRKm^OH4n?&DNwBbng+)4Z=3J~hH;TDMJaq=a!thn@
zyFq3!?(g{to2X<J>q<w5Wp6Go$QyoSzyKvR>C(kEzgwSK#^nSj!Y)D=fYNKKytpaR
z@$cB~3Ebz1a{c&2iFu&%gwv;Qylkf#uwuguHgM!S7Z0WI0I~1{h?%sSb0BK#v?<08
z+<yss4!`rS`%q|Og%vSP5FB=<3GO%}D74|sOh^17Yz72LX|gC8k{l?B&QxCG&O`TZ
zeV)cQJAeKP<6VgPaxodQ%`BxOn(>y%si$?$b7RGTqCU(8un8^mLY;<E?~AIoolQ;c
z#f&A)st8#d^<46BYD2alY_+yhSXDoG0D+`8GQ{!B9?D<%9!vTt>NME!Md?lbDTL-t
z-p?L9cu&pAHNe%AmbOAX65Zm0L+(4~UdRj6uik$ex+%l1GPXAV0$R?iDQ9xj9X|}^
zmZR2mqe0Ze&KKA6SwOMo=6&2NZf<9i`7?|kwGjBwk4O!4RB=f;mTjY~FOhOPEe}hL
z{e3gP5EA^Fjk9712|W!X7dehHHVPfnB;E0%f4ZMO9Ntb;*`scq*QfNanA}vTJvxkA
zL>Uoy;6Pi}6Xd6xS+v)X_Pjhjv5)&^TWK5%)-+*$=ZE<tBoX46hzMb8JBl7OQ@2Z%
zNwm_S#e5dTI=Kc>#<%aMeUne<AP%LbmZCm(NHnjk;^N9=&a`PdJ6CQpNP-~Xl;-6@
zOkV34at2N`BLhYx#($2<^wHb`re*N^z=rv^a;5x}s3^fhw0)j>^%?Vu<bW)A$g5Wi
z*1$;`8|SB|TT!+!jOXgdBA8xGvE1Zws;a6iN2WiZveFs3yf-~zzRe$bQ}fo4i=h1r
zHnTh>yW#u3@#R<HB64!<v_#AzdwK3%(l%FDhUi8`M5xc$V4^rwl=$$xUBim@sQ!Ir
zZ-?jafx*4UYWM7b#TNxO4n~N^d==ltZ<>cj{1YRJ@c(%Gu4LO3y!9*!y?C(`?;S~?
zPdOk`$u#uyl+j_#Y|MfQ95Un}aE4;|UGGQm2jAI#{dz+j!?$~M*;Y3z$qq-f)0i&@
zXsHj{uO*Q*aePpsC#ck+hbd;h=p0NpOaF+7(v$R0;o1jSqle`(i1y=*u@R-6-QCgh
zk}vRm%w!HpCyUtHYlkcrkrR5A<GXHXCG}`B@`kvs^7Yq*an}_qj)LOI*t{f0Qk1;+
znd$Ql#yY5z_OO$v<^u-A2ovN%YBn}p%z8>mqbKpY{Q<63vhP}cIQpGnGLf2DEloGw
GaNz&RPMUQ9

literal 0
HcmV?d00001

diff --git a/docs/en/calculators/par/theorie_plans.md b/docs/en/calculators/par/theorie_plans.md
new file mode 100644
index 000000000..c6905b2ef
--- /dev/null
+++ b/docs/en/calculators/par/theorie_plans.md
@@ -0,0 +1,91 @@
+# Passe à ralentisseurs plans (Denil)
+
+## Caractéristiques géométriques
+
+![Caractéristiques d'une passe à ralentisseurs plans (Denil)](theorie_plans_schema.png)
+
+*Extrait de Larinier, 2002[^1]*
+
+## Lois hydrauliques issues des abaques
+
+Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(Q^*\)&nbsp;:
+
+$$ Q^* = \dfrac{Q}{\sqrt{g}L^{2,5}} $$
+
+ à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+
+![Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 10%](baffle_fishway_plans_slope_10_.svg)
+
+*Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+
+![Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 15%](baffle_fishway_plans_slope_15_.svg)
+
+*Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+
+![Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 20%](baffle_fishway_plans_slope_20_.svg)
+
+*Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 20% (Extrait de Larinier, 2002[^1])*
+
+Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+
+On a donc&nbsp;:
+
+$$ ha/L = a_2(S) Q^{*2} + a_1(S) Q^* + a_0(S) $$
+
+$$a_2(S) = 315.110S^2 - 115.164S + 6.85371$$
+
+$$a_1(S) = - 184.043S^2 + 59.7073S - 0.530737$$
+
+$$a_0(S) = 15.2115S^2 - 5.22606S + 0.633654$$
+
+Et&nbsp;:
+
+$$ h/L = b_2(S) Q^{*2} + b_1(S) Q^* + b_0 $$
+
+$$b_2(S) = 347.368S^2 - 130.698S + 8.14521$$
+
+$$b_1(S) = - 139.382S^2 + 47.2186S + 0.0547598$$
+
+$$b_0(S) = 16.7218S^2 - 6.09624S + 0.834851$$
+
+## Calcul de \(ha\), \(h\) et \(Q\)
+
+On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(Q^*\)&nbsp;:
+
+$$ ha = L \left( a_2 (Q^*)^2 + a_1 Q^* + a_0 \right)$$
+
+$$ h = L \left( b_2 (Q^*)^2 + b_1 Q^* + b_0 \right)$$
+
+En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+
+$$ Q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/L)}}{2 a_2}$$
+
+Et on a enfin&nbsp;:
+
+$$ Q = Q^* \sqrt{g} L^{2,5} $$
+
+Les limites de calcul de \(Q^*\), \(ha/L\) et \(h/L\) sont fixées à partir des extrémités des courbes des abaques.
+
+## Vitesse débitante
+
+La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+
+$$ V = \dfrac{Q}{A_w} $$
+
+pour les passes à ralentisseurs plans en utilisation les notations du schéma ci-dessus, on aura :
+
+$$ A_w = B \times \left( h - \dfrac{C+D}{2} \sin(45°) \right)$$
+
+Ce qui donne avec les proportions standards :
+
+$$ A_w = L \left(0.583 h - 0.146L \right) $$
+
+## Cote de radier amont \(Z_{r1}\)
+
+$$ Z_{r1} = Z_{d1} - D \sin(45° + \arctan(S)) $$
+
+## Cote d'arase minimale des murs latéraux \(Z_m\)
+
+$$ Z_m = Z_{r1} + - H_{min} \sin(45° + \arctan(S)) $$
+
+[^1]: Larinier, M. 2002. “BAFFLE FISHWAYS.” Bulletin Français de La Pêche et de La Pisciculture, no. 364: 83–101. doi:[10.1051/kmae/2002109](https://doi.org/10.1051/kmae/2002109).
diff --git a/docs/en/calculators/par/theorie_plans_schema.png b/docs/en/calculators/par/theorie_plans_schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..a25abf5b7a92c69db30199bdfb3daa19cd32be1f
GIT binary patch
literal 95961
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%0DCxM&QBaKg
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
b8XG4c9u}Wh6Y#XFz}GahS*F)b>^%Pm--IL{

literal 0
HcmV?d00001

diff --git a/docs/en/calculators/par/theorie_suractif.md b/docs/en/calculators/par/theorie_suractif.md
new file mode 100644
index 000000000..b5cb6167d
--- /dev/null
+++ b/docs/en/calculators/par/theorie_suractif.md
@@ -0,0 +1,77 @@
+# Passe à ralentisseurs à fonds suractif
+
+![Caractéristiques d'une passe à ralentisseurs à fonds suractif](theorie_suractif_schema.png)
+
+*Extrait de Larinier, 2002[^1]*
+
+## Lois hydrauliques issues des abaques
+
+Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(q^*\)&nbsp;:
+
+$$ q^* = \dfrac{Q/L}{\sqrt{2g}a^{1,5}} $$
+
+ à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+
+![Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 10%](baffle_fishway_suractif_slope_10_.svg)
+
+*Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+
+![Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 15%](baffle_fishway_suractif_slope_15_.svg)
+
+*Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+
+Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+
+On a donc&nbsp;:
+
+$$ ha/a = a_2(S) q^{*2} + a_1(S) q^* + a_0(S) $$
+
+$$a_2(S) = - 0.354624S - 0.0153156$$
+
+$$a_1(S) = 0.514953S + 1.25460$$
+
+$$a_0(S) = - 2.22434S + 0.596682$$
+
+Et&nbsp;:
+
+$$ h/a = b_2(S) q^{*2} + b_1(S) q^* + b_0 $$
+
+$$b_2(S) = - 0.559218S + 0.000504060$$
+
+$$b_1(S) = 1.15807S + 1.07554$$
+
+$$b_0(S) =  - 2.62712S + 0.601348$$
+
+## Calcul de \(ha\), \(h\) et \(Q\)
+
+On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(q^*\)&nbsp;:
+
+$$ ha = a \left( a_2 (q^*)^2 + a_1 q^* + a_0 \right)$$
+
+$$ h = a \left( b_2 (q^*)^2 + b_1 q^* + b_0 \right)$$
+
+En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+
+$$ q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/a)}}{2 a_2}$$
+
+Et on a enfin&nbsp;:
+
+$$ Q = L q^* \sqrt{g} a^{1,5} $$
+
+Les limites de calcul de \(q^*\), \(ha/a\) et \(h/a\) sont fixées à partir des extrémités des courbes des abaques.
+
+## Vitesse débitante
+
+La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+
+$$ V = \dfrac{Q}{A_w} $$
+
+pour les passes à ralentisseurs à fond suractif en utilisation les notations du schéma ci-dessus, on aura :
+
+$$ A_w = h \times L$$
+
+## Cote de radier amont \(Z_{r1}\)
+
+$$ Z_{r1} = Z_{d1} + \frac{2.6 a S - a}{\sqrt{1 + S^2}} $$
+
+[^1]: Larinier, M. 2002. “BAFFLE FISHWAYS.” Bulletin Français de La Pêche et de La Pisciculture, no. 364: 83–101. doi:[10.1051/kmae/2002109](https://doi.org/10.1051/kmae/2002109).
diff --git a/docs/en/calculators/par/theorie_suractif_schema.png b/docs/en/calculators/par/theorie_suractif_schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..53898288de611721cfc3fa08d5a8cd5a34f6521b
GIT binary patch
literal 75501
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
WzxeqQmlXM+h*xkxn178jD(hF@G_TzN

literal 0
HcmV?d00001

-- 
GitLab


From bf9d84acddf561d6734e6f70c336b4a2ec9142f1 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 14 Aug 2020 15:47:07 +0200
Subject: [PATCH 076/101] Update translation for jalhyd#216

---
 src/locale/messages.en.json | 58 +++++++++++++++----------------------
 src/locale/messages.fr.json | 58 +++++++++++++++----------------------
 2 files changed, 46 insertions(+), 70 deletions(-)

diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index b4b6e6ca1..cecb243f9 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -631,48 +631,36 @@
     "ERROR_VERIF_MR_YMIN": "Water level %Y% too low (minimum: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "None of the aprons is crossable",
     "ERROR_VERIF_MRC_CROSSABLE_WIDTH": "Crossable width %width% m is lower than the width of a block pattern %patternWidth% m",
-    "WARNING_VERIF_MRC_VMAX_APRON_N": "Apron #%N%: maximum speed %V% too high (maximum: %maxV%)",
-    "WARNING_VERIF_MRC_PVMAX_APRON_N": "Apron #%N%: dissipated power %PV% too high (maximum: %maxPV%)",
-    "WARNING_VERIF_MRC_YMIN_APRON_N": "Apron #%N%: water level %Y% too low (minimum: %minY%)",
+    "WARNING_VERIF_MRC_VMAX_APRON_N": "Maximum speed %V% too high (maximum: %maxV%)",
+    "WARNING_VERIF_MRC_YMIN_APRON_N": "Water level %Y% too low (minimum: %minY%)",
     "INFO_VERIF_MRC_CROSSABLE_WIDTH": "Maximum crossable width is %width% m",
     "ERROR_VERIF_NO_PRESET": "This species group is not compatible with this pass type",
-    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%N%: diving jet not supported",
-    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall: diving jet not supported",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Wall #%NC%, structure #%NS%: diving jet not supported",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Downwall, structure #%NS%: diving jet not supported",
-    "ERROR_VERIF_PAB_DHMAX": "Wall #%N%: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_DW": "Downwall: fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Downwall: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET": "Wall #%N%: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Downwall: fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
-    "ERROR_VERIF_PAB_BMIN": "Wall #%NC%, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "ERROR_VERIF_PAB_BMIN_DW": "Downwall, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "WARNING_VERIF_PAB_BMIN": "Wall #%NC%, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "WARNING_VERIF_PAB_BMIN_DW": "Downwall, structure #%NS%: slot/weir width %L% too low (minimum: %minB%)",
-    "ERROR_VERIF_PAB_LMIN": "Wall #%N%: basin length %LB% too low (minimum for surface jet: %minLBS%, minimum for diving jet: %minLBS%)",
-    "ERROR_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
-    "WARNING_VERIF_PAB_LMIN_JET": "Wall #%N%: basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
-    "WARNING_VERIF_PAB_HMIN": "Wall #%NC%, structure #%NS%: head on weir %h1% too low (minimum: %minH%)",
-    "WARNING_VERIF_PAB_HMIN_DW": "Downwall, structure #%NS%: head on weir %h1% too low (minimum: %minH%)",
-    "ERROR_VERIF_PAB_SMIN": "Wall #%NC%, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "ERROR_VERIF_PAB_SMIN_DW": "Downwall, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "WARNING_VERIF_PAB_SMIN": "Wall #%NC%, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "WARNING_VERIF_PAB_SMIN_DW": "Downwall, structure #%NS%: orifice surface %S% is too low (minimum: %minS%)",
-    "ERROR_VERIF_PAB_YMOY": "Wall #%N%: basin depth %PB% too low (minimum for surface jet: %minPBS%, minimum for diving jet: %minPBP%)",
-    "ERROR_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
-    "WARNING_VERIF_PAB_YMOY_JET": "Wall #%N%: basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
-    "ERROR_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
-    "WARNING_VERIF_PAB_YMOY_2_DH": "Wall #%N%: basin depth %PB% lower than 2x fall %DH%",
-    "ERROR_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% too high (maximum: %maxPV%)",
+    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Diving jet not supported",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Diving jet not supported",
+    "ERROR_VERIF_PAB_DHMAX": "Fall %DH% too high (maximum for surface jet: %maxDHS%, maximum for diving jet: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_JET": "Fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET": "Fall %DH% too high for jet type ENUM_STRUCTUREJETTYPE_%jetType% (maximum: %maxDH%)",
+    "ERROR_VERIF_PAB_BMIN": "Slot/weir width %L% too low (minimum: %minB%)",
+    "WARNING_VERIF_PAB_BMIN": "Slot/weir width %L% too low (minimum: %minB%)",
+    "ERROR_VERIF_PAB_LMIN": "Basin length %LB% too low (minimum for surface jet: %minLBS%, minimum for diving jet: %minLBS%)",
+    "ERROR_VERIF_PAB_LMIN_JET": "Basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
+    "WARNING_VERIF_PAB_LMIN_JET": "Basin length %LB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minLB%)",
+    "WARNING_VERIF_PAB_HMIN": "Head on weir %h1% too low (minimum: %minH%)",
+    "ERROR_VERIF_PAB_SMIN": "Orifice surface %S% is too low (minimum: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Orifice surface %S% is too low (minimum: %minS%)",
+    "ERROR_VERIF_PAB_YMOY": "Basin depth %PB% too low (minimum for surface jet: %minPBS%, minimum for diving jet: %minPBP%)",
+    "ERROR_VERIF_PAB_YMOY_JET": "Basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
+    "WARNING_VERIF_PAB_YMOY_JET": "Basin depth %PB% too low for jet type ENUM_STRUCTUREJETTYPE_%jetType% (minimum: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY_2_DH": "Basin depth %PB% lower than 2x fall %DH%",
+    "WARNING_VERIF_PAB_YMOY_2_DH": "Basin depth %PB% lower than 2x fall %DH%",
+    "ERROR_VERIF_PAB_PVMAX": "Dissipated power %PV% too high (maximum: %maxPV%)",
     "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability",
     "ERROR_VERIF_PAR_SLOPE": "Slope %S% too high (maximum: %maxS%)",
     "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)",
     "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group",
     "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities",
-    "WARNING_VERIF_PAB_PVMAX": "Wall #%N%: dissipated power %PV% very high (recommanded: %maxPV%)",
-    "WARNING_VERIF_PAB_ORIFICE": "Wall #%NC%, structure #%NS%: uninsured passage over an orifice",
-    "WARNING_VERIF_PAB_ORIFICE_DW": "Downwall, structure #%NS%: uninsured passage over an orifice",
+    "WARNING_VERIF_PAB_PVMAX": "Dissipated power %PV% very high (recommanded: %maxPV%)",
+    "WARNING_VERIF_PAB_ORIFICE": "Uninsured passage over an orifice",
     "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings",
     "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index d24d53920..df635cb26 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -634,49 +634,37 @@
     "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable",
     "ERROR_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable %width% m est inférieure à la largeur d'un motif de blocs %patternWidth% m",
-    "WARNING_VERIF_MRC_VMAX_APRON_N": "Radier n°%N%&nbsp;: vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
-    "WARNING_VERIF_MRC_PVMAX_APRON_N": "Puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%) dans le radier %N%",
-    "WARNING_VERIF_MRC_YMIN_APRON_N": "Radier n°%N%&nbsp;: tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
+    "WARNING_VERIF_MRC_VMAX_APRON_N": "Vitesse maximale %V% trop élevée (maximum&nbsp;: %maxV%)",
+    "WARNING_VERIF_MRC_YMIN_APRON_N": "Tirant d'eau %Y% insuffisant (minimum&nbsp;: %minY%)",
     "INFO_VERIF_MRC_CROSSABLE_WIDTH": "La largeur franchissable maximale est %width% m",
     "ERROR_VERIF_NO_PRESET": "Ce groupe d'espèces n'est pas compatible avec ce type de passe",
-    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%N%&nbsp;: jet plongeant non supporté",
-    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval&nbsp;: jet plongeant non supporté",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: jet plongeant non supporté",
-    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: jet plongeant non supporté",
-    "ERROR_VERIF_PAB_DHMAX": "Cloison n°%N%&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_DW": "Cloison aval&nbsp;: chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
-    "ERROR_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
-    "ERROR_VERIF_PAB_DHMAX_JET_DW":"Cloison aval&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET": "Cloison n°%N%&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
-    "WARNING_VERIF_PAB_DHMAX_JET_DW": "Cloison aval&nbsp;: chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
-    "ERROR_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "ERROR_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "WARNING_VERIF_PAB_BMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "WARNING_VERIF_PAB_BMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
-    "ERROR_VERIF_PAB_LMIN": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante (minimum pour jet de surface&nbsp;: %minLBS%, minimum pour jet plongeant&nbsp;: %minLBP%)",
-    "ERROR_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
-    "WARNING_VERIF_PAB_LMIN_JET": "Cloison n°%N%&nbsp;: longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
-    "WARNING_VERIF_PAB_HMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
-    "WARNING_VERIF_PAB_HMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
-    "ERROR_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "ERROR_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "WARNING_VERIF_PAB_SMIN": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "WARNING_VERIF_PAB_SMIN_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
-    "ERROR_VERIF_PAB_YMOY": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante (minimum pour jet de surface&nbsp;: %minPBS%, minimum pour jet plongeant&nbsp;: %minPBP%)",
-    "ERROR_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
-    "WARNING_VERIF_PAB_YMOY_JET": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
-    "ERROR_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
-    "WARNING_VERIF_PAB_YMOY_2_DH": "Cloison n°%N%&nbsp;: profondeur de bassin %PB% inférieure à 2x la chute %DH%",
-    "ERROR_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%)",
+    "ERROR_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Jet plongeant non supporté",
+    "WARNING_VERIF_PAB_DIVING_JET_NOT_SUPPORTED": "Jet plongeant non supporté",
+    "ERROR_VERIF_PAB_DHMAX": "Chute %DH% trop importante (maximum pour jet de surface&nbsp;: %maxDHS%, maximum pour jet plongeant&nbsp;: %maxDHP%)",
+    "ERROR_VERIF_PAB_DHMAX_JET": "Chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
+    "WARNING_VERIF_PAB_DHMAX_JET": "Chute %DH% trop importante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (maximum&nbsp;: %maxDH%)",
+    "ERROR_VERIF_PAB_BMIN": "Largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "WARNING_VERIF_PAB_BMIN": "Largeur de l'échancrure ou de la fente %L% insuffisante (minimum&nbsp;: %minB%)",
+    "ERROR_VERIF_PAB_LMIN": "Longueur de bassin %LB% insuffisante (minimum pour jet de surface&nbsp;: %minLBS%, minimum pour jet plongeant&nbsp;: %minLBP%)",
+    "ERROR_VERIF_PAB_LMIN_JET": "Longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
+    "WARNING_VERIF_PAB_LMIN_JET": "Longueur de bassin %LB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minLB%)",
+    "WARNING_VERIF_PAB_HMIN": "Charge sur l'échancrure %h1% insuffisante (minimum&nbsp;: %minH%)",
+    "ERROR_VERIF_PAB_SMIN": "Surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "WARNING_VERIF_PAB_SMIN": "Surface de l'orifice %S% insuffisante (minimum&nbsp;: %minS%)",
+    "ERROR_VERIF_PAB_YMOY": "Profondeur de bassin %PB% insuffisante (minimum pour jet de surface&nbsp;: %minPBS%, minimum pour jet plongeant&nbsp;: %minPBP%)",
+    "ERROR_VERIF_PAB_YMOY_JET": "Profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
+    "WARNING_VERIF_PAB_YMOY_JET": "Profondeur de bassin %PB% insuffisante pour le jet ENUM_STRUCTUREJETTYPE_%jetType% (minimum&nbsp;: %minPB%)",
+    "ERROR_VERIF_PAB_YMOY_2_DH": "Profondeur de bassin %PB% inférieure à 2x la chute %DH%",
+    "WARNING_VERIF_PAB_YMOY_2_DH": "Profondeur de bassin %PB% inférieure à 2x la chute %DH%",
+    "ERROR_VERIF_PAB_PVMAX": "Puissance dissipée %PV% trop élevée (maximum&nbsp;: %maxPV%)",
     "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement",
     "ERROR_VERIF_PAR_SLOPE": "La pente %S% m est trop élevée (maximum&nbsp;: %maxS% m)",
     "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum&nbsp;: %minY%)",
     "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces",
     "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe",
     "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible",
-    "WARNING_VERIF_PAB_PVMAX": "Cloison n°%N%&nbsp;: puissance dissipée %PV% très élevée (recommandée&nbsp;: %maxPV%)",
-    "WARNING_VERIF_PAB_ORIFICE": "Cloison n°%NC%, ouvrage n°%NS%&nbsp;: franchissement non assuré sur un orifice",
-    "WARNING_VERIF_PAB_ORIFICE_DW": "Cloison aval, ouvrage n°%NS%&nbsp;: franchissement non assuré sur un orifice",
+    "WARNING_VERIF_PAB_PVMAX": "Puissance dissipée %PV% très élevée (recommandée&nbsp;: %maxPV%)",
+    "WARNING_VERIF_PAB_ORIFICE": "Franchissement non assuré sur un orifice",
     "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements",
     "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK",
     "ERROR_VERIF_SPECIES_NUB_KO": "FORM_ID_%uid%&nbsp;: franchissement impossible",
-- 
GitLab


From 0764c538032035367055bc3eded6efe80cd247ca Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Mon, 24 Aug 2020 13:26:42 +0200
Subject: [PATCH 077/101] Fix #443 - translate PAR doc into english

---
 docs/en/calculators/par/calage.md           | 48 +++++++++---------
 docs/en/calculators/par/formules.md         | 50 +++++++++----------
 docs/en/calculators/par/simulation.md       | 36 +++++++-------
 docs/en/calculators/par/theorie_fatou.md    | 54 ++++++++++-----------
 docs/en/calculators/par/theorie_mixte.md    | 44 ++++++++---------
 docs/en/calculators/par/theorie_plans.md    | 54 ++++++++++-----------
 docs/en/calculators/par/theorie_suractif.md | 44 ++++++++---------
 docs/fr/calculators/par/calage.md           |  2 +-
 docs/fr/calculators/par/theorie_plans.md    |  6 +--
 docs/fr/calculators/par/theorie_suractif.md |  2 +-
 mkdocs-en.yml                               |  6 +--
 11 files changed, 173 insertions(+), 173 deletions(-)

diff --git a/docs/en/calculators/par/calage.md b/docs/en/calculators/par/calage.md
index 905f051dc..ed209ce6e 100644
--- a/docs/en/calculators/par/calage.md
+++ b/docs/en/calculators/par/calage.md
@@ -1,38 +1,38 @@
-# Calage d'une passe à ralentisseurs
+# Baffle fishway (or humpback fishway) setup
 
-Ce module permet de dimensionner une passe à ralentisseur. Les types de passes à ralentisseurs supportés sont:
+This module allows to dimension a baffle fishway. Supported baffle fishway types are:
 
-- [passes à ralentisseurs plans](theorie_plans.md)&nbsp;;
-- [passes à ralentisseurs "Fatou"](theorie_fatou.md)&nbsp;;
-- [passes à ralentisseurs à fonds suractifs](theorie_suractif.md)&nbsp;;
-- [passes à ralentisseurs mixtes](theorie_mixte.md).
+- [plane baffles (Denil) fishway](theorie_plans.md);
+- ["Fatou" baffle fishway](theorie_fatou.md);
+- [superactive baffles fishway](theorie_suractif.md);
+- [mixed / chevron baffles fishway](theorie_mixte.md).
 
-Voir [l'ensemble des formules utilisées pour les passes à ralentisseurs](formules.md).
+See [all the formulas used for baffle fishways](formules.md).
 
-## Calage hydraulique de la passe
+## Hydraulic setup
 
-L'outil permet de calculer l'une des valeurs suivantes&nbsp;:
+This tool allows to calculate one of the following values:
 
-- le débit passant dans la passe (m<sup>3</sup>/s)&nbsp;;
-- la charge en amont de la passe (m)&nbsp;;
-- la largeur de la passe (m) pour les types ralentisseurs plans et Fatou&nbsp;.
+- flow through the pass (m<sup>3</sup>/s);
+- upstream head (m);
+- pass width (m) for plane and Fatou types.
 
-Compte tenu des paramètres obligatoires suivants&nbsp;:
+Given the following mandatory parameters:
 
-- le type de passe (Plans, Fatou, fonds suractifs ou mixtes)&nbsp;;
-- [la pente (m/m)](../hsl/pente.md).
+- pass type (Plane, Fatou, superactive, mixed);
+- [slope (m/m)](../hsl/pente.md).
 
-Le paramètre "Espacement entre les ralentisseurs (m)" est facultatif. S'il n'est pas renseigné, Sa valeur standard est alors calculée. S'il est fourni, si sa valeur s'écarte de plus de 10% de la valeur standard, une erreur est générée.
+Parameter "Space between baffles (m)" is optional. When not given, its standard value is calculated. When given, if its value deviates by more than 10% from standard value, an error is generated.
 
-## Calage altimétrique de la passe
+## Altimetric setup
 
-Les paramètres de calage altimétriques (cote de l'eau amont et cote de l'eau aval) sont facultatifs et permettent de calculer:
+Altimetric setup parameters (upstream water level and downstream water level) are optional and allow to calculate:
 
-- la longueur longitudinale et au fil de l'eau de la passe
-- le nombre de ralentisseurs
-- les cotes de radier et de déversement à l'amont et à l'aval de la passe
-- les cotes d'arase des murs latéraux à l'amont de la passe.
+- pass length in horizontal projection and following the slope
+- number of baffles
+- apron and spilling elevations, upstream and downstream
+- rake height of upstream side walls
 
-## Génération d'un module de simulation de passe à ralentisseurs
+## Generating a baffle fishway simulation module
 
-Les résultats d'une passe calée en altimétrie peuvent servir à générer un module de [simulation de passe à ralentisseurs](simulation.md) à l'aide du bouton ad hoc.
\ No newline at end of file
+Results of an altimetrically setup pass may be used to generate a [baffle fishway simulation](simulation.md) module, using the ad hoc button.
\ No newline at end of file
diff --git a/docs/en/calculators/par/formules.md b/docs/en/calculators/par/formules.md
index fea7ece75..43a97f534 100644
--- a/docs/en/calculators/par/formules.md
+++ b/docs/en/calculators/par/formules.md
@@ -1,56 +1,56 @@
-# Formules de calcul des passes à ralentisseurs
+# Baffle fishways (or humpback fishways) calculation formulas
 
-Pour le calcul de :
+For calculation of:
 
-- la charge amont \(ha\)&nbsp;;
-- la hauteur d'eau dans la passe \(h\)&nbsp;;
-- du débit \(Q\)&nbsp;;
-- de la vitesse débitante \(V\)&nbsp;;
-- la cote de radier amont \(Z_{r1}\)&nbsp;;
-- la cote d'arase minimale des murs latéraux \(Z_m\)
+- upstream head \(ha\);
+- water level in the pass \(h\);
+- flow \(Q\);
+- flow velocity \(V\);
+- upstream apron elevation \(Z_{r1}\);
+- minimal rake height of upstream side walls \(Z_m\)
 
-Se référer aux formules propres à chaque type de passe à ralentisseurs:
+Refer to the formulas specific to each baffle fishway type:
 
-- [passes à ralentisseurs plans](theorie_plans.md)&nbsp;;
-- [passes à ralentisseurs "Fatou"](theorie_fatou.md)&nbsp;;
-- [passes à ralentisseurs à fonds suractifs](theorie_suractif.md)&nbsp;;
-- [passes à ralentisseurs mixtes](theorie_mixte.md).
+- [plane baffles (Denil) fishway](theorie_plans.md);
+- ["Fatou" baffle fishway](theorie_fatou.md);
+- [superactive baffles fishway](theorie_suractif.md);
+- [mixed / chevron baffles fishway](theorie_mixte.md).
 
-## Cote de l'eau à l'amont de la passe \(Z_1\)
+## Upstream water elevation \(Z_1\)
 
 $$Z_{1} = Z_{d1} + h_a$$
 
-Avec \(Z_{d1}\) la cote de déversement du premier ralentisseur amont, \(h_a\) la charge amont.
+With \(Z_{d1}\) the spilling elevation of the first upstream baffle, \(h_a\) the upstream head.
 
-## Longueur de la passe
+## Pass length
 
-La longueur de la passe le long d'une ligne d'eau parallèle à la pente de la passe \(L_w\) est égale à&nbsp;
+Pass length along a water line parallel to the pass slope \(L_w\) equals
 
 $$L_w = (Z_1 - Z_2)\dfrac{\sqrt{1 + S^2}}{S}$$
 
-avec \(Z_1\) et \(Z_2\) les cotes de l'eau à l'amont et l'aval de la passe, \(S\) la pente.
+with \(Z_1\) and \(Z_2\) the upstream and downstream water elevations, \(S\) the slope.
 
-La longueur de la passe le long de la pente \(L_S\) doit être un multiple de la longueur entre les ralentisseurs \(P\) arrondi à l'entier supérieur&nbsp;:
+Pass length along the slope \(L_S\) must be a multiple of the length between two baffles \(P\) rounded to the greater integer:
 
 $$L_S = \lceil (L_w - \epsilon) / P \rceil \times P $$
 
-Avec \(\epsilon\) = 1 mm pour laisser une marge avant le rajout d'un ralentisseur supplémentaire.
+With \(\epsilon\) = 1 mm to leave a margin before adding an extra baffle.
 
-La projection horizontale de la longueur de la passe \(L_h\) est alors égale à&nbsp;:
+Horizontal projection of the pass length \(L_h\) thus equals:
 
 $$L_h = \dfrac{L_S}{\sqrt{1 + S^2}} $$
 
-## Nombre de ralentisseurs \(N_b\)
+## Number of baffles \(N_b\)
 
-Pour les types plans et Fatou&nbsp;:
+For plane and Fatou types:
 
 $$N_b = L_S / P + 1$$
 
-Pour les types à fonds suractifs et mixtes&nbsp;:
+For superactive and mixed types:
 
 $$N_b = L_S / P$$
 
-## Cotes de radier à l'aval \(Z_{r2}\) et de déversement à l'aval \(Z_{d2}\)
+## Downstream apron \(Z_{r2}\) and spilling \(Z_{d2}\) elevations:
 
 $$Z_{r2} = Z_{r1} - \dfrac{L_S \times S}{\sqrt{1 + S^2}}$$
 
diff --git a/docs/en/calculators/par/simulation.md b/docs/en/calculators/par/simulation.md
index d6005c233..37708677a 100644
--- a/docs/en/calculators/par/simulation.md
+++ b/docs/en/calculators/par/simulation.md
@@ -1,26 +1,26 @@
-# Simulation d'une passe à ralentisseurs
+# Baffle fishway (or humpback fishway) simulation
 
-Ce module permet de calculer différentes conditions hydrauliques sur une passe à ralentisseur dont la géométrie est connue. Cette géométrie provient de mesures topographiques ou du [résultat d'un calage de passe à ralentisseurs](calage.md).
+This module allows to calculate different hydraulic conditions on a baffle fishway with a known geometry. This geometry may come from topographical measurements or from the [result of a baffle fishway setup](calage.md).
 
-Les types de passes à ralentisseurs supportés sont:
+Supported baffle fishway types are:
 
-- [passes à ralentisseurs plans](theorie_plans.md)&nbsp;;
-- [passes à ralentisseurs "Fatou"](theorie_fatou.md)&nbsp;;
-- [passes à ralentisseurs à fonds suractifs](theorie_suractif.md)&nbsp;;
-- [passes à ralentisseurs mixtes](theorie_mixte.md).
+- [plane baffles (Denil) fishway](theorie_plans.md);
+- ["Fatou" baffle fishway](theorie_fatou.md);
+- [superactive baffles fishway](theorie_suractif.md);
+- [mixed / chevron baffles fishway](theorie_mixte.md).
 
-Voir [l'ensemble des formules utilisées pour les passes à ralentisseurs](formules.md).
+See [all the formulas used for baffle fishways](formules.md).
 
-L'outil permet de calculer l'une des valeurs suivantes&nbsp;:
+This tool allows to calculate one of the following values:
 
-- le débit passant dans la passe (m<sup>3</sup>/s)&nbsp;;
-- la cote de l'eau en amont de la passe (m)&nbsp;;
-- la cote de déversement en amont de la passe (m).
+- flow through the pass (m<sup>3</sup>/s);
+- upstream water elevation (m);
+- upstream spilling elevation (m).
 
-Compte tenu des paramètres obligatoires suivants&nbsp;:
+Given the following mandatory parameters:
 
-- le type de passe (Plans, Fatou, fonds suractifs ou mixtes)&nbsp;;
-- [la pente (m/m)](../hsl/pente.md)&nbsp;;
-- la largeur de la passe (m)&nbsp;;
-- la cote de déversement ou la cote de radier à l'amont (m)&nbsp;;
-- la cote de déversement ou la cote de radier à l'aval (m)&nbsp;.
+- pass type (Plane, Fatou, superactive, mixed);
+- [slope (m/m)](../hsl/pente.md).
+- pass width (m);
+- upstream spilling or apron elevation (m);
+- downstream spilling or apron elevation (m).
diff --git a/docs/en/calculators/par/theorie_fatou.md b/docs/en/calculators/par/theorie_fatou.md
index d8948bfc4..162db8256 100644
--- a/docs/en/calculators/par/theorie_fatou.md
+++ b/docs/en/calculators/par/theorie_fatou.md
@@ -1,34 +1,34 @@
-# Passe à ralentisseurs "Fatou"
+# "Fatou" baffle fiwhway
 
-## Caractéristiques géométriques
+## Geometrical characteristics
 
-![Caractéristiques d'une passe à ralentisseurs Fatou](theorie_fatou_schema.png)
+![Characteristics of a Fatou baffle fishway](theorie_fatou_schema.png)
 
-*Extrait de Larinier, 2002[^1]*
+*Excerpt fromLarinier, 2002[^1]*
 
-## Lois hydrauliques issues des abaques
+## Hydraulic laws given by abacuses
 
-Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(Q^*\)&nbsp;:
+Experiments conducted by Larinier, 2002[^1] allowed to establish abacuses that link adimensional flow \(Q^*\):
 
 $$ Q^* = \dfrac{Q}{\sqrt{g}L^{2,5}} $$
 
- à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+ to upstream head \(ha\) and the average water level in the pass \(h\) :
 
-![Abaques d'une passe à ralentisseurs Fatou pour une pente de 10%](baffle_fishway_Fatou_slope_10_.svg)
+![Abacuses of a Fatou baffle fishway for a slope of 10%](baffle_fishway_Fatou_slope_10_.svg)
 
-*Abaques d'une passe à ralentisseurs Fatou pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a Fatou baffle fishway for a slope of 10% (Excerpt fromLarinier, 2002[^1])*
 
-![Abaques d'une passe à ralentisseurs Fatou pour une pente de 15%](baffle_fishway_Fatou_slope_15_.svg)
+![Abacuses of a Fatou baffle fishway for a slope of 15%](baffle_fishway_Fatou_slope_15_.svg)
 
-*Abaques d'une passe à ralentisseurs Fatou pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a Fatou baffle fishway for a slope of 15% (Excerpt fromLarinier, 2002[^1])*
 
-![Abaques d'une passe à ralentisseurs Fatou pour une pente de 20%](baffle_fishway_Fatou_slope_20_.svg)
+![Abacuses of a Fatou baffle fishway for a slope of 20%](baffle_fishway_Fatou_slope_20_.svg)
 
-*Abaques d'une passe à ralentisseurs Fatou pour une pente de 20% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a Fatou baffle fishway for a slope of 20% (Excerpt fromLarinier, 2002[^1])*
 
-Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+To run calculations for all slopes between 8% and 22%, polynomes coefficients of abacuses above are themelves adjusted in the form of slope \(S\) depending polynomes.
 
-On a donc&nbsp;:
+We thus have:
 
 $$ ha/L = a_2(S) Q^{*2} + a_1(S) Q^* + a_0(S) $$
 
@@ -38,7 +38,7 @@ $$a_1(S) = 302.623S^2 - 106.203S + 13.2957$$
 
 $$a_0(S) = 15.8096S^2 - 5.19282S + 0.465827$$
 
-Et&nbsp;:
+And:
 
 $$ h/L = b_2(S) Q^{*2} + b_1(S) Q^* + b_0 $$
 
@@ -48,43 +48,43 @@ $$b_1(S) = 42.4113S^2 - 24.4941S + 8.84146$$
 
 $$b_0(S) = - 3.56494S^2 + 0.450262S + 0.0407576$$
 
-## Calcul de \(ha\), \(h\) et \(Q\)
+## Calculation of \(ha\), \(h\) and \(Q\)
 
-On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(Q^*\)&nbsp;:
+We can then use those coefficients to calculate \(ha\), \(h\) and \(Q^*\):
 
 $$ ha = L \left( a_2 (Q^*)^2 + a_1 Q^* + a_0 \right)$$
 
 $$ h = L \left( b_2 (Q^*)^2 + b_1 Q^* + b_0 \right)$$
 
-En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+Using the positive inverse function, depending on \(ha/L\), we get:
 
 $$ Q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/L)}}{2 a_2}$$
 
-Et on a enfin&nbsp;:
+And we finally have:
 
 $$ Q = Q^* \sqrt{g} L^{2,5} $$
 
-Les limites de calcul de \(Q^*\), \(ha/L\) et \(h/L\) sont fixées à partir des extrémités des courbes des abaques.
+Calculation limitations of \(Q^*\), \(ha/L\) and \(h/L\) are determined based on the extremities of the abacuses curves.
 
-## Vitesse débitante
+## Flow velocity
 
-La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+Flow velocity \(V\) corresponds to the minimum flow speed given the flow section \(A_w\) at the perpendicular of the baffle :
 
 $$ V = \dfrac{Q}{A_w} $$
 
-pour les passes à ralentisseurs Fatou en utilisation les notations du schéma ci-dessus, on aura :
+for Fatou baffle fishways using the notation of the schema above, we have:
 
 $$ A_w = B \times h $$
 
-Ce qui donne avec les proportions standards :
+Which gives with standard proportions:
 
 $$ A_w = 0.6hL $$
 
-## Cote de radier amont \(Z_{r1}\)
+## Upstream apron elevation \(Z_{r1}\)
 
 $$ Z_{r1} = Z_{d1} + \frac{0.3 S - 0.2}{\sqrt{1 + S^2}} $$
 
-## Cote d'arase minimale des murs latéraux \(Z_m\)
+## Minimal rake height of upstream side walls \(Z_m\)
 
 $$ Z_m = Z_{r1} + \frac{4 L}{3 \sqrt{1 + S^2}} $$
 
diff --git a/docs/en/calculators/par/theorie_mixte.md b/docs/en/calculators/par/theorie_mixte.md
index b9c77c510..8c06d11ec 100644
--- a/docs/en/calculators/par/theorie_mixte.md
+++ b/docs/en/calculators/par/theorie_mixte.md
@@ -1,28 +1,28 @@
-# Passe à ralentisseurs mixte ou à chevrons
+# Mixed / chevron baffles fishway
 
-![Caractéristiques d'une passe à ralentisseurs mixte ou à chevrons](theorie_mixte_schema.png)
+![Characteristics of a mixed / chevron baffles fishway](theorie_mixte_schema.png)
 
-*Extrait de Larinier, 2002[^1]*
+*Excerpt from Larinier, 2002[^1]*
 
-## Lois hydrauliques issues des abaques
+## Hydraulic laws given by abacuses
 
-Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(q^*\)&nbsp;:
+Experiments conducted by Larinier, 2002[^1] allowed to establish abacuses that link adimensional flow \(q^*\)&nbsp;:
 
 $$ q^* = \dfrac{Q/L}{\sqrt{2g}a^{1,5}} $$
 
- à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+ to upstream head \(ha\) and the average water level in the pass \(h\) :
 
-![Abaques d'une passe à ralentisseurs mixte pour une pente de 10%](baffle_fishway_mixte_slope_10_.svg)
+![Abacuses of a mixed / chevron baffles fishway for a slope of 10%](baffle_fishway_mixte_slope_10_.svg)
 
-*Abaques d'une passe à ralentisseurs mixte pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a mixed / chevron baffles fishway for a slope of 10% (Excerpt from Larinier, 2002[^1])*
 
-![Abaques d'une passe à ralentisseurs mixte pour une pente de 16%](baffle_fishway_mixte_slope_16_.svg)
+![Abacuses of a mixed / chevron baffles fishway for a slope of 16%](baffle_fishway_mixte_slope_16_.svg)
 
-*Abaques d'une passe à ralentisseurs mixte pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a mixed / chevron baffles fishway for a slope of 15% (Excerpt from Larinier, 2002[^1])*
 
-Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+To run calculations for all slopes between 8% and 22%, polynomes coefficients of abacuses above are themelves adjusted in the form of slope \(S\) depending polynomes.
 
-On a donc&nbsp;:
+We thus have:
 
 $$ ha/a = a_2(S) q^{*2} + a_1(S) q^* + a_0(S) $$
 
@@ -32,7 +32,7 @@ $$a_1(S) =  - 2.47998S + 1.25363$$
 
 $$a_0(S) = 5.02138S + 0.709434$$
 
-Et&nbsp;:
+And:
 
 $$ h/a = b_2(S) q^{*2} + b_1(S) q^* + b_0 $$
 
@@ -42,35 +42,35 @@ $$b_1(S) = 0.176261S + 0.661656$$
 
 $$b_0(S) =  - 4.97686S + 1.30546$$
 
-## Calcul de \(ha\), \(h\) et \(Q\)
+## Calculation of \(ha\), \(h\) and \(Q\)
 
-On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(q^*\)&nbsp;:
+We can then use those coefficients to calculate \(ha\), \(h\) and \(q^*\):
 
 $$ ha = a \left( a_2 (q^*)^2 + a_1 q^* + a_0 \right)$$
 
 $$ h = a \left( b_2 (q^*)^2 + b_1 q^* + b_0 \right)$$
 
-En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+Using the positive inverse function, depending on \(ha/L\), we get:
 
 $$ q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/a)}}{2 a_2}$$
 
-Et on a enfin&nbsp;:
+And we finally have:
 
 $$ Q = L q^* \sqrt{g} a^{1,5} $$
 
-Les limites de calcul de \(q^*\), \(ha/a\) et \(h/a\) sont fixées à partir des extrémités des courbes des abaques.
+Calculation limitations of \(q^*\), \(ha/a\) and \(h/a\) are determined based on the extremities of the abacuses curves.
 
-## Vitesse débitante
+## Flow velocity
 
-La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+Flow velocity \(V\) corresponds to the minimum flow speed given the flow section \(A_w\) at the perpendicular of the baffle :
 
 $$ V = \dfrac{Q}{A_w} $$
 
-pour les passes à ralentisseurs mixte en utilisation les notations du schéma ci-dessus, on aura :
+for mixed / chevron baffles fishways using the notation of the schema above, we have:
 
 $$ A_w = h \times L$$
 
-## Cote de radier amont \(Z_{r1}\)
+## Upstream apron elevation \(Z_{r1}\)
 
 $$ Z_{r1} = Z_{d1} + \frac{3 a S - a}{\sqrt{1 + S^2}} $$
 
diff --git a/docs/en/calculators/par/theorie_plans.md b/docs/en/calculators/par/theorie_plans.md
index c6905b2ef..6dd081beb 100644
--- a/docs/en/calculators/par/theorie_plans.md
+++ b/docs/en/calculators/par/theorie_plans.md
@@ -1,34 +1,34 @@
-# Passe à ralentisseurs plans (Denil)
+# Plane baffles (Denil) fishway
 
-## Caractéristiques géométriques
+## Geometrical characteristics
 
-![Caractéristiques d'une passe à ralentisseurs plans (Denil)](theorie_plans_schema.png)
+![Characteristics of a plane baffles (Denil) fishway](theorie_plans_schema.png)
 
-*Extrait de Larinier, 2002[^1]*
+*Excerpt from Larinier, 2002[^1]*
 
-## Lois hydrauliques issues des abaques
+## Hydraulic laws given by abacuses
 
-Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(Q^*\)&nbsp;:
+Experiments conducted by Larinier, 2002[^1] allowed to establish abacuses that link adimensional flow \(Q^*\):
 
 $$ Q^* = \dfrac{Q}{\sqrt{g}L^{2,5}} $$
 
- à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+ to upstream head \(ha\) and the average water level in the pass \(h\) :
 
-![Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 10%](baffle_fishway_plans_slope_10_.svg)
+![Abacuses of a plane baffles (Denil) fishway for a slope of 10%](baffle_fishway_plans_slope_10_.svg)
 
-*Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a plane baffles (Denil) fishway for a slope of 10% (Excerpt from Larinier, 2002[^1])*
 
-![Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 15%](baffle_fishway_plans_slope_15_.svg)
+![Abacuses of a plane baffles (Denil) fishway for a slope of 15%](baffle_fishway_plans_slope_15_.svg)
 
-*Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a plane baffles (Denil) fishway for a slope of 15% (Excerpt from Larinier, 2002[^1])*
 
-![Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 20%](baffle_fishway_plans_slope_20_.svg)
+![Abacuses of a plane baffles (Denil) fishway for a slope of 20%](baffle_fishway_plans_slope_20_.svg)
 
-*Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 20% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a plane baffles (Denil) fishway for a slope of 20% (Excerpt from Larinier, 2002[^1])*
 
-Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+To run calculations for all slopes between 8% and 22%, polynomes coefficients of abacuses above are themelves adjusted in the form of slope \(S\) depending polynomes.
 
-On a donc&nbsp;:
+We thus have:
 
 $$ ha/L = a_2(S) Q^{*2} + a_1(S) Q^* + a_0(S) $$
 
@@ -38,7 +38,7 @@ $$a_1(S) = - 184.043S^2 + 59.7073S - 0.530737$$
 
 $$a_0(S) = 15.2115S^2 - 5.22606S + 0.633654$$
 
-Et&nbsp;:
+And:
 
 $$ h/L = b_2(S) Q^{*2} + b_1(S) Q^* + b_0 $$
 
@@ -48,43 +48,43 @@ $$b_1(S) = - 139.382S^2 + 47.2186S + 0.0547598$$
 
 $$b_0(S) = 16.7218S^2 - 6.09624S + 0.834851$$
 
-## Calcul de \(ha\), \(h\) et \(Q\)
+## Calculation of \(ha\), \(h\) and \(Q\)
 
-On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(Q^*\)&nbsp;:
+We can then use those coefficients to calculate \(ha\), \(h\) and \(Q^*\):
 
 $$ ha = L \left( a_2 (Q^*)^2 + a_1 Q^* + a_0 \right)$$
 
 $$ h = L \left( b_2 (Q^*)^2 + b_1 Q^* + b_0 \right)$$
 
-En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+Using the positive inverse function, depending on \(ha/L\), we get:
 
 $$ Q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/L)}}{2 a_2}$$
 
-Et on a enfin&nbsp;:
+And we finally have:
 
 $$ Q = Q^* \sqrt{g} L^{2,5} $$
 
-Les limites de calcul de \(Q^*\), \(ha/L\) et \(h/L\) sont fixées à partir des extrémités des courbes des abaques.
+Calculation limitations of \(Q^*\), \(ha/L\) and \(h/L\) are determined based on the extremities of the abacuses curves.
 
-## Vitesse débitante
+## Flow velocity
 
-La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+Flow velocity \(V\) corresponds to the minimum flow speed given the flow section \(A_w\) at the perpendicular of the baffle :
 
 $$ V = \dfrac{Q}{A_w} $$
 
-pour les passes à ralentisseurs plans en utilisation les notations du schéma ci-dessus, on aura :
+for plane baffles fishways using the notation of the schema above, we have:
 
 $$ A_w = B \times \left( h - \dfrac{C+D}{2} \sin(45°) \right)$$
 
-Ce qui donne avec les proportions standards :
+Which gives with standard proportions:
 
 $$ A_w = L \left(0.583 h - 0.146L \right) $$
 
-## Cote de radier amont \(Z_{r1}\)
+## Upstream apron elevation \(Z_{r1}\)
 
 $$ Z_{r1} = Z_{d1} - D \sin(45° + \arctan(S)) $$
 
-## Cote d'arase minimale des murs latéraux \(Z_m\)
+## Minimal rake height of upstream side walls \(Z_m\)
 
 $$ Z_m = Z_{r1} + - H_{min} \sin(45° + \arctan(S)) $$
 
diff --git a/docs/en/calculators/par/theorie_suractif.md b/docs/en/calculators/par/theorie_suractif.md
index b5cb6167d..31fcf38ec 100644
--- a/docs/en/calculators/par/theorie_suractif.md
+++ b/docs/en/calculators/par/theorie_suractif.md
@@ -1,28 +1,28 @@
-# Passe à ralentisseurs à fonds suractif
+# Superactive baffles fishway
 
-![Caractéristiques d'une passe à ralentisseurs à fonds suractif](theorie_suractif_schema.png)
+![Characteristics of a superactive baffles fishway](theorie_suractif_schema.png)
 
-*Extrait de Larinier, 2002[^1]*
+*Excerpt from Larinier, 2002[^1]*
 
-## Lois hydrauliques issues des abaques
+## Hydraulic laws given by abacuses
 
-Les expériences effectuées par Larinier, 2002[^1] ont permis d'établir des abaques permettant de relier le débit adimensionnel \(q^*\)&nbsp;:
+Experiments conducted by Larinier, 2002[^1] allowed to establish abacuses that link adimensional flow \(q^*\)&nbsp;:
 
 $$ q^* = \dfrac{Q/L}{\sqrt{2g}a^{1,5}} $$
 
- à la charge amont \(ha\) et le niveau d'eau moyen dans la passe \(h\) :
+ to upstream head \(ha\) and the average water level in the pass \(h\) :
 
-![Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 10%](baffle_fishway_suractif_slope_10_.svg)
+![Abacuses of a superactive baffles fishway for a slope of 10%](baffle_fishway_suractif_slope_10_.svg)
 
-*Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 10% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a superactive baffles fishway for a slope of 10% (Excerpt from Larinier, 2002[^1])*
 
-![Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 15%](baffle_fishway_suractif_slope_15_.svg)
+![Abacuses of a superactive baffles fishway for a slope of 15%](baffle_fishway_suractif_slope_15_.svg)
 
-*Abaques d'une passe à ralentisseurs à fond suractif pour une pente de 15% (Extrait de Larinier, 2002[^1])*
+*Abacuses of a superactive baffles fishway for a slope of 15% (Excerpt from Larinier, 2002[^1])*
 
-Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+To run calculations for all slopes between 8% and 22%, polynomes coefficients of abacuses above are themelves adjusted in the form of slope \(S\) depending polynomes.
 
-On a donc&nbsp;:
+We thus have:
 
 $$ ha/a = a_2(S) q^{*2} + a_1(S) q^* + a_0(S) $$
 
@@ -32,7 +32,7 @@ $$a_1(S) = 0.514953S + 1.25460$$
 
 $$a_0(S) = - 2.22434S + 0.596682$$
 
-Et&nbsp;:
+And:
 
 $$ h/a = b_2(S) q^{*2} + b_1(S) q^* + b_0 $$
 
@@ -42,35 +42,35 @@ $$b_1(S) = 1.15807S + 1.07554$$
 
 $$b_0(S) =  - 2.62712S + 0.601348$$
 
-## Calcul de \(ha\), \(h\) et \(Q\)
+## Calculation of \(ha\), \(h\) and \(Q\)
 
-On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(q^*\)&nbsp;:
+We can then use those coefficients to calculate \(ha\), \(h\) and \(q^*\):
 
 $$ ha = a \left( a_2 (q^*)^2 + a_1 q^* + a_0 \right)$$
 
 $$ h = a \left( b_2 (q^*)^2 + b_1 q^* + b_0 \right)$$
 
-En utilisant la fonction inverse positive en fonction de \(ha/L\), on obtient:
+Using the positive inverse function, depending on \(ha/L\), we get:
 
 $$ q^* = \dfrac{-a_1 + \sqrt{a_1^2 - 4 a_2 (a_0 - h_a/a)}}{2 a_2}$$
 
-Et on a enfin&nbsp;:
+And we finally have:
 
 $$ Q = L q^* \sqrt{g} a^{1,5} $$
 
-Les limites de calcul de \(q^*\), \(ha/a\) et \(h/a\) sont fixées à partir des extrémités des courbes des abaques.
+Calculation limitations of \(q^*\), \(ha/a\) and \(h/a\) are determined based on the extremities of the abacuses curves.
 
-## Vitesse débitante
+## Flow velocity
 
-La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement compte tenu de la section d'écoulement \(A_w\) au droit du ralentisseur :
+Flow velocity \(V\) corresponds to the minimum flow speed given the flow section \(A_w\) at the perpendicular of the baffle :
 
 $$ V = \dfrac{Q}{A_w} $$
 
-pour les passes à ralentisseurs à fond suractif en utilisation les notations du schéma ci-dessus, on aura :
+for superactive baffles fishways using the notation of the schema above, we have:
 
 $$ A_w = h \times L$$
 
-## Cote de radier amont \(Z_{r1}\)
+## Upstream apron elevation \(Z_{r1}\)
 
 $$ Z_{r1} = Z_{d1} + \frac{2.6 a S - a}{\sqrt{1 + S^2}} $$
 
diff --git a/docs/fr/calculators/par/calage.md b/docs/fr/calculators/par/calage.md
index 905f051dc..85c66ef92 100644
--- a/docs/fr/calculators/par/calage.md
+++ b/docs/fr/calculators/par/calage.md
@@ -22,7 +22,7 @@ Compte tenu des paramètres obligatoires suivants&nbsp;:
 - le type de passe (Plans, Fatou, fonds suractifs ou mixtes)&nbsp;;
 - [la pente (m/m)](../hsl/pente.md).
 
-Le paramètre "Espacement entre les ralentisseurs (m)" est facultatif. S'il n'est pas renseigné, Sa valeur standard est alors calculée. S'il est fourni, si sa valeur s'écarte de plus de 10% de la valeur standard, une erreur est générée.
+Le paramètre "Espacement entre les ralentisseurs (m)" est facultatif. S'il n'est pas renseigné, sa valeur standard est alors calculée. S'il est fourni, si sa valeur s'écarte de plus de 10% de la valeur standard, une erreur est générée.
 
 ## Calage altimétrique de la passe
 
diff --git a/docs/fr/calculators/par/theorie_plans.md b/docs/fr/calculators/par/theorie_plans.md
index c6905b2ef..83f5b528d 100644
--- a/docs/fr/calculators/par/theorie_plans.md
+++ b/docs/fr/calculators/par/theorie_plans.md
@@ -26,7 +26,7 @@ $$ Q^* = \dfrac{Q}{\sqrt{g}L^{2,5}} $$
 
 *Abaques d'une passe à ralentisseurs plans (Denil) pour une pente de 20% (Extrait de Larinier, 2002[^1])*
 
-Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous le forme de polynômes dépendant de la pente \(S\).
+Pour effectuer les calculs pour toutes les pentes entre 8% et 22%, les coefficients de polynômes des abaques ci-dessus sont eux-mêmes ajustés sous la forme de polynômes dépendant de la pente \(S\).
 
 On a donc&nbsp;:
 
@@ -50,7 +50,7 @@ $$b_0(S) = 16.7218S^2 - 6.09624S + 0.834851$$
 
 ## Calcul de \(ha\), \(h\) et \(Q\)
 
-On peut ensuite utilise ces coefficients pour calculer \(ha\), \(h\) et \(Q^*\)&nbsp;:
+On peut ensuite utiliser ces coefficients pour calculer \(ha\), \(h\) et \(Q^*\)&nbsp;:
 
 $$ ha = L \left( a_2 (Q^*)^2 + a_1 Q^* + a_0 \right)$$
 
@@ -72,7 +72,7 @@ La vitesse débitante \(V\) va correspondre à la vitesse moyenne d'écoulement
 
 $$ V = \dfrac{Q}{A_w} $$
 
-pour les passes à ralentisseurs plans en utilisation les notations du schéma ci-dessus, on aura :
+pour les passes à ralentisseurs plans en utilisant les notations du schéma ci-dessus, on aura :
 
 $$ A_w = B \times \left( h - \dfrac{C+D}{2} \sin(45°) \right)$$
 
diff --git a/docs/fr/calculators/par/theorie_suractif.md b/docs/fr/calculators/par/theorie_suractif.md
index b5cb6167d..ed3cc6233 100644
--- a/docs/fr/calculators/par/theorie_suractif.md
+++ b/docs/fr/calculators/par/theorie_suractif.md
@@ -1,4 +1,4 @@
-# Passe à ralentisseurs à fonds suractif
+# Passe à ralentisseurs à fond suractif
 
 ![Caractéristiques d'une passe à ralentisseurs à fonds suractif](theorie_suractif_schema.png)
 
diff --git a/mkdocs-en.yml b/mkdocs-en.yml
index 88e7fd794..5cad58607 100644
--- a/mkdocs-en.yml
+++ b/mkdocs-en.yml
@@ -65,9 +65,9 @@ nav:
         - calculators/pam/macrorugo_complexe.md
         - calculators/pam/concentration.md
     - Humpback fishways:
-        - calculators/par/calage.md
-        - calculators/par/simulation.md
-        - calculators/par/formules.md
+        - Baffle fishway setup: calculators/par/calage.md
+        - Baffle fishway simulation: calculators/par/simulation.md
+        - Baffle fishways formulas: calculators/par/formules.md
         - calculators/par/theorie_plans.md
         - calculators/par/theorie_fatou.md
         - calculators/par/theorie_suractif.md
-- 
GitLab


From 9b989d8dd14eba632901def31a2475bb8e64807d Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 11:09:24 +0200
Subject: [PATCH 078/101] Work on #436 - cordova: add debug messages to updates
 lookup

move icon files into right folder
fix language code detection for more than 2 letters codes
---
 src/app/services/internationalisation.service.ts  |   3 ++-
 src/{ => assets/icons}/android-chrome-192x192.png | Bin
 src/{ => assets/icons}/android-chrome-512x512.png | Bin
 src/{ => assets/icons}/apple-touch-icon.png       | Bin
 src/{ => assets/icons}/favicon-16x16.png          | Bin
 src/{ => assets/icons}/favicon-32x32.png          | Bin
 src/index.html                                    |  13 ++++++++-----
 7 files changed, 10 insertions(+), 6 deletions(-)
 rename src/{ => assets/icons}/android-chrome-192x192.png (100%)
 rename src/{ => assets/icons}/android-chrome-512x512.png (100%)
 rename src/{ => assets/icons}/apple-touch-icon.png (100%)
 rename src/{ => assets/icons}/favicon-16x16.png (100%)
 rename src/{ => assets/icons}/favicon-32x32.png (100%)

diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index d8ddcb808..14df03969 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -55,11 +55,12 @@ export class I18nService extends Observable implements Observer {
     /**
      * Defines the current language code from its ISO 639-1 code (2 characters) or locale code
      * (ex: "fr", "en", "fr_FR", "en-US")
-     * @see this.languageCodeFromLocaleCode()
      *
      * @param code ISO 639-1 language code
      */
     public setLanguage(code: string) {
+        // ensure 2-letter language code
+        code = code.substring(0, 2);
         // is language supported ?
         if (! Object.keys(this._availableLanguages).includes(code)) {
             throw new Error(`LANGUAGE_UNSUPPORTED "${code}"`);
diff --git a/src/android-chrome-192x192.png b/src/assets/icons/android-chrome-192x192.png
similarity index 100%
rename from src/android-chrome-192x192.png
rename to src/assets/icons/android-chrome-192x192.png
diff --git a/src/android-chrome-512x512.png b/src/assets/icons/android-chrome-512x512.png
similarity index 100%
rename from src/android-chrome-512x512.png
rename to src/assets/icons/android-chrome-512x512.png
diff --git a/src/apple-touch-icon.png b/src/assets/icons/apple-touch-icon.png
similarity index 100%
rename from src/apple-touch-icon.png
rename to src/assets/icons/apple-touch-icon.png
diff --git a/src/favicon-16x16.png b/src/assets/icons/favicon-16x16.png
similarity index 100%
rename from src/favicon-16x16.png
rename to src/assets/icons/favicon-16x16.png
diff --git a/src/favicon-32x32.png b/src/assets/icons/favicon-32x32.png
similarity index 100%
rename from src/favicon-32x32.png
rename to src/assets/icons/favicon-32x32.png
diff --git a/src/index.html b/src/index.html
index 55f7c5833..24fc414e2 100644
--- a/src/index.html
+++ b/src/index.html
@@ -6,11 +6,11 @@
    <meta charset="utf-8">
    <title>Cassiopée</title>
 
-   <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
-   <link rel="icon" type="image/png" sizes="512x512" href="/android-chrome-512x512.png">
-   <link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png">
-   <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
-   <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
+   <link rel="apple-touch-icon" sizes="180x180" href="assets/icons/apple-touch-icon.png">
+   <link rel="icon" type="image/png" sizes="512x512" href="assets/icons/android-chrome-512x512.png">
+   <link rel="icon" type="image/png" sizes="192x192" href="assets/icons/android-chrome-192x192.png">
+   <link rel="icon" type="image/png" sizes="32x32" href="assets/icons/favicon-32x32.png">
+   <link rel="icon" type="image/png" sizes="16x16" href="assets/icons/favicon-16x16.png">
    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#ffffff">
 
    <meta name="viewport" content="width=device-width, initial-scale=1">
@@ -231,6 +231,7 @@
        *     at the root of the directory (ex: "fr.irstea.cassiopee_4.5.0_amd64.deb")
        */
       const lookForUpdates = function() {
+         console.log("looking for updates");
          // Web update resources root directory
          const URL = "https://cassiopee.g-eau.fr/cassiopee-releases/";
 
@@ -238,6 +239,7 @@
          let version = "4.4.2"; // debug
          cordova.getAppVersion.getVersionNumber((versionNumber) => {
             version = versionNumber;
+            console.log("current version", version);
             // fetch releases information
             const options = {
                method: 'get',
@@ -246,6 +248,7 @@
             cordova.plugin.http.sendRequest(URL + "releases.json", options, (response) => {
                var data = JSON.parse(response.data); // This is the resultant JSON in useful form
                // alert(`Youpi ! ${response.status} version=${version}, latest=${data.latest}, comp=${semverCompare(data.latest, version)}`);
+               console.log("latest version", data !== undefined ? data.latest : "err");
                // compare current version to latest version
                if (data.latest && semverCompare(data.latest, version) == 1) {
                   // get download link for latest version, depending on platform
-- 
GitLab


From ca7517a2331c59cd758e01f3276e345e6d88d3fb Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 11:39:24 +0200
Subject: [PATCH 079/101] Update to Angular 10

---
 browserslist => .browserslistrc |    0
 angular.json                    |    2 +-
 e2e/tsconfig.e2e.json           |    2 +-
 package-lock.json               | 4363 ++++++++++++++++++-------------
 package.json                    |   48 +-
 src/tsconfig.app.json           |    2 +-
 src/tsconfig.spec.json          |    2 +-
 tsconfig.base.json              |   26 +
 tsconfig.json                   |   37 +-
 tslint.json                     |    3 +
 10 files changed, 2568 insertions(+), 1917 deletions(-)
 rename browserslist => .browserslistrc (100%)
 create mode 100644 tsconfig.base.json

diff --git a/browserslist b/.browserslistrc
similarity index 100%
rename from browserslist
rename to .browserslistrc
diff --git a/angular.json b/angular.json
index c422f278e..cb5b49b6a 100644
--- a/angular.json
+++ b/angular.json
@@ -163,7 +163,7 @@
   "schematics": {
     "@schematics/angular:component": {
       "prefix": "app",
-      "styleext": "scss"
+      "style": "scss"
     },
     "@schematics/angular:directive": {
       "prefix": "app"
diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json
index 801a822f4..6841529a9 100644
--- a/e2e/tsconfig.e2e.json
+++ b/e2e/tsconfig.e2e.json
@@ -1,5 +1,5 @@
 {
-  "extends": "../tsconfig.json",
+  "extends": "../tsconfig.base.json",
   "compilerOptions": {
     "outDir": "../out-tsc/e2e",
     "baseUrl": "./",
diff --git a/package-lock.json b/package-lock.json
index 60a0a4bbe..b67aec276 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,99 +11,101 @@
       "dev": true
     },
     "@angular-devkit/architect": {
-      "version": "0.901.5",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.5.tgz",
-      "integrity": "sha512-VO+8qBkaq54xAjdtvhEhQ86gZxS0V1wC9hGblw3O+XXri/euHky4811B2BbEylPy8/kRy5sUYcuwcyZrVxJ2TQ==",
+      "version": "0.1000.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.7.tgz",
+      "integrity": "sha512-6pa98C5i+OrBumWobEjjGAeVNbv8m3h3LQQnXtihv9tjxCWceg25jtDhaNzeS6L8D/NsBnVb61MhTaOKUj7kUA==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.5",
-        "rxjs": "6.5.4"
-      },
-      "dependencies": {
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        }
+        "@angular-devkit/core": "10.0.7",
+        "rxjs": "6.5.5"
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.901.5",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.5.tgz",
-      "integrity": "sha512-XottEBXE7cmkx6LPu33lXJCSAlxFkIu2ErWvV1oy+La6aZEuoJVntxzIKLprJmTiiD/4IDDQLWwp4m+EC96kyg==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.901.5",
-        "@angular-devkit/build-optimizer": "0.901.5",
-        "@angular-devkit/build-webpack": "0.901.5",
-        "@angular-devkit/core": "9.1.5",
-        "@babel/core": "7.9.0",
-        "@babel/generator": "7.9.3",
-        "@babel/preset-env": "7.9.0",
+      "version": "0.1000.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1000.7.tgz",
+      "integrity": "sha512-EeA+X+pu4w8Io+SpmKBkvVUxuhzgcwaRBi42lKM3D4ot0MtrsSJi6E40t5E/Km6kohibRkDBYY32uT0eG4WHsw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.1000.7",
+        "@angular-devkit/build-optimizer": "0.1000.7",
+        "@angular-devkit/build-webpack": "0.1000.7",
+        "@angular-devkit/core": "10.0.7",
+        "@babel/core": "7.9.6",
+        "@babel/generator": "7.9.6",
+        "@babel/plugin-transform-runtime": "7.9.6",
+        "@babel/preset-env": "7.9.6",
+        "@babel/runtime": "7.9.6",
         "@babel/template": "7.8.6",
         "@jsdevtools/coverage-istanbul-loader": "3.0.3",
-        "@ngtools/webpack": "9.1.5",
-        "ajv": "6.12.0",
-        "autoprefixer": "9.7.4",
-        "babel-loader": "8.0.6",
+        "@ngtools/webpack": "10.0.7",
+        "ajv": "6.12.3",
+        "autoprefixer": "9.8.0",
+        "babel-loader": "8.1.0",
         "browserslist": "^4.9.1",
-        "cacache": "15.0.0",
+        "cacache": "15.0.3",
         "caniuse-lite": "^1.0.30001032",
         "circular-dependency-plugin": "5.2.0",
-        "copy-webpack-plugin": "5.1.1",
+        "copy-webpack-plugin": "6.0.3",
         "core-js": "3.6.4",
-        "css-loader": "3.5.1",
+        "css-loader": "3.5.3",
         "cssnano": "4.1.10",
         "file-loader": "6.0.0",
         "find-cache-dir": "3.3.1",
         "glob": "7.1.6",
-        "jest-worker": "25.1.0",
+        "jest-worker": "26.0.0",
         "karma-source-map-support": "1.4.0",
-        "less": "3.11.1",
-        "less-loader": "5.0.0",
-        "license-webpack-plugin": "2.1.4",
+        "less-loader": "6.1.0",
+        "license-webpack-plugin": "2.2.0",
         "loader-utils": "2.0.0",
         "mini-css-extract-plugin": "0.9.0",
         "minimatch": "3.0.4",
-        "open": "7.0.3",
+        "open": "7.0.4",
         "parse5": "4.0.0",
-        "postcss": "7.0.27",
+        "pnp-webpack-plugin": "1.6.4",
+        "postcss": "7.0.31",
         "postcss-import": "12.0.1",
         "postcss-loader": "3.0.0",
-        "raw-loader": "4.0.0",
+        "raw-loader": "4.0.1",
         "regenerator-runtime": "0.13.5",
+        "resolve-url-loader": "3.1.1",
         "rimraf": "3.0.2",
-        "rollup": "2.1.0",
-        "rxjs": "6.5.4",
-        "sass": "1.26.3",
+        "rollup": "2.10.9",
+        "rxjs": "6.5.5",
+        "sass": "1.26.5",
         "sass-loader": "8.0.2",
-        "semver": "7.1.3",
+        "semver": "7.3.2",
         "source-map": "0.7.3",
-        "source-map-loader": "0.2.4",
-        "speed-measure-webpack-plugin": "1.3.1",
-        "style-loader": "1.1.3",
+        "source-map-loader": "1.0.0",
+        "source-map-support": "0.5.19",
+        "speed-measure-webpack-plugin": "1.3.3",
+        "style-loader": "1.2.1",
         "stylus": "0.54.7",
         "stylus-loader": "3.0.2",
-        "terser": "4.6.10",
-        "terser-webpack-plugin": "2.3.5",
+        "terser": "4.7.0",
+        "terser-webpack-plugin": "3.0.1",
         "tree-kill": "1.2.2",
-        "webpack": "4.42.0",
+        "webpack": "4.43.0",
         "webpack-dev-middleware": "3.7.2",
-        "webpack-dev-server": "3.10.3",
+        "webpack-dev-server": "3.11.0",
         "webpack-merge": "4.2.2",
         "webpack-sources": "1.4.3",
-        "webpack-subresource-integrity": "1.4.0",
+        "webpack-subresource-integrity": "1.4.1",
         "worker-plugin": "4.0.3"
       },
       "dependencies": {
+        "@babel/runtime": {
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
+          "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
+          "dev": true,
+          "requires": {
+            "regenerator-runtime": "^0.13.4"
+          }
+        },
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.3",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+          "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -112,45 +114,16 @@
             "uri-js": "^4.2.2"
           }
         },
-        "chokidar": {
-          "version": "2.1.8",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
-          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.1",
-            "braces": "^2.3.2",
-            "fsevents": "^1.2.7",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.3",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "normalize-path": "^3.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.2.1",
-            "upath": "^1.1.1"
-          }
-        },
         "core-js": {
           "version": "3.6.4",
           "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
           "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
           "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"
-          }
-        },
         "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "version": "3.1.3",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
           "dev": true
         },
         "glob": {
@@ -167,24 +140,6 @@
             "path-is-absolute": "^1.0.0"
           }
         },
-        "is-absolute-url": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
-          "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
-          "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
-        },
-        "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
-        },
         "regenerator-runtime": {
           "version": "0.13.5",
           "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
@@ -200,36 +155,16 @@
             "glob": "^7.1.3"
           }
         },
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        },
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
-          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
         "semver": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
-          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
         "terser": {
-          "version": "4.6.10",
-          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz",
-          "integrity": "sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==",
+          "version": "4.7.0",
+          "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz",
+          "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==",
           "dev": true,
           "requires": {
             "commander": "^2.20.0",
@@ -244,124 +179,57 @@
               "dev": true
             }
           }
-        },
-        "webpack-dev-server": {
-          "version": "3.10.3",
-          "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz",
-          "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==",
-          "dev": true,
-          "requires": {
-            "ansi-html": "0.0.7",
-            "bonjour": "^3.5.0",
-            "chokidar": "^2.1.8",
-            "compression": "^1.7.4",
-            "connect-history-api-fallback": "^1.6.0",
-            "debug": "^4.1.1",
-            "del": "^4.1.1",
-            "express": "^4.17.1",
-            "html-entities": "^1.2.1",
-            "http-proxy-middleware": "0.19.1",
-            "import-local": "^2.0.0",
-            "internal-ip": "^4.3.0",
-            "ip": "^1.1.5",
-            "is-absolute-url": "^3.0.3",
-            "killable": "^1.0.1",
-            "loglevel": "^1.6.6",
-            "opn": "^5.5.0",
-            "p-retry": "^3.0.1",
-            "portfinder": "^1.0.25",
-            "schema-utils": "^1.0.0",
-            "selfsigned": "^1.10.7",
-            "semver": "^6.3.0",
-            "serve-index": "^1.9.1",
-            "sockjs": "0.3.19",
-            "sockjs-client": "1.4.0",
-            "spdy": "^4.0.1",
-            "strip-ansi": "^3.0.1",
-            "supports-color": "^6.1.0",
-            "url": "^0.11.0",
-            "webpack-dev-middleware": "^3.7.2",
-            "webpack-log": "^2.0.0",
-            "ws": "^6.2.1",
-            "yargs": "12.0.5"
-          },
-          "dependencies": {
-            "semver": {
-              "version": "6.3.0",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-              "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-              "dev": true
-            }
-          }
         }
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.901.5",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.5.tgz",
-      "integrity": "sha512-xmAMvLMSa8BvqlZ0wsC37Qop/7/pEaQRKLeowC3CCI3jiYDF10Tihar+Hjc04NVSal8ZBP9/+Gp3Yr0x61HcFA==",
+      "version": "0.1000.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1000.7.tgz",
+      "integrity": "sha512-7vnj++astDMnsTPEiXgpXCTwo/zbFmJadKTIlHoU9VHxQNwSfPwSCtPuPlxynquJu5zxhs24CNUBLXXH8z9ztQ==",
       "dev": true,
       "requires": {
         "loader-utils": "2.0.0",
         "source-map": "0.7.3",
-        "tslib": "1.11.1",
-        "typescript": "3.6.5",
+        "tslib": "2.0.0",
         "webpack-sources": "1.4.3"
       },
       "dependencies": {
         "tslib": {
-          "version": "1.11.1",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
-          "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
-          "dev": true
-        },
-        "typescript": {
-          "version": "3.6.5",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.5.tgz",
-          "integrity": "sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ==",
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz",
+          "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==",
           "dev": true
         }
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.901.5",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.5.tgz",
-      "integrity": "sha512-4HHOFFRu3yUBe0otaDHh4PID99XvnBJj7hYzvbB5BvP0ULif4/W0aoU2STnern4lH4pJmrtqYawBZ84ETXN/Ag==",
+      "version": "0.1000.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1000.7.tgz",
+      "integrity": "sha512-+QYsEBcpZGVFFwrIlfH/NbChVdfIlnxtoTPjjR7xI5DOgl57sb79hOo4Ev0mPkbbgfn5tjSHvE3rmVQmlYqzcg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.5",
-        "@angular-devkit/core": "9.1.5",
-        "rxjs": "6.5.4"
-      },
-      "dependencies": {
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        }
+        "@angular-devkit/architect": "0.1000.7",
+        "@angular-devkit/core": "10.0.7",
+        "rxjs": "6.5.5"
       }
     },
     "@angular-devkit/core": {
-      "version": "9.1.5",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.5.tgz",
-      "integrity": "sha512-i0BJ6Ad3bcDE6e4Ev9Flbw7P0bz9p94FDVfEOPGBTrbJQZSqOm3CqaH2y5LGfl7acSPUi54hK481h1QRUFBkTQ==",
+      "version": "10.0.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.7.tgz",
+      "integrity": "sha512-pXaZgsQ8LHpRx4QGAUYDE8GwBQLAtoqPh6oUCwRJwBExm5rl13OGPTBWewHiq0ysV/SnFXvOjxwAaHQvC1AgZw==",
       "dev": true,
       "requires": {
-        "ajv": "6.12.0",
+        "ajv": "6.12.3",
         "fast-json-stable-stringify": "2.1.0",
         "magic-string": "0.25.7",
-        "rxjs": "6.5.4",
+        "rxjs": "6.5.5",
         "source-map": "0.7.3"
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.3",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+          "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -371,9 +239,9 @@
           }
         },
         "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "version": "3.1.3",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
           "dev": true
         },
         "fast-json-stable-stringify": {
@@ -381,45 +249,35 @@
           "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
           "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
           "dev": true
-        },
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
         }
       }
     },
     "@angular-devkit/schematics": {
-      "version": "9.1.5",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.5.tgz",
-      "integrity": "sha512-nkNiGrVl7xLaYYj/oT1wOBowa4Driv2f4abn78AJI/pd/EXA45G/rI9gO/kEG8lHn+FAMQedaywX9N4JDOxCGg==",
+      "version": "10.0.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.7.tgz",
+      "integrity": "sha512-eyyYPgpjtr3h7WbnNbkDubJ/p+8TgKU6abWd+NmBfTvyeHrpVFUYZabNRcdXwUDSVzfTQKdmLynIkESj/KROrg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.5",
-        "ora": "4.0.3",
-        "rxjs": "6.5.4"
+        "@angular-devkit/core": "10.0.7",
+        "ora": "4.0.4",
+        "rxjs": "6.5.5"
+      }
+    },
+    "@angular/animations": {
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.0.12.tgz",
+      "integrity": "sha512-SnY25jLtAkH0jZAH1vhnGUsIb/qeMvnO379gMdVTtRR2mMqQnyz+d4IwRd7qOb2gYVSKiXQOEiLFV8TGJbx5mQ==",
+      "requires": {
+        "tslib": "^2.0.0"
       },
       "dependencies": {
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
         }
       }
     },
-    "@angular/animations": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.6.tgz",
-      "integrity": "sha512-7Pp7aqNNcH4fu1BnOVpvqJJHjE7RZ5K1oD396OWCh35pgpLowLSpFjhbVhzGrcAuxHyKnnHSX3etLn2hDaHxmQ=="
-    },
     "@angular/cdk": {
       "version": "9.2.3",
       "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.3.tgz",
@@ -437,31 +295,31 @@
       }
     },
     "@angular/cli": {
-      "version": "9.1.5",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.5.tgz",
-      "integrity": "sha512-Decn0p+s0SLc5p2GN7k8dUrOY43hBuCz8PxueW0gEln7NjlpdmHk+6JQn0ZRl2/2Dbk+eTGzPXyCxGwqsW3jjw==",
+      "version": "10.0.7",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.0.7.tgz",
+      "integrity": "sha512-o7aLZ5tIndtWodAGjG58XoKqaQMRyTwxad7s/6LGulH/XPo0v7Nk6f+yopKe2HnZJaIh7sVLaBAUxEvp9F1vaQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.901.5",
-        "@angular-devkit/core": "9.1.5",
-        "@angular-devkit/schematics": "9.1.5",
-        "@schematics/angular": "9.1.5",
-        "@schematics/update": "0.901.5",
+        "@angular-devkit/architect": "0.1000.7",
+        "@angular-devkit/core": "10.0.7",
+        "@angular-devkit/schematics": "10.0.7",
+        "@schematics/angular": "10.0.7",
+        "@schematics/update": "0.1000.7",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
         "debug": "4.1.1",
         "ini": "1.3.5",
         "inquirer": "7.1.0",
         "npm-package-arg": "8.0.1",
-        "npm-pick-manifest": "6.0.0",
-        "open": "7.0.3",
+        "npm-pick-manifest": "6.1.0",
+        "open": "7.0.4",
         "pacote": "9.5.12",
         "read-package-tree": "5.3.1",
         "rimraf": "3.0.2",
-        "semver": "7.1.3",
+        "semver": "7.3.2",
         "symbol-observable": "1.2.0",
         "universal-analytics": "0.4.20",
-        "uuid": "7.0.2"
+        "uuid": "8.1.0"
       },
       "dependencies": {
         "ansi-colors": {
@@ -548,12 +406,12 @@
           "dev": true
         },
         "hosted-git-info": {
-          "version": "3.0.4",
-          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
-          "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+          "version": "3.0.5",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+          "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==",
           "dev": true,
           "requires": {
-            "lru-cache": "^5.1.1"
+            "lru-cache": "^6.0.0"
           }
         },
         "inquirer": {
@@ -584,18 +442,18 @@
           "dev": true
         },
         "lodash": {
-          "version": "4.17.15",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
           "dev": true
         },
         "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==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
           "dev": true,
           "requires": {
-            "yallist": "^3.0.2"
+            "yallist": "^4.0.0"
           }
         },
         "ms": {
@@ -622,9 +480,9 @@
           }
         },
         "onetime": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
-          "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+          "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
           "dev": true,
           "requires": {
             "mimic-fn": "^2.1.0"
@@ -656,9 +514,9 @@
           "dev": true
         },
         "semver": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
-          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
         "string-width": {
@@ -697,33 +555,53 @@
           "dev": true
         },
         "uuid": {
-          "version": "7.0.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz",
-          "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==",
+          "version": "8.1.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz",
+          "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==",
           "dev": true
         },
         "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
           "dev": true
         }
       }
     },
     "@angular/common": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.6.tgz",
-      "integrity": "sha512-L9vw//wE+8QcSArOA411uJ68znnszCiPrbzSBV0BRZeadc7X68MwANA9qjtiTWZx5Xh9pNfHHwsCUyv2lUeinQ=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.0.12.tgz",
+      "integrity": "sha512-nIWXeLEWU3v4/GprKUtucFoVwNWpoD9DL1RWvOkyXT3tXm/Z8zGwXGKPJ13O2p6E22nChx3GauLKjSUmg1SWww==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@angular/compiler": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.6.tgz",
-      "integrity": "sha512-tHOQEjWuWqSkrk6/vI6BK7uJnpAyFajCXPW37rH5xspF/aMbetrpoOiGBNUQg/HLaFh04nOAnnFntjLkW0ooaA=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.0.12.tgz",
+      "integrity": "sha512-g7BBC69/LW8Qd98IKL+YAY8vSJyc1WHuMejdMq56hU4h8FzLUKJZeKfsDe9MbiIqoPr9DWcDu4dtcg/g4Rc5/w==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@angular/compiler-cli": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.6.tgz",
-      "integrity": "sha512-1b7m9tvSQJE4y95wNCdi34MORcsmXPC1vaylYlzChVM2et9Y2eKHYcRs+4g329j66irLBGpS/7cgTT2pgJ+IbA==",
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.0.12.tgz",
+      "integrity": "sha512-biFAxoQKxARpu/PMs8McS5flaPTnAFQ6y/xbBg8ItstzxdTjyuQSuYdvgK48Vd0c8eRv8mEgne3f/Cf7U43nDA==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
@@ -737,6 +615,7 @@
         "semver": "^6.3.0",
         "source-map": "^0.6.1",
         "sourcemap-codec": "^1.4.8",
+        "tslib": "^2.0.0",
         "yargs": "15.3.0"
       },
       "dependencies": {
@@ -871,6 +750,12 @@
             "ansi-regex": "^5.0.0"
           }
         },
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==",
+          "dev": true
+        },
         "wrap-ansi": {
           "version": "6.2.0",
           "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -914,9 +799,19 @@
       }
     },
     "@angular/core": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.6.tgz",
-      "integrity": "sha512-iXgPh5DebLwkMzLtQ6WKiv/mo4hpwMOwYex3O4F2CKToR2tKPnXbV5WC/ADGm0XYXiocSKQPiyL4ZrUjVeKEqA=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.0.12.tgz",
+      "integrity": "sha512-qwnZ95HtWH2PBZs93iTXa9fvYCg203c/CnbzHNfMTZXcwaEBEEA7nuUBmjQt+VA8ib2BjO8CkepLNJI0pgo29w==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@angular/flex-layout": {
       "version": "9.0.0-beta.29",
@@ -924,14 +819,24 @@
       "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
     },
     "@angular/forms": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.6.tgz",
-      "integrity": "sha512-3KiFjLDipZVgS5rfnZ8EoKlkUokOR8dmuw2xdjKHgzflWFFeuaY9ZtQgjZGw9/jkwWlc9P38BOSEHbK8NakdDw=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.0.12.tgz",
+      "integrity": "sha512-otFD0ASqD1RMlpnI1OGHCSSDBRsnnz+/Hp5TV7TzqqIsyN9n0SyRw1/ZHMTNLx9JQf+QWhq2pXOOGBYqSiG54Q==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@angular/language-service": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.6.tgz",
-      "integrity": "sha512-pB18hVoAbIuk1Wus8ur7yUxSukfPR4pCXiOfbxDQ94qlCzLAzIwXbaNV4erpBfL/fUKxMY3h8RrVt0dfm6M5RQ==",
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-10.0.12.tgz",
+      "integrity": "sha512-zsEzFu5D1Wm14we625R5IsvYKxuLxCE0VkZVVB402vJFImJNUNrXt/prY5mEnqePnK8fAjJLtJfpn64q8IWXBg==",
       "dev": true
     },
     "@angular/material": {
@@ -940,19 +845,49 @@
       "integrity": "sha512-QJltLNp8a/eoozPgkFLISEWgdlX9q9+fZaLJ8c9tHEp2IT5sFYBFHf8dPl0pUyxgOXkS/0HD43I1qki71/T7Kw=="
     },
     "@angular/platform-browser": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.6.tgz",
-      "integrity": "sha512-ebQhbT0Z55vwlQwAY4+s3Bcf1Q4wEN5Yk43iCuVt4g2kFkg09UP0z8aYtbuh7VQDyv/W4TTIGX8smGBWstoedQ=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.0.12.tgz",
+      "integrity": "sha512-w6R81GGgYS+l221yvibomkf0gQTaiontBLzafJXHyHWIXd1A3oVAaNfLzVpHy5kAfd1YruExRJOjDZ6T4iIfyA==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@angular/platform-browser-dynamic": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.6.tgz",
-      "integrity": "sha512-7AL3hWu4oY0LRiMS9ZEFXPW2uqybWcVNFDHjPp3UwsDIT4+sW3DIm8P+UvAOFkkRwaHpPDqm4chTTiAHygC/1Q=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.12.tgz",
+      "integrity": "sha512-izNbYVJiJOT90+Up58Y+E6WHP3CdrS94CZpFwkJFFgRfHu7uKvNrFnB3EkDr5+Lw+RZ8RN5O7QRzUPtG//AGEQ==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@angular/router": {
-      "version": "9.1.6",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.6.tgz",
-      "integrity": "sha512-Oz4nVQUR6t68DSzZuSrVaqrzmA7/0PIEi0sc85CE+UuOEoAqGMwN0NdQYizFT62WZ16DRI/1tZ+TTWvdmpEv8w=="
+      "version": "10.0.12",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.0.12.tgz",
+      "integrity": "sha512-utBfsIiVsFNydGtJexvEskYYgQXAd4+1KVxr5wVfND+AfV9EjC7YhMNdySq72ZRNrtQDpDpSlTHvoz5iVeEraw==",
+      "requires": {
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
+        }
+      }
     },
     "@babel/code-frame": {
       "version": "7.5.5",
@@ -964,30 +899,30 @@
       }
     },
     "@babel/compat-data": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz",
-      "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz",
+      "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.11.1",
+        "browserslist": "^4.12.0",
         "invariant": "^2.2.4",
         "semver": "^5.5.0"
       }
     },
     "@babel/core": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
-      "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz",
+      "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.8.3",
-        "@babel/generator": "^7.9.0",
+        "@babel/generator": "^7.9.6",
         "@babel/helper-module-transforms": "^7.9.0",
-        "@babel/helpers": "^7.9.0",
-        "@babel/parser": "^7.9.0",
+        "@babel/helpers": "^7.9.6",
+        "@babel/parser": "^7.9.6",
         "@babel/template": "^7.8.6",
-        "@babel/traverse": "^7.9.0",
-        "@babel/types": "^7.9.0",
+        "@babel/traverse": "^7.9.6",
+        "@babel/types": "^7.9.6",
         "convert-source-map": "^1.7.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.1",
@@ -999,21 +934,21 @@
       },
       "dependencies": {
         "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
           "dev": true,
           "requires": {
-            "@babel/highlight": "^7.8.3"
+            "@babel/highlight": "^7.10.4"
           }
         },
         "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
           "dev": true,
           "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
+            "@babel/helper-validator-identifier": "^7.10.4",
             "chalk": "^2.0.0",
             "js-tokens": "^4.0.0"
           }
@@ -1051,12 +986,12 @@
       }
     },
     "@babel/generator": {
-      "version": "7.9.3",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz",
-      "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+      "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.9.0",
+        "@babel/types": "^7.9.6",
         "jsesc": "^2.5.1",
         "lodash": "^4.17.13",
         "source-map": "^0.5.0"
@@ -1071,226 +1006,453 @@
       }
     },
     "@babel/helper-annotate-as-pure": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz",
-      "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
+      "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-builder-binary-assignment-operator-visitor": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz",
-      "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
+      "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
       "dev": true,
       "requires": {
-        "@babel/helper-explode-assignable-expression": "^7.8.3",
-        "@babel/types": "^7.8.3"
+        "@babel/helper-explode-assignable-expression": "^7.10.4",
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-compilation-targets": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz",
-      "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz",
+      "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==",
       "dev": true,
       "requires": {
-        "@babel/compat-data": "^7.9.6",
-        "browserslist": "^4.11.1",
+        "@babel/compat-data": "^7.10.4",
+        "browserslist": "^4.12.0",
         "invariant": "^2.2.4",
         "levenary": "^1.1.1",
         "semver": "^5.5.0"
       }
     },
     "@babel/helper-create-regexp-features-plugin": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz",
-      "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
+      "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
       "dev": true,
       "requires": {
-        "@babel/helper-annotate-as-pure": "^7.8.3",
-        "@babel/helper-regex": "^7.8.3",
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-regex": "^7.10.4",
         "regexpu-core": "^4.7.0"
       }
     },
     "@babel/helper-define-map": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz",
-      "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
+      "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-function-name": "^7.8.3",
-        "@babel/types": "^7.8.3",
-        "lodash": "^4.17.13"
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/types": "^7.10.5",
+        "lodash": "^4.17.19"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+          "dev": true
+        }
       }
     },
     "@babel/helper-explode-assignable-expression": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz",
-      "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==",
+      "version": "7.11.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz",
+      "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==",
       "dev": true,
       "requires": {
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-function-name": {
-      "version": "7.9.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
-      "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+      "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-get-function-arity": "^7.8.3",
-        "@babel/template": "^7.8.3",
-        "@babel/types": "^7.9.5"
+        "@babel/helper-get-function-arity": "^7.10.4",
+        "@babel/template": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        }
       }
     },
     "@babel/helper-get-function-arity": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
-      "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+      "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-hoist-variables": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz",
-      "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
+      "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-member-expression-to-functions": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
-      "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
+      "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.11.0"
       }
     },
     "@babel/helper-module-imports": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
-      "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+      "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-module-transforms": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
-      "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
+      "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-imports": "^7.8.3",
-        "@babel/helper-replace-supers": "^7.8.6",
-        "@babel/helper-simple-access": "^7.8.3",
-        "@babel/helper-split-export-declaration": "^7.8.3",
-        "@babel/template": "^7.8.6",
-        "@babel/types": "^7.9.0",
-        "lodash": "^4.17.13"
+        "@babel/helper-module-imports": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4",
+        "@babel/helper-simple-access": "^7.10.4",
+        "@babel/helper-split-export-declaration": "^7.11.0",
+        "@babel/template": "^7.10.4",
+        "@babel/types": "^7.11.0",
+        "lodash": "^4.17.19"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "lodash": {
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+          "dev": true
+        }
       }
     },
     "@babel/helper-optimise-call-expression": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
-      "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+      "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-plugin-utils": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
-      "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+      "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
       "dev": true
     },
     "@babel/helper-regex": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz",
-      "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz",
+      "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==",
       "dev": true,
       "requires": {
-        "lodash": "^4.17.13"
+        "lodash": "^4.17.19"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+          "dev": true
+        }
       }
     },
     "@babel/helper-remap-async-to-generator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz",
-      "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==",
+      "version": "7.11.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz",
+      "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==",
       "dev": true,
       "requires": {
-        "@babel/helper-annotate-as-pure": "^7.8.3",
-        "@babel/helper-wrap-function": "^7.8.3",
-        "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.3"
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-wrap-function": "^7.10.4",
+        "@babel/template": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        }
       }
     },
     "@babel/helper-replace-supers": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
-      "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+      "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
       "dev": true,
       "requires": {
-        "@babel/helper-member-expression-to-functions": "^7.8.3",
-        "@babel/helper-optimise-call-expression": "^7.8.3",
-        "@babel/traverse": "^7.9.6",
-        "@babel/types": "^7.9.6"
+        "@babel/helper-member-expression-to-functions": "^7.10.4",
+        "@babel/helper-optimise-call-expression": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
       }
     },
     "@babel/helper-simple-access": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
-      "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+      "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
       "dev": true,
       "requires": {
-        "@babel/template": "^7.8.3",
-        "@babel/types": "^7.8.3"
+        "@babel/template": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        }
+      }
+    },
+    "@babel/helper-skip-transparent-expression-wrappers": {
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz",
+      "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.11.0"
       }
     },
     "@babel/helper-split-export-declaration": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
-      "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
+      "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.11.0"
       }
     },
     "@babel/helper-validator-identifier": {
-      "version": "7.9.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
-      "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+      "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
       "dev": true
     },
     "@babel/helper-wrap-function": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
-      "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
+      "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
       "dev": true,
       "requires": {
-        "@babel/helper-function-name": "^7.8.3",
-        "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.3"
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        }
       }
     },
     "@babel/helpers": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
-      "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+      "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
       "dev": true,
       "requires": {
-        "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.9.6",
-        "@babel/types": "^7.9.6"
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        }
       }
     },
     "@babel/highlight": {
@@ -1313,101 +1475,102 @@
       }
     },
     "@babel/parser": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
-      "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
+      "version": "7.11.4",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz",
+      "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==",
       "dev": true
     },
     "@babel/plugin-proposal-async-generator-functions": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz",
-      "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz",
+      "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/helper-remap-async-to-generator": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-remap-async-to-generator": "^7.10.4",
         "@babel/plugin-syntax-async-generators": "^7.8.0"
       }
     },
     "@babel/plugin-proposal-dynamic-import": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz",
-      "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz",
+      "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "@babel/plugin-syntax-dynamic-import": "^7.8.0"
       }
     },
     "@babel/plugin-proposal-json-strings": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz",
-      "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz",
+      "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "@babel/plugin-syntax-json-strings": "^7.8.0"
       }
     },
     "@babel/plugin-proposal-nullish-coalescing-operator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz",
-      "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
+      "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
       }
     },
     "@babel/plugin-proposal-numeric-separator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz",
-      "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz",
+      "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/plugin-syntax-numeric-separator": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-numeric-separator": "^7.10.4"
       }
     },
     "@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz",
-      "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz",
+      "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
-        "@babel/plugin-transform-parameters": "^7.9.5"
+        "@babel/plugin-transform-parameters": "^7.10.4"
       }
     },
     "@babel/plugin-proposal-optional-catch-binding": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz",
-      "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
+      "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
       }
     },
     "@babel/plugin-proposal-optional-chaining": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz",
-      "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz",
+      "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0",
         "@babel/plugin-syntax-optional-chaining": "^7.8.0"
       }
     },
     "@babel/plugin-proposal-unicode-property-regex": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz",
-      "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz",
+      "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==",
       "dev": true,
       "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.8.8",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-syntax-async-generators": {
@@ -1447,12 +1610,12 @@
       }
     },
     "@babel/plugin-syntax-numeric-separator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz",
-      "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+      "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-syntax-object-rest-spread": {
@@ -1483,328 +1646,340 @@
       }
     },
     "@babel/plugin-syntax-top-level-await": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz",
-      "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz",
+      "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-arrow-functions": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz",
-      "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
+      "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-async-to-generator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz",
-      "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
+      "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-imports": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/helper-remap-async-to-generator": "^7.8.3"
+        "@babel/helper-module-imports": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-remap-async-to-generator": "^7.10.4"
       }
     },
     "@babel/plugin-transform-block-scoped-functions": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz",
-      "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
+      "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-block-scoping": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz",
-      "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==",
+      "version": "7.11.1",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz",
+      "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "lodash": "^4.17.13"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-classes": {
-      "version": "7.9.5",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz",
-      "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.8.3",
-        "@babel/helper-define-map": "^7.8.3",
-        "@babel/helper-function-name": "^7.9.5",
-        "@babel/helper-optimise-call-expression": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/helper-replace-supers": "^7.8.6",
-        "@babel/helper-split-export-declaration": "^7.8.3",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
+      "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-define-map": "^7.10.4",
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/helper-optimise-call-expression": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4",
+        "@babel/helper-split-export-declaration": "^7.10.4",
         "globals": "^11.1.0"
       }
     },
     "@babel/plugin-transform-computed-properties": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz",
-      "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
+      "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-destructuring": {
-      "version": "7.9.5",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz",
-      "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
+      "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-dotall-regex": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz",
-      "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz",
+      "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==",
       "dev": true,
       "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-duplicate-keys": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz",
-      "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz",
+      "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-exponentiation-operator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz",
-      "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
+      "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
       "dev": true,
       "requires": {
-        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-for-of": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz",
-      "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
+      "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-function-name": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz",
-      "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
+      "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
       "dev": true,
       "requires": {
-        "@babel/helper-function-name": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-literals": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz",
-      "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
+      "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-member-expression-literals": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz",
-      "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
+      "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-modules-amd": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz",
-      "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz",
+      "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.9.0",
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.10.5",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz",
-      "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
+      "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.9.0",
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/helper-simple-access": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-simple-access": "^7.10.4",
         "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz",
-      "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz",
+      "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==",
       "dev": true,
       "requires": {
-        "@babel/helper-hoist-variables": "^7.8.3",
-        "@babel/helper-module-transforms": "^7.9.0",
-        "@babel/helper-plugin-utils": "^7.8.3",
+        "@babel/helper-hoist-variables": "^7.10.4",
+        "@babel/helper-module-transforms": "^7.10.5",
+        "@babel/helper-plugin-utils": "^7.10.4",
         "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-umd": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz",
-      "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz",
+      "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==",
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.9.0",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-module-transforms": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-named-capturing-groups-regex": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz",
-      "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz",
+      "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==",
       "dev": true,
       "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.8.3"
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4"
       }
     },
     "@babel/plugin-transform-new-target": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz",
-      "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz",
+      "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-object-super": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz",
-      "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
+      "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/helper-replace-supers": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4"
       }
     },
     "@babel/plugin-transform-parameters": {
-      "version": "7.9.5",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz",
-      "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz",
+      "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==",
       "dev": true,
       "requires": {
-        "@babel/helper-get-function-arity": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-get-function-arity": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-property-literals": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz",
-      "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
+      "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-regenerator": {
-      "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz",
-      "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
+      "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
       "dev": true,
       "requires": {
         "regenerator-transform": "^0.14.2"
       }
     },
     "@babel/plugin-transform-reserved-words": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz",
-      "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz",
+      "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-runtime": {
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz",
+      "integrity": "sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-module-imports": "^7.8.3",
+        "@babel/helper-plugin-utils": "^7.8.3",
+        "resolve": "^1.8.1",
+        "semver": "^5.5.1"
       }
     },
     "@babel/plugin-transform-shorthand-properties": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz",
-      "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
+      "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-spread": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz",
-      "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz",
+      "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0"
       }
     },
     "@babel/plugin-transform-sticky-regex": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz",
-      "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
+      "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/helper-regex": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-regex": "^7.10.4"
       }
     },
     "@babel/plugin-transform-template-literals": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz",
-      "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==",
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz",
+      "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==",
       "dev": true,
       "requires": {
-        "@babel/helper-annotate-as-pure": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-typeof-symbol": {
-      "version": "7.8.4",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz",
-      "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz",
+      "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==",
       "dev": true,
       "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/plugin-transform-unicode-regex": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz",
-      "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
+      "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
       "dev": true,
       "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.8.3",
-        "@babel/helper-plugin-utils": "^7.8.3"
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
       }
     },
     "@babel/preset-env": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz",
-      "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz",
+      "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==",
       "dev": true,
       "requires": {
-        "@babel/compat-data": "^7.9.0",
-        "@babel/helper-compilation-targets": "^7.8.7",
+        "@babel/compat-data": "^7.9.6",
+        "@babel/helper-compilation-targets": "^7.9.6",
         "@babel/helper-module-imports": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
@@ -1812,7 +1987,7 @@
         "@babel/plugin-proposal-json-strings": "^7.8.3",
         "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3",
         "@babel/plugin-proposal-numeric-separator": "^7.8.3",
-        "@babel/plugin-proposal-object-rest-spread": "^7.9.0",
+        "@babel/plugin-proposal-object-rest-spread": "^7.9.6",
         "@babel/plugin-proposal-optional-catch-binding": "^7.8.3",
         "@babel/plugin-proposal-optional-chaining": "^7.9.0",
         "@babel/plugin-proposal-unicode-property-regex": "^7.8.3",
@@ -1829,9 +2004,9 @@
         "@babel/plugin-transform-async-to-generator": "^7.8.3",
         "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
         "@babel/plugin-transform-block-scoping": "^7.8.3",
-        "@babel/plugin-transform-classes": "^7.9.0",
+        "@babel/plugin-transform-classes": "^7.9.5",
         "@babel/plugin-transform-computed-properties": "^7.8.3",
-        "@babel/plugin-transform-destructuring": "^7.8.3",
+        "@babel/plugin-transform-destructuring": "^7.9.5",
         "@babel/plugin-transform-dotall-regex": "^7.8.3",
         "@babel/plugin-transform-duplicate-keys": "^7.8.3",
         "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
@@ -1839,14 +2014,14 @@
         "@babel/plugin-transform-function-name": "^7.8.3",
         "@babel/plugin-transform-literals": "^7.8.3",
         "@babel/plugin-transform-member-expression-literals": "^7.8.3",
-        "@babel/plugin-transform-modules-amd": "^7.9.0",
-        "@babel/plugin-transform-modules-commonjs": "^7.9.0",
-        "@babel/plugin-transform-modules-systemjs": "^7.9.0",
+        "@babel/plugin-transform-modules-amd": "^7.9.6",
+        "@babel/plugin-transform-modules-commonjs": "^7.9.6",
+        "@babel/plugin-transform-modules-systemjs": "^7.9.6",
         "@babel/plugin-transform-modules-umd": "^7.9.0",
         "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
         "@babel/plugin-transform-new-target": "^7.8.3",
         "@babel/plugin-transform-object-super": "^7.8.3",
-        "@babel/plugin-transform-parameters": "^7.8.7",
+        "@babel/plugin-transform-parameters": "^7.9.5",
         "@babel/plugin-transform-property-literals": "^7.8.3",
         "@babel/plugin-transform-regenerator": "^7.8.7",
         "@babel/plugin-transform-reserved-words": "^7.8.3",
@@ -1857,8 +2032,8 @@
         "@babel/plugin-transform-typeof-symbol": "^7.8.4",
         "@babel/plugin-transform-unicode-regex": "^7.8.3",
         "@babel/preset-modules": "^0.1.3",
-        "@babel/types": "^7.9.0",
-        "browserslist": "^4.9.1",
+        "@babel/types": "^7.9.6",
+        "browserslist": "^4.11.1",
         "core-js-compat": "^3.6.2",
         "invariant": "^2.2.2",
         "levenary": "^1.1.1",
@@ -1907,21 +2082,21 @@
       },
       "dependencies": {
         "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
           "dev": true,
           "requires": {
-            "@babel/highlight": "^7.8.3"
+            "@babel/highlight": "^7.10.4"
           }
         },
         "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
           "dev": true,
           "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
+            "@babel/helper-validator-identifier": "^7.10.4",
             "chalk": "^2.0.0",
             "js-tokens": "^4.0.0"
           }
@@ -1929,50 +2104,49 @@
       }
     },
     "@babel/traverse": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
-      "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
+      "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
       "dev": true,
       "requires": {
-        "@babel/code-frame": "^7.8.3",
-        "@babel/generator": "^7.9.6",
-        "@babel/helper-function-name": "^7.9.5",
-        "@babel/helper-split-export-declaration": "^7.8.3",
-        "@babel/parser": "^7.9.6",
-        "@babel/types": "^7.9.6",
+        "@babel/code-frame": "^7.10.4",
+        "@babel/generator": "^7.11.0",
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/helper-split-export-declaration": "^7.11.0",
+        "@babel/parser": "^7.11.0",
+        "@babel/types": "^7.11.0",
         "debug": "^4.1.0",
         "globals": "^11.1.0",
-        "lodash": "^4.17.13"
+        "lodash": "^4.17.19"
       },
       "dependencies": {
         "@babel/code-frame": {
-          "version": "7.8.3",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
-          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
           "dev": true,
           "requires": {
-            "@babel/highlight": "^7.8.3"
+            "@babel/highlight": "^7.10.4"
           }
         },
         "@babel/generator": {
-          "version": "7.9.6",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
-          "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+          "version": "7.11.4",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz",
+          "integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==",
           "dev": true,
           "requires": {
-            "@babel/types": "^7.9.6",
+            "@babel/types": "^7.11.0",
             "jsesc": "^2.5.1",
-            "lodash": "^4.17.13",
             "source-map": "^0.5.0"
           }
         },
         "@babel/highlight": {
-          "version": "7.9.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
-          "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
           "dev": true,
           "requires": {
-            "@babel/helper-validator-identifier": "^7.9.0",
+            "@babel/helper-validator-identifier": "^7.10.4",
             "chalk": "^2.0.0",
             "js-tokens": "^4.0.0"
           }
@@ -1986,6 +2160,12 @@
             "ms": "^2.1.1"
           }
         },
+        "lodash": {
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+          "dev": true
+        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -2001,14 +2181,22 @@
       }
     },
     "@babel/types": {
-      "version": "7.9.6",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
-      "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+      "version": "7.11.0",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
+      "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
       "dev": true,
       "requires": {
-        "@babel/helper-validator-identifier": "^7.9.5",
-        "lodash": "^4.17.13",
+        "@babel/helper-validator-identifier": "^7.10.4",
+        "lodash": "^4.17.19",
         "to-fast-properties": "^2.0.0"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+          "dev": true
+        }
       }
     },
     "@braintree/sanitize-url": {
@@ -2479,25 +2667,32 @@
       }
     },
     "@ngtools/webpack": {
-      "version": "9.1.5",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.5.tgz",
-      "integrity": "sha512-6VzmlXRnf7phwLOiy0WrxHFHD5TuNQgVVpD/VFkZjtCTOsZyGQYGVPfaqxvn13M4Mm8bjrN4mk06VowCFm2oHw==",
+      "version": "10.0.7",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.0.7.tgz",
+      "integrity": "sha512-yUjTDOgsuEJEtsyqb78jDm3Keo18x6j1AjmZUEeiCxShX2pBQTfErmxtBqxPUAkLa/gD7Wkf5cZM+3xcYyShRg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.5",
+        "@angular-devkit/core": "10.0.7",
         "enhanced-resolve": "4.1.1",
-        "rxjs": "6.5.4",
+        "rxjs": "6.5.5",
         "webpack-sources": "1.4.3"
+      }
+    },
+    "@nodelib/fs.scandir": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
+      "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
+      "dev": true,
+      "requires": {
+        "@nodelib/fs.stat": "2.0.3",
+        "run-parallel": "^1.1.9"
       },
       "dependencies": {
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
+        "@nodelib/fs.stat": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+          "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+          "dev": true
         }
       }
     },
@@ -2507,49 +2702,76 @@
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "dev": true
     },
+    "@nodelib/fs.walk": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
+      "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
+      "dev": true,
+      "requires": {
+        "@nodelib/fs.scandir": "2.1.3",
+        "fastq": "^1.6.0"
+      }
+    },
+    "@npmcli/move-file": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz",
+      "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==",
+      "dev": true,
+      "requires": {
+        "mkdirp": "^1.0.4"
+      },
+      "dependencies": {
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "dev": true
+        }
+      }
+    },
     "@schematics/angular": {
-      "version": "9.1.5",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.5.tgz",
-      "integrity": "sha512-kMscfnwd9TGLo8V+dE/Pzu4wNxZej/6F6z5XzMOQVFTbL+RqMDvtkHf9CarhiKBd5ogm4npfKV8ToNTUecFJkA==",
+      "version": "10.0.7",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.7.tgz",
+      "integrity": "sha512-0SljGZjA68tOsn7OIps79lTy9Y96OZglLnBqO6pSLlmCkGMbjFY2ssKQXJzwR0jJ5+TWBjWjpn2U5mir4yzOuQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.5",
-        "@angular-devkit/schematics": "9.1.5"
+        "@angular-devkit/core": "10.0.7",
+        "@angular-devkit/schematics": "10.0.7"
       }
     },
     "@schematics/update": {
-      "version": "0.901.5",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.5.tgz",
-      "integrity": "sha512-JmB+AuU6C9eM8x/CxeBEDigRuypzuWx7gnloK9D5i2gP9r39clFNtWT7eM3YW3kl4uyEMzrQHx6esMWNUScVBw==",
+      "version": "0.1000.7",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1000.7.tgz",
+      "integrity": "sha512-KEOtKu95np+jVxxs/JCQ8UNQ0v21BSZKe0sb+D/Nk3XVPMHXDS3ZvcavDh5OXGC2GucbZHkD2UNvEPTEHpLxMg==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.1.5",
-        "@angular-devkit/schematics": "9.1.5",
+        "@angular-devkit/core": "10.0.7",
+        "@angular-devkit/schematics": "10.0.7",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
         "npm-package-arg": "^8.0.0",
         "pacote": "9.5.12",
-        "rxjs": "6.5.4",
-        "semver": "7.1.3",
+        "rxjs": "6.5.5",
+        "semver": "7.3.2",
         "semver-intersect": "1.4.0"
       },
       "dependencies": {
         "hosted-git-info": {
-          "version": "3.0.4",
-          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
-          "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+          "version": "3.0.5",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+          "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==",
           "dev": true,
           "requires": {
-            "lru-cache": "^5.1.1"
+            "lru-cache": "^6.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==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
           "dev": true,
           "requires": {
-            "yallist": "^3.0.2"
+            "yallist": "^4.0.0"
           }
         },
         "npm-package-arg": {
@@ -2563,25 +2785,16 @@
             "validate-npm-package-name": "^3.0.0"
           }
         },
-        "rxjs": {
-          "version": "6.5.4",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
-          "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        },
         "semver": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
-          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
         "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
           "dev": true
         }
       }
@@ -2660,6 +2873,12 @@
         "@types/jasmine": "*"
       }
     },
+    "@types/json-schema": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
+      "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
+      "dev": true
+    },
     "@types/marked": {
       "version": "0.7.2",
       "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.7.2.tgz",
@@ -2688,9 +2907,9 @@
       "integrity": "sha512-GdZbRSJ3Cv5fiwT6I0SQ3ckeN2PWNqxd26W9Z2fCK1tGrrasGy4puvNFtnddqH9UJFMQYXxEuuB7B8UK+LLwSg=="
     },
     "@types/q": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
-      "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
+      "version": "1.5.4",
+      "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
+      "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
       "dev": true
     },
     "@types/selenium-webdriver": {
@@ -2711,9 +2930,9 @@
       "integrity": "sha512-hkgzYF+qnIl8uTO8rmUSVSfQ8BIfMXC4yJAF4n8BE758YsKBZvFC4NumnAegj7KmylP0liEZNpb9RRGFMbFejA=="
     },
     "@types/webpack-sources": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz",
-      "integrity": "sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw==",
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz",
+      "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==",
       "dev": true,
       "requires": {
         "@types/node": "*",
@@ -2745,178 +2964,177 @@
       "dev": true
     },
     "@webassemblyjs/ast": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
-      "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+      "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/helper-module-context": "1.8.5",
-        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
-        "@webassemblyjs/wast-parser": "1.8.5"
+        "@webassemblyjs/helper-module-context": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/wast-parser": "1.9.0"
       }
     },
     "@webassemblyjs/floating-point-hex-parser": {
-      "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==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+      "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
       "dev": true
     },
     "@webassemblyjs/helper-api-error": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
-      "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+      "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
       "dev": true
     },
     "@webassemblyjs/helper-buffer": {
-      "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==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+      "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
       "dev": true
     },
     "@webassemblyjs/helper-code-frame": {
-      "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==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+      "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/wast-printer": "1.8.5"
+        "@webassemblyjs/wast-printer": "1.9.0"
       }
     },
     "@webassemblyjs/helper-fsm": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
-      "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+      "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
       "dev": true
     },
     "@webassemblyjs/helper-module-context": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
-      "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+      "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.8.5",
-        "mamacro": "^0.0.3"
+        "@webassemblyjs/ast": "1.9.0"
       }
     },
     "@webassemblyjs/helper-wasm-bytecode": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
-      "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+      "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
       "dev": true
     },
     "@webassemblyjs/helper-wasm-section": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
-      "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+      "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
       "dev": true,
       "requires": {
-        "@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/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0"
       }
     },
     "@webassemblyjs/ieee754": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
-      "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+      "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
       "dev": true,
       "requires": {
         "@xtuc/ieee754": "^1.2.0"
       }
     },
     "@webassemblyjs/leb128": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
-      "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+      "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
       "dev": true,
       "requires": {
         "@xtuc/long": "4.2.2"
       }
     },
     "@webassemblyjs/utf8": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
-      "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+      "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
       "dev": true
     },
     "@webassemblyjs/wasm-edit": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
-      "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+      "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
       "dev": true,
       "requires": {
-        "@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/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/helper-wasm-section": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0",
+        "@webassemblyjs/wasm-opt": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0",
+        "@webassemblyjs/wast-printer": "1.9.0"
       }
     },
     "@webassemblyjs/wasm-gen": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
-      "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+      "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
       "dev": true,
       "requires": {
-        "@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/ast": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/ieee754": "1.9.0",
+        "@webassemblyjs/leb128": "1.9.0",
+        "@webassemblyjs/utf8": "1.9.0"
       }
     },
     "@webassemblyjs/wasm-opt": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
-      "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+      "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.8.5",
-        "@webassemblyjs/helper-buffer": "1.8.5",
-        "@webassemblyjs/wasm-gen": "1.8.5",
-        "@webassemblyjs/wasm-parser": "1.8.5"
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0"
       }
     },
     "@webassemblyjs/wasm-parser": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
-      "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+      "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
       "dev": true,
       "requires": {
-        "@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/ast": "1.9.0",
+        "@webassemblyjs/helper-api-error": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/ieee754": "1.9.0",
+        "@webassemblyjs/leb128": "1.9.0",
+        "@webassemblyjs/utf8": "1.9.0"
       }
     },
     "@webassemblyjs/wast-parser": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
-      "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+      "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
       "dev": true,
       "requires": {
-        "@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",
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+        "@webassemblyjs/helper-api-error": "1.9.0",
+        "@webassemblyjs/helper-code-frame": "1.9.0",
+        "@webassemblyjs/helper-fsm": "1.9.0",
         "@xtuc/long": "4.2.2"
       }
     },
     "@webassemblyjs/wast-printer": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
-      "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+      "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
       "dev": true,
       "requires": {
-        "@webassemblyjs/ast": "1.8.5",
-        "@webassemblyjs/wast-parser": "1.8.5",
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/wast-parser": "1.9.0",
         "@xtuc/long": "4.2.2"
       }
     },
@@ -2948,6 +3166,12 @@
         "through": ">=2.2.7 <3"
       }
     },
+    "abab": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+      "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
+      "dev": true
+    },
     "abbrev": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -2994,6 +3218,53 @@
       "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==",
       "dev": true
     },
+    "adjust-sourcemap-loader": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz",
+      "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==",
+      "dev": true,
+      "requires": {
+        "assert": "1.4.1",
+        "camelcase": "5.0.0",
+        "loader-utils": "1.2.3",
+        "object-path": "0.11.4",
+        "regex-parser": "2.2.10"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+          "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
+          "dev": true
+        },
+        "emojis-list": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+          "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+          "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^2.0.0",
+            "json5": "^1.0.1"
+          }
+        }
+      }
+    },
     "adler-32": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
@@ -3004,9 +3275,9 @@
       }
     },
     "adm-zip": {
-      "version": "0.4.14",
-      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz",
-      "integrity": "sha512-/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==",
+      "version": "0.4.16",
+      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
+      "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
       "dev": true
     },
     "after": {
@@ -3034,9 +3305,9 @@
       }
     },
     "aggregate-error": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
-      "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
       "dev": true,
       "requires": {
         "clean-stack": "^2.0.0",
@@ -3333,9 +3604,9 @@
       }
     },
     "app-root-path": {
-      "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==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz",
+      "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==",
       "dev": true
     },
     "aproba": {
@@ -3369,6 +3640,12 @@
         "commander": "^2.11.0"
       }
     },
+    "arity-n": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz",
+      "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=",
+      "dev": true
+    },
     "arr-diff": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
@@ -3465,49 +3742,32 @@
       }
     },
     "asn1.js": {
-      "version": "4.10.1",
-      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
-      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+      "version": "5.4.1",
+      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+      "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
       "dev": true,
       "requires": {
         "bn.js": "^4.0.0",
         "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0"
+        "minimalistic-assert": "^1.0.0",
+        "safer-buffer": "^2.1.0"
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
     },
     "assert": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
-      "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
-      "dev": true,
-      "requires": {
-        "object-assign": "^4.1.1",
-        "util": "0.10.3"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
-          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
-          "dev": true
-        },
-        "util": {
-          "version": "0.10.3",
-          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
-          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
-          "dev": true,
-          "requires": {
-            "inherits": "2.0.1"
-          }
-        }
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+      "dev": true,
+      "requires": {
+        "util": "0.10.3"
       }
     },
     "assert-plus": {
@@ -3633,18 +3893,18 @@
       "dev": true
     },
     "autoprefixer": {
-      "version": "9.7.4",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz",
-      "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==",
+      "version": "9.8.0",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz",
+      "integrity": "sha512-D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.8.3",
-        "caniuse-lite": "^1.0.30001020",
+        "browserslist": "^4.12.0",
+        "caniuse-lite": "^1.0.30001061",
         "chalk": "^2.4.2",
         "normalize-range": "^0.1.2",
         "num2fraction": "^1.2.2",
-        "postcss": "^7.0.26",
-        "postcss-value-parser": "^4.0.2"
+        "postcss": "^7.0.30",
+        "postcss-value-parser": "^4.1.0"
       }
     },
     "aws-sign2": {
@@ -3669,15 +3929,16 @@
       }
     },
     "babel-loader": {
-      "version": "8.0.6",
-      "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz",
-      "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==",
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+      "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
       "dev": true,
       "requires": {
-        "find-cache-dir": "^2.0.0",
-        "loader-utils": "^1.0.2",
-        "mkdirp": "^0.5.1",
-        "pify": "^4.0.1"
+        "find-cache-dir": "^2.1.0",
+        "loader-utils": "^1.4.0",
+        "mkdirp": "^0.5.3",
+        "pify": "^4.0.1",
+        "schema-utils": "^2.6.5"
       },
       "dependencies": {
         "find-cache-dir": {
@@ -3932,9 +4193,9 @@
       }
     },
     "bn.js": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz",
-      "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==",
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
+      "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
       "dev": true
     },
     "body-parser": {
@@ -4279,27 +4540,28 @@
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
     },
     "browserify-sign": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz",
-      "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==",
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+      "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
       "dev": true,
       "requires": {
         "bn.js": "^5.1.1",
         "browserify-rsa": "^4.0.1",
         "create-hash": "^1.2.0",
         "create-hmac": "^1.1.7",
-        "elliptic": "^6.5.2",
+        "elliptic": "^6.5.3",
         "inherits": "^2.0.4",
         "parse-asn1": "^5.1.5",
-        "readable-stream": "^3.6.0"
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
       },
       "dependencies": {
         "inherits": {
@@ -4318,6 +4580,12 @@
             "string_decoder": "^1.1.1",
             "util-deprecate": "^1.0.1"
           }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+          "dev": true
         }
       }
     },
@@ -4331,15 +4599,15 @@
       }
     },
     "browserslist": {
-      "version": "4.12.0",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
-      "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
+      "version": "4.14.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz",
+      "integrity": "sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==",
       "dev": true,
       "requires": {
-        "caniuse-lite": "^1.0.30001043",
-        "electron-to-chromium": "^1.3.413",
-        "node-releases": "^1.1.53",
-        "pkg-up": "^2.0.0"
+        "caniuse-lite": "^1.0.30001111",
+        "electron-to-chromium": "^1.3.523",
+        "escalade": "^3.0.2",
+        "node-releases": "^1.1.60"
       }
     },
     "browserstack": {
@@ -4526,12 +4794,12 @@
       "dev": true
     },
     "cacache": {
-      "version": "15.0.0",
-      "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz",
-      "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==",
+      "version": "15.0.3",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz",
+      "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==",
       "dev": true,
       "requires": {
-        "chownr": "^1.1.2",
+        "chownr": "^2.0.0",
         "fs-minipass": "^2.0.0",
         "glob": "^7.1.4",
         "infer-owner": "^1.0.4",
@@ -4541,12 +4809,12 @@
         "minipass-flush": "^1.0.5",
         "minipass-pipeline": "^1.2.2",
         "mkdirp": "^1.0.3",
-        "move-concurrently": "^1.0.1",
-        "p-map": "^3.0.0",
+        "move-file": "^2.0.0",
+        "p-map": "^4.0.0",
         "promise-inflight": "^1.0.1",
-        "rimraf": "^2.7.1",
+        "rimraf": "^3.0.2",
         "ssri": "^8.0.0",
-        "tar": "^6.0.1",
+        "tar": "^6.0.2",
         "unique-filename": "^1.1.1"
       },
       "dependencies": {
@@ -4579,6 +4847,15 @@
           "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
           "dev": true
         },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
         "yallist": {
           "version": "3.1.1",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -4712,9 +4989,9 @@
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30001055",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz",
-      "integrity": "sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==",
+      "version": "1.0.30001117",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001117.tgz",
+      "integrity": "sha512-4tY0Fatzdx59kYjQs+bNxUwZB03ZEBgVmJ1UkFPz/Q8OLiUUbjct2EdpnXj0fvFTPej2EkbPIG0w8BWsjAyk1Q==",
       "dev": true
     },
     "canonical-path": {
@@ -4958,9 +5235,9 @@
       }
     },
     "chownr": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-      "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
       "dev": true
     },
     "chrome-trace-event": {
@@ -4970,6 +5247,14 @@
       "dev": true,
       "requires": {
         "tslib": "^1.9.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "chromium-pickle-js": {
@@ -5060,9 +5345,9 @@
       }
     },
     "cli-spinners": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz",
-      "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==",
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz",
+      "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==",
       "dev": true
     },
     "cli-width": {
@@ -5083,45 +5368,29 @@
       }
     },
     "cliui": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-      "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
       "dev": true,
       "requires": {
-        "string-width": "^2.1.1",
-        "strip-ansi": "^4.0.0",
-        "wrap-ansi": "^2.0.0"
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^6.2.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=",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
           "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=",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^3.0.0"
+            "ansi-regex": "^5.0.0"
           }
         }
       }
@@ -5169,29 +5438,40 @@
       "integrity": "sha512-3Jfe6ZmmGzvdQWFo3MUzobn3WdX++jc3Tj0rsviJWYPnP7NGMFEE4qheNeOXeJgB1TTgxYT8XuNvhS/u596yGg==",
       "dev": true
     },
-    "code-point-at": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
-    },
     "codelyzer": {
-      "version": "5.2.2",
-      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz",
-      "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.0.tgz",
+      "integrity": "sha512-edJIQCIcxD9DhVSyBEdJ38AbLikm515Wl91t5RDGNT88uA6uQdTm4phTWfn9JhzAI8kXNUcfYyAE90lJElpGtA==",
       "dev": true,
       "requires": {
-        "app-root-path": "^2.2.1",
+        "@angular/compiler": "9.0.0",
+        "@angular/core": "9.0.0",
+        "app-root-path": "^3.0.0",
         "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",
+        "rxjs": "^6.5.3",
         "semver-dsl": "^1.0.1",
         "source-map": "^0.5.7",
-        "sprintf-js": "^1.1.2"
+        "sprintf-js": "^1.1.2",
+        "tslib": "^1.10.0",
+        "zone.js": "~0.10.3"
       },
       "dependencies": {
+        "@angular/compiler": {
+          "version": "9.0.0",
+          "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz",
+          "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==",
+          "dev": true
+        },
+        "@angular/core": {
+          "version": "9.0.0",
+          "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz",
+          "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==",
+          "dev": true
+        },
         "source-map": {
           "version": "0.5.7",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -5203,6 +5483,12 @@
           "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
           "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
           "dev": true
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
         }
       }
     },
@@ -5348,6 +5634,15 @@
       "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
       "dev": true
     },
+    "compose-function": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
+      "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=",
+      "dev": true,
+      "requires": {
+        "arity-n": "^1.0.4"
+      }
+    },
     "compressible": {
       "version": "2.0.17",
       "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
@@ -5545,57 +5840,85 @@
       "dev": true
     },
     "copy-webpack-plugin": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz",
-      "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==",
+      "version": "6.0.3",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz",
+      "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==",
       "dev": true,
       "requires": {
-        "cacache": "^12.0.3",
-        "find-cache-dir": "^2.1.0",
-        "glob-parent": "^3.1.0",
-        "globby": "^7.1.1",
-        "is-glob": "^4.0.1",
-        "loader-utils": "^1.2.3",
-        "minimatch": "^3.0.4",
+        "cacache": "^15.0.4",
+        "fast-glob": "^3.2.4",
+        "find-cache-dir": "^3.3.1",
+        "glob-parent": "^5.1.1",
+        "globby": "^11.0.1",
+        "loader-utils": "^2.0.0",
         "normalize-path": "^3.0.0",
-        "p-limit": "^2.2.1",
-        "schema-utils": "^1.0.0",
-        "serialize-javascript": "^2.1.2",
-        "webpack-log": "^2.0.0"
+        "p-limit": "^3.0.1",
+        "schema-utils": "^2.7.0",
+        "serialize-javascript": "^4.0.0",
+        "webpack-sources": "^1.4.3"
       },
       "dependencies": {
+        "@nodelib/fs.stat": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+          "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+          "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"
+          }
+        },
         "cacache": {
-          "version": "12.0.4",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
-          "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+          "version": "15.0.5",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz",
+          "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==",
           "dev": true,
           "requires": {
-            "bluebird": "^3.5.5",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
+            "@npmcli/move-file": "^1.0.1",
+            "chownr": "^2.0.0",
+            "fs-minipass": "^2.0.0",
             "glob": "^7.1.4",
-            "graceful-fs": "^4.1.15",
-            "infer-owner": "^1.0.3",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
+            "infer-owner": "^1.0.4",
+            "lru-cache": "^6.0.0",
+            "minipass": "^3.1.1",
+            "minipass-collect": "^1.0.2",
+            "minipass-flush": "^1.0.5",
+            "minipass-pipeline": "^1.2.2",
+            "mkdirp": "^1.0.3",
+            "p-map": "^4.0.0",
             "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.3",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
+            "rimraf": "^3.0.2",
+            "ssri": "^8.0.0",
+            "tar": "^6.0.2",
+            "unique-filename": "^1.1.1"
           }
         },
-        "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==",
+        "fast-glob": {
+          "version": "3.2.4",
+          "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+          "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
           "dev": true,
           "requires": {
-            "commondir": "^1.0.1",
-            "make-dir": "^2.0.0",
-            "pkg-dir": "^3.0.0"
+            "@nodelib/fs.stat": "^2.0.2",
+            "@nodelib/fs.walk": "^1.2.3",
+            "glob-parent": "^5.1.0",
+            "merge2": "^1.3.0",
+            "micromatch": "^4.0.2",
+            "picomatch": "^2.2.1"
+          }
+        },
+        "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"
           }
         },
         "glob": {
@@ -5612,6 +5935,15 @@
             "path-is-absolute": "^1.0.0"
           }
         },
+        "glob-parent": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+          "dev": true,
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
         "is-glob": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
@@ -5621,87 +5953,86 @@
             "is-extglob": "^2.1.1"
           }
         },
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
-          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.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
         },
         "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==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
           "dev": true,
           "requires": {
-            "yallist": "^3.0.2"
+            "yallist": "^4.0.0"
           }
         },
-        "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==",
+        "merge2": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+          "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+          "dev": true
+        },
+        "micromatch": {
+          "version": "4.0.2",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+          "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
           "dev": true,
           "requires": {
-            "pify": "^4.0.1",
-            "semver": "^5.6.0"
+            "braces": "^3.0.1",
+            "picomatch": "^2.0.5"
           }
         },
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "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
         },
-        "pify": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
-          "dev": true
-        },
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
-          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+        "p-limit": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz",
+          "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==",
           "dev": true,
           "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
+            "p-try": "^2.0.0"
           }
         },
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+        "picomatch": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+          "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
           "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==",
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
           "dev": true,
           "requires": {
-            "figgy-pudding": "^3.5.1"
+            "glob": "^7.1.3"
+          }
+        },
+        "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"
           }
         },
         "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
           "dev": true
         }
       }
@@ -6339,19 +6670,19 @@
       }
     },
     "create-ecdh": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
-      "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+      "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
       "dev": true,
       "requires": {
         "bn.js": "^4.1.0",
-        "elliptic": "^6.0.0"
+        "elliptic": "^6.5.3"
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
@@ -6477,9 +6808,9 @@
       }
     },
     "css-loader": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.1.tgz",
-      "integrity": "sha512-0G4CbcZzQ9D1Q6ndOfjFuMDo8uLYMu5vc9Abs5ztyHcKvmil6GJrMiNjzzi3tQvUF+mVRuDg7bE6Oc0Prolgig==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz",
+      "integrity": "sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==",
       "dev": true,
       "requires": {
         "camelcase": "^5.3.1",
@@ -6493,7 +6824,7 @@
         "postcss-modules-scope": "^2.2.0",
         "postcss-modules-values": "^3.0.0",
         "postcss-value-parser": "^4.0.3",
-        "schema-utils": "^2.6.5",
+        "schema-utils": "^2.6.6",
         "semver": "^6.3.0"
       },
       "dependencies": {
@@ -6559,14 +6890,13 @@
       "dev": true
     },
     "css-selector-tokenizer": {
-      "version": "0.7.2",
-      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz",
-      "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==",
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz",
+      "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==",
       "dev": true,
       "requires": {
         "cssesc": "^3.0.0",
-        "fastparse": "^1.1.2",
-        "regexpu-core": "^4.6.0"
+        "fastparse": "^1.1.2"
       }
     },
     "css-tree": {
@@ -7046,6 +7376,17 @@
         "assert-plus": "^1.0.0"
       }
     },
+    "data-urls": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+      "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
+      "dev": true,
+      "requires": {
+        "abab": "^2.0.3",
+        "whatwg-mimetype": "^2.3.0",
+        "whatwg-url": "^8.0.0"
+      }
+    },
     "date-format": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
@@ -7383,9 +7724,9 @@
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
@@ -7878,9 +8219,9 @@
       }
     },
     "electron-to-chromium": {
-      "version": "1.3.432",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.432.tgz",
-      "integrity": "sha512-/GdNhXyLP5Yl2322CUX/+Xi8NhdHBqL6lD9VJVKjH6CjoPGakvwZ5CpKgj/oOlbzuWWjOvMjDw1bBuAIRCNTlw==",
+      "version": "1.3.545",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.545.tgz",
+      "integrity": "sha512-+0R/i17u5E1cwF3g0W8Niq3UUKTUMyyT4kLkutZUHG8mDNvFsAckK3HIanzGVtixe3b6rknD8k7gHiR6nKFkgg==",
       "dev": true
     },
     "elementtree": {
@@ -7899,9 +8240,9 @@
       }
     },
     "elliptic": {
-      "version": "6.5.2",
-      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
-      "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
+      "version": "6.5.3",
+      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+      "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
       "dev": true,
       "requires": {
         "bn.js": "^4.4.0",
@@ -7914,9 +8255,9 @@
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
@@ -7940,12 +8281,23 @@
       "dev": true
     },
     "encoding": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
-      "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+      "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
       "dev": true,
       "requires": {
-        "iconv-lite": "~0.4.13"
+        "iconv-lite": "^0.6.2"
+      },
+      "dependencies": {
+        "iconv-lite": {
+          "version": "0.6.2",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
+          "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
+          "dev": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3.0.0"
+          }
+        }
       }
     },
     "end-of-stream": {
@@ -8226,6 +8578,12 @@
         "ext": "^1.1.2"
       }
     },
+    "escalade": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz",
+      "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==",
+      "dev": true
+    },
     "escape-goat": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
@@ -8352,9 +8710,9 @@
       "dev": true
     },
     "events": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
-      "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+      "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==",
       "dev": true
     },
     "eventsource": {
@@ -8848,6 +9206,15 @@
       "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
       "dev": true
     },
+    "fastq": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
+      "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
+      "dev": true,
+      "requires": {
+        "reusify": "^1.0.4"
+      }
+    },
     "faye-websocket": {
       "version": "0.10.0",
       "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
@@ -9884,9 +10251,9 @@
       "dev": true
     },
     "get-caller-file": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
-      "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+      "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
     },
     "get-stream": {
@@ -10014,17 +10381,145 @@
       }
     },
     "globby": {
-      "version": "7.1.1",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
-      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+      "version": "11.0.1",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
+      "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
       "dev": true,
       "requires": {
-        "array-union": "^1.0.1",
-        "dir-glob": "^2.0.0",
-        "glob": "^7.1.2",
-        "ignore": "^3.3.5",
-        "pify": "^3.0.0",
-        "slash": "^1.0.0"
+        "array-union": "^2.1.0",
+        "dir-glob": "^3.0.1",
+        "fast-glob": "^3.1.1",
+        "ignore": "^5.1.4",
+        "merge2": "^1.3.0",
+        "slash": "^3.0.0"
+      },
+      "dependencies": {
+        "@nodelib/fs.stat": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+          "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+          "dev": true
+        },
+        "array-union": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+          "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+          "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"
+          }
+        },
+        "dir-glob": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+          "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+          "dev": true,
+          "requires": {
+            "path-type": "^4.0.0"
+          }
+        },
+        "fast-glob": {
+          "version": "3.2.4",
+          "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+          "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+          "dev": true,
+          "requires": {
+            "@nodelib/fs.stat": "^2.0.2",
+            "@nodelib/fs.walk": "^1.2.3",
+            "glob-parent": "^5.1.0",
+            "merge2": "^1.3.0",
+            "micromatch": "^4.0.2",
+            "picomatch": "^2.2.1"
+          }
+        },
+        "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"
+          }
+        },
+        "glob-parent": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+          "dev": true,
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
+        "ignore": {
+          "version": "5.1.8",
+          "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+          "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+          "dev": true
+        },
+        "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
+        },
+        "merge2": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+          "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+          "dev": true
+        },
+        "micromatch": {
+          "version": "4.0.2",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+          "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+          "dev": true,
+          "requires": {
+            "braces": "^3.0.1",
+            "picomatch": "^2.0.5"
+          }
+        },
+        "path-type": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+          "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+          "dev": true
+        },
+        "picomatch": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+          "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+          "dev": true
+        },
+        "slash": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+          "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+          "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"
+          }
+        }
       }
     },
     "good-listener": {
@@ -10822,12 +11317,6 @@
         "loose-envify": "^1.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
-    },
     "ip": {
       "version": "1.1.5",
       "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
@@ -10982,9 +11471,9 @@
       "dev": true
     },
     "is-docker": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
-      "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz",
+      "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==",
       "dev": true
     },
     "is-extendable": {
@@ -11466,9 +11955,9 @@
       "dev": true
     },
     "jest-worker": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz",
-      "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==",
+      "version": "26.0.0",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz",
+      "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==",
       "dev": true,
       "requires": {
         "merge-stream": "^2.0.0",
@@ -11600,9 +12089,9 @@
       }
     },
     "jszip": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz",
-      "integrity": "sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==",
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz",
+      "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==",
       "dev": true,
       "requires": {
         "lie": "~3.3.0",
@@ -11881,9 +12370,9 @@
       }
     },
     "karma-jasmine": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.1.1.tgz",
-      "integrity": "sha512-pxBmv5K7IkBRLsFSTOpgiK/HzicQT3mfFF+oHAC7nxMfYKhaYFgxOa5qjnHW4sL5rUnmdkSajoudOnnOdPyW4Q==",
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.3.1.tgz",
+      "integrity": "sha512-Nxh7eX9mOQMyK0VSsMxdod+bcqrR/ikrmEiWj5M6fwuQ7oI+YEF1FckaDsWfs6TIpULm9f0fTKMjF7XcrvWyqQ==",
       "dev": true,
       "requires": {
         "jasmine-core": "^3.5.0"
@@ -11948,79 +12437,72 @@
       "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==",
       "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"
-      }
-    },
     "less": {
-      "version": "3.11.1",
-      "resolved": "https://registry.npmjs.org/less/-/less-3.11.1.tgz",
-      "integrity": "sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==",
+      "version": "3.12.2",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz",
+      "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==",
       "dev": true,
       "requires": {
-        "clone": "^2.1.2",
         "errno": "^0.1.1",
         "graceful-fs": "^4.1.2",
         "image-size": "~0.5.0",
+        "make-dir": "^2.1.0",
         "mime": "^1.4.1",
-        "mkdirp": "^0.5.0",
-        "promise": "^7.1.1",
-        "request": "^2.83.0",
+        "native-request": "^1.0.5",
         "source-map": "~0.6.0",
         "tslib": "^1.10.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,
+          "optional": 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,
+          "optional": true
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true,
+          "optional": true
+        },
         "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,
           "optional": true
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
         }
       }
     },
     "less-loader": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz",
-      "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==",
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.1.0.tgz",
+      "integrity": "sha512-/jLzOwLyqJ7Kt3xg5sHHkXtOyShWwFj410K9Si9WO+/h8rmYxxkSR0A3/hFEntWudE20zZnWMtpMYnLzqTVdUA==",
       "dev": true,
       "requires": {
-        "clone": "^2.1.1",
-        "loader-utils": "^1.1.0",
-        "pify": "^4.0.1"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
-          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        },
-        "pify": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
-          "dev": true
-        }
+        "clone": "^2.1.2",
+        "less": "^3.11.1",
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^2.6.6"
       }
     },
     "leven": {
@@ -12049,9 +12531,9 @@
       }
     },
     "license-webpack-plugin": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.4.tgz",
-      "integrity": "sha512-1Xq72fmPbTg5KofXs+yI5L4QqPFjQ6mZxoeI6D7gfiEDOtaEIk6PGrdLaej90bpDqKNHNxlQ/MW4tMAL6xMPJQ==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.2.0.tgz",
+      "integrity": "sha512-XPsdL/0brSHf+7dXIlRqotnCQ58RX2au6otkOg4U3dm8uH+Ka/fW4iukEs95uXm+qKe/SBs+s1Ll/aQddKG+tg==",
       "dev": true,
       "requires": {
         "@types/webpack-sources": "^0.1.5",
@@ -12279,6 +12761,12 @@
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
       "dev": true
     },
+    "lodash.sortby": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+      "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+      "dev": true
+    },
     "lodash.uniq": {
       "version": "4.5.0",
       "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -12444,6 +12932,12 @@
             "y18n": "^4.0.0"
           }
         },
+        "chownr": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+          "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+          "dev": true
+        },
         "glob": {
           "version": "7.1.6",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -12484,21 +12978,6 @@
         }
       }
     },
-    "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",
-      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
-      "dev": true,
-      "requires": {
-        "p-defer": "^1.0.0"
-      }
-    },
     "map-cache": {
       "version": "0.2.2",
       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@@ -12584,17 +13063,6 @@
       "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
       "dev": true
     },
-    "mem": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
-      "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
-      "dev": true,
-      "requires": {
-        "map-age-cleaner": "^0.1.1",
-        "mimic-fn": "^2.0.0",
-        "p-is-promise": "^2.0.0"
-      }
-    },
     "memory-fs": {
       "version": "0.5.0",
       "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
@@ -12696,9 +13164,9 @@
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
@@ -12849,9 +13317,9 @@
       "dev": true
     },
     "minipass": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz",
-      "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==",
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+      "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
       "dev": true,
       "requires": {
         "yallist": "^4.0.0"
@@ -12884,18 +13352,18 @@
       }
     },
     "minipass-pipeline": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz",
-      "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==",
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+      "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
       "dev": true,
       "requires": {
         "minipass": "^3.0.0"
       }
     },
     "minizlib": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz",
-      "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
       "dev": true,
       "requires": {
         "minipass": "^3.0.0",
@@ -13008,6 +13476,23 @@
         "run-queue": "^1.0.3"
       }
     },
+    "move-file": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz",
+      "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==",
+      "dev": true,
+      "requires": {
+        "path-exists": "^4.0.0"
+      },
+      "dependencies": {
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        }
+      }
+    },
     "ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -13074,6 +13559,13 @@
         "to-regex": "^3.0.1"
       }
     },
+    "native-request": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.7.tgz",
+      "integrity": "sha512-9nRjinI9bmz+S7dgNtf4A70+/vPhnd+2krGpy4SUlADuOuSa24IDkNaZ+R/QT1wQ6S8jBdi6wE7fLekFZNfUpQ==",
+      "dev": true,
+      "optional": true
+    },
     "negotiator": {
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
@@ -13131,6 +13623,13 @@
       "integrity": "sha512-t0aO4X8rqesLqypU8ZK2W7xGVbpi/z7u/Xg7qhnLoKVauI29NFzdKxV2oaYZmpkxIpgdbLSsIfklkjgxIM0IFA==",
       "requires": {
         "tslib": "^1.9.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
+        }
       }
     },
     "nice-try": {
@@ -13199,13 +13698,22 @@
           "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
           "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
           "dev": true
+        },
+        "util": {
+          "version": "0.11.1",
+          "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+          "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.3"
+          }
         }
       }
     },
     "node-releases": {
-      "version": "1.1.55",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz",
-      "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==",
+      "version": "1.1.60",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz",
+      "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==",
       "dev": true
     },
     "nopt": {
@@ -13317,9 +13825,9 @@
       }
     },
     "npm-pick-manifest": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz",
-      "integrity": "sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg==",
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz",
+      "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==",
       "dev": true,
       "requires": {
         "npm-install-checks": "^4.0.0",
@@ -13328,21 +13836,21 @@
       },
       "dependencies": {
         "hosted-git-info": {
-          "version": "3.0.4",
-          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
-          "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+          "version": "3.0.5",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+          "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==",
           "dev": true,
           "requires": {
-            "lru-cache": "^5.1.1"
+            "lru-cache": "^6.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==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
           "dev": true,
           "requires": {
-            "yallist": "^3.0.2"
+            "yallist": "^4.0.0"
           }
         },
         "npm-package-arg": {
@@ -13363,17 +13871,17 @@
           "dev": true
         },
         "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
           "dev": true
         }
       }
     },
     "npm-registry-fetch": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.4.tgz",
-      "integrity": "sha512-6jb34hX/iYNQebqWUHtU8YF6Cjb1H6ouTFPClYsyiW6lpFkljTpdeftm53rRojtja1rKAvKNIIiTS5Sjpw4wsA==",
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz",
+      "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==",
       "dev": true,
       "requires": {
         "JSONStream": "^1.3.4",
@@ -13432,12 +13940,6 @@
       "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
       "dev": true
     },
-    "number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true
-    },
     "oauth-sign": {
       "version": "0.9.0",
       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
@@ -13498,6 +14000,12 @@
       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
       "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
     },
+    "object-path": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
+      "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=",
+      "dev": true
+    },
     "object-visit": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
@@ -13530,22 +14038,22 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "version": "1.17.6",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+          "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
             "function-bind": "^1.1.1",
             "has": "^1.0.3",
             "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
+            "is-callable": "^1.2.0",
+            "is-regex": "^1.1.0",
             "object-inspect": "^1.7.0",
             "object-keys": "^1.1.1",
             "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
+            "string.prototype.trimend": "^1.0.1",
+            "string.prototype.trimstart": "^1.0.1"
           }
         },
         "es-to-primitive": {
@@ -13566,24 +14074,24 @@
           "dev": true
         },
         "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+          "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
           "dev": true
         },
         "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+          "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
           "dev": true,
           "requires": {
-            "has": "^1.0.3"
+            "has-symbols": "^1.0.1"
           }
         },
         "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+          "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
           "dev": true
         },
         "object-keys": {
@@ -13616,22 +14124,22 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "version": "1.17.6",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+          "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
             "function-bind": "^1.1.1",
             "has": "^1.0.3",
             "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
+            "is-callable": "^1.2.0",
+            "is-regex": "^1.1.0",
             "object-inspect": "^1.7.0",
             "object-keys": "^1.1.1",
             "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
+            "string.prototype.trimend": "^1.0.1",
+            "string.prototype.trimstart": "^1.0.1"
           }
         },
         "es-to-primitive": {
@@ -13652,24 +14160,24 @@
           "dev": true
         },
         "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+          "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
           "dev": true
         },
         "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+          "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
           "dev": true,
           "requires": {
-            "has": "^1.0.3"
+            "has-symbols": "^1.0.1"
           }
         },
         "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+          "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
           "dev": true
         },
         "object-keys": {
@@ -13735,9 +14243,9 @@
       }
     },
     "open": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
-      "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz",
+      "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==",
       "dev": true,
       "requires": {
         "is-docker": "^2.0.0",
@@ -13785,9 +14293,9 @@
       }
     },
     "ora": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz",
-      "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==",
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz",
+      "integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==",
       "dev": true,
       "requires": {
         "chalk": "^3.0.0",
@@ -13857,9 +14365,9 @@
           "dev": true
         },
         "onetime": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
-          "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+          "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
           "dev": true,
           "requires": {
             "mimic-fn": "^2.1.0"
@@ -13915,17 +14423,6 @@
       "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
       "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
     },
-    "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"
-      }
-    },
     "os-name": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz",
@@ -13956,24 +14453,12 @@
       "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
       "dev": true
     },
-    "p-defer": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
-      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
-      "dev": true
-    },
     "p-finally": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
       "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
       "dev": true
     },
-    "p-is-promise": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
-      "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
-      "dev": true
-    },
     "p-limit": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
@@ -13993,9 +14478,9 @@
       }
     },
     "p-map": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
-      "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+      "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
       "dev": true,
       "requires": {
         "aggregate-error": "^3.0.0"
@@ -14122,6 +14607,12 @@
             }
           }
         },
+        "chownr": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+          "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+          "dev": true
+        },
         "fs-minipass": {
           "version": "1.2.7",
           "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
@@ -14259,14 +14750,13 @@
       }
     },
     "parse-asn1": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
-      "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+      "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
       "dev": true,
       "requires": {
-        "asn1.js": "^4.0.0",
+        "asn1.js": "^5.2.0",
         "browserify-aes": "^1.0.0",
-        "create-hash": "^1.1.0",
         "evp_bytestokey": "^1.0.0",
         "pbkdf2": "^3.0.3",
         "safe-buffer": "^5.1.1"
@@ -14378,9 +14868,9 @@
       }
     },
     "pbkdf2": {
-      "version": "3.0.17",
-      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
-      "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
+      "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
       "dev": true,
       "requires": {
         "create-hash": "^1.1.2",
@@ -14543,6 +15033,15 @@
       "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==",
       "dev": true
     },
+    "pnp-webpack-plugin": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
+      "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
+      "dev": true,
+      "requires": {
+        "ts-pnp": "^1.1.6"
+      }
+    },
     "portfinder": {
       "version": "1.0.26",
       "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz",
@@ -14578,9 +15077,9 @@
       "dev": true
     },
     "postcss": {
-      "version": "7.0.27",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
-      "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
+      "version": "7.0.31",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz",
+      "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==",
       "dev": true,
       "requires": {
         "chalk": "^2.4.2",
@@ -14597,9 +15096,9 @@
       }
     },
     "postcss-calc": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz",
-      "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==",
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz",
+      "integrity": "sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA==",
       "dev": true,
       "requires": {
         "postcss": "^7.0.27",
@@ -14929,15 +15428,34 @@
       }
     },
     "postcss-modules-local-by-default": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz",
-      "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
+      "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
       "dev": true,
       "requires": {
         "icss-utils": "^4.1.1",
-        "postcss": "^7.0.16",
+        "postcss": "^7.0.32",
         "postcss-selector-parser": "^6.0.2",
-        "postcss-value-parser": "^4.0.0"
+        "postcss-value-parser": "^4.1.0"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "7.0.32",
+          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+          "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.2",
+            "source-map": "^0.6.1",
+            "supports-color": "^6.1.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
+        }
       }
     },
     "postcss-modules-scope": {
@@ -15257,12 +15775,6 @@
         "clipboard": "^2.0.0"
       }
     },
-    "private": {
-      "version": "0.1.8",
-      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
-      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
-      "dev": true
-    },
     "process": {
       "version": "0.11.10",
       "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -15281,16 +15793,6 @@
       "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
       "dev": true
     },
-    "promise": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
-      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "asap": "~2.0.3"
-      }
-    },
     "promise-inflight": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
@@ -15349,9 +15851,9 @@
       }
     },
     "protractor": {
-      "version": "5.4.4",
-      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz",
-      "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz",
+      "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==",
       "dev": true,
       "requires": {
         "@types/q": "^0.0.32",
@@ -15367,8 +15869,8 @@
         "selenium-webdriver": "3.6.0",
         "source-map-support": "~0.4.0",
         "webdriver-js-extender": "2.1.0",
-        "webdriver-manager": "^12.0.6",
-        "yargs": "^12.0.5"
+        "webdriver-manager": "^12.1.7",
+        "yargs": "^15.3.1"
       },
       "dependencies": {
         "@types/q": {
@@ -15522,9 +16024,9 @@
       },
       "dependencies": {
         "bn.js": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-          "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
           "dev": true
         }
       }
@@ -15713,35 +16215,13 @@
       }
     },
     "raw-loader": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.0.tgz",
-      "integrity": "sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz",
+      "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==",
       "dev": true,
       "requires": {
-        "loader-utils": "^1.2.3",
-        "schema-utils": "^2.5.0"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
-          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        }
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^2.6.5"
       }
     },
     "rc": {
@@ -15911,13 +16391,12 @@
       "dev": true
     },
     "regenerator-transform": {
-      "version": "0.14.4",
-      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz",
-      "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==",
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+      "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
       "dev": true,
       "requires": {
-        "@babel/runtime": "^7.8.4",
-        "private": "^0.1.8"
+        "@babel/runtime": "^7.8.4"
       }
     },
     "regex-not": {
@@ -15930,6 +16409,12 @@
         "safe-regex": "^1.1.0"
       }
     },
+    "regex-parser": {
+      "version": "2.2.10",
+      "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz",
+      "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==",
+      "dev": true
+    },
     "regexpu-core": {
       "version": "4.7.0",
       "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
@@ -16044,9 +16529,9 @@
       "dev": true
     },
     "require-main-filename": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
-      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+      "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
     },
     "requires-port": {
@@ -16085,6 +16570,78 @@
       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
       "dev": true
     },
+    "resolve-url-loader": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz",
+      "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==",
+      "dev": true,
+      "requires": {
+        "adjust-sourcemap-loader": "2.0.0",
+        "camelcase": "5.3.1",
+        "compose-function": "3.0.3",
+        "convert-source-map": "1.7.0",
+        "es6-iterator": "2.0.3",
+        "loader-utils": "1.2.3",
+        "postcss": "7.0.21",
+        "rework": "1.0.1",
+        "rework-visit": "1.0.0",
+        "source-map": "0.6.1"
+      },
+      "dependencies": {
+        "convert-source-map": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+          "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "~5.1.1"
+          }
+        },
+        "emojis-list": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+          "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+          "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^2.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "postcss": {
+          "version": "7.0.21",
+          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
+          "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.4.2",
+            "source-map": "^0.6.1",
+            "supports-color": "^6.1.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
+        }
+      }
+    },
     "responselike": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
@@ -16133,6 +16690,36 @@
       "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
       "dev": true
     },
+    "reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "dev": true
+    },
+    "rework": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz",
+      "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=",
+      "dev": true,
+      "requires": {
+        "convert-source-map": "^0.3.3",
+        "css": "^2.0.0"
+      },
+      "dependencies": {
+        "convert-source-map": {
+          "version": "0.3.5",
+          "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz",
+          "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=",
+          "dev": true
+        }
+      }
+    },
+    "rework-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz",
+      "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=",
+      "dev": true
+    },
     "rfdc": {
       "version": "1.1.4",
       "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
@@ -16200,9 +16787,9 @@
       "integrity": "sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g=="
     },
     "rollup": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.1.0.tgz",
-      "integrity": "sha512-gfE1455AEazVVTJoeQtcOq/U6GSxwoj4XPSWVsuWmgIxj7sBQNLDOSA82PbdMe+cP8ql8fR1jogPFe8Wg8g4SQ==",
+      "version": "2.10.9",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz",
+      "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==",
       "dev": true,
       "requires": {
         "fsevents": "~2.1.2"
@@ -16226,6 +16813,12 @@
         "is-promise": "^2.1.0"
       }
     },
+    "run-parallel": {
+      "version": "1.1.9",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
+      "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
+      "dev": true
+    },
     "run-queue": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
@@ -16246,6 +16839,13 @@
       "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
       "requires": {
         "tslib": "^1.9.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
+        }
       }
     },
     "safe-buffer": {
@@ -16278,9 +16878,9 @@
       }
     },
     "sass": {
-      "version": "1.26.3",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.3.tgz",
-      "integrity": "sha512-5NMHI1+YFYw4sN3yfKjpLuV9B5l7MqQ6FlkTcC4FT+oHbBRUZoSjHrrt/mE0nFXJyY2kQtU9ou9HxvFVjLFuuw==",
+      "version": "1.26.5",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.5.tgz",
+      "integrity": "sha512-FG2swzaZUiX53YzZSjSakzvGtlds0lcbF+URuU9mxOv7WBh7NhXEVDa4kPKN4hN6fC2TkOTOKqiqp6d53N9X5Q==",
       "dev": true,
       "requires": {
         "chokidar": ">=2.0.0 <4.0.0"
@@ -16320,9 +16920,9 @@
           }
         },
         "neo-async": {
-          "version": "2.6.1",
-          "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
-          "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+          "version": "2.6.2",
+          "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+          "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
           "dev": true
         },
         "semver": {
@@ -16349,19 +16949,20 @@
       "dev": true
     },
     "schema-utils": {
-      "version": "2.6.6",
-      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
-      "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
+      "version": "2.7.0",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
+      "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
       "dev": true,
       "requires": {
-        "ajv": "^6.12.0",
+        "@types/json-schema": "^7.0.4",
+        "ajv": "^6.12.2",
         "ajv-keywords": "^3.4.1"
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+          "version": "6.12.4",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
+          "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -16371,9 +16972,9 @@
           }
         },
         "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "version": "3.1.3",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
           "dev": true
         }
       }
@@ -16567,10 +17168,13 @@
       }
     },
     "serialize-javascript": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
-      "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
-      "dev": true
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+      "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.1.0"
+      }
     },
     "serve-index": {
       "version": "1.9.1",
@@ -16942,16 +17546,6 @@
         }
       }
     },
-    "sockjs": {
-      "version": "0.3.19",
-      "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
-      "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
-      "dev": true,
-      "requires": {
-        "faye-websocket": "^0.10.0",
-        "uuid": "^3.0.1"
-      }
-    },
     "sockjs-client": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
@@ -17045,34 +17639,32 @@
       "dev": true
     },
     "source-map-loader": {
-      "version": "0.2.4",
-      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz",
-      "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==",
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.0.tgz",
+      "integrity": "sha512-ZayyQCSCrQazN50aCvuS84lJT4xc1ZAcykH5blHaBdVveSwjiFK8UGMPvao0ho54DTb0Jf7m57uRRG/YYUZ2Fg==",
       "dev": true,
       "requires": {
-        "async": "^2.5.0",
-        "loader-utils": "^1.1.0"
+        "data-urls": "^2.0.0",
+        "iconv-lite": "^0.5.1",
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^2.6.6",
+        "source-map": "^0.6.0"
       },
       "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+        "iconv-lite": {
+          "version": "0.5.2",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz",
+          "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==",
           "dev": true,
           "requires": {
-            "minimist": "^1.2.0"
+            "safer-buffer": ">= 2.1.2 < 3"
           }
         },
-        "loader-utils": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
-          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
+        "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
         }
       }
     },
@@ -17224,9 +17816,9 @@
       }
     },
     "speed-measure-webpack-plugin": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz",
-      "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==",
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz",
+      "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==",
       "dev": true,
       "requires": {
         "chalk": "^2.0.1"
@@ -17495,28 +18087,35 @@
       "dev": true
     },
     "string-width": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+      "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
       "dev": true,
       "requires": {
-        "is-fullwidth-code-point": "^2.0.0",
-        "strip-ansi": "^4.0.0"
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.0"
       },
       "dependencies": {
         "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
           "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
           "dev": true
         },
         "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^3.0.0"
+            "ansi-regex": "^5.0.0"
           }
         }
       }
@@ -17547,98 +18146,22 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
-          "dev": true,
-          "requires": {
-            "es-to-primitive": "^1.2.1",
-            "function-bind": "^1.1.1",
-            "has": "^1.0.3",
-            "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
-            "object-inspect": "^1.7.0",
-            "object-keys": "^1.1.1",
-            "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
-          }
-        },
-        "es-to-primitive": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-          "dev": true,
-          "requires": {
-            "is-callable": "^1.1.4",
-            "is-date-object": "^1.0.1",
-            "is-symbol": "^1.0.2"
-          }
-        },
-        "has-symbols": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
-          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
-          "dev": true
-        },
-        "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
-          "dev": true
-        },
-        "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
-          "dev": true,
-          "requires": {
-            "has": "^1.0.3"
-          }
-        },
-        "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
-          "dev": true
-        },
-        "object-keys": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-          "dev": true
-        }
-      }
-    },
-    "string.prototype.trimleft": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
-      "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.17.5",
-        "string.prototype.trimstart": "^1.0.0"
-      },
-      "dependencies": {
-        "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "version": "1.17.6",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+          "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
             "function-bind": "^1.1.1",
             "has": "^1.0.3",
             "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
+            "is-callable": "^1.2.0",
+            "is-regex": "^1.1.0",
             "object-inspect": "^1.7.0",
             "object-keys": "^1.1.1",
             "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
+            "string.prototype.trimend": "^1.0.1",
+            "string.prototype.trimstart": "^1.0.1"
           }
         },
         "es-to-primitive": {
@@ -17659,100 +18182,24 @@
           "dev": true
         },
         "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+          "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
           "dev": true
         },
         "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
-          "dev": true,
-          "requires": {
-            "has": "^1.0.3"
-          }
-        },
-        "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
-          "dev": true
-        },
-        "object-keys": {
           "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-          "dev": true
-        }
-      }
-    },
-    "string.prototype.trimright": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
-      "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.17.5",
-        "string.prototype.trimend": "^1.0.0"
-      },
-      "dependencies": {
-        "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
-          "dev": true,
-          "requires": {
-            "es-to-primitive": "^1.2.1",
-            "function-bind": "^1.1.1",
-            "has": "^1.0.3",
-            "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
-            "object-inspect": "^1.7.0",
-            "object-keys": "^1.1.1",
-            "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
-          }
-        },
-        "es-to-primitive": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-          "dev": true,
-          "requires": {
-            "is-callable": "^1.1.4",
-            "is-date-object": "^1.0.1",
-            "is-symbol": "^1.0.2"
-          }
-        },
-        "has-symbols": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
-          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
-          "dev": true
-        },
-        "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
-          "dev": true
-        },
-        "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+          "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
           "dev": true,
           "requires": {
-            "has": "^1.0.3"
+            "has-symbols": "^1.0.1"
           }
         },
         "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+          "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
           "dev": true
         },
         "object-keys": {
@@ -17774,22 +18221,22 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "version": "1.17.6",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+          "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
             "function-bind": "^1.1.1",
             "has": "^1.0.3",
             "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
+            "is-callable": "^1.2.0",
+            "is-regex": "^1.1.0",
             "object-inspect": "^1.7.0",
             "object-keys": "^1.1.1",
             "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
+            "string.prototype.trimend": "^1.0.1",
+            "string.prototype.trimstart": "^1.0.1"
           }
         },
         "es-to-primitive": {
@@ -17810,24 +18257,24 @@
           "dev": true
         },
         "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+          "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
           "dev": true
         },
         "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+          "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
           "dev": true,
           "requires": {
-            "has": "^1.0.3"
+            "has-symbols": "^1.0.1"
           }
         },
         "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+          "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
           "dev": true
         },
         "object-keys": {
@@ -17882,35 +18329,13 @@
       "dev": true
     },
     "style-loader": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.1.3.tgz",
-      "integrity": "sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz",
+      "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==",
       "dev": true,
       "requires": {
-        "loader-utils": "^1.2.3",
-        "schema-utils": "^2.6.4"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
-          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        }
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^2.6.6"
       }
     },
     "stylehacks": {
@@ -18101,9 +18526,9 @@
           }
         },
         "css-what": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
-          "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==",
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz",
+          "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==",
           "dev": true
         },
         "domutils": {
@@ -18184,25 +18609,19 @@
       }
     },
     "tar": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz",
-      "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==",
+      "version": "6.0.5",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz",
+      "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==",
       "dev": true,
       "requires": {
         "chownr": "^2.0.0",
         "fs-minipass": "^2.0.0",
         "minipass": "^3.0.0",
-        "minizlib": "^2.1.0",
+        "minizlib": "^2.1.1",
         "mkdirp": "^1.0.3",
         "yallist": "^4.0.0"
       },
       "dependencies": {
-        "chownr": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
-          "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
-          "dev": true
-        },
         "mkdirp": {
           "version": "1.0.4",
           "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -18310,77 +18729,22 @@
       }
     },
     "terser-webpack-plugin": {
-      "version": "2.3.5",
-      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz",
-      "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz",
+      "integrity": "sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==",
       "dev": true,
       "requires": {
-        "cacache": "^13.0.1",
-        "find-cache-dir": "^3.2.0",
-        "jest-worker": "^25.1.0",
-        "p-limit": "^2.2.2",
-        "schema-utils": "^2.6.4",
-        "serialize-javascript": "^2.1.2",
+        "cacache": "^15.0.3",
+        "find-cache-dir": "^3.3.1",
+        "jest-worker": "^26.0.0",
+        "p-limit": "^2.3.0",
+        "schema-utils": "^2.6.6",
+        "serialize-javascript": "^3.0.0",
         "source-map": "^0.6.1",
-        "terser": "^4.4.3",
+        "terser": "^4.6.13",
         "webpack-sources": "^1.4.3"
       },
       "dependencies": {
-        "cacache": {
-          "version": "13.0.1",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
-          "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
-          "dev": true,
-          "requires": {
-            "chownr": "^1.1.2",
-            "figgy-pudding": "^3.5.1",
-            "fs-minipass": "^2.0.0",
-            "glob": "^7.1.4",
-            "graceful-fs": "^4.2.2",
-            "infer-owner": "^1.0.4",
-            "lru-cache": "^5.1.1",
-            "minipass": "^3.0.0",
-            "minipass-collect": "^1.0.2",
-            "minipass-flush": "^1.0.5",
-            "minipass-pipeline": "^1.2.2",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "p-map": "^3.0.0",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.7.1",
-            "ssri": "^7.0.0",
-            "unique-filename": "^1.1.1"
-          }
-        },
-        "glob": {
-          "version": "7.1.6",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
-          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
-          "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"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.2.4",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
-          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
-          "dev": true
-        },
-        "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"
-          }
-        },
         "p-limit": {
           "version": "2.3.0",
           "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
@@ -18390,38 +18754,31 @@
             "p-try": "^2.0.0"
           }
         },
+        "serialize-javascript": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz",
+          "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==",
+          "dev": true,
+          "requires": {
+            "randombytes": "^2.1.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
         },
-        "ssri": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
-          "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==",
-          "dev": true,
-          "requires": {
-            "figgy-pudding": "^3.5.1",
-            "minipass": "^3.1.1"
-          }
-        },
         "terser": {
-          "version": "4.6.13",
-          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.13.tgz",
-          "integrity": "sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==",
+          "version": "4.8.0",
+          "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
+          "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
           "dev": true,
           "requires": {
             "commander": "^2.20.0",
             "source-map": "~0.6.1",
             "source-map-support": "~0.5.12"
           }
-        },
-        "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
-          "dev": true
         }
       }
     },
@@ -18584,6 +18941,15 @@
         }
       }
     },
+    "tr46": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz",
+      "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==",
+      "dev": true,
+      "requires": {
+        "punycode": "^2.1.1"
+      }
+    },
     "traverse": {
       "version": "0.6.6",
       "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
@@ -18628,6 +18994,12 @@
         "yn": "3.1.1"
       }
     },
+    "ts-pnp": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
+      "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
+      "dev": true
+    },
     "ts-simple-ast": {
       "version": "12.4.0",
       "resolved": "https://registry.npmjs.org/ts-simple-ast/-/ts-simple-ast-12.4.0.tgz",
@@ -18682,6 +19054,12 @@
             "slash": "^1.0.0"
           }
         },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        },
         "typescript": {
           "version": "2.9.1",
           "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz",
@@ -18691,9 +19069,9 @@
       }
     },
     "tslib": {
-      "version": "1.11.2",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz",
-      "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg=="
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+      "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
     },
     "tslint": {
       "version": "6.1.2",
@@ -18714,6 +19092,14 @@
         "semver": "^5.3.0",
         "tslib": "^1.10.0",
         "tsutils": "^2.29.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "tsutils": {
@@ -18723,6 +19109,14 @@
       "dev": true,
       "requires": {
         "tslib": "^1.8.1"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "tty-browserify": {
@@ -18817,9 +19211,9 @@
       }
     },
     "typescript": {
-      "version": "3.7.5",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz",
-      "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==",
+      "version": "3.9.7",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
+      "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
       "dev": true
     },
     "ua-parser-js": {
@@ -19350,12 +19744,20 @@
       "dev": true
     },
     "util": {
-      "version": "0.11.1",
-      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
-      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+      "version": "0.10.3",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+      "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
       "dev": true,
       "requires": {
-        "inherits": "2.0.3"
+        "inherits": "2.0.1"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+          "dev": true
+        }
       }
     },
     "util-deprecate": {
@@ -19386,22 +19788,22 @@
       },
       "dependencies": {
         "es-abstract": {
-          "version": "1.17.5",
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
-          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "version": "1.17.6",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+          "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
           "dev": true,
           "requires": {
             "es-to-primitive": "^1.2.1",
             "function-bind": "^1.1.1",
             "has": "^1.0.3",
             "has-symbols": "^1.0.1",
-            "is-callable": "^1.1.5",
-            "is-regex": "^1.0.5",
+            "is-callable": "^1.2.0",
+            "is-regex": "^1.1.0",
             "object-inspect": "^1.7.0",
             "object-keys": "^1.1.1",
             "object.assign": "^4.1.0",
-            "string.prototype.trimleft": "^2.1.1",
-            "string.prototype.trimright": "^2.1.1"
+            "string.prototype.trimend": "^1.0.1",
+            "string.prototype.trimstart": "^1.0.1"
           }
         },
         "es-to-primitive": {
@@ -19422,24 +19824,24 @@
           "dev": true
         },
         "is-callable": {
-          "version": "1.1.5",
-          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
-          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+          "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
           "dev": true
         },
         "is-regex": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+          "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
           "dev": true,
           "requires": {
-            "has": "^1.0.3"
+            "has-symbols": "^1.0.1"
           }
         },
         "object-inspect": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-          "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+          "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
           "dev": true
         },
         "object-keys": {
@@ -19535,14 +19937,162 @@
       "dev": true
     },
     "watchpack": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz",
-      "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==",
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz",
+      "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==",
       "dev": true,
       "requires": {
-        "chokidar": "^2.1.8",
+        "chokidar": "^3.4.1",
         "graceful-fs": "^4.1.2",
-        "neo-async": "^2.5.0"
+        "neo-async": "^2.5.0",
+        "watchpack-chokidar2": "^2.0.0"
+      },
+      "dependencies": {
+        "anymatch": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "normalize-path": "^3.0.0",
+            "picomatch": "^2.0.4"
+          }
+        },
+        "binary-extensions": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+          "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+          "dev": true,
+          "optional": 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,
+          "optional": true,
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "chokidar": {
+          "version": "3.4.2",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
+          "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "anymatch": "~3.1.1",
+            "braces": "~3.0.2",
+            "fsevents": "~2.1.2",
+            "glob-parent": "~5.1.0",
+            "is-binary-path": "~2.1.0",
+            "is-glob": "~4.0.1",
+            "normalize-path": "~3.0.0",
+            "readdirp": "~3.4.0"
+          }
+        },
+        "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,
+          "optional": true,
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "fsevents": {
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+          "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+          "dev": true,
+          "optional": true
+        },
+        "glob-parent": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+          "dev": true,
+          "optional": 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,
+          "optional": 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,
+          "optional": 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,
+          "optional": 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,
+          "optional": true
+        },
+        "readdirp": {
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+          "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "picomatch": "^2.2.1"
+          },
+          "dependencies": {
+            "picomatch": {
+              "version": "2.2.2",
+              "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+              "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+              "dev": true,
+              "optional": 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,
+          "optional": true,
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        }
+      }
+    },
+    "watchpack-chokidar2": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz",
+      "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chokidar": "^2.1.8"
       },
       "dependencies": {
         "chokidar": {
@@ -19550,6 +20100,7 @@
           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
           "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "anymatch": "^2.0.0",
             "async-each": "^1.0.1",
@@ -19569,7 +20120,8 @@
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
           "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -19601,17 +20153,23 @@
         "selenium-webdriver": "^3.0.1"
       }
     },
+    "webidl-conversions": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+      "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+      "dev": true
+    },
     "webpack": {
-      "version": "4.42.0",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz",
-      "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==",
+      "version": "4.43.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz",
+      "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==",
       "dev": true,
       "requires": {
-        "@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.2.1",
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-module-context": "1.9.0",
+        "@webassemblyjs/wasm-edit": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0",
+        "acorn": "^6.4.1",
         "ajv": "^6.10.2",
         "ajv-keywords": "^3.4.1",
         "chrome-trace-event": "^1.0.2",
@@ -19622,20 +20180,20 @@
         "loader-utils": "^1.2.3",
         "memory-fs": "^0.4.1",
         "micromatch": "^3.1.10",
-        "mkdirp": "^0.5.1",
+        "mkdirp": "^0.5.3",
         "neo-async": "^2.6.1",
         "node-libs-browser": "^2.2.1",
         "schema-utils": "^1.0.0",
         "tapable": "^1.1.3",
         "terser-webpack-plugin": "^1.4.3",
-        "watchpack": "^1.6.0",
+        "watchpack": "^1.6.1",
         "webpack-sources": "^1.4.1"
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+          "version": "6.12.4",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
+          "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -19667,10 +20225,16 @@
             "y18n": "^4.0.0"
           }
         },
+        "chownr": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+          "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+          "dev": true
+        },
         "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "version": "3.1.3",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
           "dev": true
         },
         "find-cache-dir": {
@@ -19748,9 +20312,9 @@
           }
         },
         "neo-async": {
-          "version": "2.6.1",
-          "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
-          "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+          "version": "2.6.2",
+          "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+          "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
           "dev": true
         },
         "pify": {
@@ -19792,16 +20356,16 @@
           }
         },
         "terser-webpack-plugin": {
-          "version": "1.4.3",
-          "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz",
-          "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==",
+          "version": "1.4.5",
+          "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+          "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
           "dev": true,
           "requires": {
             "cacache": "^12.0.2",
             "find-cache-dir": "^2.1.0",
             "is-wsl": "^1.1.0",
             "schema-utils": "^1.0.0",
-            "serialize-javascript": "^2.1.2",
+            "serialize-javascript": "^4.0.0",
             "source-map": "^0.6.1",
             "terser": "^4.1.2",
             "webpack-sources": "^1.4.0",
@@ -20124,9 +20688,9 @@
       },
       "dependencies": {
         "lodash": {
-          "version": "4.17.15",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
           "dev": true
         }
       }
@@ -20150,9 +20714,9 @@
       }
     },
     "webpack-subresource-integrity": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.0.tgz",
-      "integrity": "sha512-GB1kB/LwAWC3CxwcedGhMkxGpNZxSheCe1q+KJP1bakuieAdX/rGHEcf5zsEzhKXpqsGqokgsDoD9dIkr61VDQ==",
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz",
+      "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==",
       "dev": true,
       "requires": {
         "webpack-sources": "^1.3.0"
@@ -20175,6 +20739,23 @@
       "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
       "dev": true
     },
+    "whatwg-mimetype": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+      "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
+      "dev": true
+    },
+    "whatwg-url": {
+      "version": "8.2.0",
+      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.0.tgz",
+      "integrity": "sha512-Sl4svq71j4kzaFD13uxkVl2AIsbj/xwp8NTM1VMhFRyNT1ZMTWaV6+Pva0fQs7y8+cAEPrDGfCAFLvJejhT79g==",
+      "dev": true,
+      "requires": {
+        "lodash.sortby": "^4.7.0",
+        "tr46": "^2.0.2",
+        "webidl-conversions": "^6.1.0"
+      }
+    },
     "when": {
       "version": "3.6.4",
       "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
@@ -20372,33 +20953,48 @@
       }
     },
     "wrap-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
       "dev": true,
       "requires": {
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1"
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
       },
       "dependencies": {
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+        "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
           "dev": true,
           "requires": {
-            "number-is-nan": "^1.0.0"
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
           }
         },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
           "dev": true,
           "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
+            "color-name": "~1.1.4"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^5.0.0"
           }
         }
       }
@@ -20509,29 +21105,64 @@
       "dev": true
     },
     "yargs": {
-      "version": "12.0.5",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
-      "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+      "version": "15.4.1",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
       "dev": true,
       "requires": {
-        "cliui": "^4.0.0",
+        "cliui": "^6.0.0",
         "decamelize": "^1.2.0",
-        "find-up": "^3.0.0",
-        "get-caller-file": "^1.0.1",
-        "os-locale": "^3.0.0",
+        "find-up": "^4.1.0",
+        "get-caller-file": "^2.0.1",
         "require-directory": "^2.1.1",
-        "require-main-filename": "^1.0.1",
+        "require-main-filename": "^2.0.0",
         "set-blocking": "^2.0.0",
-        "string-width": "^2.0.0",
+        "string-width": "^4.2.0",
         "which-module": "^2.0.0",
-        "y18n": "^3.2.1 || ^4.0.0",
-        "yargs-parser": "^11.1.1"
+        "y18n": "^4.0.0",
+        "yargs-parser": "^18.1.2"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        }
       }
     },
     "yargs-parser": {
-      "version": "11.1.1",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
-      "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+      "version": "18.1.3",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
       "dev": true,
       "requires": {
         "camelcase": "^5.0.0",
diff --git a/package.json b/package.json
index a7b29cd94..dc27d4dd7 100644
--- a/package.json
+++ b/package.json
@@ -36,17 +36,17 @@
   },
   "private": true,
   "dependencies": {
-    "@angular/animations": "^9.1.6",
+    "@angular/animations": "^10.0.12",
     "@angular/cdk": "^9.2.3",
-    "@angular/common": "^9.1.6",
-    "@angular/compiler": "^9.1.6",
-    "@angular/core": "^9.1.6",
+    "@angular/common": "^10.0.12",
+    "@angular/compiler": "^10.0.12",
+    "@angular/core": "^10.0.12",
     "@angular/flex-layout": "^9.0.0-beta.29",
-    "@angular/forms": "^9.1.6",
+    "@angular/forms": "^10.0.12",
     "@angular/material": "^9.2.3",
-    "@angular/platform-browser": "^9.1.6",
-    "@angular/platform-browser-dynamic": "^9.1.6",
-    "@angular/router": "^9.1.6",
+    "@angular/platform-browser": "^10.0.12",
+    "@angular/platform-browser-dynamic": "^10.0.12",
+    "@angular/router": "^10.0.12",
     "@types/pako": "^1.0.1",
     "@types/sprintf-js": "^1.1.2",
     "angular2-chartjs": "^0.5.1",
@@ -79,37 +79,37 @@
     "rxjs": "^6.5.5",
     "screenfull": "^5.0.2",
     "svg-pan-zoom": "^3.6.1",
-    "tslib": "^1.11.2",
+    "tslib": "^2.0.0",
     "xlsx": "^0.16.0",
     "zone.js": "^0.10.3"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "^0.901.5",
-    "@angular/cli": "^9.1.5",
-    "@angular/compiler-cli": "^9.1.6",
-    "@angular/language-service": "^9.1.6",
+    "@angular-devkit/build-angular": "^0.1000.7",
+    "@angular/cli": "^10.0.7",
+    "@angular/compiler-cli": "^10.0.12",
+    "@angular/language-service": "^10.0.12",
     "@compodoc/compodoc": "^1.1.11",
     "@types/file-saver": "^2.0.1",
     "@types/jasmine": "^3.5.10",
     "@types/jasminewd2": "^2.0.8",
     "@types/node": "^13.13.5",
-    "codelyzer": "^5.2.2",
+    "codelyzer": "^6.0.0",
     "cordova": "^9.0.0",
     "electron": "^8.2.5",
     "electron-builder": "^22.6.0",
     "fs-extra": "^9.0.0",
-    "jasmine-core": "^3.5.0",
-    "jasmine-spec-reporter": "^5.0.2",
-    "karma": "^5.0.5",
-    "karma-chrome-launcher": "^3.1.0",
+    "jasmine-core": "~3.5.0",
+    "jasmine-spec-reporter": "~5.0.0",
+    "karma": "~5.0.0",
+    "karma-chrome-launcher": "~3.1.0",
     "karma-cli": "~2.0.0",
-    "karma-coverage-istanbul-reporter": "^3.0.2",
-    "karma-jasmine": "^3.1.1",
-    "karma-jasmine-html-reporter": "^1.5.3",
-    "protractor": "^5.4.4",
+    "karma-coverage-istanbul-reporter": "~3.0.2",
+    "karma-jasmine": "~3.3.0",
+    "karma-jasmine-html-reporter": "^1.5.0",
+    "protractor": "~7.0.0",
     "ts-node": "^8.10.1",
-    "tslint": "^6.1.2",
-    "typescript": "~3.7.5",
+    "tslint": "~6.1.0",
+    "typescript": "~3.9.7",
     "webpack-dev-server": "^3.11.0"
   },
   "cordova": {
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
index 9234a4d85..4b005758f 100644
--- a/src/tsconfig.app.json
+++ b/src/tsconfig.app.json
@@ -1,5 +1,5 @@
 {
-  "extends": "../tsconfig.json",
+  "extends": "../tsconfig.base.json",
   "compilerOptions": {
     "outDir": "../out-tsc/app",
     "baseUrl": "./",
diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json
index c89454bef..b019e30f9 100644
--- a/src/tsconfig.spec.json
+++ b/src/tsconfig.spec.json
@@ -1,5 +1,5 @@
 {
-  "extends": "../tsconfig.json",
+  "extends": "../tsconfig.base.json",
   "compilerOptions": {
     "outDir": "../out-tsc/spec",
     "baseUrl": "./",
diff --git a/tsconfig.base.json b/tsconfig.base.json
new file mode 100644
index 000000000..c7b9c9822
--- /dev/null
+++ b/tsconfig.base.json
@@ -0,0 +1,26 @@
+{
+  "compileOnSave": false,
+  "compilerOptions": {
+    "downlevelIteration": true,
+    "importHelpers": true,
+    "outDir": "./dist/out-tsc",
+    "sourceMap": true,
+    "declaration": false,
+    "moduleResolution": "node",
+    "emitDecoratorMetadata": true,
+    "experimentalDecorators": true,
+    "target": "es2015",
+    "typeRoots": [
+      "node_modules/@types"
+    ],
+    "lib": [
+      "es2017",
+      "dom"
+    ],
+    "module": "es2020",
+    "baseUrl": "./"
+  },
+  "include": [
+    "src/**/*.ts"
+  ]
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index c7818722c..26abde9a1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,26 +1,17 @@
+/*
+  This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.
+  It is not intended to be used to perform a compilation.
+
+  To learn more about this file see: https://angular.io/config/solution-tsconfig.
+*/
 {
-  "compileOnSave": false,
-  "compilerOptions": {
-    "downlevelIteration": true,
-    "importHelpers": true,
-    "outDir": "./dist/out-tsc",
-    "sourceMap": true,
-    "declaration": false,
-    "moduleResolution": "node",
-    "emitDecoratorMetadata": true,
-    "experimentalDecorators": true,
-    "target": "es2015",
-    "typeRoots": [
-      "node_modules/@types"
-    ],
-    "lib": [
-      "es2017",
-      "dom"
-    ],
-    "module": "esnext",
-    "baseUrl": "./"
-  },
-  "include": [
-    "src/**/*.ts"
+  "files": [],
+  "references": [
+    {
+      "path": "./src/tsconfig.app.json"
+    },
+    {
+      "path": "./src/tsconfig.spec.json"
+    }
   ]
 }
\ No newline at end of file
diff --git a/tslint.json b/tslint.json
index 71feb2734..d3695322d 100644
--- a/tslint.json
+++ b/tslint.json
@@ -11,6 +11,9 @@
       "check-space"
     ],
     "curly": true,
+    "deprecation": {
+      "severity": "warning"
+    },
     "eofline": true,
     "forin": false,
     "import-blacklist": [
-- 
GitLab


From 4bee45019eb56c9bde3744a0df5d77a9189d2fbb Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 11:40:46 +0200
Subject: [PATCH 080/101] Update Angular-Material

---
 package-lock.json | 18 +++++++++++-------
 package.json      |  4 ++--
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index b67aec276..f036b3f80 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -279,11 +279,12 @@
       }
     },
     "@angular/cdk": {
-      "version": "9.2.3",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.3.tgz",
-      "integrity": "sha512-tQr/yt8GNGsZ/DTT+PMq7XdRmL56hwVCyf8F12JQAawutSLfTfMb+S1lpN7L/0Pb/L5JBuCfG2HmXK7vHo02gw==",
+      "version": "10.1.3",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.1.3.tgz",
+      "integrity": "sha512-xMV1M41mfuaQod4rtAG/duYiWffGIC2C87E1YuyHTh8SEcHopGVRQd2C8PWH+iwinPbes7AjU1uzCEvmOYikrA==",
       "requires": {
-        "parse5": "^5.0.0"
+        "parse5": "^5.0.0",
+        "tslib": "^2.0.0"
       },
       "dependencies": {
         "parse5": {
@@ -840,9 +841,12 @@
       "dev": true
     },
     "@angular/material": {
-      "version": "9.2.3",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.3.tgz",
-      "integrity": "sha512-QJltLNp8a/eoozPgkFLISEWgdlX9q9+fZaLJ8c9tHEp2IT5sFYBFHf8dPl0pUyxgOXkS/0HD43I1qki71/T7Kw=="
+      "version": "10.1.3",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.1.3.tgz",
+      "integrity": "sha512-6ygbCVcejFydmZUlOcNreiWQTvL4kOrEp/M51DV70hqffTnxajCzaRe2MQhxisENB/bR8mtMvf8YY3Rsys/HCw==",
+      "requires": {
+        "tslib": "^2.0.0"
+      }
     },
     "@angular/platform-browser": {
       "version": "10.0.12",
diff --git a/package.json b/package.json
index dc27d4dd7..62a9aa747 100644
--- a/package.json
+++ b/package.json
@@ -37,13 +37,13 @@
   "private": true,
   "dependencies": {
     "@angular/animations": "^10.0.12",
-    "@angular/cdk": "^9.2.3",
+    "@angular/cdk": "^10.1.3",
     "@angular/common": "^10.0.12",
     "@angular/compiler": "^10.0.12",
     "@angular/core": "^10.0.12",
     "@angular/flex-layout": "^9.0.0-beta.29",
     "@angular/forms": "^10.0.12",
-    "@angular/material": "^9.2.3",
+    "@angular/material": "^10.1.3",
     "@angular/platform-browser": "^10.0.12",
     "@angular/platform-browser-dynamic": "^10.0.12",
     "@angular/router": "^10.0.12",
-- 
GitLab


From 487433b7b0837199b4a63a2a86177c29f6a5400b Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 11:45:03 +0200
Subject: [PATCH 081/101] Update dependencies

---
 package-lock.json | 3136 +++++++++++++++++++++++----------------------
 package.json      |   46 +-
 2 files changed, 1596 insertions(+), 1586 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index f036b3f80..fb7616752 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,6 +18,23 @@
       "requires": {
         "@angular-devkit/core": "10.0.7",
         "rxjs": "6.5.5"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "@angular-devkit/build-angular": {
@@ -155,6 +172,15 @@
             "glob": "^7.1.3"
           }
         },
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
         "semver": {
           "version": "7.3.2",
           "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
@@ -179,6 +205,12 @@
               "dev": true
             }
           }
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
         }
       }
     },
@@ -211,6 +243,23 @@
         "@angular-devkit/architect": "0.1000.7",
         "@angular-devkit/core": "10.0.7",
         "rxjs": "6.5.5"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "@angular-devkit/core": {
@@ -249,6 +298,21 @@
           "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
           "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
           "dev": true
+        },
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
         }
       }
     },
@@ -261,6 +325,23 @@
         "@angular-devkit/core": "10.0.7",
         "ora": "4.0.4",
         "rxjs": "6.5.5"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "@angular/animations": {
@@ -815,9 +896,12 @@
       }
     },
     "@angular/flex-layout": {
-      "version": "9.0.0-beta.29",
-      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-9.0.0-beta.29.tgz",
-      "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
+      "version": "10.0.0-beta.32",
+      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-10.0.0-beta.32.tgz",
+      "integrity": "sha512-JvuY4dUoy5jyCTIrFiq7n30Znakh1pD3nbg0h0hs2r3t1OiDQb0ZSI1wcumosG/vYHsuJQTuNhbfaIZzA1x8nA==",
+      "requires": {
+        "tslib": "^2.0.0"
+      }
     },
     "@angular/forms": {
       "version": "10.0.12",
@@ -894,12 +978,12 @@
       }
     },
     "@babel/code-frame": {
-      "version": "7.5.5",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
-      "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+      "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
       "dev": true,
       "requires": {
-        "@babel/highlight": "^7.0.0"
+        "@babel/highlight": "^7.10.4"
       }
     },
     "@babel/compat-data": {
@@ -1460,22 +1544,14 @@
       }
     },
     "@babel/highlight": {
-      "version": "7.5.0",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
-      "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+      "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
       "dev": true,
       "requires": {
+        "@babel/helper-validator-identifier": "^7.10.4",
         "chalk": "^2.0.0",
-        "esutils": "^2.0.2",
         "js-tokens": "^4.0.0"
-      },
-      "dependencies": {
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        }
       }
     },
     "@babel/parser": {
@@ -2390,9 +2466,9 @@
           }
         },
         "lodash": {
-          "version": "4.17.15",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+          "version": "4.17.20",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
           "dev": true
         },
         "loglevel": {
@@ -2509,9 +2585,9 @@
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+          "version": "6.12.4",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
+          "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -2521,9 +2597,9 @@
           }
         },
         "fast-deep-equal": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-          "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+          "version": "3.1.3",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+          "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
           "dev": true
         }
       }
@@ -2539,9 +2615,9 @@
       }
     },
     "@electron/get": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.10.0.tgz",
-      "integrity": "sha512-hlueNXU51c3CwQjBw/i5fwt+VfQgSQVUTdicpCHkhEjNZaa4CXJ5W1GaxSwtLE2dvRmAHjpIjUMHTqJ53uojfg==",
+      "version": "1.12.2",
+      "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz",
+      "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==",
       "dev": true,
       "requires": {
         "debug": "^4.1.1",
@@ -2670,6 +2746,23 @@
         "glob-to-regexp": "^0.3.0"
       }
     },
+    "@netflix/nerror": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz",
+      "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "extsprintf": "^1.4.0",
+        "lodash": "^4.17.15"
+      },
+      "dependencies": {
+        "extsprintf": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz",
+          "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8="
+        }
+      }
+    },
     "@ngtools/webpack": {
       "version": "10.0.7",
       "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.0.7.tgz",
@@ -2680,13 +2773,29 @@
         "enhanced-resolve": "4.1.1",
         "rxjs": "6.5.5",
         "webpack-sources": "1.4.3"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        }
       }
     },
     "@nodelib/fs.scandir": {
       "version": "2.1.3",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
       "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
-      "dev": true,
       "requires": {
         "@nodelib/fs.stat": "2.0.3",
         "run-parallel": "^1.1.9"
@@ -2695,8 +2804,7 @@
         "@nodelib/fs.stat": {
           "version": "2.0.3",
           "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
-          "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
-          "dev": true
+          "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
         }
       }
     },
@@ -2710,7 +2818,6 @@
       "version": "1.2.4",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
       "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
-      "dev": true,
       "requires": {
         "@nodelib/fs.scandir": "2.1.3",
         "fastq": "^1.6.0"
@@ -2789,12 +2896,27 @@
             "validate-npm-package-name": "^3.0.0"
           }
         },
+        "rxjs": {
+          "version": "6.5.5",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+          "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
         "semver": {
           "version": "7.3.2",
           "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
           "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
+        "tslib": {
+          "version": "1.13.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+          "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+          "dev": true
+        },
         "yallist": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -2843,9 +2965,9 @@
       "dev": true
     },
     "@types/fs-extra": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz",
-      "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz",
+      "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==",
       "dev": true,
       "requires": {
         "@types/node": "*"
@@ -2863,9 +2985,9 @@
       }
     },
     "@types/jasmine": {
-      "version": "3.5.10",
-      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.10.tgz",
-      "integrity": "sha512-3F8qpwBAiVc5+HPJeXJpbrl+XjawGmciN5LgiO7Gv1pl1RHtjoMNqZpqEksaPJW05ViKe8snYInRs6xB25Xdew==",
+      "version": "3.5.13",
+      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.13.tgz",
+      "integrity": "sha512-bVSrTEWdCNH2RHN+E0QlEr4pGPMRA6puKOmL/X13ZeZmUS0q12ZR1rkB9PVvJSX0zi/OXrMDNvUai+PC380+rQ==",
       "dev": true
     },
     "@types/jasminewd2": {
@@ -2884,9 +3006,9 @@
       "dev": true
     },
     "@types/marked": {
-      "version": "0.7.2",
-      "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.7.2.tgz",
-      "integrity": "sha512-A3EDyNaq6OCcpaOia2HQ/tu2QYt8DKuj4ExP21VU3cU3HTo2FLslvbqa2T1vux910RHvuSVqpwKnnykSFcRWOA=="
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@types/marked/-/marked-1.1.0.tgz",
+      "integrity": "sha512-j8XXj6/l9kFvCwMyVqozznqpd/nk80krrW+QiIJN60Uu9gX5Pvn4/qPJ2YngQrR3QREPwmrE1f9/EWKVTFzoEw=="
     },
     "@types/minimatch": {
       "version": "3.0.3",
@@ -2900,9 +3022,9 @@
       "integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew=="
     },
     "@types/node": {
-      "version": "13.13.5",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.5.tgz",
-      "integrity": "sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g==",
+      "version": "14.6.0",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz",
+      "integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==",
       "dev": true
     },
     "@types/pako": {
@@ -2953,9 +3075,9 @@
       }
     },
     "@types/yargs": {
-      "version": "15.0.4",
-      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz",
-      "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==",
+      "version": "15.0.5",
+      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
+      "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
       "dev": true,
       "requires": {
         "@types/yargs-parser": "*"
@@ -3519,32 +3641,32 @@
       "dev": true
     },
     "app-builder-bin": {
-      "version": "3.5.8",
-      "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.8.tgz",
-      "integrity": "sha512-ni3q7QTfQNWHNWuyn5x3FZu6GnQZv+TFnfgk5++svqleKEhHGqS1mIaKsh7x5pBX6NFXU3/+ktk98wA/AW4EXw==",
+      "version": "3.5.9",
+      "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz",
+      "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==",
       "dev": true
     },
     "app-builder-lib": {
-      "version": "22.6.0",
-      "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.6.0.tgz",
-      "integrity": "sha512-ky2aLYy92U+Gh6dKq/e8/bNmCotp6/GMhnX8tDZPv9detLg9WuBnWWi1ktBPlpbl1DREusy+TIh+9rgvfduQoA==",
+      "version": "22.8.0",
+      "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.0.tgz",
+      "integrity": "sha512-RGaIRjCUrqkmh6QOGsyekQPEOaVynHfmeh8JZuyUymFYUOFdzBbPamkA2nhBVBTkkgfjRHsxK7LhedFKPzvWEQ==",
       "dev": true,
       "requires": {
         "7zip-bin": "~5.0.3",
         "@develar/schema-utils": "~2.6.5",
         "async-exit-hook": "^2.0.1",
         "bluebird-lst": "^1.0.9",
-        "builder-util": "22.6.0",
-        "builder-util-runtime": "8.7.0",
+        "builder-util": "22.8.0",
+        "builder-util-runtime": "8.7.2",
         "chromium-pickle-js": "^0.2.0",
         "debug": "^4.1.1",
-        "ejs": "^3.1.2",
-        "electron-publish": "22.6.0",
-        "fs-extra": "^9.0.0",
-        "hosted-git-info": "^3.0.4",
+        "ejs": "^3.1.3",
+        "electron-publish": "22.8.0",
+        "fs-extra": "^9.0.1",
+        "hosted-git-info": "^3.0.5",
         "is-ci": "^2.0.0",
         "isbinaryfile": "^4.0.6",
-        "js-yaml": "^3.13.1",
+        "js-yaml": "^3.14.0",
         "lazy-val": "^1.0.4",
         "minimatch": "^3.0.4",
         "normalize-package-data": "^2.5.0",
@@ -3563,28 +3685,29 @@
             "ms": "^2.1.1"
           }
         },
+        "esprima": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+          "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+          "dev": true
+        },
         "hosted-git-info": {
-          "version": "3.0.4",
-          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
-          "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
+          "version": "3.0.5",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+          "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==",
           "dev": true,
           "requires": {
-            "lru-cache": "^5.1.1"
+            "lru-cache": "^6.0.0"
           }
         },
-        "isbinaryfile": {
-          "version": "4.0.6",
-          "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz",
-          "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==",
-          "dev": true
-        },
-        "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==",
+        "js-yaml": {
+          "version": "3.14.0",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+          "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
           "dev": true,
           "requires": {
-            "yallist": "^3.0.2"
+            "argparse": "^1.0.7",
+            "esprima": "^4.0.0"
           }
         },
         "ms": {
@@ -3598,12 +3721,6 @@
           "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
           "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
-        },
-        "yallist": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
-          "dev": true
         }
       }
     },
@@ -3692,11 +3809,6 @@
       "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=",
       "dev": true
     },
-    "array-ify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
-      "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4="
-    },
     "array-union": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@@ -3777,8 +3889,7 @@
     "assert-plus": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-      "dev": true
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
     },
     "assign-symbols": {
       "version": "1.0.0",
@@ -3887,8 +3998,7 @@
     "at-least-node": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
-      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
-      "dev": true
+      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
     },
     "atob": {
       "version": "2.1.2",
@@ -4105,9 +4215,9 @@
       "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
     },
     "base64id": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
-      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+      "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
       "dev": true
     },
     "basic-auth": {
@@ -4150,9 +4260,9 @@
       }
     },
     "big-integer": {
-      "version": "1.6.43",
-      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.43.tgz",
-      "integrity": "sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg=="
+      "version": "1.6.48",
+      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
+      "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
     },
     "big.js": {
       "version": "5.2.2",
@@ -4396,11 +4506,11 @@
       }
     },
     "bplist-parser": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
-      "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=",
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+      "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
       "requires": {
-        "big-integer": "^1.6.7"
+        "big-integer": "^1.6.44"
       }
     },
     "brace-expansion": {
@@ -4664,22 +4774,22 @@
       "dev": true
     },
     "builder-util": {
-      "version": "22.6.0",
-      "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.6.0.tgz",
-      "integrity": "sha512-jgdES2ExJYkuXC3DEaGAjFctKNA81C4QDy8zdoc+rqdSqheTizuDNtZg02uMFklmUES4V4fggmqds+Y7wraqng==",
+      "version": "22.8.0",
+      "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.0.tgz",
+      "integrity": "sha512-H80P1JzVy3TGpi63x81epQDK24XalL034+jAZlrPb5IhLtYmnNNdxCCAVJvg3VjSISd73Y71O+uhqCxWpqbPHw==",
       "dev": true,
       "requires": {
         "7zip-bin": "~5.0.3",
         "@types/debug": "^4.1.5",
-        "@types/fs-extra": "^8.1.0",
-        "app-builder-bin": "3.5.8",
+        "@types/fs-extra": "^9.0.1",
+        "app-builder-bin": "3.5.9",
         "bluebird-lst": "^1.0.9",
-        "builder-util-runtime": "8.7.0",
-        "chalk": "^4.0.0",
+        "builder-util-runtime": "8.7.2",
+        "chalk": "^4.1.0",
         "debug": "^4.1.1",
-        "fs-extra": "^9.0.0",
+        "fs-extra": "^9.0.1",
         "is-ci": "^2.0.0",
-        "js-yaml": "^3.13.1",
+        "js-yaml": "^3.14.0",
         "source-map-support": "^0.5.19",
         "stat-mode": "^1.0.0",
         "temp-file": "^3.3.7"
@@ -4696,9 +4806,9 @@
           }
         },
         "chalk": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
-          "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+          "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
           "dev": true,
           "requires": {
             "ansi-styles": "^4.1.0",
@@ -4723,12 +4833,28 @@
             "ms": "^2.1.1"
           }
         },
+        "esprima": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+          "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+          "dev": true
+        },
         "has-flag": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
+        "js-yaml": {
+          "version": "3.14.0",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+          "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+          "dev": true,
+          "requires": {
+            "argparse": "^1.0.7",
+            "esprima": "^4.0.0"
+          }
+        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -4747,9 +4873,9 @@
       }
     },
     "builder-util-runtime": {
-      "version": "8.7.0",
-      "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.0.tgz",
-      "integrity": "sha512-G1AqqVM2vYTrSFR982c1NNzwXKrGLQjVjaZaWQdn4O6Z3YKjdMDofw88aD9jpyK9ZXkrCxR0tI3Qe9wNbyTlXg==",
+      "version": "8.7.2",
+      "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz",
+      "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==",
       "dev": true,
       "requires": {
         "debug": "^4.1.1",
@@ -5004,12 +5130,6 @@
       "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
       "dev": true
     },
-    "capture-stack-trace": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
-      "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==",
-      "dev": true
-    },
     "caseless": {
       "version": "0.12.0",
       "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -5017,12 +5137,11 @@
       "dev": true
     },
     "cfb": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.1.4.tgz",
-      "integrity": "sha512-rwFkl3aFO3f+ljR27YINwC0x8vPjyiEVbYbrTCKzspEf7Q++3THdfHVgJYNUbxNcupJECrLX+L40Mjm9hm/Bgw==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz",
+      "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==",
       "requires": {
         "adler-32": "~1.2.0",
-        "commander": "^2.16.0",
         "crc-32": "~1.2.0",
         "printj": "~1.1.2"
       }
@@ -5082,9 +5201,9 @@
       }
     },
     "chartjs-plugin-zoom": {
-      "version": "0.7.5",
-      "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-0.7.5.tgz",
-      "integrity": "sha512-OGVQXlw5meOD7ac+CBNO7yKg4Tk06eBb5LUIgpK/qgv7SjVB/89pWMQY3pxWnzCMI8FsoV3iTKQ2ZCOvh4+q6w==",
+      "version": "0.7.7",
+      "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-0.7.7.tgz",
+      "integrity": "sha512-8fOHPPiZTT2+K0w278TQWYs/DtPg06s1OpTqdXxPpdfH7QQbl6Io/WuE1FjPehDWVCxpe3tSTts+dPbxgq2Z5g==",
       "requires": {
         "hammerjs": "^2.0.8"
       }
@@ -5361,9 +5480,9 @@
       "dev": true
     },
     "clipboard": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz",
-      "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==",
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
+      "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
       "optional": true,
       "requires": {
         "good-listener": "^1.2.2",
@@ -5493,6 +5612,12 @@
           "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
           "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
           "dev": true
+        },
+        "zone.js": {
+          "version": "0.10.3",
+          "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz",
+          "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==",
+          "dev": true
         }
       }
     },
@@ -5601,25 +5726,6 @@
       "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
       "dev": true
     },
-    "compare-func": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
-      "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
-      "requires": {
-        "array-ify": "^1.0.0",
-        "dot-prop": "^3.0.0"
-      },
-      "dependencies": {
-        "dot-prop": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
-          "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
-          "requires": {
-            "is-obj": "^1.0.0"
-          }
-        }
-      }
-    },
     "component-bind": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
@@ -5707,6 +5813,43 @@
         "make-dir": "^1.0.0",
         "pkg-up": "^2.0.0",
         "write-file-atomic": "^2.3.0"
+      },
+      "dependencies": {
+        "dot-prop": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
+          "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
+          "dev": true,
+          "requires": {
+            "is-obj": "^1.0.0"
+          }
+        },
+        "is-obj": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+          "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+          "dev": true
+        },
+        "make-dir": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+          "dev": true,
+          "requires": {
+            "pify": "^3.0.0"
+          }
+        },
+        "write-file-atomic": {
+          "version": "2.4.3",
+          "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+          "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.11",
+            "imurmurhash": "^0.1.4",
+            "signal-exit": "^3.0.2"
+          }
+        }
       }
     },
     "config-chain": {
@@ -5721,17 +5864,17 @@
       }
     },
     "configstore": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
-      "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
+      "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
       "dev": true,
       "requires": {
-        "dot-prop": "^4.1.0",
+        "dot-prop": "^5.2.0",
         "graceful-fs": "^4.1.2",
-        "make-dir": "^1.0.0",
-        "unique-string": "^1.0.0",
-        "write-file-atomic": "^2.0.0",
-        "xdg-basedir": "^3.0.0"
+        "make-dir": "^3.0.0",
+        "unique-string": "^2.0.0",
+        "write-file-atomic": "^3.0.0",
+        "xdg-basedir": "^4.0.0"
       }
     },
     "connect": {
@@ -6042,516 +6185,720 @@
       }
     },
     "cordova": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/cordova/-/cordova-9.0.0.tgz",
-      "integrity": "sha512-zWEPo9uGj9KNcEhU2Lpo3r4HYK21tL+at496N2LLnuCWuWVndv6QWed8+EYl/08rrcNshrEtfzXj9Ux6vQm2PQ==",
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/cordova/-/cordova-10.0.0.tgz",
+      "integrity": "sha512-00wMcj3X9ILhKtvRG2iEwO2qly4B+vgXFhH4WhVepWg2UVbD1opl1q9jSZ+j2AaI/vsBWW8e6M2M5FAHasnuWw==",
       "dev": true,
       "requires": {
-        "configstore": "^4.0.0",
-        "cordova-common": "^3.1.0",
-        "cordova-lib": "^9.0.0",
+        "configstore": "^5.0.1",
+        "cordova-common": "^4.0.2",
+        "cordova-create": "^3.0.0",
+        "cordova-lib": "^10.0.0",
         "editor": "^1.0.0",
-        "insight": "^0.10.1",
-        "loud-rejection": "^2.0.0",
-        "nopt": "^4.0.1",
-        "update-notifier": "^2.5.0"
+        "execa": "^4.0.3",
+        "fs-extra": "^9.0.1",
+        "insight": "^0.10.3",
+        "loud-rejection": "^2.2.0",
+        "nopt": "^4.0.3",
+        "semver": "^7.3.2",
+        "systeminformation": "^4.26.10",
+        "update-notifier": "^4.1.0"
       },
       "dependencies": {
-        "ansi-align": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
-          "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
+        "cross-spawn": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+          "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
           "dev": true,
           "requires": {
-            "string-width": "^2.0.0"
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
           }
         },
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "boxen": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
-          "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
+        "execa": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
+          "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
           "dev": true,
           "requires": {
-            "ansi-align": "^2.0.0",
-            "camelcase": "^4.0.0",
-            "chalk": "^2.0.1",
-            "cli-boxes": "^1.0.0",
-            "string-width": "^2.0.0",
-            "term-size": "^1.2.0",
-            "widest-line": "^2.0.0"
+            "cross-spawn": "^7.0.0",
+            "get-stream": "^5.0.0",
+            "human-signals": "^1.1.1",
+            "is-stream": "^2.0.0",
+            "merge-stream": "^2.0.0",
+            "npm-run-path": "^4.0.0",
+            "onetime": "^5.1.0",
+            "signal-exit": "^3.0.2",
+            "strip-final-newline": "^2.0.0"
           }
         },
-        "camelcase": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-          "dev": true
+        "fs-extra": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+          "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
+          "dev": true,
+          "requires": {
+            "at-least-node": "^1.0.0",
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^1.0.0"
+          }
         },
-        "ci-info": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
-          "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+        "graceful-fs": {
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
           "dev": true
         },
-        "cli-boxes": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
-          "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
+        "is-stream": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+          "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
           "dev": true
         },
-        "got": {
-          "version": "6.7.1",
-          "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
-          "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
-          "dev": true,
-          "requires": {
-            "create-error-class": "^3.0.0",
-            "duplexer3": "^0.1.4",
-            "get-stream": "^3.0.0",
-            "is-redirect": "^1.0.0",
-            "is-retry-allowed": "^1.0.0",
-            "is-stream": "^1.0.0",
-            "lowercase-keys": "^1.0.0",
-            "safe-buffer": "^5.0.1",
-            "timed-out": "^4.0.0",
-            "unzip-response": "^2.0.1",
-            "url-parse-lax": "^1.0.0"
-          }
+        "jsonfile": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+          "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.6",
+            "universalify": "^1.0.0"
+          }
         },
-        "is-ci": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
-          "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+        "npm-run-path": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+          "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
           "dev": true,
           "requires": {
-            "ci-info": "^1.5.0"
+            "path-key": "^3.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=",
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+          "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
           "dev": true
         },
-        "is-npm": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
-          "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
+        "semver": {
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
-        "latest-version": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
-          "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+          "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
           "dev": true,
           "requires": {
-            "package-json": "^4.0.0"
+            "shebang-regex": "^3.0.0"
           }
         },
-        "loud-rejection": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.1.0.tgz",
-          "integrity": "sha512-g/6MQxUXYHeVqZ4PGpPL1fS1fOvlXoi7bay0pizmjAd/3JhyXwxzwrnr74yzdmhuerlslbRJ3x7IOXzFz0cE5w==",
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+          "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+          "dev": true
+        },
+        "universalify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+          "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
           "dev": true,
           "requires": {
-            "currently-unhandled": "^0.4.1",
-            "signal-exit": "^3.0.2"
+            "isexe": "^2.0.0"
           }
-        },
-        "package-json": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
-          "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
-          "dev": true,
+        }
+      }
+    },
+    "cordova-android": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.0.0.tgz",
+      "integrity": "sha512-2ZEgApK4LPMYW0zh/mLAH3CabzCaKE0yxQTzA2wTf0Eo2HHTJnRtDCf9spGf3nPOkubyXS6+pvzz5QzNHpVTqQ==",
+      "requires": {
+        "android-versions": "^1.5.0",
+        "cordova-common": "^4.0.1",
+        "execa": "^4.0.2",
+        "fs-extra": "^9.0.1",
+        "nopt": "^4.0.3",
+        "properties-parser": "^0.3.1",
+        "which": "^2.0.2"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+          "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
           "requires": {
-            "got": "^6.7.1",
-            "registry-auth-token": "^3.0.1",
-            "registry-url": "^3.0.3",
-            "semver": "^5.1.0"
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
           }
         },
-        "prepend-http": {
-          "version": "1.0.4",
-          "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
-          "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
-          "dev": true
+        "execa": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
+          "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
+          "requires": {
+            "cross-spawn": "^7.0.0",
+            "get-stream": "^5.0.0",
+            "human-signals": "^1.1.1",
+            "is-stream": "^2.0.0",
+            "merge-stream": "^2.0.0",
+            "npm-run-path": "^4.0.0",
+            "onetime": "^5.1.0",
+            "signal-exit": "^3.0.2",
+            "strip-final-newline": "^2.0.0"
+          }
         },
-        "registry-url": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
-          "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
-          "dev": true,
+        "fs-extra": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+          "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
           "requires": {
-            "rc": "^1.0.1"
+            "at-least-node": "^1.0.0",
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^1.0.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,
+        "graceful-fs": {
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+        },
+        "is-stream": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+          "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+        },
+        "jsonfile": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+          "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
           "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
+            "graceful-fs": "^4.1.6",
+            "universalify": "^1.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,
+        "npm-run-path": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+          "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
           "requires": {
-            "ansi-regex": "^3.0.0"
+            "path-key": "^3.0.0"
           }
         },
-        "update-notifier": {
-          "version": "2.5.0",
-          "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
-          "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
-          "dev": true,
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+          "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+          "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
           "requires": {
-            "boxen": "^1.2.1",
-            "chalk": "^2.0.1",
-            "configstore": "^3.0.0",
-            "import-lazy": "^2.1.0",
-            "is-ci": "^1.0.10",
-            "is-installed-globally": "^0.1.0",
-            "is-npm": "^1.0.0",
-            "latest-version": "^3.0.0",
-            "semver-diff": "^2.0.0",
-            "xdg-basedir": "^3.0.0"
-          },
-          "dependencies": {
-            "configstore": {
-              "version": "3.1.2",
-              "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
-              "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
-              "dev": true,
-              "requires": {
-                "dot-prop": "^4.1.0",
-                "graceful-fs": "^4.1.2",
-                "make-dir": "^1.0.0",
-                "unique-string": "^1.0.0",
-                "write-file-atomic": "^2.0.0",
-                "xdg-basedir": "^3.0.0"
-              }
-            }
+            "shebang-regex": "^3.0.0"
           }
         },
-        "url-parse-lax": {
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+          "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+        },
+        "universalify": {
           "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
-          "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
-          "dev": true,
+          "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
           "requires": {
-            "prepend-http": "^1.0.1"
+            "isexe": "^2.0.0"
           }
         }
       }
     },
-    "cordova-android": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-8.1.0.tgz",
-      "integrity": "sha512-eAY6g9q3raJ4P03wNdSWC5MOW1EfxoomWNXsPhi7T6Q9yAqmxqn0sLEUjLL1Ib0LCH3nKQWBXdxapQ5LgbHu+g==",
-      "requires": {
-        "android-versions": "^1.4.0",
-        "compare-func": "^1.3.2",
-        "cordova-common": "^3.2.0",
-        "nopt": "^4.0.1",
-        "properties-parser": "^0.3.1",
-        "q": "^1.5.1",
-        "shelljs": "^0.5.3"
-      },
-      "dependencies": {
-        "cordova-common": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.1.tgz",
-          "integrity": "sha512-xg0EnjnA6EipxXG8cupdlYQYeDA6+ghbN+Pjq88xN1LInwP6Bo7IyGBdSV5QnfjOvzShF9BBwSxBAv0FOO0C2Q==",
-          "requires": {
-            "ansi": "^0.3.1",
-            "bplist-parser": "^0.1.0",
-            "cross-spawn": "^6.0.5",
-            "elementtree": "0.1.7",
-            "endent": "^1.1.1",
-            "fs-extra": "^8.0.0",
-            "glob": "^7.1.2",
-            "minimatch": "^3.0.0",
-            "plist": "^3.0.1",
-            "q": "^1.4.1",
-            "strip-bom": "^3.0.0",
-            "underscore": "^1.8.3",
-            "which": "^1.3.0"
-          },
-          "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==",
-              "requires": {
-                "graceful-fs": "^4.2.0",
-                "jsonfile": "^4.0.0",
-                "universalify": "^0.1.0"
-              }
-            }
-          }
-        },
-        "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
-        },
-        "q": {
-          "version": "1.5.1",
-          "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
-          "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
-        }
-      }
-    },
     "cordova-app-hello-world": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-4.0.0.tgz",
-      "integrity": "sha512-hTNYHUJT5YyMa1cQQE1naGyU6Eh5D5Jl33sMnCh3+q15ZwWTL/TOy3k8+mUvjTp8bwhO5eECGKULYoVO+fp9ZA==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-5.0.0.tgz",
+      "integrity": "sha512-5My01wsYoeYwS0f/t5Ck52xPm0+2zYJ0SlvxG9vUsndDGtgiP6t/G8upPgWcyDRRz7Rs/50yZuOntmHqmJxccQ==",
       "dev": true
     },
     "cordova-common": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.1.0.tgz",
-      "integrity": "sha512-J2MM1ioyLlBYdwdXH40OZL4hN7XEBOfurddKYifF4aTkb2PkbeM+KVORt53eyU+8ScA0QmRLuTG0EM55eLms0A==",
-      "dev": true,
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz",
+      "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==",
       "requires": {
+        "@netflix/nerror": "^1.1.3",
         "ansi": "^0.3.1",
-        "bplist-parser": "^0.1.0",
-        "cross-spawn": "^6.0.5",
-        "elementtree": "0.1.7",
-        "endent": "^1.1.1",
-        "fs-extra": "^7.0.0",
-        "glob": "^7.1.2",
-        "minimatch": "^3.0.0",
+        "bplist-parser": "^0.2.0",
+        "cross-spawn": "^7.0.1",
+        "elementtree": "^0.1.7",
+        "endent": "^1.4.1",
+        "fast-glob": "^3.2.2",
+        "fs-extra": "^9.0.0",
+        "glob": "^7.1.6",
         "plist": "^3.0.1",
-        "q": "^1.4.1",
-        "strip-bom": "^3.0.0",
-        "underscore": "^1.8.3",
-        "which": "^1.3.0"
+        "q": "^1.5.1",
+        "read-chunk": "^3.2.0",
+        "strip-bom": "^4.0.0",
+        "underscore": "^1.9.2"
       },
       "dependencies": {
+        "@nodelib/fs.stat": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+          "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
+        },
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
         "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,
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+          "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
           "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
           }
         },
-        "fs-extra": {
+        "fast-glob": {
+          "version": "3.2.4",
+          "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+          "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+          "requires": {
+            "@nodelib/fs.stat": "^2.0.2",
+            "@nodelib/fs.walk": "^1.2.3",
+            "glob-parent": "^5.1.0",
+            "merge2": "^1.3.0",
+            "micromatch": "^4.0.2",
+            "picomatch": "^2.2.1"
+          }
+        },
+        "fill-range": {
           "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-          "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
-          "dev": true,
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
           "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^4.0.0",
-            "universalify": "^0.1.0"
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "glob": {
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+          "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"
+          }
+        },
+        "glob-parent": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+          "requires": {
+            "is-glob": "^4.0.1"
           }
         },
-        "strip-bom": {
+        "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==",
+          "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=="
+        },
+        "merge2": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+          "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+        },
+        "micromatch": {
+          "version": "4.0.2",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+          "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+          "requires": {
+            "braces": "^3.0.1",
+            "picomatch": "^2.0.5"
+          }
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+          "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+        },
+        "picomatch": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+          "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
+        },
+        "q": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+          "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+          "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
           "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
+          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+          "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+        },
+        "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==",
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "requires": {
+            "isexe": "^2.0.0"
+          }
         }
       }
     },
     "cordova-create": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-2.0.0.tgz",
-      "integrity": "sha512-72CaGg/7x+tiZlzeXKQXLTc8Jh4tbwLdu4Ib97kJ6+R3bcew/Yv/l2cVA2E0CaCuOCtouTqwi+YLcA2I4dPFTQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-3.0.0.tgz",
+      "integrity": "sha512-WxZRTnt5RHxSAB9urnHFUtVBcIe1YjR4sfwHLsxakNoKkFhcie3HrV5QmNBgRQ5DkxmanRN3VSx4OrPVsNmAaQ==",
       "dev": true,
       "requires": {
-        "cordova-app-hello-world": "^4.0.0",
-        "cordova-common": "^3.1.0",
-        "cordova-fetch": "^2.0.0",
-        "fs-extra": "^7.0.1",
-        "import-fresh": "^3.0.0",
-        "is-url": "^1.2.4",
-        "isobject": "^3.0.1",
+        "cordova-app-hello-world": "^5.0.0",
+        "cordova-common": "^4.0.1",
+        "cordova-fetch": "^3.0.0",
+        "fs-extra": "^9.0.0",
+        "globby": "^11.0.0",
+        "import-fresh": "^3.2.1",
+        "isobject": "^4.0.0",
+        "npm-package-arg": "^8.0.1",
         "path-is-inside": "^1.0.2",
-        "tmp": "0.0.33",
+        "tmp": "^0.2.1",
         "valid-identifier": "0.0.2"
       },
       "dependencies": {
-        "fs-extra": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-          "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+        "hosted-git-info": {
+          "version": "3.0.5",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+          "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==",
           "dev": true,
           "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^4.0.0",
-            "universalify": "^0.1.0"
+            "lru-cache": "^6.0.0"
           }
         },
         "import-fresh": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
-          "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+          "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
           "dev": true,
           "requires": {
             "parent-module": "^1.0.0",
             "resolve-from": "^4.0.0"
           }
         },
+        "isobject": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+          "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
+          "dev": true
+        },
+        "npm-package-arg": {
+          "version": "8.0.1",
+          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
+          "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==",
+          "dev": true,
+          "requires": {
+            "hosted-git-info": "^3.0.2",
+            "semver": "^7.0.0",
+            "validate-npm-package-name": "^3.0.0"
+          }
+        },
         "resolve-from": {
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
           "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
           "dev": true
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "semver": {
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+          "dev": true
+        },
+        "tmp": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+          "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+          "dev": true,
+          "requires": {
+            "rimraf": "^3.0.0"
+          }
         }
       }
     },
     "cordova-fetch": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-2.0.1.tgz",
-      "integrity": "sha512-q21PeobERzE3Drli5htcl5X9Mtfvodih5VkqIwdRUsjDBCPv+I6ZonRjYGbNnXhYrYx7dm0m0j/7/Smf6Av3hg==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-3.0.0.tgz",
+      "integrity": "sha512-N6mB/1GD8BNclxnfO85E4/s46nEJjIxYeJYHRGi6MjofhigJ3NlGwTCslbTcq8IOYEh0RdoA0mS4W2jA5UcWeQ==",
       "dev": true,
       "requires": {
-        "cordova-common": "^3.1.0",
-        "fs-extra": "^7.0.1",
-        "npm-package-arg": "^6.1.0",
-        "pify": "^4.0.1",
-        "resolve": "^1.10.0",
-        "semver": "^5.6.0",
-        "which": "^1.3.1"
+        "cordova-common": "^4.0.0",
+        "fs-extra": "^9.0.0",
+        "npm-package-arg": "^8.0.1",
+        "pify": "^5.0.0",
+        "resolve": "^1.15.1",
+        "semver": "^7.1.3",
+        "which": "^2.0.2"
       },
       "dependencies": {
-        "fs-extra": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-          "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+        "hosted-git-info": {
+          "version": "3.0.5",
+          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+          "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==",
           "dev": true,
           "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^4.0.0",
-            "universalify": "^0.1.0"
+            "lru-cache": "^6.0.0"
+          }
+        },
+        "npm-package-arg": {
+          "version": "8.0.1",
+          "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz",
+          "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==",
+          "dev": true,
+          "requires": {
+            "hosted-git-info": "^3.0.2",
+            "semver": "^7.0.0",
+            "validate-npm-package-name": "^3.0.0"
           }
         },
         "pify": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
+          "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
           "dev": true
         },
+        "resolve": {
+          "version": "1.17.0",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+          "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+          "dev": true,
+          "requires": {
+            "path-parse": "^1.0.6"
+          }
+        },
         "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
         }
       }
     },
     "cordova-lib": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-9.0.1.tgz",
-      "integrity": "sha512-P9nQhq91gLOyKZkamvKNzzK89gLDpq8rKue/Vu7NUSgNzhPkiWW0w+6VRTbj/9QGVM9w2uDVhB9c9f6rrTXzCw==",
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-10.0.0.tgz",
+      "integrity": "sha512-azU/WH0x/3fQg33tU5bKCtj+Weh/bHelz9FWCVdXqVOHXmjzbi3p6p61z5Si967Tfh3TkmHRrodNxS0ovZ7iFQ==",
       "dev": true,
       "requires": {
-        "cordova-common": "^3.1.0",
-        "cordova-create": "^2.0.0",
-        "cordova-fetch": "^2.0.0",
-        "cordova-serve": "^3.0.0",
-        "dep-graph": "1.1.0",
-        "detect-indent": "^5.0.0",
+        "cordova-common": "^4.0.2",
+        "cordova-fetch": "^3.0.0",
+        "cordova-serve": "^4.0.0",
+        "dep-graph": "^1.1.0",
+        "detect-indent": "^6.0.0",
+        "detect-newline": "^3.1.0",
         "elementtree": "^0.1.7",
-        "fs-extra": "^7.0.1",
-        "globby": "^9.1.0",
-        "indent-string": "^3.2.0",
+        "execa": "^4.0.3",
+        "fs-extra": "^9.0.1",
+        "globby": "^11.0.1",
         "init-package-json": "^1.10.3",
-        "md5-file": "^4.0.0",
-        "read-chunk": "^3.1.0",
-        "semver": "^5.6.0",
-        "shebang-command": "^1.2.0",
-        "underscore": "^1.9.1"
+        "md5-file": "^5.0.0",
+        "pify": "^5.0.0",
+        "semver": "^7.3.2",
+        "stringify-package": "^1.0.1",
+        "write-file-atomic": "^3.0.3"
       },
       "dependencies": {
-        "detect-indent": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
-          "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=",
-          "dev": true
+        "cross-spawn": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+          "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
+          }
         },
-        "fs-extra": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-          "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+        "execa": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
+          "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
           "dev": true,
           "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^4.0.0",
-            "universalify": "^0.1.0"
+            "cross-spawn": "^7.0.0",
+            "get-stream": "^5.0.0",
+            "human-signals": "^1.1.1",
+            "is-stream": "^2.0.0",
+            "merge-stream": "^2.0.0",
+            "npm-run-path": "^4.0.0",
+            "onetime": "^5.1.0",
+            "signal-exit": "^3.0.2",
+            "strip-final-newline": "^2.0.0"
           }
         },
-        "globby": {
-          "version": "9.2.0",
-          "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
-          "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+        "fs-extra": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+          "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
           "dev": true,
           "requires": {
-            "@types/glob": "^7.1.1",
-            "array-union": "^1.0.2",
-            "dir-glob": "^2.2.2",
-            "fast-glob": "^2.2.6",
-            "glob": "^7.1.3",
-            "ignore": "^4.0.3",
-            "pify": "^4.0.1",
-            "slash": "^2.0.0"
+            "at-least-node": "^1.0.0",
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^1.0.0"
           }
         },
-        "ignore": {
-          "version": "4.0.6",
-          "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
-          "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+        "graceful-fs": {
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+          "dev": true
+        },
+        "is-stream": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+          "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
           "dev": true
         },
-        "indent-string": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
-          "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+        "jsonfile": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+          "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.6",
+            "universalify": "^1.0.0"
+          }
+        },
+        "npm-run-path": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+          "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.0.0"
+          }
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+          "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
           "dev": true
         },
         "pify": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
+          "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
           "dev": true
         },
         "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
           "dev": true
         },
-        "slash": {
+        "shebang-command": {
           "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+          "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+          "dev": true,
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+          "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+          "dev": true
+        },
+        "universalify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
           "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
         }
       }
     },
     "cordova-plugin-advanced-http": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-2.4.1.tgz",
-      "integrity": "sha512-6G8MTy/d02jE6n3Y9CVyCtD5hZGiBb+/dR2AIzhKN1RGGz38g1D2C8yE4MqHRvnmry6k/KHQWT1MsHNXrjouXQ=="
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-3.0.1.tgz",
+      "integrity": "sha512-7P3ZoSvxvYZXNYsygkxrUIw+pnzsCVvQgRsm26XhymNqqmD9yZIcF878p6wfFVQfLzf5iRHQRwgAMcrcm+cnow=="
     },
     "cordova-plugin-app-version": {
       "version": "0.1.9",
@@ -6574,9 +6921,9 @@
       "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA=="
     },
     "cordova-plugin-file-opener2": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.1.tgz",
-      "integrity": "sha512-Esj7f1mRj19Mj+M2xQphw88zZ/zA9RfljTfahHf5xIKhtoB4Nf1DRbohOiT6z/AHg18EugN9H2g2jiwcBTkRRA=="
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.4.tgz",
+      "integrity": "sha512-bd1aCx62X2RwpC+KUiuB7quoxL/8RnPMEJU7x38Tvs+cUGLWBvsmR9+/LqGBsSns2CIqgnJ34TW0Vazoqu7Ieg=="
     },
     "cordova-plugin-local-notification": {
       "version": "0.9.0-beta.2",
@@ -6589,16 +6936,71 @@
       "integrity": "sha512-EYC5eQFVkoYXq39l7tYKE6lEjHJ04mvTmKXxGL7quHLdFPfJMNzru/UYpn92AOfpl3PQaZmou78C7EgmFOwFQQ=="
     },
     "cordova-serve": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-3.0.0.tgz",
-      "integrity": "sha512-h479g/5a0PXn//yiFuMrD5MDEbB+mtihNkWcE6uD/aCh/6z0FRZ9sWH3NfZbHDB+Bp1yGLYsjbH8LZBL8KOQ0w==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.0.tgz",
+      "integrity": "sha512-gzTLeBQzNP8aM/nG0/7sSfICfNazUgwvEU2kiDaybbYXmxwioo2v96h4tzE0XOyA64beyYwAyRYEEqWA4AMZjw==",
       "dev": true,
       "requires": {
-        "chalk": "^2.4.1",
-        "compression": "^1.6.0",
-        "express": "^4.13.3",
-        "opn": "^5.3.0",
-        "which": "^1.3.0"
+        "chalk": "^3.0.0",
+        "compression": "^1.7.4",
+        "express": "^4.17.1",
+        "open": "^7.0.3",
+        "which": "^2.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
       }
     },
     "core-js": {
@@ -6691,15 +7093,6 @@
         }
       }
     },
-    "create-error-class": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
-      "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
-      "dev": true,
-      "requires": {
-        "capture-stack-trace": "^1.0.0"
-      }
-    },
     "create-hash": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
@@ -6731,6 +7124,7 @@
       "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",
@@ -6765,9 +7159,9 @@
       "dev": true
     },
     "crypto-random-string": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
-      "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+      "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
       "dev": true
     },
     "css": {
@@ -7392,9 +7786,9 @@
       }
     },
     "date-format": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
-      "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
+      "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==",
       "dev": true
     },
     "debug": {
@@ -7450,7 +7844,8 @@
     "deep-equal": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
-      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
+      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
+      "dev": true
     },
     "deep-extend": {
       "version": "0.6.0",
@@ -7501,6 +7896,7 @@
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
       "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+      "dev": true,
       "requires": {
         "object-keys": "^1.0.12"
       }
@@ -7546,11 +7942,6 @@
         }
       }
     },
-    "defined": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
-      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
-    },
     "del": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
@@ -7682,6 +8073,18 @@
       "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
       "dev": true
     },
+    "detect-indent": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
+      "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
+      "dev": true
+    },
+    "detect-newline": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+      "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+      "dev": true
+    },
     "detect-node": {
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
@@ -7735,36 +8138,43 @@
         }
       }
     },
-    "dir-glob": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
-      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
-      "dev": true,
-      "requires": {
-        "path-type": "^3.0.0"
-      }
-    },
     "dmg-builder": {
-      "version": "22.6.0",
-      "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.6.0.tgz",
-      "integrity": "sha512-rJxuGhHIpcuDGBtWZMM8aLxkbZNgYO2MO5dUerDIBXebhX1K8DA23iz/uZ8ahcRNgWEv57b8GDqJbXKEfr5T0A==",
+      "version": "22.8.0",
+      "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.0.tgz",
+      "integrity": "sha512-orePWjcrl97SYLA8F/6UUtbXJSoZCYu5KOP1lVqD4LOomr8bjGDyEVYZmZYcg5WqKmXucdmO6OpqgzH/aRMMuA==",
       "dev": true,
       "requires": {
-        "app-builder-lib": "22.6.0",
-        "builder-util": "22.6.0",
-        "fs-extra": "^9.0.0",
-        "iconv-lite": "^0.5.1",
-        "js-yaml": "^3.13.1",
+        "app-builder-lib": "22.8.0",
+        "builder-util": "22.8.0",
+        "fs-extra": "^9.0.1",
+        "iconv-lite": "^0.6.2",
+        "js-yaml": "^3.14.0",
         "sanitize-filename": "^1.6.3"
       },
       "dependencies": {
+        "esprima": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+          "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+          "dev": true
+        },
         "iconv-lite": {
-          "version": "0.5.1",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
-          "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==",
+          "version": "0.6.2",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
+          "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
           "dev": true,
           "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
+            "safer-buffer": ">= 2.1.2 < 3.0.0"
+          }
+        },
+        "js-yaml": {
+          "version": "3.14.0",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+          "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+          "dev": true,
+          "requires": {
+            "argparse": "^1.0.7",
+            "esprima": "^4.0.0"
           }
         }
       }
@@ -7854,12 +8264,12 @@
       "dev": true
     },
     "dot-prop": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
-      "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+      "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
       "dev": true,
       "requires": {
-        "is-obj": "^1.0.0"
+        "is-obj": "^2.0.0"
       }
     },
     "dotenv": {
@@ -7930,18 +8340,18 @@
       "dev": true
     },
     "ejs": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.2.tgz",
-      "integrity": "sha512-zFuywxrAWtX5Mk2KAuoJNkXXbfezpNA0v7i+YC971QORguPekpjpAgeOv99YWSdKXwj7JxI2QAWDeDkE8fWtXw==",
+      "version": "3.1.5",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz",
+      "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==",
       "dev": true,
       "requires": {
         "jake": "^10.6.1"
       }
     },
     "electron": {
-      "version": "8.2.5",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.5.tgz",
-      "integrity": "sha512-LxSCUwmlfJtRwthd3ofpYaZ+1C2hQSW8Ep1DD9K3VbnDItO+kb3t1z35daJgAab78j54aOwo9gMxJtvU0Ftj6w==",
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-10.0.0.tgz",
+      "integrity": "sha512-0XX/LqYAHHCSbfLjUk9VRDPOeYjDPEzA9i7F50AqpEpFIWR2bp++0S0beRANUpPdkvtBDp+0R6vHV3iXPvuKyA==",
       "dev": true,
       "requires": {
         "@electron/get": "^1.0.1",
@@ -7950,27 +8360,27 @@
       },
       "dependencies": {
         "@types/node": {
-          "version": "12.12.37",
-          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.37.tgz",
-          "integrity": "sha512-4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg==",
+          "version": "12.12.54",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz",
+          "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==",
           "dev": true
         }
       }
     },
     "electron-builder": {
-      "version": "22.6.0",
-      "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.6.0.tgz",
-      "integrity": "sha512-aLHlB6DTfjJ3MI4AUIFeWnwIozNgNlbOk2c2sTHxB10cAKp0dBVSPZ7xF5NK0uwDhElvRzJQubnHtJD6zKg42Q==",
+      "version": "22.8.0",
+      "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.0.tgz",
+      "integrity": "sha512-dUv4F3srJouqxhWivtKqSoQP4Df6vYgjooGdzms+iYMTFi9f0b4LlEbr7kgsPvte8zAglee7VOGOODkCRJDkUQ==",
       "dev": true,
       "requires": {
-        "@types/yargs": "^15.0.4",
-        "app-builder-lib": "22.6.0",
+        "@types/yargs": "^15.0.5",
+        "app-builder-lib": "22.8.0",
         "bluebird-lst": "^1.0.9",
-        "builder-util": "22.6.0",
-        "builder-util-runtime": "8.7.0",
-        "chalk": "^4.0.0",
-        "dmg-builder": "22.6.0",
-        "fs-extra": "^9.0.0",
+        "builder-util": "22.8.0",
+        "builder-util-runtime": "8.7.2",
+        "chalk": "^4.1.0",
+        "dmg-builder": "22.8.0",
+        "fs-extra": "^9.0.1",
         "is-ci": "^2.0.0",
         "lazy-val": "^1.0.4",
         "read-config-file": "6.0.0",
@@ -7979,195 +8389,66 @@
         "yargs": "^15.3.1"
       },
       "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
-          "dev": true
-        },
         "ansi-styles": {
-          "version": "4.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
-          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
-          "dev": true,
-          "requires": {
-            "@types/color-name": "^1.1.1",
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
-          "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "cliui": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
-          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^4.2.0",
-            "strip-ansi": "^6.0.0",
-            "wrap-ansi": "^6.2.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
-          }
-        },
-        "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
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-          "dev": true
-        },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.2.0"
-          }
-        },
-        "path-exists": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-          "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": "4.2.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^5.0.0"
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
           }
         },
-        "supports-color": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+        "chalk": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+          "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
           "dev": true,
           "requires": {
-            "has-flag": "^4.0.0"
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
           }
         },
-        "wrap-ansi": {
-          "version": "6.2.0",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
           "dev": true,
           "requires": {
-            "ansi-styles": "^4.0.0",
-            "string-width": "^4.1.0",
-            "strip-ansi": "^6.0.0"
+            "color-name": "~1.1.4"
           }
         },
-        "yargs": {
-          "version": "15.3.1",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
-          "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
-          "dev": true,
-          "requires": {
-            "cliui": "^6.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^4.1.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^4.2.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^18.1.1"
-          }
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
         },
-        "yargs-parser": {
-          "version": "18.1.3",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
-          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
           "dev": true,
           "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
+            "has-flag": "^4.0.0"
           }
         }
       }
     },
     "electron-publish": {
-      "version": "22.6.0",
-      "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.6.0.tgz",
-      "integrity": "sha512-+v05SBf9qR7Os5au+fifloNHy5QxHQkUGudBj68YaTb43Pn37UkwRxSc49Lf13s4wW32ohM45g8BOVInPJEdnA==",
+      "version": "22.8.0",
+      "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.0.tgz",
+      "integrity": "sha512-uM0Zdi9hUqqGOrPj478v7toTvV1Kgto1w11rIiI168batiXAJvNLD8VZRfehOrZT0ibUyZlw8FtxoGCrjyHUOw==",
       "dev": true,
       "requires": {
-        "@types/fs-extra": "^8.1.0",
+        "@types/fs-extra": "^9.0.1",
         "bluebird-lst": "^1.0.9",
-        "builder-util": "22.6.0",
-        "builder-util-runtime": "8.7.0",
-        "chalk": "^4.0.0",
-        "fs-extra": "^9.0.0",
+        "builder-util": "22.8.0",
+        "builder-util-runtime": "8.7.2",
+        "chalk": "^4.1.0",
+        "fs-extra": "^9.0.1",
         "lazy-val": "^1.0.4",
-        "mime": "^2.4.4"
+        "mime": "^2.4.6"
       },
       "dependencies": {
         "ansi-styles": {
@@ -8181,9 +8462,9 @@
           }
         },
         "chalk": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
-          "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+          "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
           "dev": true,
           "requires": {
             "ansi-styles": "^4.1.0",
@@ -8206,9 +8487,9 @@
           "dev": true
         },
         "mime": {
-          "version": "2.4.5",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
-          "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
+          "version": "2.4.6",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
+          "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
           "dev": true
         },
         "supports-color": {
@@ -8272,6 +8553,11 @@
       "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
       "dev": true
     },
+    "emoji-toolkit": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-6.0.1.tgz",
+      "integrity": "sha512-QZZq0beHg753JxcBt89UBFqzwYNuMtXhNO+jY3viSAndewmn9biTE5glaro1RA0uWJ4hKqw4k1Mboe1M6sGkMA=="
+    },
     "emojis-list": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
@@ -8308,102 +8594,112 @@
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
       "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
-      "dev": true,
       "requires": {
         "once": "^1.4.0"
       }
     },
     "endent": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/endent/-/endent-1.3.0.tgz",
-      "integrity": "sha512-C8AryqPPwtydqcpO5AF6k9Bd1EpFkQtvsefJqS3y3n8TG13Jy63MascDxTOULZYqrUde+dK6BjNc6LIMr3iI2A==",
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz",
+      "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==",
       "requires": {
         "dedent": "^0.7.0",
         "fast-json-parse": "^1.0.3",
-        "objectorarray": "^1.0.3"
+        "objectorarray": "^1.0.4"
       }
     },
     "engine.io": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
-      "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
+      "version": "3.4.2",
+      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz",
+      "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==",
       "dev": true,
       "requires": {
         "accepts": "~1.3.4",
-        "base64id": "1.0.0",
+        "base64id": "2.0.0",
         "cookie": "0.3.1",
-        "debug": "~3.1.0",
-        "engine.io-parser": "~2.1.0",
-        "ws": "~3.3.1"
+        "debug": "~4.1.0",
+        "engine.io-parser": "~2.2.0",
+        "ws": "^7.1.2"
       },
       "dependencies": {
         "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "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.0.0"
+            "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
+        },
         "ws": {
-          "version": "3.3.3",
-          "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
-          "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
-          "dev": true,
-          "requires": {
-            "async-limiter": "~1.0.0",
-            "safe-buffer": "~5.1.0",
-            "ultron": "~1.1.0"
-          }
+          "version": "7.3.1",
+          "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
+          "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
+          "dev": true
         }
       }
     },
     "engine.io-client": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
-      "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
+      "version": "3.4.3",
+      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz",
+      "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==",
       "dev": true,
       "requires": {
-        "component-emitter": "1.2.1",
+        "component-emitter": "~1.3.0",
         "component-inherit": "0.0.3",
-        "debug": "~3.1.0",
-        "engine.io-parser": "~2.1.1",
+        "debug": "~4.1.0",
+        "engine.io-parser": "~2.2.0",
         "has-cors": "1.1.0",
         "indexof": "0.0.1",
         "parseqs": "0.0.5",
         "parseuri": "0.0.5",
-        "ws": "~3.3.1",
+        "ws": "~6.1.0",
         "xmlhttprequest-ssl": "~1.5.4",
         "yeast": "0.1.2"
       },
       "dependencies": {
+        "component-emitter": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+          "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+          "dev": true
+        },
         "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "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.0.0"
+            "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
+        },
         "ws": {
-          "version": "3.3.3",
-          "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
-          "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+          "version": "6.1.4",
+          "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
+          "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
           "dev": true,
           "requires": {
-            "async-limiter": "~1.0.0",
-            "safe-buffer": "~5.1.0",
-            "ultron": "~1.1.0"
+            "async-limiter": "~1.0.0"
           }
         }
       }
     },
     "engine.io-parser": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
-      "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
+      "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
       "dev": true,
       "requires": {
         "after": "0.8.2",
@@ -8466,29 +8762,6 @@
         "is-arrayish": "^0.2.1"
       }
     },
-    "es-abstract": {
-      "version": "1.13.0",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
-      "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
-      "requires": {
-        "es-to-primitive": "^1.2.0",
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "is-callable": "^1.1.4",
-        "is-regex": "^1.0.4",
-        "object-keys": "^1.0.12"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
-      "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
     "es5-ext": {
       "version": "0.10.53",
       "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
@@ -8708,9 +8981,9 @@
       }
     },
     "eventemitter3": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.1.tgz",
-      "integrity": "sha512-MnI0l35oYL2C/c80rjJN7qu50MDx39yYE7y7oYck2YA3v+y7EaAenY8IU8AP4d1RWqE8VAKWFGSh3rfP87ll3g==",
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.5.tgz",
+      "integrity": "sha512-QR0rh0YiPuxuDQ6+T9GAO/xWTExXpxIes1Nl9RykNGTnE1HJmkuEfxJH9cubjIOQZ/GH4qNBR4u8VSHaKiWs4g==",
       "dev": true
     },
     "events": {
@@ -9214,7 +9487,6 @@
       "version": "1.8.0",
       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
       "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
-      "dev": true,
       "requires": {
         "reusify": "^1.0.4"
       }
@@ -9431,30 +9703,10 @@
       }
     },
     "follow-redirects": {
-      "version": "1.11.0",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz",
-      "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==",
-      "dev": true,
-      "requires": {
-        "debug": "^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
-        }
-      }
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz",
+      "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==",
+      "dev": true
     },
     "fontkit": {
       "version": "1.8.0",
@@ -9542,14 +9794,6 @@
         }
       }
     },
-    "for-each": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
-      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
-      "requires": {
-        "is-callable": "^1.1.3"
-      }
-    },
     "for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -9622,10 +9866,9 @@
       }
     },
     "fs-extra": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
-      "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
-      "dev": true,
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+      "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
       "requires": {
         "at-least-node": "^1.0.0",
         "graceful-fs": "^4.2.0",
@@ -9634,16 +9877,14 @@
       },
       "dependencies": {
         "graceful-fs": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-          "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
-          "dev": true
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
         },
         "jsonfile": {
           "version": "6.0.1",
           "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
           "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
-          "dev": true,
           "requires": {
             "graceful-fs": "^4.1.6",
             "universalify": "^1.0.0"
@@ -9652,8 +9893,7 @@
         "universalify": {
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
-          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
-          "dev": true
+          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
         }
       }
     },
@@ -10234,7 +10474,8 @@
     "function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
     },
     "genfun": {
       "version": "5.0.0",
@@ -10261,10 +10502,12 @@
       "dev": true
     },
     "get-stream": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-      "dev": true
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+      "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+      "requires": {
+        "pump": "^3.0.0"
+      }
     },
     "get-value": {
       "version": "2.0.6",
@@ -10285,6 +10528,7 @@
       "version": "7.1.3",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
       "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+      "dev": true,
       "requires": {
         "fs.realpath": "^1.0.0",
         "inflight": "^1.0.4",
@@ -10322,19 +10566,19 @@
       "dev": true
     },
     "global-agent": {
-      "version": "2.1.8",
-      "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz",
-      "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==",
+      "version": "2.1.12",
+      "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz",
+      "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==",
       "dev": true,
       "optional": true,
       "requires": {
-        "boolean": "^3.0.0",
-        "core-js": "^3.6.4",
+        "boolean": "^3.0.1",
+        "core-js": "^3.6.5",
         "es6-error": "^4.1.1",
-        "matcher": "^2.1.0",
-        "roarr": "^2.15.2",
-        "semver": "^7.1.2",
-        "serialize-error": "^5.0.0"
+        "matcher": "^3.0.0",
+        "roarr": "^2.15.3",
+        "semver": "^7.3.2",
+        "serialize-error": "^7.0.1"
       },
       "dependencies": {
         "semver": {
@@ -10346,15 +10590,6 @@
         }
       }
     },
-    "global-dirs": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
-      "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
-      "dev": true,
-      "requires": {
-        "ini": "^1.3.4"
-      }
-    },
     "global-tunnel-ng": {
       "version": "2.7.1",
       "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
@@ -10568,7 +10803,8 @@
     "graceful-fs": {
       "version": "4.1.15",
       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-      "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
+      "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+      "dev": true
     },
     "graphlibrary": {
       "version": "2.2.0",
@@ -10636,6 +10872,7 @@
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
       "requires": {
         "function-bind": "^1.1.1"
       }
@@ -10681,7 +10918,8 @@
     "has-symbols": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
-      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
+      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+      "dev": true
     },
     "has-value": {
       "version": "1.0.0",
@@ -10921,9 +11159,9 @@
       "dev": true
     },
     "http-proxy": {
-      "version": "1.18.0",
-      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
-      "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
+      "version": "1.18.1",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+      "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
       "dev": true,
       "requires": {
         "eventemitter3": "^4.0.0",
@@ -11008,6 +11246,11 @@
         }
       }
     },
+    "human-signals": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+      "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="
+    },
     "humanize-ms": {
       "version": "1.2.1",
       "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
@@ -11194,9 +11437,9 @@
       }
     },
     "inquirer": {
-      "version": "6.4.1",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz",
-      "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==",
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+      "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
       "dev": true,
       "requires": {
         "ansi-escapes": "^3.2.0",
@@ -11205,7 +11448,7 @@
         "cli-width": "^2.0.0",
         "external-editor": "^3.0.3",
         "figures": "^2.0.0",
-        "lodash": "^4.17.11",
+        "lodash": "^4.17.12",
         "mute-stream": "0.0.7",
         "run-async": "^2.2.0",
         "rxjs": "^6.4.0",
@@ -11220,10 +11463,10 @@
           "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=",
+        "mute-stream": {
+          "version": "0.0.7",
+          "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+          "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
           "dev": true
         },
         "string-width": {
@@ -11396,11 +11639,6 @@
       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
       "dev": true
     },
-    "is-callable": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
-      "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
-    },
     "is-ci": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@@ -11447,7 +11685,8 @@
     "is-date-object": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
-      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+      "dev": true
     },
     "is-descriptor": {
       "version": "0.1.6",
@@ -11489,8 +11728,7 @@
     "is-extglob": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
     },
     "is-fullwidth-code-point": {
       "version": "2.0.0",
@@ -11507,16 +11745,6 @@
         "is-extglob": "^2.1.1"
       }
     },
-    "is-installed-globally": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
-      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
-      "dev": true,
-      "requires": {
-        "global-dirs": "^0.1.0",
-        "is-path-inside": "^1.0.0"
-      }
-    },
     "is-interactive": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
@@ -11556,9 +11784,10 @@
       }
     },
     "is-obj": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
-      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+      "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+      "dev": true
     },
     "is-path-cwd": {
       "version": "1.0.0",
@@ -11599,26 +11828,6 @@
         "isobject": "^3.0.1"
       }
     },
-    "is-promise": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
-      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
-      "dev": true
-    },
-    "is-redirect": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
-      "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
-      "dev": true
-    },
-    "is-regex": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
-      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
-      "requires": {
-        "has": "^1.0.1"
-      }
-    },
     "is-regexp": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
@@ -11639,12 +11848,6 @@
       "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
       "dev": true
     },
-    "is-retry-allowed": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
-      "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
-      "dev": true
-    },
     "is-stream": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -11664,6 +11867,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
       "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+      "dev": true,
       "requires": {
         "has-symbols": "^1.0.0"
       }
@@ -11683,12 +11887,6 @@
         "unc-path-regex": "^0.1.2"
       }
     },
-    "is-url": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
-      "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
-      "dev": true
-    },
     "is-windows": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@@ -11779,21 +11977,6 @@
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
-        "make-dir": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
-          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
-          "dev": true,
-          "requires": {
-            "semver": "^6.0.0"
-          }
-        },
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-          "dev": true
-        },
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -11880,9 +12063,9 @@
       }
     },
     "jake": {
-      "version": "10.6.1",
-      "resolved": "https://registry.npmjs.org/jake/-/jake-10.6.1.tgz",
-      "integrity": "sha512-pHUK3+V0BjOb1XSi95rbBksrMdIqLVC9bJqDnshVyleYsET3H0XAq+3VB2E3notcYvv4wRdRHn13p7vobG+wfQ==",
+      "version": "10.8.2",
+      "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
+      "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
       "dev": true,
       "requires": {
         "async": "0.9.x",
@@ -11938,9 +12121,9 @@
       }
     },
     "jasmine-core": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz",
-      "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==",
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz",
+      "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==",
       "dev": true
     },
     "jasmine-spec-reporter": {
@@ -12070,6 +12253,7 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
       "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+      "dev": true,
       "requires": {
         "graceful-fs": "^4.1.6"
       }
@@ -12105,53 +12289,37 @@
       }
     },
     "karma": {
-      "version": "5.0.5",
-      "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.5.tgz",
-      "integrity": "sha512-Q4Su7kNwkTgqS+KbSCYgH0p4a/0JIxVLyp7qKNV7vgPNhIF4kIoh0GlUfMKpw67BrR3hgPQSJoxgF7xnzUtPpg==",
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-5.1.1.tgz",
+      "integrity": "sha512-xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ==",
       "dev": true,
       "requires": {
-        "body-parser": "^1.16.1",
+        "body-parser": "^1.19.0",
         "braces": "^3.0.2",
         "chokidar": "^3.0.0",
-        "colors": "^1.1.0",
-        "connect": "^3.6.0",
-        "di": "^0.0.1",
-        "dom-serialize": "^2.2.0",
-        "flatted": "^2.0.0",
-        "glob": "^7.1.1",
-        "graceful-fs": "^4.1.2",
-        "http-proxy": "^1.13.0",
-        "isbinaryfile": "^4.0.2",
-        "lodash": "^4.17.14",
-        "log4js": "^4.0.0",
-        "mime": "^2.3.1",
-        "minimatch": "^3.0.2",
-        "qjobs": "^1.1.4",
-        "range-parser": "^1.2.0",
-        "rimraf": "^2.6.0",
-        "socket.io": "2.1.1",
-        "source-map": "^0.6.1",
-        "tmp": "0.0.33",
-        "ua-parser-js": "0.7.21",
-        "yargs": "^15.3.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
-          "dev": true
-        },
-        "ansi-styles": {
-          "version": "4.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
-          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
-          "dev": true,
-          "requires": {
-            "@types/color-name": "^1.1.1",
-            "color-convert": "^2.0.1"
-          }
-        },
+        "colors": "^1.4.0",
+        "connect": "^3.7.0",
+        "di": "^0.0.1",
+        "dom-serialize": "^2.2.1",
+        "flatted": "^2.0.2",
+        "glob": "^7.1.6",
+        "graceful-fs": "^4.2.4",
+        "http-proxy": "^1.18.1",
+        "isbinaryfile": "^4.0.6",
+        "lodash": "^4.17.15",
+        "log4js": "^6.2.1",
+        "mime": "^2.4.5",
+        "minimatch": "^3.0.4",
+        "qjobs": "^1.2.0",
+        "range-parser": "^1.2.1",
+        "rimraf": "^3.0.2",
+        "socket.io": "^2.3.0",
+        "source-map": "^0.6.1",
+        "tmp": "0.2.1",
+        "ua-parser-js": "0.7.21",
+        "yargs": "^15.3.1"
+      },
+      "dependencies": {
         "braces": {
           "version": "3.0.2",
           "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@@ -12161,24 +12329,16 @@
             "fill-range": "^7.0.1"
           }
         },
-        "cliui": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
-          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^4.2.0",
-            "strip-ansi": "^6.0.0",
-            "wrap-ansi": "^6.2.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+        "connect": {
+          "version": "3.7.0",
+          "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+          "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
           "dev": true,
           "requires": {
-            "color-name": "~1.1.4"
+            "debug": "2.6.9",
+            "finalhandler": "1.1.2",
+            "parseurl": "~1.3.3",
+            "utils-merge": "1.0.1"
           }
         },
         "fill-range": {
@@ -12190,26 +12350,24 @@
             "to-regex-range": "^5.0.1"
           }
         },
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+        "glob": {
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
           "dev": true,
           "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
+            "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-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": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+        "graceful-fs": {
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
           "dev": true
         },
         "is-number": {
@@ -12218,66 +12376,40 @@
           "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
           "dev": true
         },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
         "mime": {
-          "version": "2.4.5",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
-          "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
+          "version": "2.4.6",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
+          "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
           "dev": true
         },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+        "parseurl": {
+          "version": "1.3.3",
+          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+          "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+          "dev": true
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
           "dev": true,
           "requires": {
-            "p-limit": "^2.2.0"
+            "glob": "^7.1.3"
           }
         },
-        "path-exists": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-          "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
-        },
         "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": "4.2.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+        "tmp": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+          "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
           "dev": true,
           "requires": {
-            "ansi-regex": "^5.0.0"
+            "rimraf": "^3.0.0"
           }
         },
         "to-regex-range": {
@@ -12288,46 +12420,6 @@
           "requires": {
             "is-number": "^7.0.0"
           }
-        },
-        "wrap-ansi": {
-          "version": "6.2.0",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.0.0",
-            "string-width": "^4.1.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "yargs": {
-          "version": "15.3.1",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
-          "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
-          "dev": true,
-          "requires": {
-            "cliui": "^6.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^4.1.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^4.2.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^18.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "18.1.3",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
-          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
         }
       }
     },
@@ -12361,9 +12453,9 @@
       }
     },
     "karma-coverage-istanbul-reporter": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.2.tgz",
-      "integrity": "sha512-pg23tKKF867UIJUIZF252cNbiBnuMIPOMkeiULzjysr9K267Js2O/SoQBL1PCPctJVzvhOkE47yQPUKrWtyl6w==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz",
+      "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==",
       "dev": true,
       "requires": {
         "istanbul-lib-coverage": "^3.0.0",
@@ -12374,18 +12466,18 @@
       }
     },
     "karma-jasmine": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.3.1.tgz",
-      "integrity": "sha512-Nxh7eX9mOQMyK0VSsMxdod+bcqrR/ikrmEiWj5M6fwuQ7oI+YEF1FckaDsWfs6TIpULm9f0fTKMjF7XcrvWyqQ==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz",
+      "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==",
       "dev": true,
       "requires": {
-        "jasmine-core": "^3.5.0"
+        "jasmine-core": "^3.6.0"
       }
     },
     "karma-jasmine-html-reporter": {
-      "version": "1.5.3",
-      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.3.tgz",
-      "integrity": "sha512-ci0VrjuCaFj+9d1tYlTE3KIPUCp0rz874zWWU3JgCMqGIyw5ke+BXWFPOAGAqUdCJcrMwneyvp1zFXA74MiPUA==",
+      "version": "1.5.4",
+      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz",
+      "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==",
       "dev": true
     },
     "karma-source-map-support": {
@@ -12398,9 +12490,9 @@
       }
     },
     "katex": {
-      "version": "0.11.1",
-      "resolved": "https://registry.npmjs.org/katex/-/katex-0.11.1.tgz",
-      "integrity": "sha512-5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==",
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/katex/-/katex-0.12.0.tgz",
+      "integrity": "sha512-y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg==",
       "requires": {
         "commander": "^2.19.0"
       }
@@ -12743,9 +12835,9 @@
       }
     },
     "lodash": {
-      "version": "4.17.14",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
-      "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
+      "version": "4.17.20",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+      "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
     },
     "lodash.clonedeep": {
       "version": "4.5.0",
@@ -12787,16 +12879,16 @@
       }
     },
     "log4js": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz",
-      "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==",
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz",
+      "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==",
       "dev": true,
       "requires": {
-        "date-format": "^2.0.0",
+        "date-format": "^3.0.0",
         "debug": "^4.1.1",
-        "flatted": "^2.0.0",
+        "flatted": "^2.0.1",
         "rfdc": "^1.1.4",
-        "streamroller": "^1.0.6"
+        "streamroller": "^2.2.4"
       },
       "dependencies": {
         "debug": {
@@ -12837,6 +12929,16 @@
         "js-tokens": "^3.0.0 || ^4.0.0"
       }
     },
+    "loud-rejection": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz",
+      "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==",
+      "dev": true,
+      "requires": {
+        "currently-unhandled": "^0.4.1",
+        "signal-exit": "^3.0.2"
+      }
+    },
     "lower-case": {
       "version": "1.1.4",
       "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
@@ -12849,13 +12951,12 @@
       "dev": true
     },
     "lru-cache": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
-      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
       "dev": true,
       "requires": {
-        "pseudomap": "^1.0.2",
-        "yallist": "^2.1.2"
+        "yallist": "^4.0.0"
       }
     },
     "lunr": {
@@ -12880,12 +12981,20 @@
       }
     },
     "make-dir": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
-      "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+      "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
       "dev": true,
       "requires": {
-        "pify": "^3.0.0"
+        "semver": "^6.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
       }
     },
     "make-error": {
@@ -13010,19 +13119,19 @@
       "dev": true
     },
     "matcher": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz",
-      "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
+      "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
       "dev": true,
       "optional": true,
       "requires": {
-        "escape-string-regexp": "^2.0.0"
+        "escape-string-regexp": "^4.0.0"
       },
       "dependencies": {
         "escape-string-regexp": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
-          "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+          "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
           "dev": true,
           "optional": true
         }
@@ -13039,9 +13148,9 @@
       "integrity": "sha512-n4xZJ+cw7o01YOSVhxxjyOmibqBPCi+XTDof4siq78QWMx7Fxjzgb/mxMUEElMzTDodMV7ENIMsjREOSldOQPw=="
     },
     "md5-file": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-4.0.0.tgz",
-      "integrity": "sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz",
+      "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==",
       "dev": true
     },
     "md5.js": {
@@ -13103,8 +13212,7 @@
     "merge-stream": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
-      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
-      "dev": true
+      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
     },
     "merge2": {
       "version": "1.2.3",
@@ -13199,8 +13307,7 @@
     "mimic-fn": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-      "dev": true
+      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
     },
     "mimic-response": {
       "version": "1.0.1",
@@ -13532,9 +13639,9 @@
       }
     },
     "mute-stream": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
-      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+      "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
       "dev": true
     },
     "nan": {
@@ -13594,20 +13701,22 @@
       "integrity": "sha512-MKawthAXawXZ+pcJS6/dGuwGDunM4yuUpjLjmFlRW3pr+BbWoUFVtFNxdcf1490FkYEsLC9sfEcZ4iQkmsI8sg=="
     },
     "ngx-markdown": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-9.0.0.tgz",
-      "integrity": "sha512-wcXMxA4Skgk9SzhfDRjihap/Kjq17jmMQiE/Ccp0bNibGaDgS5DbZiPBlMNLkp669UvjY9wVuxE4NuDtmQHS9w==",
-      "requires": {
-        "@types/marked": "^0.7.2",
-        "katex": "^0.11.0",
-        "marked": "^0.8.0",
-        "prismjs": "^1.16.0"
+      "version": "10.1.1",
+      "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-10.1.1.tgz",
+      "integrity": "sha512-bUVgN6asb35d5U4xM5CNfo7pSpuwqJSdTgK0PhNZzLiaiyPIK2owtLF6sWGhxTThJu+LngJPjj4MQ+AFe/s8XQ==",
+      "requires": {
+        "@types/marked": "^1.1.0",
+        "emoji-toolkit": "^6.0.1",
+        "katex": "^0.12.0",
+        "marked": "^1.1.0",
+        "prismjs": "^1.20.0",
+        "tslib": "^2.0.0"
       },
       "dependencies": {
         "marked": {
-          "version": "0.8.0",
-          "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz",
-          "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ=="
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz",
+          "integrity": "sha512-mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw=="
         }
       }
     },
@@ -13639,7 +13748,8 @@
     "nice-try": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
     },
     "no-case": {
       "version": "2.3.2",
@@ -13721,9 +13831,9 @@
       "dev": true
     },
     "nopt": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
-      "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+      "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
       "requires": {
         "abbrev": "1",
         "osenv": "^0.1.4"
@@ -14002,7 +14112,8 @@
     "object-keys": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
-      "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
+      "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==",
+      "dev": true
     },
     "object-path": {
       "version": "0.11.4",
@@ -14193,12 +14304,9 @@
       }
     },
     "objectorarray": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.3.tgz",
-      "integrity": "sha512-kPoflSYkAf/Onvjr4ZLaq37vDuOXjVzfwLCRuORRzYGdXkHa/vacPT0RgR+KmtkwOYFcxTMM62BRrZk8GGKHjw==",
-      "requires": {
-        "tape": "^4.8.0"
-      }
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz",
+      "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w=="
     },
     "obuf": {
       "version": "1.1.2",
@@ -14230,20 +14338,11 @@
       }
     },
     "onetime": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-      "dev": true,
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
       "requires": {
-        "mimic-fn": "^1.0.0"
-      },
-      "dependencies": {
-        "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
-        }
+        "mimic-fn": "^2.1.0"
       }
     },
     "open": {
@@ -14460,8 +14559,7 @@
     "p-finally": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
     },
     "p-limit": {
       "version": "2.2.1",
@@ -14502,8 +14600,7 @@
     "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
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
     },
     "package-json": {
       "version": "6.5.0",
@@ -14840,12 +14937,14 @@
     "path-key": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
     },
     "path-parse": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+      "dev": true
     },
     "path-to-regexp": {
       "version": "0.1.7",
@@ -15762,9 +15861,9 @@
       "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew=="
     },
     "primeng": {
-      "version": "9.0.6",
-      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.0.6.tgz",
-      "integrity": "sha512-RGVTkXwHTb7609zTU/uJFYdbJV124kOwrMiwnHjFn6UkwmS3yTX0Kkr21v8KOTJqsKLq3OWVYhkOwvUklipAAg=="
+      "version": "9.1.3",
+      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.1.3.tgz",
+      "integrity": "sha512-5+XGWrLNYToMIXR/r+sMcGAgz/rSYjo6Ms8rygV5uuLmHNB+mXpaRxMCajKSnmVFLZPeyATtVRm9RcA4Y/VizQ=="
     },
     "printj": {
       "version": "1.1.2",
@@ -15772,9 +15871,9 @@
       "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
     },
     "prismjs": {
-      "version": "1.19.0",
-      "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.19.0.tgz",
-      "integrity": "sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw==",
+      "version": "1.21.0",
+      "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz",
+      "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==",
       "requires": {
         "clipboard": "^2.0.0"
       }
@@ -16001,12 +16100,6 @@
       "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
       "dev": true
     },
-    "pseudomap": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
-      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
-      "dev": true
-    },
     "psl": {
       "version": "1.1.31",
       "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
@@ -16039,7 +16132,6 @@
       "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"
@@ -16278,7 +16370,6 @@
       "version": "3.2.0",
       "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz",
       "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==",
-      "dev": true,
       "requires": {
         "pify": "^4.0.1",
         "with-open-file": "^0.1.6"
@@ -16287,8 +16378,7 @@
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
-          "dev": true
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
         }
       }
     },
@@ -16433,16 +16523,6 @@
         "unicode-match-property-value-ecmascript": "^1.2.0"
       }
     },
-    "registry-auth-token": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
-      "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
-      "dev": true,
-      "requires": {
-        "rc": "^1.1.6",
-        "safe-buffer": "^5.0.1"
-      }
-    },
     "registry-url": {
       "version": "5.1.0",
       "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
@@ -16663,6 +16743,23 @@
       "requires": {
         "onetime": "^2.0.0",
         "signal-exit": "^3.0.2"
+      },
+      "dependencies": {
+        "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
+        },
+        "onetime": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        }
       }
     },
     "restructure": {
@@ -16674,14 +16771,6 @@
         "browserify-optional": "^1.0.0"
       }
     },
-    "resumer": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
-      "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
-      "requires": {
-        "through": "~2.3.4"
-      }
-    },
     "ret": {
       "version": "0.1.15",
       "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
@@ -16697,8 +16786,7 @@
     "reusify": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
-      "dev": true
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
     },
     "rework": {
       "version": "1.0.1",
@@ -16808,20 +16896,16 @@
         }
       }
     },
-    "run-async": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
-      "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
-      "dev": true,
-      "requires": {
-        "is-promise": "^2.1.0"
-      }
+    "run-async": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+      "dev": true
     },
     "run-parallel": {
       "version": "1.1.9",
       "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
-      "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
-      "dev": true
+      "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q=="
     },
     "run-queue": {
       "version": "1.0.3",
@@ -16838,9 +16922,9 @@
       "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
     },
     "rxjs": {
-      "version": "6.5.5",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
-      "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+      "version": "6.6.2",
+      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz",
+      "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==",
       "requires": {
         "tslib": "^1.9.0"
       },
@@ -17068,15 +17152,6 @@
       "dev": true,
       "optional": true
     },
-    "semver-diff": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
-      "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
-      "dev": true,
-      "requires": {
-        "semver": "^5.0.3"
-      }
-    },
     "semver-dsl": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz",
@@ -17162,13 +17237,22 @@
       }
     },
     "serialize-error": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz",
-      "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==",
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+      "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
       "dev": true,
       "optional": true,
       "requires": {
-        "type-fest": "^0.8.0"
+        "type-fest": "^0.13.1"
+      },
+      "dependencies": {
+        "type-fest": {
+          "version": "0.13.1",
+          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+          "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+          "dev": true,
+          "optional": true
+        }
       }
     },
     "serialize-javascript": {
@@ -17291,6 +17375,7 @@
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
       "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
       "requires": {
         "shebang-regex": "^1.0.0"
       }
@@ -17298,18 +17383,13 @@
     "shebang-regex": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
-    },
-    "shelljs": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
-      "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM="
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
     },
     "signal-exit": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
-      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
-      "dev": true
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
     },
     "simple-swizzle": {
       "version": "0.2.2",
@@ -17459,27 +17539,33 @@
       }
     },
     "socket.io": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
-      "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
+      "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
       "dev": true,
       "requires": {
-        "debug": "~3.1.0",
-        "engine.io": "~3.2.0",
+        "debug": "~4.1.0",
+        "engine.io": "~3.4.0",
         "has-binary2": "~1.0.2",
         "socket.io-adapter": "~1.1.0",
-        "socket.io-client": "2.1.1",
-        "socket.io-parser": "~3.2.0"
+        "socket.io-client": "2.3.0",
+        "socket.io-parser": "~3.4.0"
       },
       "dependencies": {
         "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "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.0.0"
+            "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
         }
       }
     },
@@ -17490,56 +17576,96 @@
       "dev": true
     },
     "socket.io-client": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
-      "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
+      "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
       "dev": true,
       "requires": {
         "backo2": "1.0.2",
         "base64-arraybuffer": "0.1.5",
         "component-bind": "1.0.0",
         "component-emitter": "1.2.1",
-        "debug": "~3.1.0",
-        "engine.io-client": "~3.2.0",
+        "debug": "~4.1.0",
+        "engine.io-client": "~3.4.0",
         "has-binary2": "~1.0.2",
         "has-cors": "1.1.0",
         "indexof": "0.0.1",
         "object-component": "0.0.3",
         "parseqs": "0.0.5",
         "parseuri": "0.0.5",
-        "socket.io-parser": "~3.2.0",
+        "socket.io-parser": "~3.3.0",
         "to-array": "0.1.4"
       },
       "dependencies": {
         "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "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.0.0"
+            "ms": "^2.1.1"
+          }
+        },
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "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
+        },
+        "socket.io-parser": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
+          "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+          "dev": true,
+          "requires": {
+            "component-emitter": "1.2.1",
+            "debug": "~3.1.0",
+            "isarray": "2.0.1"
+          },
+          "dependencies": {
+            "debug": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+              "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+              "dev": true,
+              "requires": {
+                "ms": "2.0.0"
+              }
+            },
+            "ms": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+              "dev": true
+            }
           }
         }
       }
     },
     "socket.io-parser": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
-      "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
+      "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
       "dev": true,
       "requires": {
         "component-emitter": "1.2.1",
-        "debug": "~3.1.0",
+        "debug": "~4.1.0",
         "isarray": "2.0.1"
       },
       "dependencies": {
         "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "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.0.0"
+            "ms": "^2.1.1"
           }
         },
         "isarray": {
@@ -17547,6 +17673,12 @@
           "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
           "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
           "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
         }
       }
     },
@@ -17853,9 +17985,9 @@
       "dev": true
     },
     "ssf": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz",
-      "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==",
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
       "requires": {
         "frac": "~1.1.2"
       }
@@ -18044,38 +18176,48 @@
       "dev": true
     },
     "streamroller": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz",
-      "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==",
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz",
+      "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==",
       "dev": true,
       "requires": {
-        "async": "^2.6.2",
-        "date-format": "^2.0.0",
-        "debug": "^3.2.6",
-        "fs-extra": "^7.0.1",
-        "lodash": "^4.17.14"
+        "date-format": "^2.1.0",
+        "debug": "^4.1.1",
+        "fs-extra": "^8.1.0"
       },
       "dependencies": {
+        "date-format": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
+          "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
+          "dev": true
+        },
         "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"
           }
         },
         "fs-extra": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-          "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+          "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.1.2",
+            "graceful-fs": "^4.2.0",
             "jsonfile": "^4.0.0",
             "universalify": "^0.1.0"
           }
         },
+        "graceful-fs": {
+          "version": "4.2.4",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+          "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+          "dev": true
+        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -18129,16 +18271,6 @@
       "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
       "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
     },
-    "string.prototype.trim": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
-      "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
-      "requires": {
-        "define-properties": "^1.1.2",
-        "es-abstract": "^1.5.0",
-        "function-bind": "^1.0.2"
-      }
-    },
     "string.prototype.trimend": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
@@ -18298,6 +18430,12 @@
         "safe-buffer": "~5.1.0"
       }
     },
+    "stringify-package": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz",
+      "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==",
+      "dev": true
+    },
     "strip-ansi": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -18308,9 +18446,9 @@
       }
     },
     "strip-bom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+      "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
     },
     "strip-css-comments": {
       "version": "3.0.0",
@@ -18326,6 +18464,11 @@
       "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
       "dev": true
     },
+    "strip-final-newline": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+      "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
+    },
     "strip-json-comments": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -18553,65 +18696,18 @@
       "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
       "dev": true
     },
+    "systeminformation": {
+      "version": "4.27.1",
+      "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.27.1.tgz",
+      "integrity": "sha512-l321lB8PDyuAmLRALsjq11gLIXUepz2pDNaQoqYtd04g0pu/arw4aAQ0T05IgRSmZLHYq5jd6WmmpIBs1EO5AQ==",
+      "dev": true
+    },
     "tapable": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
       "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
       "dev": true
     },
-    "tape": {
-      "version": "4.10.2",
-      "resolved": "https://registry.npmjs.org/tape/-/tape-4.10.2.tgz",
-      "integrity": "sha512-mgl23h7W2yuk3N85FOYrin2OvThTYWdwbk6XQ1pr2PMJieyW2FM/4Bu/+kD/wecb3aZ0Enm+Syinyq467OPq2w==",
-      "requires": {
-        "deep-equal": "~1.0.1",
-        "defined": "~1.0.0",
-        "for-each": "~0.3.3",
-        "function-bind": "~1.1.1",
-        "glob": "~7.1.4",
-        "has": "~1.0.3",
-        "inherits": "~2.0.3",
-        "minimist": "~1.2.0",
-        "object-inspect": "~1.6.0",
-        "resolve": "~1.10.1",
-        "resumer": "~0.0.0",
-        "string.prototype.trim": "~1.1.2",
-        "through": "~2.3.8"
-      },
-      "dependencies": {
-        "glob": {
-          "version": "7.1.4",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
-          "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
-          "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"
-          }
-        },
-        "minimist": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
-        },
-        "object-inspect": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
-          "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
-        },
-        "resolve": {
-          "version": "1.10.1",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
-          "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
-          "requires": {
-            "path-parse": "^1.0.6"
-          }
-        }
-      }
-    },
     "tar": {
       "version": "6.0.5",
       "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz",
@@ -18669,43 +18765,6 @@
         }
       }
     },
-    "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": "4.2.1",
       "resolved": "https://registry.npmjs.org/terser/-/terser-4.2.1.tgz",
@@ -18789,7 +18848,8 @@
     "through": {
       "version": "2.3.8",
       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+      "dev": true
     },
     "through2": {
       "version": "2.0.5",
@@ -18813,12 +18873,6 @@
       "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
       "dev": true
     },
-    "timed-out": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
-      "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
-      "dev": true
-    },
     "timers-browserify": {
       "version": "2.0.11",
       "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
@@ -18986,9 +19040,9 @@
       "integrity": "sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA=="
     },
     "ts-node": {
-      "version": "8.10.1",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz",
-      "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz",
+      "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==",
       "dev": true,
       "requires": {
         "arg": "^4.1.0",
@@ -19078,9 +19132,9 @@
       "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
     },
     "tslint": {
-      "version": "6.1.2",
-      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz",
-      "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==",
+      "version": "6.1.3",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
+      "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -19094,7 +19148,7 @@
         "mkdirp": "^0.5.3",
         "resolve": "^1.3.2",
         "semver": "^5.3.0",
-        "tslib": "^1.10.0",
+        "tslib": "^1.13.0",
         "tsutils": "^2.29.0"
       },
       "dependencies": {
@@ -19247,12 +19301,6 @@
         }
       }
     },
-    "ultron": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
-      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
-      "dev": true
-    },
     "unc-path-regex": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -19260,9 +19308,9 @@
       "dev": true
     },
     "underscore": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
-      "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
+      "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg=="
     },
     "unicode-canonical-property-names-ecmascript": {
       "version": "1.0.4",
@@ -19381,12 +19429,12 @@
       }
     },
     "unique-string": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
-      "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+      "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
       "dev": true,
       "requires": {
-        "crypto-random-string": "^1.0.0"
+        "crypto-random-string": "^2.0.0"
       }
     },
     "universal-analytics": {
@@ -19420,7 +19468,8 @@
     "universalify": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+      "dev": true
     },
     "unix-crypt-td-js": {
       "version": "1.1.4",
@@ -19480,12 +19529,6 @@
         }
       }
     },
-    "unzip-response": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
-      "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
-      "dev": true
-    },
     "upath": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
@@ -20770,6 +20813,7 @@
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
       "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
       "requires": {
         "isexe": "^2.0.0"
       }
@@ -20780,48 +20824,6 @@
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
       "dev": true
     },
-    "widest-line": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
-      "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
-      "dev": true,
-      "requires": {
-        "string-width": "^2.1.1"
-      },
-      "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"
-          }
-        }
-      }
-    },
     "windows-release": {
       "version": "3.2.0",
       "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz",
@@ -20881,10 +20883,9 @@
       }
     },
     "with-open-file": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz",
-      "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==",
-      "dev": true,
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz",
+      "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==",
       "requires": {
         "p-finally": "^1.0.0",
         "p-try": "^2.1.0",
@@ -20894,8 +20895,7 @@
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
-          "dev": true
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
         }
       }
     },
@@ -20904,6 +20904,11 @@
       "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
       "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
     },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -21009,14 +21014,15 @@
       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
     },
     "write-file-atomic": {
-      "version": "2.4.3",
-      "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
-      "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+      "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
       "dev": true,
       "requires": {
-        "graceful-fs": "^4.1.11",
         "imurmurhash": "^0.1.4",
-        "signal-exit": "^3.0.2"
+        "is-typedarray": "^1.0.0",
+        "signal-exit": "^3.0.2",
+        "typedarray-to-buffer": "^3.1.5"
       }
     },
     "ws": {
@@ -21029,15 +21035,15 @@
       }
     },
     "xdg-basedir": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
-      "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+      "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
       "dev": true
     },
     "xlsx": {
-      "version": "0.16.0",
-      "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.0.tgz",
-      "integrity": "sha512-W/LQZjh6o7WDGmCIUXp2FUPSej2XRdaiTgZN31Oh68JlL7jpm796p3eI5zOpphYNT12qkgnXYaCysAsoiyZvOQ==",
+      "version": "0.16.6",
+      "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.6.tgz",
+      "integrity": "sha512-iAPNt15C2umCx7Q6h9owZvNHRYVOImLp7Mc00uA4UhJvzjfM1OV3V7TgBXIHuawGF1G6GLXZr/r75e5jsiBefg==",
       "requires": {
         "adler-32": "~1.2.0",
         "cfb": "^1.1.4",
@@ -21045,8 +21051,9 @@
         "commander": "~2.17.1",
         "crc-32": "~1.2.0",
         "exit-on-epipe": "~1.0.1",
-        "ssf": "~0.10.3",
-        "wmf": "~1.0.1"
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
       },
       "dependencies": {
         "commander": {
@@ -21080,9 +21087,9 @@
       "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
     },
     "xmldom": {
-      "version": "0.1.27",
-      "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
-      "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
+      "version": "0.1.31",
+      "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
+      "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
     },
     "xmlhttprequest-ssl": {
       "version": "1.5.5",
@@ -21103,9 +21110,9 @@
       "dev": true
     },
     "yallist": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
       "dev": true
     },
     "yargs": {
@@ -21196,9 +21203,12 @@
       "dev": true
     },
     "zone.js": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz",
-      "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg=="
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.1.tgz",
+      "integrity": "sha512-KcZawpmVgS+3U2rzKTM6fLKaCX1QDv3//NxiSOOsqpQY/r5hl+xpYikPwY93Sp7CAB+J5mZJpb/YubxEYLGK5g==",
+      "requires": {
+        "tslib": "^2.0.0"
+      }
     }
   }
 }
diff --git a/package.json b/package.json
index 62a9aa747..820f8804e 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
     "@angular/common": "^10.0.12",
     "@angular/compiler": "^10.0.12",
     "@angular/core": "^10.0.12",
-    "@angular/flex-layout": "^9.0.0-beta.29",
+    "@angular/flex-layout": "^10.0.0-beta.32",
     "@angular/forms": "^10.0.12",
     "@angular/material": "^10.1.3",
     "@angular/platform-browser": "^10.0.12",
@@ -51,14 +51,14 @@
     "@types/sprintf-js": "^1.1.2",
     "angular2-chartjs": "^0.5.1",
     "angular2-hotkeys": "^2.2.0",
-    "chartjs-plugin-zoom": "^0.7.5",
-    "cordova-android": "^8.1.0",
-    "cordova-plugin-advanced-http": "^2.4.1",
+    "chartjs-plugin-zoom": "^0.7.7",
+    "cordova-android": "^9.0.0",
+    "cordova-plugin-advanced-http": "^3.0.1",
     "cordova-plugin-app-version": "^0.1.9",
     "cordova-plugin-badge": "^0.8.8",
     "cordova-plugin-device": "^2.0.3",
     "cordova-plugin-file": "^6.0.2",
-    "cordova-plugin-file-opener2": "^3.0.1",
+    "cordova-plugin-file-opener2": "^3.0.4",
     "cordova-plugin-local-notification": "^0.9.0-beta.2",
     "cordova-plugin-whitelist": "^1.3.4",
     "core-js": "^3.6.5",
@@ -69,19 +69,19 @@
     "mathjax": "^2.7.8",
     "mermaid": "~8.3.1",
     "ngx-konami": "^1.7.1",
-    "ngx-markdown": "^9.0.0",
+    "ngx-markdown": "^10.1.1",
     "ngx-material-file-input": "^2.1.1",
     "ngx-matomo": "^0.1.4",
     "ngx-webstorage-service": "^4.1.0",
     "pako": "^1.0.11",
-    "primeng": "^9.0.6",
+    "primeng": "^9.1.3",
     "roboto-fontface": "^0.10.0",
-    "rxjs": "^6.5.5",
+    "rxjs": "^6.6.2",
     "screenfull": "^5.0.2",
     "svg-pan-zoom": "^3.6.1",
     "tslib": "^2.0.0",
-    "xlsx": "^0.16.0",
-    "zone.js": "^0.10.3"
+    "xlsx": "^0.16.6",
+    "zone.js": "^0.11.1"
   },
   "devDependencies": {
     "@angular-devkit/build-angular": "^0.1000.7",
@@ -90,25 +90,25 @@
     "@angular/language-service": "^10.0.12",
     "@compodoc/compodoc": "^1.1.11",
     "@types/file-saver": "^2.0.1",
-    "@types/jasmine": "^3.5.10",
+    "@types/jasmine": "^3.5.13",
     "@types/jasminewd2": "^2.0.8",
-    "@types/node": "^13.13.5",
+    "@types/node": "^14.6.0",
     "codelyzer": "^6.0.0",
-    "cordova": "^9.0.0",
-    "electron": "^8.2.5",
-    "electron-builder": "^22.6.0",
-    "fs-extra": "^9.0.0",
-    "jasmine-core": "~3.5.0",
+    "cordova": "^10.0.0",
+    "electron": "^10.0.0",
+    "electron-builder": "^22.8.0",
+    "fs-extra": "^9.0.1",
+    "jasmine-core": "^3.6.0",
     "jasmine-spec-reporter": "~5.0.0",
-    "karma": "~5.0.0",
+    "karma": "^5.1.1",
     "karma-chrome-launcher": "~3.1.0",
     "karma-cli": "~2.0.0",
-    "karma-coverage-istanbul-reporter": "~3.0.2",
-    "karma-jasmine": "~3.3.0",
-    "karma-jasmine-html-reporter": "^1.5.0",
+    "karma-coverage-istanbul-reporter": "^3.0.3",
+    "karma-jasmine": "^4.0.1",
+    "karma-jasmine-html-reporter": "^1.5.4",
     "protractor": "~7.0.0",
-    "ts-node": "^8.10.1",
-    "tslint": "~6.1.0",
+    "ts-node": "^9.0.0",
+    "tslint": "^6.1.3",
     "typescript": "~3.9.7",
     "webpack-dev-server": "^3.11.0"
   },
-- 
GitLab


From 6c22d72e30d0661e1d402c9a95c24d2b7db4e7c7 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 12:33:00 +0200
Subject: [PATCH 082/101] Update mermaid

---
 package-lock.json | 253 +++++++++++++++++++++-------------------------
 package.json      |   2 +-
 2 files changed, 117 insertions(+), 138 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index fb7616752..07c9e6b81 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -981,7 +981,6 @@
       "version": "7.10.4",
       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
       "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
-      "dev": true,
       "requires": {
         "@babel/highlight": "^7.10.4"
       }
@@ -1168,7 +1167,6 @@
       "version": "7.10.4",
       "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
       "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
-      "dev": true,
       "requires": {
         "@babel/helper-get-function-arity": "^7.10.4",
         "@babel/template": "^7.10.4",
@@ -1179,7 +1177,6 @@
           "version": "7.10.4",
           "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
           "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
-          "dev": true,
           "requires": {
             "@babel/highlight": "^7.10.4"
           }
@@ -1188,7 +1185,6 @@
           "version": "7.10.4",
           "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
           "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
-          "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.10.4",
             "chalk": "^2.0.0",
@@ -1199,7 +1195,6 @@
           "version": "7.10.4",
           "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
           "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
-          "dev": true,
           "requires": {
             "@babel/code-frame": "^7.10.4",
             "@babel/parser": "^7.10.4",
@@ -1212,7 +1207,6 @@
       "version": "7.10.4",
       "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
       "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
-      "dev": true,
       "requires": {
         "@babel/types": "^7.10.4"
       }
@@ -1443,7 +1437,6 @@
       "version": "7.11.0",
       "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
       "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
-      "dev": true,
       "requires": {
         "@babel/types": "^7.11.0"
       }
@@ -1451,8 +1444,7 @@
     "@babel/helper-validator-identifier": {
       "version": "7.10.4",
       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
-      "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
-      "dev": true
+      "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
     },
     "@babel/helper-wrap-function": {
       "version": "7.10.4",
@@ -1547,7 +1539,6 @@
       "version": "7.10.4",
       "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
       "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
-      "dev": true,
       "requires": {
         "@babel/helper-validator-identifier": "^7.10.4",
         "chalk": "^2.0.0",
@@ -1557,8 +1548,7 @@
     "@babel/parser": {
       "version": "7.11.4",
       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz",
-      "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==",
-      "dev": true
+      "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA=="
     },
     "@babel/plugin-proposal-async-generator-functions": {
       "version": "7.10.5",
@@ -2187,7 +2177,6 @@
       "version": "7.11.0",
       "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
       "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
-      "dev": true,
       "requires": {
         "@babel/code-frame": "^7.10.4",
         "@babel/generator": "^7.11.0",
@@ -2204,7 +2193,6 @@
           "version": "7.10.4",
           "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
           "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
-          "dev": true,
           "requires": {
             "@babel/highlight": "^7.10.4"
           }
@@ -2213,7 +2201,6 @@
           "version": "7.11.4",
           "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz",
           "integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==",
-          "dev": true,
           "requires": {
             "@babel/types": "^7.11.0",
             "jsesc": "^2.5.1",
@@ -2224,7 +2211,6 @@
           "version": "7.10.4",
           "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
           "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
-          "dev": true,
           "requires": {
             "@babel/helper-validator-identifier": "^7.10.4",
             "chalk": "^2.0.0",
@@ -2235,7 +2221,6 @@
           "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"
           }
@@ -2243,20 +2228,17 @@
         "lodash": {
           "version": "4.17.20",
           "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
-          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
-          "dev": true
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
         },
         "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
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
         },
         "source-map": {
           "version": "0.5.7",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
         }
       }
     },
@@ -2264,7 +2246,6 @@
       "version": "7.11.0",
       "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
       "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
-      "dev": true,
       "requires": {
         "@babel/helper-validator-identifier": "^7.10.4",
         "lodash": "^4.17.19",
@@ -2274,8 +2255,7 @@
         "lodash": {
           "version": "4.17.20",
           "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
-          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
-          "dev": true
+          "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
         }
       }
     },
@@ -3587,7 +3567,6 @@
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
       "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dev": true,
       "requires": {
         "color-convert": "^1.9.0"
       },
@@ -3596,7 +3575,6 @@
           "version": "1.9.3",
           "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
           "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-          "dev": true,
           "requires": {
             "color-name": "1.1.3"
           }
@@ -3604,8 +3582,7 @@
         "color-name": {
           "version": "1.1.3",
           "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-          "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-          "dev": true
+          "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
         }
       }
     },
@@ -4042,6 +4019,29 @@
         "ast-types-flow": "0.0.7"
       }
     },
+    "babel-eslint": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+      "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "@babel/parser": "^7.7.0",
+        "@babel/traverse": "^7.7.0",
+        "@babel/types": "^7.7.0",
+        "eslint-visitor-keys": "^1.0.0",
+        "resolve": "^1.12.0"
+      },
+      "dependencies": {
+        "resolve": {
+          "version": "1.17.0",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+          "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+          "requires": {
+            "path-parse": "^1.0.6"
+          }
+        }
+      }
+    },
     "babel-loader": {
       "version": "8.1.0",
       "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
@@ -5150,7 +5150,6 @@
       "version": "2.4.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
       "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dev": true,
       "requires": {
         "ansi-styles": "^3.2.1",
         "escape-string-regexp": "^1.0.5",
@@ -5161,7 +5160,6 @@
           "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"
           }
@@ -7478,9 +7476,9 @@
       }
     },
     "d3": {
-      "version": "5.15.1",
-      "resolved": "https://registry.npmjs.org/d3/-/d3-5.15.1.tgz",
-      "integrity": "sha512-Xu9gT6Lm0jH3wWJJSRomFwqnGGi3YAfWIfxNFl4++YVgYOjo3F8V2idAG3nJBgpZOkD0/RHPZX6F4k6tzgOvYw==",
+      "version": "5.16.0",
+      "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz",
+      "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==",
       "requires": {
         "d3-array": "1",
         "d3-axis": "1",
@@ -7526,9 +7524,9 @@
       "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ=="
     },
     "d3-brush": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.5.tgz",
-      "integrity": "sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==",
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz",
+      "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==",
       "requires": {
         "d3-dispatch": "1",
         "d3-drag": "1",
@@ -7552,9 +7550,9 @@
       "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="
     },
     "d3-color": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.0.tgz",
-      "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg=="
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz",
+      "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q=="
     },
     "d3-contour": {
       "version": "1.3.2",
@@ -7589,14 +7587,14 @@
       }
     },
     "d3-ease": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz",
-      "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ=="
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz",
+      "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ=="
     },
     "d3-fetch": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz",
-      "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz",
+      "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==",
       "requires": {
         "d3-dsv": "1"
       }
@@ -7613,14 +7611,14 @@
       }
     },
     "d3-format": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz",
-      "integrity": "sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw=="
+      "version": "1.4.5",
+      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
+      "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ=="
     },
     "d3-geo": {
-      "version": "1.11.9",
-      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.9.tgz",
-      "integrity": "sha512-9edcH6J3s/Aa3KJITWqFJbyB/8q3mMlA9Fi7z6yy+FAYMnRaxmC7jBhUnsINxVWD14GmqX3DK8uk7nV6/Ekt4A==",
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz",
+      "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==",
       "requires": {
         "d3-array": "1"
       }
@@ -7681,9 +7679,9 @@
       }
     },
     "d3-selection": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.1.tgz",
-      "integrity": "sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA=="
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz",
+      "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg=="
     },
     "d3-shape": {
       "version": "1.3.7",
@@ -7699,9 +7697,9 @@
       "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA=="
     },
     "d3-time-format": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.3.tgz",
-      "integrity": "sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
+      "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
       "requires": {
         "d3-time": "1"
       }
@@ -7741,22 +7739,24 @@
         "d3-transition": "1"
       }
     },
-    "dagre-d3-renderer": {
-      "version": "0.5.8",
-      "resolved": "https://registry.npmjs.org/dagre-d3-renderer/-/dagre-d3-renderer-0.5.8.tgz",
-      "integrity": "sha512-XH2a86isUHRxzIYbjQVEuZtJnWEufb64H5DuXIUmn8esuB40jgLEbUUclulWOW62/ZoXlj2ZDyL8SJ+YRxs+jQ==",
+    "dagre": {
+      "version": "0.8.5",
+      "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz",
+      "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==",
       "requires": {
-        "dagre-layout": "^0.8.8",
-        "lodash": "^4.17.5"
+        "graphlib": "^2.1.8",
+        "lodash": "^4.17.15"
       }
     },
-    "dagre-layout": {
-      "version": "0.8.8",
-      "resolved": "https://registry.npmjs.org/dagre-layout/-/dagre-layout-0.8.8.tgz",
-      "integrity": "sha512-ZNV15T9za7X+fV8Z07IZquUKugCxm5owoiPPxfEx6OJRD331nkiIaF3vSt0JEY5FkrY0KfRQxcpQ3SpXB7pLPQ==",
+    "dagre-d3": {
+      "version": "0.6.4",
+      "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz",
+      "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==",
       "requires": {
-        "graphlibrary": "^2.2.0",
-        "lodash": "^4.17.5"
+        "d3": "^5.14",
+        "dagre": "^0.8.5",
+        "graphlib": "^2.1.8",
+        "lodash": "^4.17.15"
       }
     },
     "damerau-levenshtein": {
@@ -8732,6 +8732,14 @@
       "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
       "dev": true
     },
+    "entity-decode": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/entity-decode/-/entity-decode-2.0.2.tgz",
+      "integrity": "sha512-5CCY/3ci4MC1m2jlumNjWd7VBFt4VfFnmSqSNmVcXq4gxM3Vmarxtt+SvmBnzwLS669MWdVuXboNVj1qN2esVg==",
+      "requires": {
+        "he": "^1.1.1"
+      }
+    },
     "env-paths": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
@@ -8876,13 +8884,7 @@
     "escape-string-regexp": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true
-    },
-    "escaper": {
-      "version": "2.5.3",
-      "resolved": "https://registry.npmjs.org/escaper/-/escaper-2.5.3.tgz",
-      "integrity": "sha512-QGb9sFxBVpbzMggrKTX0ry1oiI4CSDAl9vIL702hzl1jGW8VZs7qfqTRX7WDOjoNDoEVGcEtu1ZOQgReSfT2kQ=="
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
     },
     "escodegen": {
       "version": "1.9.1",
@@ -8916,6 +8918,11 @@
         "estraverse": "^4.1.1"
       }
     },
+    "eslint-visitor-keys": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
+    },
     "esprima": {
       "version": "3.1.3",
       "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
@@ -10606,8 +10613,7 @@
     "globals": {
       "version": "11.12.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
-      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
-      "dev": true
+      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
     },
     "globalthis": {
       "version": "1.0.1",
@@ -10806,12 +10812,12 @@
       "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
       "dev": true
     },
-    "graphlibrary": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/graphlibrary/-/graphlibrary-2.2.0.tgz",
-      "integrity": "sha512-XTcvT55L8u4MBZrM37zXoUxsgxs/7sow7YSygd9CIwfWTVO8RVu7AYXhhCiTuFEf+APKgx6Jk4SuQbYR0vYKmQ==",
+    "graphlib": {
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
+      "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
       "requires": {
-        "lodash": "^4.17.5"
+        "lodash": "^4.17.15"
       }
     },
     "hammerjs": {
@@ -10912,8 +10918,7 @@
     "has-flag": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "dev": true
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
     },
     "has-symbols": {
       "version": "1.0.0",
@@ -11828,11 +11833,6 @@
         "isobject": "^3.0.1"
       }
     },
-    "is-regexp": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
-      "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
-    },
     "is-relative": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
@@ -12171,8 +12171,7 @@
     "js-tokens": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-      "dev": true
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
     },
     "js-yaml": {
       "version": "3.13.1",
@@ -12201,8 +12200,7 @@
     "jsesc": {
       "version": "2.5.2",
       "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-      "dev": true
+      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
     },
     "json-buffer": {
       "version": "3.0.0",
@@ -12506,6 +12504,11 @@
         "json-buffer": "3.0.0"
       }
     },
+    "khroma": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/khroma/-/khroma-1.1.0.tgz",
+      "integrity": "sha512-aTO+YX22tYOLEQJYFiatAj1lc5QZ+H5sHWFRBWNCiKwc5NWNUJZyeSeiHEPeURJ2a1GEVYcmyMUwGjjLe5ec5A=="
+    },
     "killable": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@@ -13221,21 +13224,22 @@
       "dev": true
     },
     "mermaid": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.3.1.tgz",
-      "integrity": "sha512-s3+IQJqpd++hplyz1DVmA68d1ZTUqr1R21EeQldPNtSpRwLuODqI0BxQAt0bI5oiet07lelqfs3FW4ewtIhfKQ==",
+      "version": "8.7.0",
+      "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.7.0.tgz",
+      "integrity": "sha512-SkinxAY3sIdML+o5U4U7rQEIa628OEywEw+pfhc3wSVDFqLk2XNdX2j3YmkyCw3Kcbp9BXar533ei+/saYBs5g==",
       "requires": {
         "@braintree/sanitize-url": "^3.1.0",
+        "babel-eslint": "^10.1.0",
         "d3": "^5.7.0",
-        "dagre-d3-renderer": "^0.5.8",
-        "dagre-layout": "^0.8.8",
-        "graphlibrary": "^2.2.0",
+        "dagre": "^0.8.4",
+        "dagre-d3": "^0.6.4",
+        "entity-decode": "^2.0.2",
+        "graphlib": "^2.1.7",
         "he": "^1.2.0",
-        "lodash": "^4.17.11",
+        "khroma": "^1.1.0",
         "minify": "^4.1.1",
         "moment-mini": "^2.22.1",
-        "prettier": "^1.18.2",
-        "scope-css": "^1.2.1"
+        "stylis": "^3.5.2"
       }
     },
     "methods": {
@@ -14943,8 +14947,7 @@
     "path-parse": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
-      "dev": true
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
     },
     "path-to-regexp": {
       "version": "0.1.7",
@@ -15855,11 +15858,6 @@
       "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
       "dev": true
     },
-    "prettier": {
-      "version": "1.19.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
-      "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew=="
-    },
     "primeng": {
       "version": "9.1.3",
       "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.1.3.tgz",
@@ -17081,16 +17079,6 @@
         "get-assigned-identifiers": "^1.1.0"
       }
     },
-    "scope-css": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/scope-css/-/scope-css-1.2.1.tgz",
-      "integrity": "sha512-UjLRmyEYaDNiOS673xlVkZFlVCtckJR/dKgr434VMm7Lb+AOOqXKdAcY7PpGlJYErjXXJzKN7HWo4uRPiZZG0Q==",
-      "requires": {
-        "escaper": "^2.5.3",
-        "slugify": "^1.3.1",
-        "strip-css-comments": "^3.0.0"
-      }
-    },
     "screenfull": {
       "version": "5.0.2",
       "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz",
@@ -17414,11 +17402,6 @@
       "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
       "dev": true
     },
-    "slugify": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz",
-      "integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ=="
-    },
     "smart-buffer": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
@@ -18450,14 +18433,6 @@
       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
       "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
     },
-    "strip-css-comments": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/strip-css-comments/-/strip-css-comments-3.0.0.tgz",
-      "integrity": "sha1-elYl7/iisibPiUehElTaluE9rok=",
-      "requires": {
-        "is-regexp": "^1.0.0"
-      }
-    },
     "strip-eof": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
@@ -18524,6 +18499,11 @@
         }
       }
     },
+    "stylis": {
+      "version": "3.5.4",
+      "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
+      "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
+    },
     "stylus": {
       "version": "0.54.7",
       "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz",
@@ -18924,8 +18904,7 @@
     "to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-      "dev": true
+      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
     },
     "to-object-path": {
       "version": "0.3.0",
diff --git a/package.json b/package.json
index 820f8804e..efc799d43 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "jalhyd": "file:../jalhyd",
     "material-design-icons": "^3.0.1",
     "mathjax": "^2.7.8",
-    "mermaid": "~8.3.1",
+    "mermaid": "^8.7.0",
     "ngx-konami": "^1.7.1",
     "ngx-markdown": "^10.1.1",
     "ngx-material-file-input": "^2.1.1",
-- 
GitLab


From deed3b2a5901485709b44c2ae1531702c7f3f455 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 14:04:01 +0200
Subject: [PATCH 083/101] Restore electron icon

---
 electron/icon.png | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/electron/icon.png b/electron/icon.png
index 78fc8b7be..eb1f1a84f 120000
--- a/electron/icon.png
+++ b/electron/icon.png
@@ -1 +1 @@
-../src/android-chrome-512x512.png
\ No newline at end of file
+../src/assets/icons/android-chrome-512x512.png
\ No newline at end of file
-- 
GitLab


From c20128d48168b8f5c9be04bd9a0e3229ee73c121 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 15:44:03 +0200
Subject: [PATCH 084/101] Fix #416 - update to MathJax 3

---
 docs/mathjax.config.js        | 12 ++++++++++++
 mkdocs-en.yml                 |  5 ++++-
 mkdocs-fr.yml                 |  5 ++++-
 package-lock.json             |  6 +++---
 package.json                  |  2 +-
 scripts/mkdocs-postprocess.js |  9 ++++-----
 6 files changed, 28 insertions(+), 11 deletions(-)
 create mode 100644 docs/mathjax.config.js

diff --git a/docs/mathjax.config.js b/docs/mathjax.config.js
new file mode 100644
index 000000000..14555b581
--- /dev/null
+++ b/docs/mathjax.config.js
@@ -0,0 +1,12 @@
+window.MathJax = {
+    tex: {
+        inlineMath: [["\\(", "\\)"]],
+        displayMath: [["\\[", "\\]"]],
+        processEscapes: true,
+        processEnvironments: true
+    },
+    options: {
+        ignoreHtmlClass: ".*|",
+        processHtmlClass: "arithmatex"
+    }
+};
\ No newline at end of file
diff --git a/mkdocs-en.yml b/mkdocs-en.yml
index 5cad58607..0278e599d 100644
--- a/mkdocs-en.yml
+++ b/mkdocs-en.yml
@@ -10,12 +10,15 @@ theme:
     language: 'en'
 use_directory_urls: false
 extra_javascript:
-    - ../javascripts/mathjax/MathJax.js?config=TeX-AMS_CHTML
+    - ../javascripts/mathjax.config.js
+    - ../javascripts/mathjax/tex-mml-chtml.js
     - ../javascripts/matomo-tracking.js
 markdown_extensions:
     - mdx_math
     - footnotes
     - codehilite
+    - pymdownx.arithmatex:
+        generic: true
 nav:
     - Presentation of Cassiopée:
         - index.md
diff --git a/mkdocs-fr.yml b/mkdocs-fr.yml
index f7ac501cd..6b0870d90 100644
--- a/mkdocs-fr.yml
+++ b/mkdocs-fr.yml
@@ -10,12 +10,15 @@ theme:
     language: 'fr'
 use_directory_urls: false
 extra_javascript:
-    - ../javascripts/mathjax/MathJax.js?config=TeX-AMS_CHTML
+    - ../javascripts/mathjax.config.js
+    - ../javascripts/mathjax/tex-mml-chtml.js
     - ../javascripts/matomo-tracking.js
 markdown_extensions:
     - mdx_math
     - footnotes
     - codehilite
+    - pymdownx.arithmatex:
+        generic: true
 nav:
     - Présentation de Cassiopée:
         - index.md
diff --git a/package-lock.json b/package-lock.json
index 07c9e6b81..16fb374d2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13146,9 +13146,9 @@
       "integrity": "sha1-mnHEh0chjrylHlGmbaaCA4zct78="
     },
     "mathjax": {
-      "version": "2.7.8",
-      "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.8.tgz",
-      "integrity": "sha512-n4xZJ+cw7o01YOSVhxxjyOmibqBPCi+XTDof4siq78QWMx7Fxjzgb/mxMUEElMzTDodMV7ENIMsjREOSldOQPw=="
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-3.0.5.tgz",
+      "integrity": "sha512-9M7VulhltkD8sIebWutK/VfAD+m+6BIFqfpjDh9Pz/etoKUtjO6UMnOhUcDmNl6iApE8C9xrUmaMyNZkZAlrMw=="
     },
     "md5-file": {
       "version": "5.0.0",
diff --git a/package.json b/package.json
index efc799d43..465906635 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
     "he": "^1.2.0",
     "jalhyd": "file:../jalhyd",
     "material-design-icons": "^3.0.1",
-    "mathjax": "^2.7.8",
+    "mathjax": "^3.0.5",
     "mermaid": "^8.7.0",
     "ngx-konami": "^1.7.1",
     "ngx-markdown": "^10.1.1",
diff --git a/scripts/mkdocs-postprocess.js b/scripts/mkdocs-postprocess.js
index fcb2b04eb..5e4cc9e6f 100644
--- a/scripts/mkdocs-postprocess.js
+++ b/scripts/mkdocs-postprocess.js
@@ -16,10 +16,9 @@ fs.emptyDirSync(destPath);
 fs.ensureDirSync(destPathMJ + "/fonts/HTML-CSS/TeX/", { recursive: true });
 
 // copy required files only
-fs.copySync("node_modules/mathjax/MathJax.js", destPathMJ + "/MathJax.js");
-fs.copySync("node_modules/mathjax/config", destPathMJ + "/config");
-fs.copySync("node_modules/mathjax/jax", destPathMJ + "/jax");
-fs.copySync("node_modules/mathjax/fonts/HTML-CSS/TeX/woff", destPathMJ + "/fonts/HTML-CSS/TeX/woff");
-fs.copySync("node_modules/mathjax/fonts/HTML-CSS/TeX/otf", destPathMJ + "/fonts/HTML-CSS/TeX/otf");
+fs.copySync("node_modules/mathjax/es5/tex-mml-chtml.js", destPathMJ + "/tex-mml-chtml.js");
+fs.copySync("node_modules/mathjax/es5/output/chtml/fonts", destPathMJ + "/output/chtml/fonts");
+
+fs.copySync("docs/mathjax.config.js", destPath + "/mathjax.config.js");
 
 fs.copySync("docs/matomo-tracking.js", destPath + "/matomo-tracking.js");
-- 
GitLab


From eab3c3afc65fd911057e102fba4b88bc164ce2a9 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 16:46:02 +0200
Subject: [PATCH 085/101] Fix #181 - prevent setting param to Calc mode when it
 would trigger a links loop

---
 .../param-field-line.component.html           |  2 +-
 .../param-field-line.component.ts             | 24 +++++++++++++++++++
 src/locale/messages.en.json                   |  1 +
 src/locale/messages.fr.json                   |  1 +
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/app/components/param-field-line/param-field-line.component.html b/src/app/components/param-field-line/param-field-line.component.html
index 07d31672d..1143ac972 100644
--- a/src/app/components/param-field-line/param-field-line.component.html
+++ b/src/app/components/param-field-line/param-field-line.component.html
@@ -38,7 +38,7 @@
             </mat-button-toggle>
 
             <mat-button-toggle class="radio_cal" value="radio_cal" *ngIf="hasRadioCal()" (click)="onRadioClick('cal')"
-                [checked]="isRadioCalChecked">
+                [checked]="isRadioCalChecked" [disabled]="isRadioCalDisabled" [title]="radioCalTitle">
                 <span fxHide.xxs>{{ uitextParamCalculer }}</span>
                 <span fxHide.gt-xxs>C</span>
             </mat-button-toggle>
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 0fd0a4eb2..22b7a92ad 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
@@ -199,6 +199,30 @@ export class ParamFieldLineComponent implements OnChanges {
         return ret;
     }
 
+    /**
+     * Returns true if setting this parameter to Calc mode leads to a links loop
+     */
+    public get isRadioCalDisabled(): boolean {
+        // find all Nubs that have to be calculated for this one to run
+        const nub = this.param.paramDefinition.originNub;
+        const requiredNubs = nub.getRequiredNubsDeep();
+        // if one of those Nubs depends on the parameter we're about to set
+        // to Calc mode, then we shouldn't do so
+        for (const r of requiredNubs) {
+            if (r.dependsOnParameter(this.param.paramDefinition)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public get radioCalTitle(): string {
+        if (this.isRadioCalDisabled) {
+            return this.intlService.localizeText("INFO_PARAMFIELD_CANNOT_CALC_LINKS_LOOP");
+        }
+        return "";
+    }
+
     public onRadioClick(option: string) {
         const oldValue = this.param.valueMode;
         switch (option) {
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index cecb243f9..e5991f549 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -454,6 +454,7 @@
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Boundary conditions",
     "INFO_PARAMFIELD_CALCULATED": "Calculated",
     "INFO_PARAMFIELD_CALCULATION_FAILED": "Calculation failed",
+    "INFO_PARAMFIELD_CANNOT_CALC_LINKS_LOOP": "This parameter cannot be calculated (links loop)",
     "INFO_PARAMFIELD_CHART_SELECT_X_AXIS": "Variable for X axis",
     "INFO_PARAMFIELD_CHART_SELECT_Y_AXIS": "Variable for Y axis",
     "INFO_PARAMFIELD_CHART_TYPE_HISTOGRAM": "Histogram",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index df635cb26..cae8286ea 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -455,6 +455,7 @@
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Conditions aux limites",
     "INFO_PARAMFIELD_CALCULATED": "Calculé",
     "INFO_PARAMFIELD_CALCULATION_FAILED": "Échec du calcul",
+    "INFO_PARAMFIELD_CANNOT_CALC_LINKS_LOOP": "Ce paramètre ne peut être calculé (boucle dans les liens)",
     "INFO_PARAMFIELD_CHART_SELECT_X_AXIS": "Variable en abscisse",
     "INFO_PARAMFIELD_CHART_SELECT_Y_AXIS": "Variable en ordonnée",
     "INFO_PARAMFIELD_CHART_TYPE_HISTOGRAM": "Histogramme",
-- 
GitLab


From 995803cbf7690198310971e53cc3fe6cba724b66 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 28 Aug 2020 14:08:01 +0200
Subject: [PATCH 086/101] Restore icons for electron Linux

---
 src/android-chrome-192x192.png | Bin 0 -> 5978 bytes
 src/android-chrome-512x512.png | Bin 0 -> 16420 bytes
 src/apple-touch-icon.png       | Bin 0 -> 5580 bytes
 src/favicon-16x16.png          | Bin 0 -> 713 bytes
 src/favicon-32x32.png          | Bin 0 -> 1064 bytes
 5 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 src/android-chrome-192x192.png
 create mode 100644 src/android-chrome-512x512.png
 create mode 100644 src/apple-touch-icon.png
 create mode 100644 src/favicon-16x16.png
 create mode 100644 src/favicon-32x32.png

diff --git a/src/android-chrome-192x192.png b/src/android-chrome-192x192.png
new file mode 100644
index 0000000000000000000000000000000000000000..2444e0b43af884eeed39e250a3a14d0fe6c8ea24
GIT binary patch
literal 5978
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
XS_;^Sf^ZVX1fZ_0qg1BwCg}eFL{UJ6

literal 0
HcmV?d00001

diff --git a/src/android-chrome-512x512.png b/src/android-chrome-512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..67c7918826dd586f53aab4da6d7dbfe3ea96937a
GIT binary patch
literal 16420
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

literal 0
HcmV?d00001

diff --git a/src/apple-touch-icon.png b/src/apple-touch-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9a140909ce69acde63e07fc47d7ca9571717c89
GIT binary patch
literal 5580
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

literal 0
HcmV?d00001

diff --git a/src/favicon-16x16.png b/src/favicon-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..2927e70d491b99063f6bdcd58f26b41f35cd18fd
GIT binary patch
literal 713
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F
z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a><Y92N-PcV32|kxY5*d3hZd8h
zSqxT<t_6z?<7YwyWdr)AtUbkS*Q{ExNu_KfhkLi{`ul7y?V5Evq|=rNdUfA=@~(dF
z0fmA!Qi%&T9J*04eGj{R^SPVPt7q+#N?LID>ARJCuQJ=W=yx7ub#4!;TKVPMFTM8t
zN+s(hQx`i{tvi0@F>k;`jhbz2Ze8ZnPFu}6&*j~B?ZN9!M{mhwEn~86TE6@8<TWS%
z|Nn1mu`LYfV2+X?zu-$RKKy+3`{&F4yLS%&#Tb*k-CfMw_jg<baySb-B8!1ynIOz~
zP2^`ZP>{XE)7O>#F}oz6C7;6dE<2!5fv1aOh{WaOgaj8x9-bZ<jfRPhox;8iGrOfj
z8(Q1NLmMXc$1{XBI0ta}Iz+gH_{2B~DJrPyDywO$^9v?4?sRqx<n+*5z2T7TvQ@_p
zE?l?pB%An!OV=)5z5G1E-Qw<n3nwI!G(=|1IF#e~nS0lF#`l(7U1`BjB!G6SmbgZg
zq$HN4S|t~y0x1R~14Bz)19M#?(-1=wD^qhTLlbQSBP#=goEh96C>nC}Q!>*kachu0
zy7>!GgCxj?;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UTt3o15f)dLW3X1a6
zGILTDN-7Id6*3D-k{K8(<~;ty!%-Nfp>fLp^cl~mK@7~w+<M8}!pg$llSP<?6<iuj
y4yQ0HZw^s7edEfBBWI4t9AQ7*;IY6<kKvWLV96&Z)2To!7(8A5T-G@yGywp_-u;CD

literal 0
HcmV?d00001

diff --git a/src/favicon-32x32.png b/src/favicon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..42b848cb12a2ccce719aac65f869238a167c5303
GIT binary patch
literal 1064
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50
z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+0817mi8PlzjnRRa=gWUzvu
z1_o;|vTBeG=qsJFOVq1t;kFC^|Nrk=dekX*;m(tHj1y;axOMRcOw#W>Xw-L<*}lbX
z-F@F(F9gG;D;BKv-Tl&H##tuYCg)YRMPuj4WG%N_bOmT8qjjU@%yZJ|OIRFQS)JN?
zmK}Tb{_E;}SJ~~Gt<vW%-f^*M-a!tB7W0(Z$!#08n|3*^yv5_%{^9eFsu_EY5@*IX
ztuyXF=DGEWxNrB2^=BBY>We4uynOfNgq0^)Y?~&oI`Q=NC!LsStaeRY&aGS?J!+Mk
zQ#&^O`u+FIw_m=c%N&>A6pEN};_4H{qIGO89o)YCERL<7TONDwc+TO`EfzoDb?rT~
zsi%}fC(Yh;cJi8&V&2_4Eql~!wi-`3rqjHe$*!5(r%$0^4PVd{w+#<m*4`D3otx6W
z>GQXrk6(VYNS$NUdxX)t;nUZj+mGMo^z6Cu@b#R{=hh#*K6mpuA&<_4EeayQ_~0rD
z@(W&m{?6-17oL22e^aC>bt_PmG0EHAg<oP9!%ZNEv%n*=n1O-m5(qO+YC9PP6l5>)
z^mS!_%r41iDY$li`)Qyac25__5R22v2?<BIB_t$veqeH|(nxsp?BUVX4Kw@W8P+q2
zIVvU!{>c*%6+XV+!70c~YQKI;%F_?p6T&Bi9+Bts+H^{*LUhHdmDvyYJ$-d^Wn%@L
z{qG+Tn9ZbIS67!T%o=Q5Tvx}P!==;6wPsCfZcgJCSuxgcF?@Y~=M?sF?_VwL6n1@X
zx2Ua|t<ByCIr;MO_GTrlTK_gN8f??HuUD{ktKyi{dd#Q5L&1JOAA4KVg$*A#1Y{*e
zWrd~1&v(vTB$OiDcx!UX(n-NPHmL2qV&c2*3(w6nI!_857;jqcto-SDFlL8{h{&hU
z;-ZUNRk$=BKG%PGX!(J)YxXd$XUduAI+4lgraZ&pId-3)I%Q4)hLUQDYeY#(Vo9o1
za#1RfVlXl=wA3{)*EKQ?F*LC<HMcS}*ETS+GBAiO5WI?_AvZrIGp!Q01|8j%nLrJa
zARB`7(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647DhjU(i6{w5ELSKf%1_J8NmVGR
zEJ#(zEGS84V5pe$_!AFDVVH)-DgV=FJf8+JFe`KGC36ca3wuu%VHQ?!X)rmQ!mPYG
sMB(&}D<_VeIU;j}{d9xJ0xvy=SK@*tpPWpm0<B>1boFyt=akR{0ObFlPyhe`

literal 0
HcmV?d00001

-- 
GitLab


From e9c25833c9fb3187d48e4cf58891cd65d88a02b0 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 1 Sep 2020 16:59:28 +0200
Subject: [PATCH 087/101] Fix #446 - bugs in Bief when generating sections

---
 .../calculator.component.ts                   | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 8a328a71e..cca7416dd 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -712,7 +712,11 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         if (bief.prms.Z1 === bief.calculatedParam) {
             return this.hasResults && ! bief.result.hasErrorMessages();
         } else {
-            return true;
+            // check that linked values are available, if any
+            return (
+                (bief.prms.Z1.valueMode !== ParamValueMode.LINK || bief.prms.Z1.referencedValue.isDefined())
+                && (bief.prms.ZF1.valueMode !== ParamValueMode.LINK || bief.prms.ZF1.referencedValue.isDefined())
+            );
         }
     }
 
@@ -721,7 +725,11 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
         if (bief.prms.Z2 === bief.calculatedParam) {
             return this.hasResults && ! bief.result.hasErrorMessages();
         } else {
-            return true;
+            // check that linked values are available, if any
+            return (
+                (bief.prms.Z2.valueMode !== ParamValueMode.LINK || bief.prms.Z2.referencedValue.isDefined())
+                && (bief.prms.ZF2.valueMode !== ParamValueMode.LINK || bief.prms.ZF2.referencedValue.isDefined())
+            );
         }
     }
 
@@ -812,7 +820,12 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
                 // do not link Y and If
                 && ! [ "If", "Y" ].includes(p.symbol)
             ) {
-                p.defineReference(bief.section, p.symbol);
+                const bP = bief.section.getParameter(p.symbol);
+                if (bP.valueMode === ParamValueMode.LINK) {
+                    p.defineReference(bP.referencedValue.nub, p.symbol);
+                } else {
+                    p.defineReference(bief.section, p.symbol);
+                }
             }
         }
 
-- 
GitLab


From bad48106b5549cac35954f3924dec09fd6874900 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 09:40:32 +0200
Subject: [PATCH 088/101] Fix #428 - search engine above calculators list

---
 .../calculator-list.component.html            | 16 ++++++--
 .../calculator-list.component.scss            | 13 +++++++
 .../calculator-list.component.ts              | 39 +++++++++++++++++--
 3 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/src/app/components/calculator-list/calculator-list.component.html b/src/app/components/calculator-list/calculator-list.component.html
index 904c6d994..755776307 100644
--- a/src/app/components/calculator-list/calculator-list.component.html
+++ b/src/app/components/calculator-list/calculator-list.component.html
@@ -1,6 +1,16 @@
+<div id="header-search">
+    <form id="search-modules">
+        <mat-form-field>
+            <mat-icon matPrefix>search</mat-icon>
+            <input type="search" matInput name="searchTerms" [(ngModel)]="searchTerms" (input)="filterItems()"
+                (keydown.escape)="resetSearch()">
+        </mat-form-field>
+    </form>
+</div>
+
 <div class="container" fxLayout="row wrap" fxLayoutAlign="space-evenly stretch" (konami)="onKC()">
 
-    <mat-card class="welcome-card" *ngIf="nbOpenCalculators === 0">
+    <mat-card class="welcome-card" *ngIf="nbOpenCalculators === 0 && searchTerms === ''">
 
         <mat-card-header>
             <mat-card-title>{{ uitextWelcomeTitle }}</mat-card-title>
@@ -16,7 +26,7 @@
 
     </mat-card>
 
-    <mat-card *ngFor="let theme of items" class="compute-nodes-theme">
+    <mat-card *ngFor="let theme of filteredItems" class="compute-nodes-theme">
 
         <mat-card-header>
             <mat-card-title>{{ theme.title }}</mat-card-title>
@@ -44,7 +54,7 @@
 
     </mat-card>
 
-    <mat-card class="examples-card" *ngIf="nbOpenCalculators === 0">
+    <mat-card class="examples-card" *ngIf="nbOpenCalculators === 0 && searchTerms === ''">
 
         <mat-card-header>
             <mat-card-title>{{ uitextExamplesTitle }}</mat-card-title>
diff --git a/src/app/components/calculator-list/calculator-list.component.scss b/src/app/components/calculator-list/calculator-list.component.scss
index 0ad0e0313..665a2b38c 100644
--- a/src/app/components/calculator-list/calculator-list.component.scss
+++ b/src/app/components/calculator-list/calculator-list.component.scss
@@ -60,3 +60,16 @@ a.load-example {
     cursor: pointer;
     padding-top: 1px;
 }
+
+#header-search {
+    width: 100%;
+    text-align: center;
+
+    mat-form-field {
+        width: 280px;
+
+        mat-icon {
+            vertical-align: bottom;
+        }
+    }
+}
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index e3c286fbe..51c7563a5 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -22,8 +22,14 @@ import { ApplicationSetupService } from "../../services/app-setup.service";
     styleUrls: ["./calculator-list.component.scss"]
 })
 export class CalculatorListComponent implements OnInit {
+
     private _items: any[];
 
+    public filteredItems: any[];
+
+    /** what is typed into the search field in the nav bar */
+    public searchTerms: string;
+
     constructor(
         @Inject(forwardRef(() => AppComponent)) private appComponent: AppComponent,
         private router: Router,
@@ -33,6 +39,8 @@ export class CalculatorListComponent implements OnInit {
     ) {
         ServiceFactory.i18nService.addObserver(this);
         ServiceFactory.applicationSetupService.addObserver(this);
+
+        this.searchTerms = "";
     }
 
     /** triggered on init */
@@ -104,6 +112,9 @@ export class CalculatorListComponent implements OnInit {
                 } // else the only remaining calculator was "Structure", the one we don't want
             }
         }
+
+        // at first there is no filter, initialize anyway
+        this.filterItems();
     }
 
     public create(t: CalculatorType) {
@@ -159,8 +170,30 @@ export class CalculatorListComponent implements OnInit {
         return Session.getInstance().getNumberOfNubs();
     }
 
-    public get items() {
-        return this._items;
+    public resetSearch() {
+        this.searchTerms = "";
+        this.filterItems();
+    }
+
+    /**
+     * Returns calculators grouped by themes, filtered by the search
+     * terms entered in the navbar's search field in AppComponent
+     */
+    public filterItems() {
+        if (this.searchTerms === "") {
+            this.filteredItems = this._items;
+        } else {
+            this.filteredItems = JSON.parse(JSON.stringify(this._items));
+            // filter items based on parent component's search field
+            for (const i of this.filteredItems) {
+                i.calculators = i.calculators.filter((c) => {
+                    return (c.label.toLowerCase().includes(this.searchTerms.toLowerCase()));
+                });
+            }
+            this.filteredItems = this.filteredItems.filter((i) => {
+                return (i.calculators.length > 0);
+            });
+        }
     }
 
     /**
@@ -226,7 +259,7 @@ export class CalculatorListComponent implements OnInit {
     }
 
     public onKC() {
-        for (const i of this.items) {
+        for (const i of this._items) {
             const img = [ "assets/images/themes/sp.jpg", "assets/images/themes/autres.jpg" ];
             const idx = Math.floor(Math.random() * 2);
             i.image.path = img[idx];
-- 
GitLab


From 035545b45b57807e30500242bf27955cfef80c4f Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 25 Aug 2020 15:07:47 +0200
Subject: [PATCH 089/101] Update #428 : better search engine

multiple terms search: all terms must match
added empty descriptions in language files for each module
---
 .../calculator-list.component.html            |  3 ++
 .../calculator-list.component.ts              | 30 ++++++++++++++++++-
 src/app/services/formulaire.service.ts        |  8 +++++
 src/locale/messages.en.json                   | 29 ++++++++++++++++++
 src/locale/messages.fr.json                   | 29 ++++++++++++++++++
 5 files changed, 98 insertions(+), 1 deletion(-)

diff --git a/src/app/components/calculator-list/calculator-list.component.html b/src/app/components/calculator-list/calculator-list.component.html
index 755776307..7a948010e 100644
--- a/src/app/components/calculator-list/calculator-list.component.html
+++ b/src/app/components/calculator-list/calculator-list.component.html
@@ -6,6 +6,9 @@
                 (keydown.escape)="resetSearch()">
         </mat-form-field>
     </form>
+    <div *ngIf="filteredItems.length === 0">
+        {{ uitextSearchNoResult }}
+    </div>
 </div>
 
 <div class="container" fxLayout="row wrap" fxLayoutAlign="space-evenly stretch" (konami)="onKC()">
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index 51c7563a5..1e05c7b1e 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -70,6 +70,7 @@ export class CalculatorListComponent implements OnInit {
                         item.calculators.push({
                             type: calcType,
                             label: ServiceFactory.formulaireService.getLocalisedTitleFromCalculatorType(calcType),
+                            description: ServiceFactory.formulaireService.getLocalisedDescriptionFromCalculatorType(calcType),
                             buttonId: "create-calc-" + calcType
                         });
                         // mark as used
@@ -187,7 +188,7 @@ export class CalculatorListComponent implements OnInit {
             // filter items based on parent component's search field
             for (const i of this.filteredItems) {
                 i.calculators = i.calculators.filter((c) => {
-                    return (c.label.toLowerCase().includes(this.searchTerms.toLowerCase()));
+                    return this.searchMatches(c.label) || this.searchMatches(c.description);
                 });
             }
             this.filteredItems = this.filteredItems.filter((i) => {
@@ -196,6 +197,29 @@ export class CalculatorListComponent implements OnInit {
         }
     }
 
+    /**
+     * Returns true if given str matches this.searchTerms: all terms (separated
+     * by " ") must match, in any order
+     */
+    private searchMatches(str: string): boolean {
+        let ok = false;
+        let terms = this.searchTerms.split(" ");
+        terms = terms.filter(
+            (item, index) => item !== "" && terms.indexOf(item) === index // deduplicate and remove ""
+        );
+        if (terms.length > 1) {
+            // all terms must match
+            ok = terms.every((t) => {
+                return str.toLowerCase().includes(t.toLowerCase());
+            });
+        } else if (terms.length > 0) {
+            ok = (str.toLowerCase().includes(terms[0].toLowerCase()));
+        } else {
+            ok = true;
+        }
+        return ok;
+    }
+
     /**
      * IMPORTANT: keep in sync with app/examples folder contents
      */
@@ -258,6 +282,10 @@ export class CalculatorListComponent implements OnInit {
         return ServiceFactory.i18nService.localizeText("INFO_EXAMPLES_SUBTITLE");
     }
 
+    public get uitextSearchNoResult() {
+        return ServiceFactory.i18nService.localizeText("INFO_SEARCH_NO_RESULT");
+    }
+
     public onKC() {
         for (const i of this._items) {
             const img = [ "assets/images/themes/sp.jpg", "assets/images/themes/autres.jpg" ];
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 89653c92f..d4cdb6ef2 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -146,6 +146,14 @@ export class FormulaireService extends Observable {
         return this._intlService.localizeText(`INFO_${sCalculator}_TITRE`);
     }
 
+    /**
+     * Retourne la description du type de module de calcul, dans la langue en cours
+     */
+    public getLocalisedDescriptionFromCalculatorType(type: CalculatorType) {
+        const sCalculator: string = CalculatorType[type].toUpperCase();
+        return this._intlService.localizeText(`INFO_${sCalculator}_DESCRIPTION`);
+    }
+
     /**
      * Retourne le titre cour du type de module de calcul, dans la langue en cours
      * (pour les titres d'onglets par défaut)
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index e5991f549..529148f6d 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -82,19 +82,25 @@
     "INFO_CALCULATOR_SAVE": "Save",
     "INFO_CALCULATOR_USED_BY": "Used by",
     "INFO_CALCULATOR_VALEURS": "Values",
+    "INFO_BIEF_DESCRIPTION": "",
     "INFO_BIEF_TITRE_COURT": "Reach",
     "INFO_BIEF_TITRE": "Up/downstream elevations of a reach",
+    "INFO_CLOISONS_DESCRIPTION": "",
     "INFO_CLOISONS_TITRE_COURT": "Cross walls",
     "INFO_CLOISONS_TITRE": "Fish ladder: Cross walls",
     "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "The following modules depend on the one you are closing:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Warning ! Parameters and results of this module will be lost.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Closing calculation module",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Blocks concentration",
+    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "",
     "INFO_CONCENTRATIONBLOCS_TITRE_COURT": "Blocks conc.",
+    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE_COURT": "Distrib.",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE": "Distributor pipe",
+    "INFO_COURBEREMOUS_DESCRIPTION": "",
     "INFO_COURBEREMOUS_TITRE_COURT": "Backwater",
     "INFO_COURBEREMOUS_TITRE": "Backwater curves",
+    "INFO_DEVER_DESCRIPTION": "",
     "INFO_DEVER_TITRE_COURT": "Free weir",
     "INFO_DEVER_TITRE": "Free flow weir stage-discharge laws",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "finds",
@@ -206,8 +212,10 @@
     "INFO_FIELDSET_MOVE_DOWN": "Move down",
     "INFO_FIELDSET_MOVE_LEFT": "Move left",
     "INFO_FIELDSET_MOVE_RIGHT": "Move right",
+    "INFO_GRILLE_DESCRIPTION": "",
     "INFO_GRILLE_TITRE_COURT": "Grid",
     "INFO_GRILLE_TITRE": "Loss of charge, water grid",
+    "INFO_JET_DESCRIPTION": "",
     "INFO_JET_TITRE_COURT": "Jet",
     "INFO_JET_TITRE": "Jet trajectory and impact",
     "INFO_WALL_ADDED": "1 wall added",
@@ -221,6 +229,7 @@
     "INFO_JET_TITRE_TRAJECTOIRE": "Trajectory",
     "INFO_JET_TITRE_TRAJECTOIRE_ET_COTE_EAU": "Trajectory and water elevation",
     "INFO_JET_FOND": "Bottom",
+    "INFO_LECHAPTCALMON_DESCRIPTION": "",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
     "INFO_LIB_ABSCISSE": "Abscissa (m)",
@@ -375,16 +384,19 @@
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
     "INFO_LOG_HIDE_DETAILS": "hide details",
     "INFO_LOG_SHOW_DETAILS": "show details",
+    "INFO_MACRORUGO_DESCRIPTION": "",
     "INFO_MACRORUGO_TITRE_COURT": "Rock-ramp",
     "INFO_MACRORUGO_TITRE": "Rock-ramp fishpasses",
     "INFO_MENU_DIAGRAM_TITLE": "Modules diagram",
     "INFO_MACRORUGOCOMPOUND_TITRE": "Compound rock-ramp fishpasses",
+    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "",
     "INFO_MACRORUGOCOMPOUND_TITRE_COURT": "Compound RR",
     "INFO_MACRORUGOCOMPOUND_LINCL": "Lateral inclination (m/m): ",
     "INFO_ONLY_Q_MAY_VARY": "Only flow may vary",
     "INFO_ONLY_Z1_Q_MAY_VARY": "Only upstream elevation and flow may vary",
     "INFO_Z1_Z2_MUST_BE_DEFINED": "Upstream and downstream elevations must be defined",
     "INFO_PENTE_TITRE": "Slope",
+    "INFO_PENTE_DESCRIPTION": "",
     "INFO_PENTE_TITRE_COURT": "Slope",
     "INFO_MENU_EMPTY_SESSION_TITLE": "New session",
     "INFO_MENU_HELP_TITLE": "Help",
@@ -432,23 +444,31 @@
     "INFO_PAB_LOIDEBIT_VANLEVVILLEMONTE": "Regulated notch (Villemonte)",
     "INFO_PAB_LOIDEBIT_WEIRVILLEMONTE": "Notch (Villemonte)",
     "INFO_PARAMETRES_FIXES": "All parameters must be fixed",
+    "INFO_PAB_DESCRIPTION": "",
     "INFO_PAB_TITRE_COURT": "Fish ladder",
     "INFO_PAB_TITRE": "Fish ladder",
     "INFO_PAB_TITRE_PROFIL": "Fish ladder longitudinal profile",
     "INFO_PAB_TABLE": "Fish ladder geometry",
+    "INFO_PABCHUTE_DESCRIPTION": "",
     "INFO_PABCHUTE_TITRE_COURT": "FL: fall",
     "INFO_PABCHUTE_TITRE": "Fish ladder: fall",
+    "INFO_PABDIMENSIONS_DESCRIPTION": "",
     "INFO_PABDIMENSIONS_TITRE_COURT": "FL: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Fish ladder: dimensions",
+    "INFO_PABNOMBRE_DESCRIPTION": "",
     "INFO_PABNOMBRE_TITRE_COURT": "FL: number",
     "INFO_PABNOMBRE_TITRE": "Fish ladder: number of falls",
+    "INFO_PABPUISSANCE_DESCRIPTION": "",
     "INFO_PABPUISSANCE_TITRE_COURT": "FL: diss. power",
     "INFO_PABPUISSANCE_TITRE": "Fish ladder: dissipated power",
+    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "// structures",
     "INFO_PARALLELSTRUCTURE_TITRE": "Parallel structures",
     "INFO_PAR_TITRE": "Humpback fishway: setup",
+    "INFO_PAR_DESCRIPTION": "",
     "INFO_PAR_TITRE_COURT": "HF: setup",
     "INFO_PARSIMULATION_TITRE": "Humpback fishway: simulation",
+    "INFO_PARSIMULATION_DESCRIPTION": "",
     "INFO_PARSIMULATION_TITRE_COURT": "HF: simulation",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "Awaiting calculation",
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Boundary conditions",
@@ -492,6 +512,7 @@
     "INFO_QUICKNAV_INPUT": "input",
     "INFO_QUICKNAV_RESULTS": "results",
     "WARNING_PROBLEMS_ENCOUNTERED": "Problems occurred during calculation (info: %info%, warning: %warning%, error: %error%)",
+    "INFO_REGIMEUNIFORME_DESCRIPTION": "",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "Uniform flow",
     "INFO_REGIMEUNIFORME_TITRE": "Uniform flow calculation",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Downstream boundary condition >= Critical elevation: calculation of subcritical part from downstream",
@@ -511,6 +532,8 @@
     "INFO_REPORT_BUG_SUBJECT": "Issue report",
     "INFO_REQUIRES": "requires",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Export as XLSX",
+    "INFO_SEARCH_NO_RESULT": "No result",
+    "INFO_SECTIONPARAMETREE_DESCRIPTION": "",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Param. section",
     "INFO_SECTIONPARAMETREE_TITRE": "Parametric section",
     "INFO_SELECT_MULTIPLE_AND_OTHER": "other",
@@ -533,8 +556,10 @@
     "INFO_SNACKBAR_RESULTS_INVALIDATED": "Results invalidated for",
     "INFO_SNACKBAR_SETTINGS_SAVED": "Settings saved on this device",
     "INFO_SOLVEUR_TITRE": "Multimodule solver",
+    "INFO_SOLVEUR_DESCRIPTION": "",
     "INFO_SOLVEUR_TITRE_COURT": "Solver",
     "INFO_SPP_TITRE": "Sum and product of powers",
+    "INFO_SPP_DESCRIPTION": "",
     "INFO_SPP_TITRE_COURT": "SPP",
     "INFO_THEME_CREDITS": "Credit",
     "INFO_THEME_DEVALAISON_TITRE": "Downstream migration",
@@ -570,8 +595,10 @@
     "INFO_EXAMPLES_TITLE": "Examples",
     "INFO_EXAMPLES_SUBTITLE": "Load standard examples",
     "INFO_YAXB_TITRE": "Linear function",
+    "INFO_YAXB_DESCRIPTION": "",
     "INFO_YAXB_TITRE_COURT": "Linear f.",
     "INFO_TRIGO_TITRE": "Trigonometric function",
+    "INFO_TRIGO_DESCRIPTION": "",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
     "INFO_VERIF_OK": "Crossing criteria are met for all species",
     "INFO_VERIF_VARYING_OK": "Crossing criteria are met for all species and all pass modalities",
@@ -579,8 +606,10 @@
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
+    "INFO_VERIFICATEUR_DESCRIPTION": "",
     "INFO_VERIFICATEUR_TITRE_COURT": "Verification",
     "INFO_ESPECE_TITRE": "Fish species characteristics",
+    "INFO_ESPECE_DESCRIPTION": "",
     "INFO_ESPECE_TITRE_COURT": "Species",
     "WARNING_WARNINGS_ABSTRACT": "%nb% warnings occurred during calculation",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "There is no solution",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index cae8286ea..f89b6fa41 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -82,19 +82,25 @@
     "INFO_CALCULATOR_SAVE": "Enregistrer",
     "INFO_CALCULATOR_USED_BY": "Utilisé par",
     "INFO_CALCULATOR_VALEURS": "Valeurs",
+    "INFO_BIEF_DESCRIPTION": "",
     "INFO_BIEF_TITRE_COURT": "Bief",
     "INFO_BIEF_TITRE": "Cotes amont/aval d'un bief",
+    "INFO_CLOISONS_DESCRIPTION": "",
     "INFO_CLOISONS_TITRE_COURT": "Cloisons",
     "INFO_CLOISONS_TITRE": "Passe à bassins&nbsp;: Cloisons",
     "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "Les modules suivants dépendent de celui que vous êtes en train de fermer&nbsp;:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Attention&nbsp;! Les paramètres et résultats du module de calcul seront perdus.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Fermeture du module de calcul",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Concentration de blocs",
+    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "",
     "INFO_CONCENTRATIONBLOCS_TITRE_COURT": "Conc. blocs",
+    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE_COURT": "Conduite distri.",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE": "Conduite distributrice",
+    "INFO_COURBEREMOUS_DESCRIPTION": "",
     "INFO_COURBEREMOUS_TITRE_COURT": "Remous",
     "INFO_COURBEREMOUS_TITRE": "Courbes de remous",
+    "INFO_DEVER_DESCRIPTION": "",
     "INFO_DEVER_TITRE_COURT": "Déver. dénoyés",
     "INFO_DEVER_TITRE": "Lois de déversoirs dénoyés",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "trouve",
@@ -206,8 +212,10 @@
     "INFO_FIELDSET_MOVE_DOWN": "Déplacer vers le bas",
     "INFO_FIELDSET_MOVE_LEFT": "Déplacer vers la gauche",
     "INFO_FIELDSET_MOVE_RIGHT": "Déplacer vers la droite",
+    "INFO_GRILLE_DESCRIPTION": "",
     "INFO_GRILLE_TITRE_COURT": "Grille",
     "INFO_GRILLE_TITRE": "Perte de charge, grille de prise d'eau",
+    "INFO_JET_DESCRIPTION": "",
     "INFO_JET_TITRE_COURT": "Jet",
     "INFO_JET_TITRE": "Trajectoire et impact d'un jet",
     "INFO_WALL_ADDED": "1 cloison ajoutée",
@@ -221,6 +229,7 @@
     "INFO_JET_TITRE_TRAJECTOIRE": "Trajectoire",
     "INFO_JET_TITRE_TRAJECTOIRE_ET_COTE_EAU": "Trajectoire et cote de l'eau",
     "INFO_JET_FOND": "Fond",
+    "INFO_LECHAPTCALMON_DESCRIPTION": "",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
     "INFO_LIB_ABSCISSE": "Abscisse (m)",
@@ -376,16 +385,19 @@
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
     "INFO_LOG_HIDE_DETAILS": "masquer les details",
     "INFO_LOG_SHOW_DETAILS": "montrer les details",
+    "INFO_MACRORUGO_DESCRIPTION": "",
     "INFO_MACRORUGO_TITRE_COURT": "Macro-rugo.",
     "INFO_MACRORUGO_TITRE": "Passe à macro-rugosités",
     "INFO_MENU_DIAGRAM_TITLE": "Diagramme des modules",
     "INFO_MACRORUGOCOMPOUND_TITRE": "Passe à macro-rugosités complexe",
+    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "",
     "INFO_MACRORUGOCOMPOUND_TITRE_COURT": "M-Rugo complexe",
     "INFO_MACRORUGOCOMPOUND_LINCL": "Dévers latéral (m/m)&nbsp;:",
     "INFO_ONLY_Q_MAY_VARY": "Seul le débit peut varier",
     "INFO_ONLY_Z1_Q_MAY_VARY": "Seuls la cote amont et le débit peuvent varier",
     "INFO_Z1_Z2_MUST_BE_DEFINED": "Les cotes amont et aval doivent être définies",
     "INFO_PENTE_TITRE": "Pente",
+    "INFO_PENTE_DESCRIPTION": "",
     "INFO_PENTE_TITRE_COURT": "Pente",
     "INFO_MENU_EMPTY_SESSION_TITLE": "Nouvelle session",
     "INFO_MENU_HELP_TITLE": "Aide",
@@ -433,23 +445,31 @@
     "INFO_PAB_LOIDEBIT_VANLEVVILLEMONTE": "Échancrure régulée (Villemonte)",
     "INFO_PAB_LOIDEBIT_WEIRVILLEMONTE": "Échancrure (Villemonte)",
     "INFO_PARAMETRES_FIXES": "Tous les paramètres doivent être fixés",
+    "INFO_PAB_DESCRIPTION": "",
     "INFO_PAB_TITRE_COURT": "PAB",
     "INFO_PAB_TITRE": "Passe à bassins",
     "INFO_PAB_TITRE_PROFIL": "Profil en long de la passe",
     "INFO_PAB_TABLE": "Géométrie de la passe",
+    "INFO_PABCHUTE_DESCRIPTION": "",
     "INFO_PABCHUTE_TITRE_COURT": "PAB&nbsp;: chute",
     "INFO_PABCHUTE_TITRE": "Passe à bassins&nbsp;: chute",
+    "INFO_PABDIMENSIONS_DESCRIPTION": "",
     "INFO_PABDIMENSIONS_TITRE_COURT": "PAB&nbsp;: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Passe à bassins&nbsp;: dimensions",
+    "INFO_PABNOMBRE_DESCRIPTION": "",
     "INFO_PABNOMBRE_TITRE_COURT": "PAB&nbsp;: nombre",
     "INFO_PABNOMBRE_TITRE": "Passe à bassins&nbsp;: nombre de chutes",
+    "INFO_PABPUISSANCE_DESCRIPTION": "",
     "INFO_PABPUISSANCE_TITRE_COURT": "PAB&nbsp;: puissance",
     "INFO_PABPUISSANCE_TITRE": "Passe à bassins&nbsp;: puissance dissipée",
+    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "Ouvrages",
     "INFO_PARALLELSTRUCTURE_TITRE": "Lois d'ouvrages",
     "INFO_PAR_TITRE": "Passe à ralentisseurs&nbsp;: calage",
+    "INFO_PAR_DESCRIPTION": "",
     "INFO_PAR_TITRE_COURT": "PAR&nbsp;: calage",
     "INFO_PARSIMULATION_TITRE": "Passe à ralentisseurs&nbsp;: simulation",
+    "INFO_PARSIMULATION_DESCRIPTION": "",
     "INFO_PARSIMULATION_TITRE_COURT": "PAR&nbsp;: simulation",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "En attente de calcul",
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Conditions aux limites",
@@ -493,6 +513,7 @@
     "INFO_QUICKNAV_INPUT": "données",
     "INFO_QUICKNAV_RESULTS": "résultats",
     "WARNING_PROBLEMS_ENCOUNTERED": "Des problèmes sont survenus durant le calcul (info&nbsp;: %info%, avertissement&nbsp;: %warning%, erreur&nbsp;: %error%)",
+    "INFO_REGIMEUNIFORME_DESCRIPTION": "",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "R. uniforme",
     "INFO_REGIMEUNIFORME_TITRE": "Régime uniforme",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Condition limite aval >= Hauteur critique&nbsp;: calcul de la partie fluviale à partir de l'aval",
@@ -512,6 +533,8 @@
     "INFO_REPORT_BUG_SUBJECT": "Rapport d'erreur",
     "INFO_REQUIRES": "dépend de",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Exporter en XLSX",
+    "INFO_SEARCH_NO_RESULT": "Aucun résultat",
+    "INFO_SECTIONPARAMETREE_DESCRIPTION": "",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Sec. param.",
     "INFO_SECTIONPARAMETREE_TITRE": "Section paramétrée",
     "INFO_SELECT_MULTIPLE_AND_OTHER": "autre",
@@ -534,8 +557,10 @@
     "INFO_SNACKBAR_RESULTS_INVALIDATED": "Résultats invalidés pour",
     "INFO_SNACKBAR_SETTINGS_SAVED": "Paramètres enregistrés sur cet appareil",
     "INFO_SOLVEUR_TITRE": "Solveur multimodule",
+    "INFO_SOLVEUR_DESCRIPTION": "",
     "INFO_SOLVEUR_TITRE_COURT": "Solveur",
     "INFO_SPP_TITRE": "Somme et produit de puissances",
+    "INFO_SPP_DESCRIPTION": "",
     "INFO_SPP_TITRE_COURT": "SPP",
     "INFO_THEME_CREDITS": "Crédit",
     "INFO_THEME_DEVALAISON_TITRE": "Dévalaison",
@@ -571,8 +596,10 @@
     "INFO_EXAMPLES_TITLE": "Exemples",
     "INFO_EXAMPLES_SUBTITLE": "Charger des exemples types",
     "INFO_YAXB_TITRE": "Fonction affine",
+    "INFO_YAXB_DESCRIPTION": "",
     "INFO_YAXB_TITRE_COURT": "F. affine",
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
+    "INFO_TRIGO_DESCRIPTION": "",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
     "INFO_VERIF_VARYING_OK": "Les critères de franchissement sont remplis pour toutes les espèces et toutes les modalités de la passe",
@@ -581,8 +608,10 @@
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée&nbsp;: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
+    "INFO_VERIFICATEUR_DESCRIPTION": "",
     "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
     "INFO_ESPECE_TITRE": "Caractéristiques d'une espèce",
+    "INFO_ESPECE_DESCRIPTION": "",
     "INFO_ESPECE_TITRE_COURT": "Espèce",
     "WARNING_WARNINGS_ABSTRACT": "%nb% avertissements rencontrés lors du calcul",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "Il n'y a pas de solution",
-- 
GitLab


From 88daccb93eeced6a82a306323bd89348ea6c4bd9 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Mon, 31 Aug 2020 14:36:36 +0200
Subject: [PATCH 090/101] Update #428

toggle search field by clicking a search icon in the nav bar
use flex for search field
---
 src/app/app.component.html                    |  6 ++++-
 src/app/app.component.scss                    |  9 +++++++
 src/app/app.component.ts                      |  6 ++++-
 src/app/app.module.ts                         |  1 +
 .../calculator-list.component.html            | 26 +++++++++----------
 .../calculator-list.component.scss            |  7 ++---
 .../calculator-list.component.ts              | 23 +++++++++++++---
 src/locale/messages.en.json                   |  1 +
 src/locale/messages.fr.json                   |  1 +
 9 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/src/app/app.component.html b/src/app/app.component.html
index 352b05627..50e2060eb 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -47,10 +47,14 @@
       </div>
     </div>
 
-    <button *ngIf="currentRoute != '/list'" mat-icon-button id="new-calculator" routerLink="/list"
+    <button *ngIf="! currentRoute.includes('/list')" mat-icon-button id="new-calculator" routerLink="/list"
       [title]="uitextSidenavNewCalc" (click)="sidenav.close()">
       <mat-icon>add_box</mat-icon>
     </button>
+    <button *ngIf="currentRoute === '/list'" mat-icon-button id="enable-search" routerLink="/list/search"
+        [title]="uitextSearch" (click)="sidenav.close()">
+        <mat-icon>search</mat-icon>
+    </button>
     <a *ngIf="enableHeaderDoc" target="_blank" id="header-doc" [href]="docIndexPath"
       [title]="uitextSidenavHelp" (click)="sidenav.close()">
       <mat-icon>help</mat-icon>
diff --git a/src/app/app.component.scss b/src/app/app.component.scss
index 38eeabc95..aa8b9e502 100644
--- a/src/app/app.component.scss
+++ b/src/app/app.component.scss
@@ -76,6 +76,15 @@ button:focus {
     }
 }
 
+#enable-search {
+    margin-right: .5em;
+
+    mat-icon {
+        font-weight: bold;
+        font-size: 2em;
+    }
+}
+
 #header-doc {
     color: white;
     transform: scale(1.4);
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 01ddce6dd..6cbd0887f 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -327,6 +327,10 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
         return this.intlService.localizeText("INFO_MENU_SELECT_CALC");
     }
 
+    public get uitextSearch() {
+        return this.intlService.localizeText("INFO_MENU_RECHERCHE_MODULES");
+    }
+
     public getCalculatorLabel(t: CalculatorType) {
         return decodeHtml(this.formulaireService.getLocalisedTitleFromCalculatorType(t));
     }
@@ -405,7 +409,7 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
     }
 
     public get enableHeaderDoc(): boolean {
-        return this.currentRoute === "/list" && this._calculators.length === 0;
+        return this.currentRoute.includes("/list") && this._calculators.length === 0;
     }
 
     public get enableSaveSessionMenu(): boolean {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index ca149bc7e..8ed21e343 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -117,6 +117,7 @@ import {
 import { ImmediateErrorStateMatcher } from "./formulaire/immediate-error-state-matcher";
 
 const appRoutes: Routes = [
+    { path: "list/search", component: CalculatorListComponent },
     { path: "list", component: CalculatorListComponent },
     { path: "calculator/:uid", component: GenericCalculatorComponent },
     { path: "setup", component: ApplicationSetupComponent },
diff --git a/src/app/components/calculator-list/calculator-list.component.html b/src/app/components/calculator-list/calculator-list.component.html
index 7a948010e..2cdafcee5 100644
--- a/src/app/components/calculator-list/calculator-list.component.html
+++ b/src/app/components/calculator-list/calculator-list.component.html
@@ -1,18 +1,18 @@
-<div id="header-search">
-    <form id="search-modules">
-        <mat-form-field>
-            <mat-icon matPrefix>search</mat-icon>
-            <input type="search" matInput name="searchTerms" [(ngModel)]="searchTerms" (input)="filterItems()"
-                (keydown.escape)="resetSearch()">
-        </mat-form-field>
-    </form>
-    <div *ngIf="filteredItems.length === 0">
-        {{ uitextSearchNoResult }}
-    </div>
-</div>
-
 <div class="container" fxLayout="row wrap" fxLayoutAlign="space-evenly stretch" (konami)="onKC()">
 
+    <div id="header-search" *ngIf="enableSearch">
+        <form id="search-modules">
+            <mat-form-field>
+                <mat-icon matPrefix>search</mat-icon>
+                <input type="search" matInput name="searchTerms" [(ngModel)]="searchTerms" (input)="filterItems()"
+                    (keydown.escape)="resetSearch()" autofocus #searchField>
+            </mat-form-field>
+        </form>
+        <div *ngIf="filteredItems.length === 0">
+            {{ uitextSearchNoResult }}
+        </div>
+    </div>
+
     <mat-card class="welcome-card" *ngIf="nbOpenCalculators === 0 && searchTerms === ''">
 
         <mat-card-header>
diff --git a/src/app/components/calculator-list/calculator-list.component.scss b/src/app/components/calculator-list/calculator-list.component.scss
index 665a2b38c..5be9933b4 100644
--- a/src/app/components/calculator-list/calculator-list.component.scss
+++ b/src/app/components/calculator-list/calculator-list.component.scss
@@ -62,11 +62,12 @@ a.load-example {
 }
 
 #header-search {
-    width: 100%;
-    text-align: center;
+    flex: 0 1 100%;
+    padding: 0 4em;
+    min-width: 420px;
 
     mat-form-field {
-        width: 280px;
+        width: 100%;
 
         mat-icon {
             vertical-align: bottom;
diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index 1e05c7b1e..8bb4597b1 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -1,5 +1,5 @@
-import { Component, OnInit, Inject, forwardRef } from "@angular/core";
-import { Router } from "@angular/router";
+import { Component, OnInit, Inject, forwardRef, ElementRef, ViewChild } from "@angular/core";
+import { Router, ActivatedRoute } from "@angular/router";
 
 import { CalculatorType, EnumEx, Session } from "jalhyd";
 
@@ -27,20 +27,37 @@ export class CalculatorListComponent implements OnInit {
 
     public filteredItems: any[];
 
+    /** enable search only if /list/search route was called */
+    private enableSearch = false;
+
     /** what is typed into the search field in the nav bar */
     public searchTerms: string;
 
+    @ViewChild("searchField")
+    private searchField: ElementRef;
+
     constructor(
         @Inject(forwardRef(() => AppComponent)) private appComponent: AppComponent,
         private router: Router,
         private httpService: HttpService,
         private intlService: I18nService,
-        private appSetupService: ApplicationSetupService
+        private appSetupService: ApplicationSetupService,
+        public route: ActivatedRoute
     ) {
         ServiceFactory.i18nService.addObserver(this);
         ServiceFactory.applicationSetupService.addObserver(this);
 
         this.searchTerms = "";
+
+        this.route.url.subscribe(params => {
+            if (params.length > 1 && params[1].path === "search") {
+                this.enableSearch = true;
+                // focus the new Field
+                setTimeout(() => {
+                    this.searchField.nativeElement.focus();
+                }, 0);
+            }
+        });
     }
 
     /** triggered on init */
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 529148f6d..9d8b2407b 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -402,6 +402,7 @@
     "INFO_MENU_HELP_TITLE": "Help",
     "INFO_MENU_LOAD_SESSION_TITLE": "Load session",
     "INFO_MENU_NOUVELLE_CALC": "New calculation module",
+    "INFO_MENU_RECHERCHE_MODULES": "Search modules",
     "INFO_MENU_REPORT_BUG": "Report an issue",
     "INFO_MENU_RESTORE_DEFAULT_SETTINGS": "Default settings",
     "INFO_MENU_SAVE_SESSION_TITLE": "Save session",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index f89b6fa41..87d77cd15 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -403,6 +403,7 @@
     "INFO_MENU_HELP_TITLE": "Aide",
     "INFO_MENU_LOAD_SESSION_TITLE": "Charger une session",
     "INFO_MENU_NOUVELLE_CALC": "Nouveau module de calcul",
+    "INFO_MENU_RECHERCHE_MODULES": "Rechercher des modules",
     "INFO_MENU_REPORT_BUG": "Signaler un problème",
     "INFO_MENU_RESTORE_DEFAULT_SETTINGS": "Paramètres par défaut",
     "INFO_MENU_SAVE_SESSION_TITLE": "Enregistrer la session",
-- 
GitLab


From 65e1d79c546ed6175f703f22137cfc69d992dd28 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Mon, 31 Aug 2020 14:48:56 +0200
Subject: [PATCH 091/101] Fix visibility in component

---
 src/app/components/calculator-list/calculator-list.component.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index 8bb4597b1..ed2710834 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -28,7 +28,7 @@ export class CalculatorListComponent implements OnInit {
     public filteredItems: any[];
 
     /** enable search only if /list/search route was called */
-    private enableSearch = false;
+    public enableSearch = false;
 
     /** what is typed into the search field in the nav bar */
     public searchTerms: string;
-- 
GitLab


From 48af0be7e2553b92ea9657a4363c11fcef467195 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 09:37:55 +0200
Subject: [PATCH 092/101] Fix #447 - NaN in param "a" when generating
 simulation from chevron PAR

---
 src/app/components/generic-calculator/calculator.component.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index cca7416dd..dd4e31e8a 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -949,7 +949,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
                         ZD1: pres.ZD1,
                         ZR2: pres.ZR2,
                         ZD2: pres.ZD2,
-                        a: pres.a
+                        a: pcal.a.hasMultipleValues ? pcal.a.getInferredValuesList(s)[i] : pcal.a.V,
                     });
                 }
             });
@@ -969,7 +969,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
                 ZD1: pres.ZD1,
                 ZR2: pres.ZR2,
                 ZD2: pres.ZD2,
-                a: pres.a
+                a: pcal.a.V
             });
         }
     }
-- 
GitLab


From 44044b58765d15290d18022bcfe154b17b23f8eb Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@irstea.fr>
Date: Wed, 2 Sep 2020 14:50:09 +0200
Subject: [PATCH 093/101] feat: Add module description + Corrections in English
 documentation

Refs #428
---
 docs/en/calculators/hsl/courbe_remous.md      |  4 +-
 .../hyd_en_charge/lechapt-calmon.md           |  4 +-
 docs/en/calculators/par/calage.md             |  2 +-
 docs/en/calculators/par/formules.md           |  2 +-
 docs/en/calculators/par/simulation.md         |  2 +-
 docs/en/calculators/verif/par.md              |  8 +--
 docs/en/calculators/verif/principe.md         |  2 +-
 mkdocs-en.yml                                 |  4 +-
 src/app/calculators/espece/en.json            |  2 +-
 src/locale/messages.en.json                   | 62 +++++++++----------
 src/locale/messages.fr.json                   | 54 ++++++++--------
 11 files changed, 73 insertions(+), 73 deletions(-)

diff --git a/docs/en/calculators/hsl/courbe_remous.md b/docs/en/calculators/hsl/courbe_remous.md
index 774c3bb63..1c14104f9 100644
--- a/docs/en/calculators/hsl/courbe_remous.md
+++ b/docs/en/calculators/hsl/courbe_remous.md
@@ -20,8 +20,8 @@ The integration of the equation can be done by one of the following methods: [Ru
 
 Depending on the flow regime, the calculation can be carried out:
 
- * from downstream to upstream for the river regime with definition of a downstream boundary condition.
- * from upstream to downstream for torrential regime with definition of an upstream boundary condition
+ * from downstream to upstream for subcritical flow with definition of a downstream boundary condition.
+ * from upstream to downstream for supercritical flow with definition of an upstream boundary condition
 
 If we take the example of a rectangular channel, [the proposed scilab code example for solving an ordinary differential equation](../../methodes_numeriques/euler_explicite.md) is amended as follows:
 
diff --git a/docs/en/calculators/hyd_en_charge/lechapt-calmon.md b/docs/en/calculators/hyd_en_charge/lechapt-calmon.md
index 4f42f1ab6..9cbdc07a2 100644
--- a/docs/en/calculators/hyd_en_charge/lechapt-calmon.md
+++ b/docs/en/calculators/hyd_en_charge/lechapt-calmon.md
@@ -1,6 +1,6 @@
 # Lechapt and Calmon
 
-Loss of charge in a circular pipe: Lechapt and Calmon abacus
+Headloss in a circular pipe: Lechapt and Calmon abacus
 
 Lechapt and Calmon formula is based on adjustements of [Cyril Frank Colebrook formula](https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae#Colebrook%E2%80%93White_equation):
 
@@ -8,7 +8,7 @@ $$J=L.Q^M.D^{-N}$$
 
 With:
 
-- \(J\): loss of charge in mm/m or m/km;
+- \(J\): headloss in mm/m or m/km;
 - \(Q\): flow in L/s;
 - \(D\): pipe diameter in m;
 - \(L\), \(M\) and \(N\) coefficients depending on roughness {&#x3F5;}.
diff --git a/docs/en/calculators/par/calage.md b/docs/en/calculators/par/calage.md
index ed209ce6e..470f20091 100644
--- a/docs/en/calculators/par/calage.md
+++ b/docs/en/calculators/par/calage.md
@@ -1,4 +1,4 @@
-# Baffle fishway (or humpback fishway) setup
+# Baffle fishway (or baffle fishway) setup
 
 This module allows to dimension a baffle fishway. Supported baffle fishway types are:
 
diff --git a/docs/en/calculators/par/formules.md b/docs/en/calculators/par/formules.md
index 43a97f534..fd947ba79 100644
--- a/docs/en/calculators/par/formules.md
+++ b/docs/en/calculators/par/formules.md
@@ -1,4 +1,4 @@
-# Baffle fishways (or humpback fishways) calculation formulas
+# Baffle fishways (or baffle fishways) calculation formulas
 
 For calculation of:
 
diff --git a/docs/en/calculators/par/simulation.md b/docs/en/calculators/par/simulation.md
index 37708677a..2bf0901af 100644
--- a/docs/en/calculators/par/simulation.md
+++ b/docs/en/calculators/par/simulation.md
@@ -1,4 +1,4 @@
-# Baffle fishway (or humpback fishway) simulation
+# Baffle fishway (or baffle fishway) simulation
 
 This module allows to calculate different hydraulic conditions on a baffle fishway with a known geometry. This geometry may come from topographical measurements or from the [result of a baffle fishway setup](calage.md).
 
diff --git a/docs/en/calculators/verif/par.md b/docs/en/calculators/verif/par.md
index 7a2462687..9340ef55d 100644
--- a/docs/en/calculators/verif/par.md
+++ b/docs/en/calculators/verif/par.md
@@ -1,12 +1,12 @@
-# Crossability verification: Humpback fishways (simulation)
+# Crossability verification: Baffle fishways (simulation)
 
 ## Criteria
 
 ### Incompatible and discouraged species
 
-Species groups 3a, 3b and 7b are discouraged for crossing humpback fishways. This leads to a warning, but does not make the pass not crossable.
+Species groups 3a, 3b and 7b are discouraged for crossing baffle fishways. This leads to a warning, but does not make the pass not crossable.
 
-Species groups 8a, 8b, 8c, 8d, 9a, 9b and 10 are unable to cross humpback fishways.
+Species groups 8a, 8b, 8c, 8d, 9a, 9b and 10 are unable to cross baffle fishways.
 
 ### Minimum water level \(YMinPB\) and \(YMinSB\), in m
 
@@ -33,4 +33,4 @@ From _"Informations sur la Continuité Écologique - ICE, Onema 2014"_.
 | 7a | Common barbel (Barbus barbus)<br>Chub (Squalius cephalus)<br>Nase (Chondrostoma nasus) | 0.25 | 0.15 |
 | 7b | River lamprey (Lampetra fluviatilis) | 0.1 | 0.1 |
 
-Table: List of predefined values for crossing criteria of a humpback fishway
+Table: List of predefined values for crossing criteria of a baffle fishway
diff --git a/docs/en/calculators/verif/principe.md b/docs/en/calculators/verif/principe.md
index 6313c5cce..a26143330 100644
--- a/docs/en/calculators/verif/principe.md
+++ b/docs/en/calculators/verif/principe.md
@@ -3,7 +3,7 @@
 This module allows to verify the capacity of different fish species to cross the following types of fish passes:
 
 - [fish ladders](pab.md)
-- [humpback fishways](par.md)
+- [baffle fishways](par.md)
 - [rock-ramp fishpasses](macrorugo.md)
 
 ## Principle
diff --git a/mkdocs-en.yml b/mkdocs-en.yml
index 0278e599d..dc49d2d43 100644
--- a/mkdocs-en.yml
+++ b/mkdocs-en.yml
@@ -67,7 +67,7 @@ nav:
         - calculators/pam/macrorugo_theorie.md
         - calculators/pam/macrorugo_complexe.md
         - calculators/pam/concentration.md
-    - Humpback fishways:
+    - Baffle fishways:
         - Baffle fishway setup: calculators/par/calage.md
         - Baffle fishway simulation: calculators/par/simulation.md
         - Baffle fishways formulas: calculators/par/formules.md
@@ -78,7 +78,7 @@ nav:
     - Crossability verification:
         - Principle: calculators/verif/principe.md
         - Fish ladders: calculators/verif/pab.md
-        - Humpback fishways: calculators/verif/par.md
+        - Baffle fishways: calculators/verif/par.md
         - Rock-ramp fishpasses: calculators/verif/macrorugo.md
         - Predefined species: calculators/verif/especes_predefinies.md
     - Downstream migration:
diff --git a/src/app/calculators/espece/en.json b/src/app/calculators/espece/en.json
index ec2bfea67..f88069bf4 100644
--- a/src/app/calculators/espece/en.json
+++ b/src/app/calculators/espece/en.json
@@ -3,7 +3,7 @@
     "fs_param_pab_s": "Fish ladders, surface jets or orifices",
     "fs_param_pab_p": "Fish ladders, diving jets",
     "fs_param_pam": "Rock-ramp fishpasses",
-    "fs_param_par": "Humpback fishways",
+    "fs_param_par": "Baffle fishways",
 
     "select_divingjetsupported": "Diving jets support",
 
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 9d8b2407b..073d7138d 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -82,25 +82,25 @@
     "INFO_CALCULATOR_SAVE": "Save",
     "INFO_CALCULATOR_USED_BY": "Used by",
     "INFO_CALCULATOR_VALEURS": "Values",
-    "INFO_BIEF_DESCRIPTION": "",
+    "INFO_BIEF_DESCRIPTION": "open channel canal flow backwater curve",
     "INFO_BIEF_TITRE_COURT": "Reach",
     "INFO_BIEF_TITRE": "Up/downstream elevations of a reach",
-    "INFO_CLOISONS_DESCRIPTION": "",
+    "INFO_CLOISONS_DESCRIPTION": "step slot weir",
     "INFO_CLOISONS_TITRE_COURT": "Cross walls",
     "INFO_CLOISONS_TITRE": "Fish ladder: Cross walls",
     "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "The following modules depend on the one you are closing:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Warning ! Parameters and results of this module will be lost.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Closing calculation module",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Blocks concentration",
-    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "",
+    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "rock ramp fish pass",
     "INFO_CONCENTRATIONBLOCS_TITRE_COURT": "Blocks conc.",
-    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "",
+    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "flow Blasius",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE_COURT": "Distrib.",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE": "Distributor pipe",
-    "INFO_COURBEREMOUS_DESCRIPTION": "",
+    "INFO_COURBEREMOUS_DESCRIPTION": "open channel regime flow subcritical supercritical hydraulic jump",
     "INFO_COURBEREMOUS_TITRE_COURT": "Backwater",
     "INFO_COURBEREMOUS_TITRE": "Backwater curves",
-    "INFO_DEVER_DESCRIPTION": "",
+    "INFO_DEVER_DESCRIPTION": "slot threshold approach speed head hydraulic",
     "INFO_DEVER_TITRE_COURT": "Free weir",
     "INFO_DEVER_TITRE": "Free flow weir stage-discharge laws",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "finds",
@@ -212,10 +212,10 @@
     "INFO_FIELDSET_MOVE_DOWN": "Move down",
     "INFO_FIELDSET_MOVE_LEFT": "Move left",
     "INFO_FIELDSET_MOVE_RIGHT": "Move right",
-    "INFO_GRILLE_DESCRIPTION": "",
+    "INFO_GRILLE_DESCRIPTION": "downstream migration trashrack conventional oriented inclined",
     "INFO_GRILLE_TITRE_COURT": "Grid",
     "INFO_GRILLE_TITRE": "Loss of charge, water grid",
-    "INFO_JET_DESCRIPTION": "",
+    "INFO_JET_DESCRIPTION": "downstream migration ichthyocompatible water intakes for small hydroelectric power plants ballistics",
     "INFO_JET_TITRE_COURT": "Jet",
     "INFO_JET_TITRE": "Jet trajectory and impact",
     "INFO_WALL_ADDED": "1 wall added",
@@ -229,7 +229,7 @@
     "INFO_JET_TITRE_TRAJECTOIRE": "Trajectory",
     "INFO_JET_TITRE_TRAJECTOIRE_ET_COTE_EAU": "Trajectory and water elevation",
     "INFO_JET_FOND": "Bottom",
-    "INFO_LECHAPTCALMON_DESCRIPTION": "",
+    "INFO_LECHAPTCALMON_DESCRIPTION": "pipe flow circular headloss",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
     "INFO_LIB_ABSCISSE": "Abscissa (m)",
@@ -384,19 +384,19 @@
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
     "INFO_LOG_HIDE_DETAILS": "hide details",
     "INFO_LOG_SHOW_DETAILS": "show details",
-    "INFO_MACRORUGO_DESCRIPTION": "",
+    "INFO_MACRORUGO_DESCRIPTION": "natural block",
     "INFO_MACRORUGO_TITRE_COURT": "Rock-ramp",
     "INFO_MACRORUGO_TITRE": "Rock-ramp fishpasses",
     "INFO_MENU_DIAGRAM_TITLE": "Modules diagram",
     "INFO_MACRORUGOCOMPOUND_TITRE": "Compound rock-ramp fishpasses",
-    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "",
+    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "natural multiple inclined block aprons",
     "INFO_MACRORUGOCOMPOUND_TITRE_COURT": "Compound RR",
     "INFO_MACRORUGOCOMPOUND_LINCL": "Lateral inclination (m/m): ",
     "INFO_ONLY_Q_MAY_VARY": "Only flow may vary",
     "INFO_ONLY_Z1_Q_MAY_VARY": "Only upstream elevation and flow may vary",
     "INFO_Z1_Z2_MUST_BE_DEFINED": "Upstream and downstream elevations must be defined",
     "INFO_PENTE_TITRE": "Slope",
-    "INFO_PENTE_DESCRIPTION": "",
+    "INFO_PENTE_DESCRIPTION": "open-channel flow drop",
     "INFO_PENTE_TITRE_COURT": "Slope",
     "INFO_MENU_EMPTY_SESSION_TITLE": "New session",
     "INFO_MENU_HELP_TITLE": "Help",
@@ -445,31 +445,31 @@
     "INFO_PAB_LOIDEBIT_VANLEVVILLEMONTE": "Regulated notch (Villemonte)",
     "INFO_PAB_LOIDEBIT_WEIRVILLEMONTE": "Notch (Villemonte)",
     "INFO_PARAMETRES_FIXES": "All parameters must be fixed",
-    "INFO_PAB_DESCRIPTION": "",
+    "INFO_PAB_DESCRIPTION": "basins",
     "INFO_PAB_TITRE_COURT": "Fish ladder",
     "INFO_PAB_TITRE": "Fish ladder",
     "INFO_PAB_TITRE_PROFIL": "Fish ladder longitudinal profile",
     "INFO_PAB_TABLE": "Fish ladder geometry",
-    "INFO_PABCHUTE_DESCRIPTION": "",
+    "INFO_PABCHUTE_DESCRIPTION": "basins",
     "INFO_PABCHUTE_TITRE_COURT": "FL: fall",
     "INFO_PABCHUTE_TITRE": "Fish ladder: fall",
-    "INFO_PABDIMENSIONS_DESCRIPTION": "",
+    "INFO_PABDIMENSIONS_DESCRIPTION": "basins",
     "INFO_PABDIMENSIONS_TITRE_COURT": "FL: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Fish ladder: dimensions",
-    "INFO_PABNOMBRE_DESCRIPTION": "",
+    "INFO_PABNOMBRE_DESCRIPTION": "basins",
     "INFO_PABNOMBRE_TITRE_COURT": "FL: number",
     "INFO_PABNOMBRE_TITRE": "Fish ladder: number of falls",
-    "INFO_PABPUISSANCE_DESCRIPTION": "",
+    "INFO_PABPUISSANCE_DESCRIPTION": "basins",
     "INFO_PABPUISSANCE_TITRE_COURT": "FL: diss. power",
     "INFO_PABPUISSANCE_TITRE": "Fish ladder: dissipated power",
-    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "",
+    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "orifice gate weir threshold free flow submerged discharge stage-discharge",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "// structures",
     "INFO_PARALLELSTRUCTURE_TITRE": "Parallel structures",
-    "INFO_PAR_TITRE": "Humpback fishway: setup",
-    "INFO_PAR_DESCRIPTION": "",
+    "INFO_PAR_TITRE": "Baffle fishway: setup",
+    "INFO_PAR_DESCRIPTION": "planes Denil Fatou superactive mixte chevrons canoe",
     "INFO_PAR_TITRE_COURT": "HF: setup",
-    "INFO_PARSIMULATION_TITRE": "Humpback fishway: simulation",
-    "INFO_PARSIMULATION_DESCRIPTION": "",
+    "INFO_PARSIMULATION_TITRE": "Baffle fishway: simulation",
+    "INFO_PARSIMULATION_DESCRIPTION": "planes Denil Fatou superactive mixte chevrons canoe",
     "INFO_PARSIMULATION_TITRE_COURT": "HF: simulation",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "Awaiting calculation",
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Boundary conditions",
@@ -513,7 +513,7 @@
     "INFO_QUICKNAV_INPUT": "input",
     "INFO_QUICKNAV_RESULTS": "results",
     "WARNING_PROBLEMS_ENCOUNTERED": "Problems occurred during calculation (info: %info%, warning: %warning%, error: %error%)",
-    "INFO_REGIMEUNIFORME_DESCRIPTION": "",
+    "INFO_REGIMEUNIFORME_DESCRIPTION": "open-channel flow normal depth",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "Uniform flow",
     "INFO_REGIMEUNIFORME_TITRE": "Uniform flow calculation",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Downstream boundary condition >= Critical elevation: calculation of subcritical part from downstream",
@@ -534,7 +534,7 @@
     "INFO_REQUIRES": "requires",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Export as XLSX",
     "INFO_SEARCH_NO_RESULT": "No result",
-    "INFO_SECTIONPARAMETREE_DESCRIPTION": "",
+    "INFO_SECTIONPARAMETREE_DESCRIPTION": "open-channel canal rectangular circular trapezoidal depth head normal critical conjugate corresponding subcritical supercritical Froude",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Param. section",
     "INFO_SECTIONPARAMETREE_TITRE": "Parametric section",
     "INFO_SELECT_MULTIPLE_AND_OTHER": "other",
@@ -560,7 +560,7 @@
     "INFO_SOLVEUR_DESCRIPTION": "",
     "INFO_SOLVEUR_TITRE_COURT": "Solver",
     "INFO_SPP_TITRE": "Sum and product of powers",
-    "INFO_SPP_DESCRIPTION": "",
+    "INFO_SPP_DESCRIPTION": "plus times",
     "INFO_SPP_TITRE_COURT": "SPP",
     "INFO_THEME_CREDITS": "Credit",
     "INFO_THEME_DEVALAISON_TITRE": "Downstream migration",
@@ -577,8 +577,8 @@
     "INFO_THEME_OUTILS_MATHEMATIQUES_DESCRIPTION": "Miscellaneous generic mathematical tools",
     "INFO_THEME_PASSE_A_BASSIN_DESCRIPTION": "Tools for sizing a fish pass made with pools also called fish steps",
     "INFO_THEME_PASSE_A_BASSIN_TITRE": "Fish ladder",
-    "INFO_THEME_PASSE_A_RALENTISSEURS_TITRE": "Humpback fishway",
-    "INFO_THEME_PASSE_A_RALENTISSEURS_DESCRIPTION": "Humpback fishway",
+    "INFO_THEME_PASSE_A_RALENTISSEURS_TITRE": "Baffle fishway",
+    "INFO_THEME_PASSE_A_RALENTISSEURS_DESCRIPTION": "Baffle fishway",
     "INFO_THEME_PASSE_NATURELLE_DESCRIPTION": "Tools for sizing a natural fish pass also called macroroughness pass or rock-ramp fish pass",
     "INFO_THEME_PASSE_NATURELLE_TITRE": "Natural pass",
     "INFO_THEME_VERIFICATION_DESCRIPTION": "Tools for verifying fish passes crossing capabilities by different fish species",
@@ -596,10 +596,10 @@
     "INFO_EXAMPLES_TITLE": "Examples",
     "INFO_EXAMPLES_SUBTITLE": "Load standard examples",
     "INFO_YAXB_TITRE": "Linear function",
-    "INFO_YAXB_DESCRIPTION": "",
+    "INFO_YAXB_DESCRIPTION": "addition plus subtraction minus multiplication division",
     "INFO_YAXB_TITRE_COURT": "Linear f.",
     "INFO_TRIGO_TITRE": "Trigonometric function",
-    "INFO_TRIGO_DESCRIPTION": "",
+    "INFO_TRIGO_DESCRIPTION": "cosinus sinus tangent arc",
     "INFO_TRIGO_TITRE_COURT": "Trigo. f.",
     "INFO_VERIF_OK": "Crossing criteria are met for all species",
     "INFO_VERIF_VARYING_OK": "Crossing criteria are met for all species and all pass modalities",
@@ -607,10 +607,10 @@
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
-    "INFO_VERIFICATEUR_DESCRIPTION": "",
+    "INFO_VERIFICATEUR_DESCRIPTION": "ichtyocompatible",
     "INFO_VERIFICATEUR_TITRE_COURT": "Verification",
     "INFO_ESPECE_TITRE": "Fish species characteristics",
-    "INFO_ESPECE_DESCRIPTION": "",
+    "INFO_ESPECE_DESCRIPTION": "ichtyocompatible",
     "INFO_ESPECE_TITRE_COURT": "Species",
     "WARNING_WARNINGS_ABSTRACT": "%nb% warnings occurred during calculation",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "There is no solution",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 87d77cd15..58d8ec44e 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -82,25 +82,25 @@
     "INFO_CALCULATOR_SAVE": "Enregistrer",
     "INFO_CALCULATOR_USED_BY": "Utilisé par",
     "INFO_CALCULATOR_VALEURS": "Valeurs",
-    "INFO_BIEF_DESCRIPTION": "",
+    "INFO_BIEF_DESCRIPTION": "Hydraulique à surface libre courbe de remous amont aval canal chenal régime écoulement fluvial torrentiel",
     "INFO_BIEF_TITRE_COURT": "Bief",
     "INFO_BIEF_TITRE": "Cotes amont/aval d'un bief",
-    "INFO_CLOISONS_DESCRIPTION": "",
+    "INFO_CLOISONS_DESCRIPTION": "poisson échelle échancrure fente",
     "INFO_CLOISONS_TITRE_COURT": "Cloisons",
     "INFO_CLOISONS_TITRE": "Passe à bassins&nbsp;: Cloisons",
     "INFO_CLOSE_DIALOGUE_DEPENDING_MODULES": "Les modules suivants dépendent de celui que vous êtes en train de fermer&nbsp;:",
     "INFO_CLOSE_DIALOGUE_TEXT": "Attention&nbsp;! Les paramètres et résultats du module de calcul seront perdus.",
     "INFO_CLOSE_DIALOGUE_TITRE": "Fermeture du module de calcul",
     "INFO_CONCENTRATIONBLOCS_TITRE": "Concentration de blocs",
-    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "",
+    "INFO_CONCENTRATIONBLOCS_DESCRIPTION": "passe macro rugosités naturelle poisson",
     "INFO_CONCENTRATIONBLOCS_TITRE_COURT": "Conc. blocs",
-    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "",
+    "INFO_CONDUITEDISTRIBUTRICE_DESCRIPTION": "hydraulique en charge Blasius",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE_COURT": "Conduite distri.",
     "INFO_CONDUITEDISTRIBUTRICE_TITRE": "Conduite distributrice",
-    "INFO_COURBEREMOUS_DESCRIPTION": "",
+    "INFO_COURBEREMOUS_DESCRIPTION": "hydraulique à surface libre régime écoulement fluvial torrentiel ressaut",
     "INFO_COURBEREMOUS_TITRE_COURT": "Remous",
     "INFO_COURBEREMOUS_TITRE": "Courbes de remous",
-    "INFO_DEVER_DESCRIPTION": "",
+    "INFO_DEVER_DESCRIPTION": "seuil vitesse d'approche charge hydraulique",
     "INFO_DEVER_TITRE_COURT": "Déver. dénoyés",
     "INFO_DEVER_TITRE": "Lois de déversoirs dénoyés",
     "INFO_DIAGRAM_SOLVEUR_FINDS": "trouve",
@@ -212,10 +212,10 @@
     "INFO_FIELDSET_MOVE_DOWN": "Déplacer vers le bas",
     "INFO_FIELDSET_MOVE_LEFT": "Déplacer vers la gauche",
     "INFO_FIELDSET_MOVE_RIGHT": "Déplacer vers la droite",
-    "INFO_GRILLE_DESCRIPTION": "",
+    "INFO_GRILLE_DESCRIPTION": "dévalaison plan orientée inclinée conventionnelle centrale hydroélectrique",
     "INFO_GRILLE_TITRE_COURT": "Grille",
     "INFO_GRILLE_TITRE": "Perte de charge, grille de prise d'eau",
-    "INFO_JET_DESCRIPTION": "",
+    "INFO_JET_DESCRIPTION": "dévalaison prises d'eau icthyocompatibles centrale hydroélectrique balistique",
     "INFO_JET_TITRE_COURT": "Jet",
     "INFO_JET_TITRE": "Trajectoire et impact d'un jet",
     "INFO_WALL_ADDED": "1 cloison ajoutée",
@@ -229,7 +229,7 @@
     "INFO_JET_TITRE_TRAJECTOIRE": "Trajectoire",
     "INFO_JET_TITRE_TRAJECTOIRE_ET_COTE_EAU": "Trajectoire et cote de l'eau",
     "INFO_JET_FOND": "Fond",
-    "INFO_LECHAPTCALMON_DESCRIPTION": "",
+    "INFO_LECHAPTCALMON_DESCRIPTION": "Hydraulique en charge conduite colebrook",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
     "INFO_LIB_ABSCISSE": "Abscisse (m)",
@@ -385,19 +385,19 @@
     "INFO_LINKED_VALUE_SECTION": "%s (%s, section)",
     "INFO_LOG_HIDE_DETAILS": "masquer les details",
     "INFO_LOG_SHOW_DETAILS": "montrer les details",
-    "INFO_MACRORUGO_DESCRIPTION": "",
+    "INFO_MACRORUGO_DESCRIPTION": "poisson naturelle bloc",
     "INFO_MACRORUGO_TITRE_COURT": "Macro-rugo.",
     "INFO_MACRORUGO_TITRE": "Passe à macro-rugosités",
     "INFO_MENU_DIAGRAM_TITLE": "Diagramme des modules",
     "INFO_MACRORUGOCOMPOUND_TITRE": "Passe à macro-rugosités complexe",
-    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "",
+    "INFO_MACRORUGOCOMPOUND_DESCRIPTION": "poisson naturelle bloc radiers multiples incliné",
     "INFO_MACRORUGOCOMPOUND_TITRE_COURT": "M-Rugo complexe",
     "INFO_MACRORUGOCOMPOUND_LINCL": "Dévers latéral (m/m)&nbsp;:",
     "INFO_ONLY_Q_MAY_VARY": "Seul le débit peut varier",
     "INFO_ONLY_Z1_Q_MAY_VARY": "Seuls la cote amont et le débit peuvent varier",
     "INFO_Z1_Z2_MUST_BE_DEFINED": "Les cotes amont et aval doivent être définies",
     "INFO_PENTE_TITRE": "Pente",
-    "INFO_PENTE_DESCRIPTION": "",
+    "INFO_PENTE_DESCRIPTION": "hydraulique à surface libre dénivelé",
     "INFO_PENTE_TITRE_COURT": "Pente",
     "INFO_MENU_EMPTY_SESSION_TITLE": "Nouvelle session",
     "INFO_MENU_HELP_TITLE": "Aide",
@@ -446,31 +446,31 @@
     "INFO_PAB_LOIDEBIT_VANLEVVILLEMONTE": "Échancrure régulée (Villemonte)",
     "INFO_PAB_LOIDEBIT_WEIRVILLEMONTE": "Échancrure (Villemonte)",
     "INFO_PARAMETRES_FIXES": "Tous les paramètres doivent être fixés",
-    "INFO_PAB_DESCRIPTION": "",
+    "INFO_PAB_DESCRIPTION": "poisson échelle",
     "INFO_PAB_TITRE_COURT": "PAB",
     "INFO_PAB_TITRE": "Passe à bassins",
     "INFO_PAB_TITRE_PROFIL": "Profil en long de la passe",
     "INFO_PAB_TABLE": "Géométrie de la passe",
-    "INFO_PABCHUTE_DESCRIPTION": "",
+    "INFO_PABCHUTE_DESCRIPTION": "échelle poisson",
     "INFO_PABCHUTE_TITRE_COURT": "PAB&nbsp;: chute",
     "INFO_PABCHUTE_TITRE": "Passe à bassins&nbsp;: chute",
-    "INFO_PABDIMENSIONS_DESCRIPTION": "",
+    "INFO_PABDIMENSIONS_DESCRIPTION": "échelle poisson",
     "INFO_PABDIMENSIONS_TITRE_COURT": "PAB&nbsp;: dimensions",
     "INFO_PABDIMENSIONS_TITRE": "Passe à bassins&nbsp;: dimensions",
-    "INFO_PABNOMBRE_DESCRIPTION": "",
+    "INFO_PABNOMBRE_DESCRIPTION": "échelle poisson",
     "INFO_PABNOMBRE_TITRE_COURT": "PAB&nbsp;: nombre",
     "INFO_PABNOMBRE_TITRE": "Passe à bassins&nbsp;: nombre de chutes",
-    "INFO_PABPUISSANCE_DESCRIPTION": "",
+    "INFO_PABPUISSANCE_DESCRIPTION": "échelle poisson",
     "INFO_PABPUISSANCE_TITRE_COURT": "PAB&nbsp;: puissance",
     "INFO_PABPUISSANCE_TITRE": "Passe à bassins&nbsp;: puissance dissipée",
-    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "",
+    "INFO_PARALLELSTRUCTURE_DESCRIPTION": "orifice vanne seuil déversoir noyé dénoyé débit",
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "Ouvrages",
     "INFO_PARALLELSTRUCTURE_TITRE": "Lois d'ouvrages",
     "INFO_PAR_TITRE": "Passe à ralentisseurs&nbsp;: calage",
-    "INFO_PAR_DESCRIPTION": "",
+    "INFO_PAR_DESCRIPTION": "plans Denil Fatou fonds suractifs mixte chevrons canoë",
     "INFO_PAR_TITRE_COURT": "PAR&nbsp;: calage",
     "INFO_PARSIMULATION_TITRE": "Passe à ralentisseurs&nbsp;: simulation",
-    "INFO_PARSIMULATION_DESCRIPTION": "",
+    "INFO_PARSIMULATION_DESCRIPTION": "plans Denil Fatou fonds suractifs mixte chevrons canoë",
     "INFO_PARSIMULATION_TITRE_COURT": "PAR&nbsp;: simulation",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "En attente de calcul",
     "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Conditions aux limites",
@@ -514,7 +514,7 @@
     "INFO_QUICKNAV_INPUT": "données",
     "INFO_QUICKNAV_RESULTS": "résultats",
     "WARNING_PROBLEMS_ENCOUNTERED": "Des problèmes sont survenus durant le calcul (info&nbsp;: %info%, avertissement&nbsp;: %warning%, erreur&nbsp;: %error%)",
-    "INFO_REGIMEUNIFORME_DESCRIPTION": "",
+    "INFO_REGIMEUNIFORME_DESCRIPTION": "hydraulique à surface libre hauteur normale",
     "INFO_REGIMEUNIFORME_TITRE_COURT": "R. uniforme",
     "INFO_REGIMEUNIFORME_TITRE": "Régime uniforme",
     "INFO_REMOUS_CALCUL_FLUVIAL": "Condition limite aval >= Hauteur critique&nbsp;: calcul de la partie fluviale à partir de l'aval",
@@ -535,7 +535,7 @@
     "INFO_REQUIRES": "dépend de",
     "INFO_RESULTS_EXPORT_AS_SPREADSHEET": "Exporter en XLSX",
     "INFO_SEARCH_NO_RESULT": "Aucun résultat",
-    "INFO_SECTIONPARAMETREE_DESCRIPTION": "",
+    "INFO_SECTIONPARAMETREE_DESCRIPTION": "hydraulique à surface libre canal chenal bief rectangulaire circulaire puissance trapézoïdale périmètre charge mouillée rugosité hauteur charge critique normal conjuguée correspondante fluvial torrentiel Froude",
     "INFO_SECTIONPARAMETREE_TITRE_COURT": "Sec. param.",
     "INFO_SECTIONPARAMETREE_TITRE": "Section paramétrée",
     "INFO_SELECT_MULTIPLE_AND_OTHER": "autre",
@@ -561,7 +561,7 @@
     "INFO_SOLVEUR_DESCRIPTION": "",
     "INFO_SOLVEUR_TITRE_COURT": "Solveur",
     "INFO_SPP_TITRE": "Somme et produit de puissances",
-    "INFO_SPP_DESCRIPTION": "",
+    "INFO_SPP_DESCRIPTION": "plus fois",
     "INFO_SPP_TITRE_COURT": "SPP",
     "INFO_THEME_CREDITS": "Crédit",
     "INFO_THEME_DEVALAISON_TITRE": "Dévalaison",
@@ -597,10 +597,10 @@
     "INFO_EXAMPLES_TITLE": "Exemples",
     "INFO_EXAMPLES_SUBTITLE": "Charger des exemples types",
     "INFO_YAXB_TITRE": "Fonction affine",
-    "INFO_YAXB_DESCRIPTION": "",
+    "INFO_YAXB_DESCRIPTION": "addition plus soustraction moins multiplication division",
     "INFO_YAXB_TITRE_COURT": "F. affine",
     "INFO_TRIGO_TITRE": "Fonction trigonométrique",
-    "INFO_TRIGO_DESCRIPTION": "",
+    "INFO_TRIGO_DESCRIPTION": "cosinus sinus tangente arc",
     "INFO_TRIGO_TITRE_COURT": "F. trigo.",
     "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces",
     "INFO_VERIF_VARYING_OK": "Les critères de franchissement sont remplis pour toutes les espèces et toutes les modalités de la passe",
@@ -609,10 +609,10 @@
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée&nbsp;: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces",
     "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe",
-    "INFO_VERIFICATEUR_DESCRIPTION": "",
+    "INFO_VERIFICATEUR_DESCRIPTION": "ichtyocompatible",
     "INFO_VERIFICATEUR_TITRE_COURT": "Vérification",
     "INFO_ESPECE_TITRE": "Caractéristiques d'une espèce",
-    "INFO_ESPECE_DESCRIPTION": "",
+    "INFO_ESPECE_DESCRIPTION": "ichtyocompatible",
     "INFO_ESPECE_TITRE_COURT": "Espèce",
     "WARNING_WARNINGS_ABSTRACT": "%nb% avertissements rencontrés lors du calcul",
     "ERROR_JET_SUBMERGED_NO_SOLUTION": "Il n'y a pas de solution",
-- 
GitLab


From e249e30629b87c33d27c33109013d488cb4bfaad Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 16:13:25 +0200
Subject: [PATCH 094/101] Search engine: also search in short title #428

---
 .../components/calculator-list/calculator-list.component.ts  | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/app/components/calculator-list/calculator-list.component.ts b/src/app/components/calculator-list/calculator-list.component.ts
index ed2710834..6dc05bea1 100644
--- a/src/app/components/calculator-list/calculator-list.component.ts
+++ b/src/app/components/calculator-list/calculator-list.component.ts
@@ -87,6 +87,7 @@ export class CalculatorListComponent implements OnInit {
                         item.calculators.push({
                             type: calcType,
                             label: ServiceFactory.formulaireService.getLocalisedTitleFromCalculatorType(calcType),
+                            shortLabel: ServiceFactory.formulaireService.getLocalisedShortTitleFromCalculatorType(calcType),
                             description: ServiceFactory.formulaireService.getLocalisedDescriptionFromCalculatorType(calcType),
                             buttonId: "create-calc-" + calcType
                         });
@@ -121,6 +122,8 @@ export class CalculatorListComponent implements OnInit {
                         unusedTheme.calculators.push({
                             type: t,
                             label: ServiceFactory.formulaireService.getLocalisedTitleFromCalculatorType(t),
+                            shortLabel: ServiceFactory.formulaireService.getLocalisedShortTitleFromCalculatorType(t),
+                            description: ServiceFactory.formulaireService.getLocalisedDescriptionFromCalculatorType(t),
                             buttonId: "create-calc-" + t
                         });
                     }
@@ -205,7 +208,7 @@ export class CalculatorListComponent implements OnInit {
             // filter items based on parent component's search field
             for (const i of this.filteredItems) {
                 i.calculators = i.calculators.filter((c) => {
-                    return this.searchMatches(c.label) || this.searchMatches(c.description);
+                    return this.searchMatches(c.label) || this.searchMatches(c.shortLabel) || this.searchMatches(c.description);
                 });
             }
             this.filteredItems = this.filteredItems.filter((i) => {
-- 
GitLab


From e43ac26bd25cf7ce50be7061022063a98c50f0b1 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Mon, 31 Aug 2020 11:21:28 +0200
Subject: [PATCH 095/101] =?UTF-8?q?Work=20on=20#223=20=E2=88=92=20enhance?=
 =?UTF-8?q?=20translation=20system?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../calculator.component.ts                   |  2 -
 .../formulaire/definition/form-definition.ts  | 20 +---
 .../formulaire/elements/fieldset-container.ts | 10 --
 src/app/formulaire/elements/fieldset.ts       | 16 ----
 .../formulaire/elements/formulaire-element.ts |  6 +-
 src/app/formulaire/elements/select-field.ts   |  6 +-
 src/app/services/formulaire.service.ts        | 94 ++-----------------
 .../services/internationalisation.service.ts  | 73 ++++++++++++--
 8 files changed, 85 insertions(+), 142 deletions(-)

diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index dd4e31e8a..92462013f 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -433,8 +433,6 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
                     this.setForm(this.formulaireService.getFormulaireFromId(uid));
                     this.resultsComponent.formulaire = this._formulaire;
                     this._calculatorNameComponent.model = this._formulaire;
-                    // reload localisation in all cases
-                    this.formulaireService.loadUpdateFormulaireLocalisation(this._formulaire);
                     // call Form init hook
                     this._formulaire.onCalculatorInit();
                     break;
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index 140741beb..e0c346cf8 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -52,12 +52,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
     /** fichier de configuration */
     private _jsonConfig: {};
 
-    /** clé-valeurs du fichier de localisation spécifique à ce module */
-    private _specificLocalisation: StringMap;
-
-    /** ISO 639-1 language code of the current language (to avoid unnecessary localisation reload) */
-    private _currentLanguage: string;
-
     /** copy of options.resultsHelp read by FormDefinition.parseOptions() */
     public helpLinks: { [key: string]: string };
 
@@ -79,14 +73,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         return this._calculateDisabled;
     }
 
-    public get specificLocalisation() {
-        return this._specificLocalisation;
-    }
-
-    public get currentLanguage() {
-        return this._currentLanguage;
-    }
-
     public get calculatorType(): CalculatorType {
         const props = this._currentNub === undefined ? this.defaultProperties : (this._currentNub.properties as Props).props;
         return props["calcType"];
@@ -424,11 +410,9 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         }
     }
 
-    public updateLocalisation(localisation: StringMap, lang: string) {
-        this._specificLocalisation = localisation;
-        this._currentLanguage = lang;
+    public updateLocalisation(lang: string) {
         for (const fe of this.topFormElements) {
-            fe.updateLocalisation(localisation);
+            fe.updateLocalisation();
         }
     }
 
diff --git a/src/app/formulaire/elements/fieldset-container.ts b/src/app/formulaire/elements/fieldset-container.ts
index 1c31212da..96f719fcf 100644
--- a/src/app/formulaire/elements/fieldset-container.ts
+++ b/src/app/formulaire/elements/fieldset-container.ts
@@ -1,15 +1,12 @@
 import { FormulaireElement } from "./formulaire-element";
 import { FieldSet } from "./fieldset";
 import { FieldsetTemplate } from "./fieldset-template";
-import { StringMap } from "../../stringmap";
 import { FormulaireNode } from "./formulaire-node";
 import { Nub } from "jalhyd";
 
 export class FieldsetContainer extends FormulaireElement {
     private _templates: FieldsetTemplate[];
 
-    private _localisation: StringMap;
-
     public title: string;
 
     constructor(parent: FormulaireNode) {
@@ -109,11 +106,4 @@ export class FieldsetContainer extends FormulaireElement {
             }
         }
     }
-
-    public updateLocalisation(loc: StringMap = this._localisation) {
-        this._localisation = loc;
-        if (loc !== undefined) {
-            super.updateLocalisation(loc);
-        }
-    }
 }
diff --git a/src/app/formulaire/elements/fieldset.ts b/src/app/formulaire/elements/fieldset.ts
index f9063cb45..dce1e17d4 100644
--- a/src/app/formulaire/elements/fieldset.ts
+++ b/src/app/formulaire/elements/fieldset.ts
@@ -11,7 +11,6 @@ import { FormulaireElement } from "./formulaire-element";
 import { Field } from "./field";
 import { SelectField } from "./select-field";
 import { NgParameter, ParamRadioConfig } from "./ngparam";
-import { StringMap } from "../../stringmap";
 import { FieldsetContainer } from "./fieldset-container";
 import { SelectFieldCustom } from "./select-field-custom";
 import { FormulaireFixedVar } from "../definition/form-fixedvar";
@@ -22,9 +21,6 @@ export class FieldSet extends FormulaireElement implements Observer {
     /** Nub associé */
     private _nub: Nub;
 
-    /** dictionnaire de traduction */
-    private _localisation: StringMap;
-
     /** fichier de configuration */
     private _jsonConfig: {};
 
@@ -203,18 +199,6 @@ export class FieldSet extends FormulaireElement implements Observer {
         this.clearKids();
     }
 
-    public updateLocalisation(loc?: StringMap) {
-        if (! loc) {
-            loc = this._localisation;
-        } else {
-            this._localisation = loc;
-        }
-
-        if (loc) {
-            super.updateLocalisation(loc);
-        }
-    }
-
     /**
      * Reloads the model values and properties, and reloads localisation strings
      */
diff --git a/src/app/formulaire/elements/formulaire-element.ts b/src/app/formulaire/elements/formulaire-element.ts
index 95c14c76d..79a4899ea 100644
--- a/src/app/formulaire/elements/formulaire-element.ts
+++ b/src/app/formulaire/elements/formulaire-element.ts
@@ -71,13 +71,13 @@ export abstract class FormulaireElement extends FormulaireNode {
      * @param loc calculator-specific localised messages map
      * @param key Element label key
      */
-    public updateLocalisation(loc: StringMap, key?: string) {
+    public updateLocalisation(key?: string) {
         if (!key) {
             key = this._confId;
         }
-        this._label = this.intlService.localizeText(key, loc);
+        this._label = this.intlService.localizeText(key);
         for (const f of this.getKids()) {
-            f.updateLocalisation(loc);
+            f.updateLocalisation();
         }
     }
 
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 9be231395..4f7196cf6 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -110,13 +110,13 @@ export class SelectField extends Field {
         }, this);
     }
 
-    public updateLocalisation(loc: StringMap) {
-        super.updateLocalisation(loc);
+    public updateLocalisation() {
+        super.updateLocalisation();
         for (const e of this._entries) {
             // some Select fields already have a translated label at this time; translate others
             if (e.label === undefined) {
                 const aId = e.id.split("_");
-                e.label = ServiceFactory.i18nService.localizeText(`${aId[1].toUpperCase()}_${aId[2]}`, loc);
+                e.label = ServiceFactory.i18nService.localizeText(`${aId[1].toUpperCase()}_${aId[2]}`);
             }
         }
     }
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index d4cdb6ef2..78c74c8a7 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -26,7 +26,6 @@ import { FormulaireDefinition } from "../formulaire/definition/form-definition";
 import { FormulaireElement } from "../formulaire/elements/formulaire-element";
 import { InputField } from "../formulaire/elements/input-field";
 import { SelectField } from "../formulaire/elements/select-field";
-import { StringMap } from "../stringmap";
 import { FormulaireSectionParametree } from "../formulaire/definition/form-section-parametree";
 import { FormulaireCourbeRemous } from "../formulaire/definition/form-courbe-remous";
 import { FormulaireParallelStructure } from "../formulaire/definition/form-parallel-structures";
@@ -52,8 +51,10 @@ export class FormulaireService extends Observable {
 
     private _currentFormId: string = null;
 
-    /** to avoid loading language files multiple times */
-    private _languageCache = {};
+    public static getConfigPathPrefix(ct: CalculatorType): string {
+        const ctName = CalculatorType[ct].toLowerCase();
+        return "app/calculators/" + ctName + "/";
+    }
 
     constructor(
         private i18nService: I18nService,
@@ -66,84 +67,16 @@ export class FormulaireService extends Observable {
         this._formulaires = [];
     }
 
-    private get _intlService(): I18nService {
-        return this.i18nService;
-    }
-
-    private get _httpService(): HttpService {
-        return this.httpService;
-    }
-
     public get formulaires(): FormulaireDefinition[] {
         return this._formulaires;
     }
 
-    public get languageCache() {
-        return this._languageCache;
-    }
-
-    /**
-     * Loads the localisation file dedicated to calculator type ct; tries the current
-     * language then the fallback language; uses cache if available
-     */
-    public loadLocalisation(calc: CalculatorType): Promise<any> {
-        const lang = this._intlService.currentLanguage;
-        return this.loadLocalisationForLang(calc, lang).then((localisation) => {
-            return localisation as StringMap;
-        }).catch((e) => {
-            console.error(e);
-            // try default lang (the one in the config file) ?
-            const fallbackLang = this.appSetupService.fallbackLanguage;
-            if (lang !== fallbackLang) {
-                console.error(`trying fallback language: ${fallbackLang}`);
-                return this.loadLocalisationForLang(calc, fallbackLang);
-            }
-        });
-    }
-
-    /**
-     * Loads the localisation file dedicated to calculator type ct for language lang;
-     * keeps it in cache for subsequent calls ()
-     */
-    private loadLocalisationForLang(calc: CalculatorType, lang: string): Promise<any> {
-        const ct = String(calc);
-        // already in cache ?
-        if (Object.keys(this._languageCache).includes(ct) && Object.keys(this._languageCache[calc]).includes(lang)) {
-            return new Promise((resolve) => {
-                resolve(this._languageCache[ct][lang]);
-            });
-        } else {
-            const f: string = this.getConfigPathPrefix(calc) + lang + ".json";
-            return this._httpService.httpGetRequestPromise(f).then((localisation) => {
-                this._languageCache[ct] = this._languageCache[ct] || {};
-                this._languageCache[ct][lang] = localisation;
-                return localisation as StringMap;
-            }).catch((e) => {
-                throw new Error(`LOCALISATION_FILE_NOT_FOUND "${f}"`);
-            });
-        }
-    }
-
-    /**
-     * Loads localisation file corresponding to current language then updates all form strings,
-     * only if form language was not already set to current language
-     */
-    public loadUpdateFormulaireLocalisation(f: FormulaireDefinition): Promise<FormulaireDefinition> {
-        const requiredLang = this._intlService.currentLanguage;
-        if (requiredLang !== f.currentLanguage) {
-            return this.loadLocalisation(f.calculatorType).then(localisation => {
-                f.updateLocalisation(localisation, requiredLang);
-                return f;
-            });
-        }
-    }
-
     /**
      * Retourne le titre complet du type de module de calcul, dans la langue en cours
      */
     public getLocalisedTitleFromCalculatorType(type: CalculatorType) {
         const sCalculator: string = CalculatorType[type].toUpperCase();
-        return this._intlService.localizeText(`INFO_${sCalculator}_TITRE`);
+        return this.intlService.localizeText(`INFO_${sCalculator}_TITRE`);
     }
 
     /**
@@ -163,7 +96,7 @@ export class FormulaireService extends Observable {
             type = CalculatorType[type];
         }
         const sCalculator: string = type.toUpperCase();
-        return this._intlService.localizeText(`INFO_${sCalculator}_TITRE_COURT`);
+        return this.intlService.localizeText(`INFO_${sCalculator}_TITRE_COURT`);
     }
 
     /**
@@ -174,7 +107,7 @@ export class FormulaireService extends Observable {
     public expandVariableName(calcType: CalculatorType, symbol: string): string {
         let s = "";
         // language cache…
-        let langCache = this.languageCache;
+        let langCache = this.i18nService.languageCache;
         if (langCache && langCache[calcType]) {
             langCache = langCache[calcType]; // …for target Nub type
         }
@@ -207,7 +140,7 @@ export class FormulaireService extends Observable {
      */
     public expandVariableNameAndUnit(calcType: CalculatorType, symbol: string, forceUnit?: string): string {
         let s = this.expandVariableName(calcType, symbol);
-        let langCache = this.languageCache; // language cache…
+        let langCache = this.i18nService.languageCache; // language cache…
         if (langCache && langCache[calcType]) {
             langCache = langCache[calcType]; // …for target Nub type
         }
@@ -282,8 +215,8 @@ export class FormulaireService extends Observable {
     }
 
     public loadConfig(ct: CalculatorType): Promise<any> {
-        const f: string = this.getConfigPathPrefix(ct) + "config.json";
-        return this._httpService.httpGetRequestPromise(f);
+        const f: string = FormulaireService.getConfigPathPrefix(ct) + "config.json";
+        return this.httpService.httpGetRequestPromise(f);
     }
 
     private newFormulaire(ct: CalculatorType): FormulaireDefinition {
@@ -530,11 +463,6 @@ export class FormulaireService extends Observable {
         }
     }
 
-    public getConfigPathPrefix(ct: CalculatorType): string {
-        const ctName = CalculatorType[ct].toLowerCase();
-        return "app/calculators/" + ctName + "/";
-    }
-
     /**
      * Supprime le formulaire ciblé, et demande à JaLHyd d'effacer son Nub de la Session
      * @param uid formulaire à supprimer
@@ -632,8 +560,6 @@ export class FormulaireService extends Observable {
                 if (nn.meta && nn.meta.title) {
                     title = nn.meta.title;
                 }
-                // pre-fill language cache (for LinkedValues labels for ex.)
-                await this.loadLocalisation(nn.nub.calcType);
                 await this.createFormulaire(nn.nub.calcType, nn.nub, title); // await guarantees loading order
             }
             // apply settings
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 14df03969..26d2cecce 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -7,6 +7,7 @@ import { ApplicationSetupService } from "./app-setup.service";
 import { HttpService } from "./http.service";
 import { fv, decodeHtml } from "../util";
 import { ServiceFactory } from "./service-factory";
+import { FormulaireService } from "./formulaire.service";
 
 @Injectable()
 export class I18nService extends Observable implements Observer {
@@ -23,6 +24,9 @@ export class I18nService extends Observable implements Observer {
     /** localized messages in fallback language (the one in the config file) */
     private _fallbackMessages: StringMap;
 
+    /** to avoid loading language files multiple times */
+    private _languageCache = {};
+
     constructor(
         private applicationSetupService: ApplicationSetupService,
         private httpService: HttpService
@@ -52,6 +56,10 @@ export class I18nService extends Observable implements Observer {
         return this._Messages;
     }
 
+    public get languageCache() {
+        return this._languageCache;
+    }
+
     /**
      * Defines the current language code from its ISO 639-1 code (2 characters) or locale code
      * (ex: "fr", "en", "fr_FR", "en-US")
@@ -69,12 +77,64 @@ export class I18nService extends Observable implements Observer {
         if (this._currentLanguage !== code) {
             this._currentLanguage = code;
             this._Messages = undefined;
-            // reload all messages
+            // reload all messages: global lang files, plus lang files for all calculators !
             const that = this;
-            this.httpGetMessages(code).then((res: any) => {
-                that._Messages = res;
-                // propagate language change to all application
-                that.notifyObservers(undefined);
+            console.log("> promise.all !");
+            const promisesList: Promise<any>[] = [];
+            for (const ct in CalculatorType) {
+                const calcType = Number(ct);
+                if (!isNaN(calcType)) {
+                    promisesList.push(this.loadLocalisation(calcType).catch((err) => { /* silent fail */ }));
+                }
+            }
+            Promise.all(promisesList).then(() => {
+                console.log(">> get global messages !");
+                this.httpGetMessages(code).then((res: any) => {
+                    that._Messages = res;
+                    // propagate language change to all application
+                    that.notifyObservers(undefined);
+                });
+            });
+        }
+    }
+
+    /**
+     * Loads the localisation file dedicated to calculator type ct; tries the current
+     * language then the fallback language; uses cache if available
+     */
+    public loadLocalisation(calc: CalculatorType): Promise<any> {
+        const lang = this.currentLanguage;
+        return this.loadLocalisationForLang(calc, lang).then((localisation) => {
+            return localisation as StringMap;
+        }).catch((e) => {
+            // try default lang (the one in the config file) ?
+            const fallbackLang = this.applicationSetupService.fallbackLanguage;
+            if (lang !== fallbackLang) {
+                console.error(`localisation for ${CalculatorType[calc]} not found, trying fallback language: ${fallbackLang}`);
+                return this.loadLocalisationForLang(calc, fallbackLang);
+            }
+        });
+    }
+
+    /**
+     * Loads the localisation file dedicated to calculator type ct for language lang;
+     * keeps it in cache for subsequent calls ()
+     */
+    private loadLocalisationForLang(calc: CalculatorType, lang: string): Promise<any> {
+        const ct = String(calc);
+        // already in cache ?
+        if (Object.keys(this._languageCache).includes(ct) && Object.keys(this._languageCache[calc]).includes(lang)) {
+            return new Promise((resolve) => {
+                resolve(this._languageCache[ct][lang]);
+            });
+        } else {
+            const f: string = FormulaireService.getConfigPathPrefix(calc) + lang + ".json";
+            return this.httpService.httpGetRequestPromise(f).then((localisation) => {
+                this._languageCache[ct] = this._languageCache[ct] || {};
+                this._languageCache[ct][lang] = localisation;
+                return localisation as StringMap;
+            }).catch((e) => {
+                throw new Error(`LOCALISATION_FILE_NOT_FOUND "${f}"`);
             });
         }
     }
@@ -285,7 +345,8 @@ export class I18nService extends Observable implements Observer {
     // interface Observer
 
     /**
-     * Should only be triggered once at app startup, when setup service tries loading language
+     * Should only be triggered once at app startup, when setup service tries loading language,
+     * then everytime language is changed through Preferences screen
      * @param sender should always be ApplicationSetupService
      * @param data object {
      *                  action: should always be "languagePreferenceChanged"
-- 
GitLab


From 670edfcb7f75cb87b082c4a083add011c372720b Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 1 Sep 2020 11:17:00 +0200
Subject: [PATCH 096/101] Fix #223 - enhance translation system

---
 src/app/calculators/courberemous/en.json      |  2 +-
 src/app/calculators/jet/en.json               |  2 +-
 .../calculator.component.ts                   |  2 +
 .../formulaire/elements/formulaire-element.ts | 14 ++---
 src/app/formulaire/elements/select-field.ts   | 41 +++++++++------
 src/app/services/formulaire.service.ts        | 52 +++++++++++++++++--
 .../services/internationalisation.service.ts  | 13 ++---
 7 files changed, 87 insertions(+), 39 deletions(-)

diff --git a/src/app/calculators/courberemous/en.json b/src/app/calculators/courberemous/en.json
index f965d3e9f..c238adfb5 100644
--- a/src/app/calculators/courberemous/en.json
+++ b/src/app/calculators/courberemous/en.json
@@ -53,7 +53,7 @@
     "TARGET_Hsc": "Critical head (m)",
     "TARGET_B": "Surface width (m)",
     "TARGET_P": "Wetted perimeter (m)",
-    "TARGET_S": "Wetted area (m2)",
+    "TARGET_S": "Wet surface (m2)",
     "TARGET_R": "Hydraulic radius (m)",
     "TARGET_V": "Average speed (m/s)",
     "TARGET_Fr": "Froude number",
diff --git a/src/app/calculators/jet/en.json b/src/app/calculators/jet/en.json
index c8342e323..32cc2afed 100644
--- a/src/app/calculators/jet/en.json
+++ b/src/app/calculators/jet/en.json
@@ -9,7 +9,7 @@
     "ZF": "Bottom elevation",
     "H": "Fall height",
     "Y": "Depth",
-    "YH": "Depth/height ration",
+    "YH": "Depth/height ratio",
     "t": "Flight time",
     "Vx": "Horizontal speed at impact",
     "Vz": "Vertical speed at impact",
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 92462013f..b662a5000 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -433,6 +433,8 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
                     this.setForm(this.formulaireService.getFormulaireFromId(uid));
                     this.resultsComponent.formulaire = this._formulaire;
                     this._calculatorNameComponent.model = this._formulaire;
+                    // reload localisation in all cases (it does not eat bread)
+                    this.formulaireService.updateFormulaireLocalisation(this._formulaire);
                     // call Form init hook
                     this._formulaire.onCalculatorInit();
                     break;
diff --git a/src/app/formulaire/elements/formulaire-element.ts b/src/app/formulaire/elements/formulaire-element.ts
index 79a4899ea..579b62648 100644
--- a/src/app/formulaire/elements/formulaire-element.ts
+++ b/src/app/formulaire/elements/formulaire-element.ts
@@ -1,8 +1,7 @@
 import { FormulaireNode } from "./formulaire-node";
-import { StringMap } from "../../stringmap";
-import { I18nService } from "../../services/internationalisation.service";
 import { ServiceFactory } from "../../services/service-factory";
 import { FormulaireDefinition } from "../definition/form-definition";
+import { FormulaireService } from "../../services/formulaire.service";
 
 /**
  * élément (enfant) du formulaire : fieldset, input, container, ...
@@ -18,7 +17,7 @@ export abstract class FormulaireElement extends FormulaireNode {
      */
     protected _label: string;
 
-    private intlService: I18nService;
+    private formulaireService: FormulaireService;
 
     public static removePrefix(s: string, prefix: string): string {
         if (s.startsWith(prefix)) {
@@ -30,7 +29,7 @@ export abstract class FormulaireElement extends FormulaireNode {
     constructor(parent: FormulaireNode) {
         super(parent);
         this._isDisplayed = true;
-        this.intlService = ServiceFactory.i18nService;
+        this.formulaireService = ServiceFactory.formulaireService;
     }
 
     get isDisplayed(): boolean {
@@ -71,11 +70,8 @@ export abstract class FormulaireElement extends FormulaireNode {
      * @param loc calculator-specific localised messages map
      * @param key Element label key
      */
-    public updateLocalisation(key?: string) {
-        if (!key) {
-            key = this._confId;
-        }
-        this._label = this.intlService.localizeText(key);
+    public updateLocalisation() {
+        this._label = this.formulaireService.localizeText(this._confId, this.parentForm.currentNub.calcType);
         for (const f of this.getKids()) {
             f.updateLocalisation();
         }
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 4f7196cf6..0884f2564 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -10,7 +10,6 @@ import {
 
 import { Field } from "./field";
 import { SelectEntry } from "./select-entry";
-import { StringMap } from "../../stringmap";
 import { FormulaireNode } from "./formulaire-node";
 import { FormulaireDefinition } from "../definition/form-definition";
 import { ServiceFactory } from "../../services/service-factory";
@@ -113,10 +112,29 @@ export class SelectField extends Field {
     public updateLocalisation() {
         super.updateLocalisation();
         for (const e of this._entries) {
-            // some Select fields already have a translated label at this time; translate others
-            if (e.label === undefined) {
+            if (this.source === "solveur_targetted_result") {
+                // @WARNING clodo hack for Solveur
+                // 1. calculated param
+                const nub: Nub = (this.parentForm as FormulaireDefinition).currentNub;
+                const ntc = (nub as Solveur).nubToCalculate;
+                if (e.value !== undefined && ntc !== undefined) {
+                    if (e.value === "" && ntc.calculatedParam !== undefined) {
+                        const varName = ServiceFactory.formulaireService.expandVariableName(ntc.calcType, ntc.calculatedParam.symbol);
+                        e.label = `${varName} (${ntc.calculatedParam.symbol})`;
+                    } else {
+                        // 2. extra results
+                        const varName = ServiceFactory.formulaireService.expandVariableName(ntc.calcType, e.value);
+                        e.label = `${varName} (${e.value})`;
+                    }
+                }
+            } else {
+                // general case
                 const aId = e.id.split("_");
-                e.label = ServiceFactory.i18nService.localizeText(`${aId[1].toUpperCase()}_${aId[2]}`);
+                const trad = ServiceFactory.formulaireService.localizeText(
+                    `${aId[1].toUpperCase()}_${aId[2]}`,
+                    this.parentForm.currentNub.calcType
+                );
+                e.label = trad;
             }
         }
     }
@@ -155,25 +173,16 @@ export class SelectField extends Field {
 
             // driven by string[], not enum
             case "solveur_targetted_result":
+                // @WARNING for localisation, @see hack in this.updateLocalisation()
                 // 1. calculated param
                 const ntc = (nub as Solveur).nubToCalculate;
                 if (ntc !== undefined && ntc.calculatedParam !== undefined) { // some nubs have no calculatedParam, for ex. SectionParam
-                    const varName = ServiceFactory.formulaireService.expandVariableName(ntc.calcType, ntc.calculatedParam.symbol);
-                    this.addEntry(new SelectEntry(
-                        this._entriesBaseId + "none",
-                        "",
-                        `${varName} (${ntc.calculatedParam.symbol})`
-                    ));
+                    this.addEntry(new SelectEntry(this._entriesBaseId + "none", ""));
                 }
                 // 2. extra results
                 if (ntc !== undefined && ntc.resultsFamilies !== undefined) {
                     for (const er of Object.keys(ntc.resultsFamilies)) {
-                        const varName = ServiceFactory.formulaireService.expandVariableName(ntc.calcType, er);
-                        const e: SelectEntry = new SelectEntry(
-                            this._entriesBaseId + er,
-                            er,
-                            `${varName} (${er})`
-                        );
+                        const e: SelectEntry = new SelectEntry(this._entriesBaseId + er, er);
                         this.addEntry(e);
                     }
                 }
diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 78c74c8a7..4a3e78aea 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -99,6 +99,51 @@ export class FormulaireService extends Observable {
         return this.intlService.localizeText(`INFO_${sCalculator}_TITRE_COURT`);
     }
 
+    /**
+     * Forces update of all form strings in given Formulaire, with current language
+     */
+    public updateFormulaireLocalisation(f: FormulaireDefinition) {
+        const requiredLang = this.intlService.currentLanguage;
+        f.updateLocalisation(requiredLang);
+    }
+
+
+    /**
+     * Tente de trouver une traduction pour textKey dans les fichiers de langues
+     * spécifiques du module de calcul en cours, dans la langue en cours, puis
+     * dans la langue par défaut; si aucune traduction n'est trouvée, demande au
+     * service i18n de rechercher dans les fichiers de langues globaux
+     * @param textKey la clé du texte à traduire
+     */
+    public localizeText(textKey: string, ct: CalculatorType): string {
+        const calcType = /* this.currentForm?.currentNub?.calcType || */ ct;
+        if (calcType !== undefined) {
+            // throw new Error("FormulaireService.localizeText(): cannot find CalculatorType for current form's Nub");
+            let langCache = this.i18nService.languageCache;
+            if (langCache && langCache[calcType]) {
+                langCache = langCache[calcType]; // …for target Nub type
+            }
+            // try current language
+            if (
+                langCache
+                && langCache[this.intlService.currentLanguage]
+                && langCache[this.intlService.currentLanguage][textKey] !== undefined
+            ) {
+                return langCache[this.intlService.currentLanguage][textKey];
+
+            } else if ( // try calculator type specific translation, but for default language
+                langCache
+                && langCache[this.appSetupService.fallbackLanguage]
+                && langCache[this.appSetupService.fallbackLanguage][textKey] !== undefined
+            ) {
+                return langCache[this.appSetupService.fallbackLanguage][textKey];
+
+            }
+        }
+        // fallback to global (not calculator type specific) translation system
+        return this.i18nService.localizeText(textKey);
+    }
+
     /**
      * Returns variable name from symbol
      * @param calcType
@@ -115,7 +160,7 @@ export class FormulaireService extends Observable {
             langCache = langCache[this.intlService.currentLanguage]; // … for current language
         }
         if (langCache && langCache[symbol] !== undefined) {
-            s = this.intlService.localizeText(symbol, langCache);
+            s = this.localizeText(symbol, calcType);
         } else {
             // is symbol of the form ouvrages[i]… ?
             const re = /([A-Z,a-z]+)\[(\d+)\]\.(.+)/;
@@ -169,7 +214,7 @@ export class FormulaireService extends Observable {
             } else {
                 const unitKey = "UNIT_" + symbolBase;
                 if (langCache && langCache[unitKey] !== undefined) {
-                    unit = this.intlService.localizeText(unitKey, langCache);
+                    unit = this.localizeText(unitKey, calcType);
                 }
             }
         }
@@ -295,8 +340,7 @@ export class FormulaireService extends Observable {
         const f: FormulaireDefinition = this.newFormulaire(ct);
         this._formulaires.push(f);
         // Charge la configuration dépendamment du type
-        const prom: Promise<any> = this.loadConfig(ct);
-        return prom.then(s => {
+        return this.loadConfig(ct).then(s => {
             f.preparseConfig(s);
 
             // Associe le Nub fourni (chargement de session / duplication de module), sinon en crée un nouveau
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 26d2cecce..ed8011d09 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -79,7 +79,6 @@ export class I18nService extends Observable implements Observer {
             this._Messages = undefined;
             // reload all messages: global lang files, plus lang files for all calculators !
             const that = this;
-            console.log("> promise.all !");
             const promisesList: Promise<any>[] = [];
             for (const ct in CalculatorType) {
                 const calcType = Number(ct);
@@ -88,7 +87,6 @@ export class I18nService extends Observable implements Observer {
                 }
             }
             Promise.all(promisesList).then(() => {
-                console.log(">> get global messages !");
                 this.httpGetMessages(code).then((res: any) => {
                     that._Messages = res;
                     // propagate language change to all application
@@ -174,16 +172,15 @@ export class I18nService extends Observable implements Observer {
      *
      * @param textKey id du texte (ex: "ERROR_PARAM_NULL")
      */
-    public localizeText(textKey: string, msg?: StringMap) {
-        const messages = msg || this._Messages;
-        if (! messages) {
+    public localizeText(textKey: string) {
+        if (! this._Messages) {
             return `*** messages not loaded: ${this._currentLanguage} ***`;
         }
-        if (messages[textKey] !== undefined) {
-            return decodeHtml(messages[textKey]);
+        if (this._Messages[textKey] !== undefined) {
+            return decodeHtml(this._Messages[textKey]);
         } else {
             // try general message
-            if (msg !== undefined && this._Messages["INFO_LIB_" + textKey.toUpperCase()] !== undefined) {
+            if (this._Messages !== undefined && this._Messages["INFO_LIB_" + textKey.toUpperCase()] !== undefined) {
                 return decodeHtml(this._Messages["INFO_LIB_" + textKey.toUpperCase()]);
             }
             if (!isDevMode()) {
-- 
GitLab


From ff4d2345866eae831db407cf1759f2e8cba32d9c Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 12:52:33 +0200
Subject: [PATCH 097/101] Update #223 : remove unused fallback language loading
 mechanism

---
 src/app/services/formulaire.service.ts        |  8 -----
 .../services/internationalisation.service.ts  | 32 +++----------------
 2 files changed, 4 insertions(+), 36 deletions(-)

diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 4a3e78aea..30c065f96 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -130,14 +130,6 @@ export class FormulaireService extends Observable {
                 && langCache[this.intlService.currentLanguage][textKey] !== undefined
             ) {
                 return langCache[this.intlService.currentLanguage][textKey];
-
-            } else if ( // try calculator type specific translation, but for default language
-                langCache
-                && langCache[this.appSetupService.fallbackLanguage]
-                && langCache[this.appSetupService.fallbackLanguage][textKey] !== undefined
-            ) {
-                return langCache[this.appSetupService.fallbackLanguage][textKey];
-
             }
         }
         // fallback to global (not calculator type specific) translation system
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index ed8011d09..96da8821b 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -21,9 +21,6 @@ export class I18nService extends Observable implements Observer {
     /** localized messages */
     private _Messages: StringMap;
 
-    /** localized messages in fallback language (the one in the config file) */
-    private _fallbackMessages: StringMap;
-
     /** to avoid loading language files multiple times */
     private _languageCache = {};
 
@@ -36,10 +33,6 @@ export class I18nService extends Observable implements Observer {
             fr: "Français",
             en: "English"
         };
-        // load fallback language messages once for all
-        this.httpGetMessages(this.applicationSetupService.fallbackLanguage).then((res: any) => {
-            this._fallbackMessages = res;
-        });
         // add language preferences observer
         this.applicationSetupService.addObserver(this);
     }
@@ -97,20 +90,14 @@ export class I18nService extends Observable implements Observer {
     }
 
     /**
-     * Loads the localisation file dedicated to calculator type ct; tries the current
-     * language then the fallback language; uses cache if available
+     * Loads the localisation file dedicated to calculator type ct; uses cache if available
      */
     public loadLocalisation(calc: CalculatorType): Promise<any> {
         const lang = this.currentLanguage;
         return this.loadLocalisationForLang(calc, lang).then((localisation) => {
             return localisation as StringMap;
         }).catch((e) => {
-            // try default lang (the one in the config file) ?
-            const fallbackLang = this.applicationSetupService.fallbackLanguage;
-            if (lang !== fallbackLang) {
-                console.error(`localisation for ${CalculatorType[calc]} not found, trying fallback language: ${fallbackLang}`);
-                return this.loadLocalisationForLang(calc, fallbackLang);
-            }
+            return "";
         });
     }
 
@@ -120,12 +107,8 @@ export class I18nService extends Observable implements Observer {
      */
     private loadLocalisationForLang(calc: CalculatorType, lang: string): Promise<any> {
         const ct = String(calc);
-        // already in cache ?
-        if (Object.keys(this._languageCache).includes(ct) && Object.keys(this._languageCache[calc]).includes(lang)) {
-            return new Promise((resolve) => {
-                resolve(this._languageCache[ct][lang]);
-            });
-        } else {
+        // if not already in cache
+        if (! Object.keys(this._languageCache).includes(ct) || ! Object.keys(this._languageCache[calc]).includes(lang)) {
             const f: string = FormulaireService.getConfigPathPrefix(calc) + lang + ".json";
             return this.httpService.httpGetRequestPromise(f).then((localisation) => {
                 this._languageCache[ct] = this._languageCache[ct] || {};
@@ -165,7 +148,6 @@ export class I18nService extends Observable implements Observer {
      * In production mode, looks in different messages collections :
      *  1. ${msg} if provided
      *  2. messages for current language
-     *  3. messages for fallback language
      *
      * In dev mode, looks only in 1. if provided, else only in 2. which makes missing
      * translations easier to detect
@@ -183,12 +165,6 @@ export class I18nService extends Observable implements Observer {
             if (this._Messages !== undefined && this._Messages["INFO_LIB_" + textKey.toUpperCase()] !== undefined) {
                 return decodeHtml(this._Messages["INFO_LIB_" + textKey.toUpperCase()]);
             }
-            if (!isDevMode()) {
-                // try fallback language before giving up
-                if (this._fallbackMessages[textKey] !== undefined) {
-                    return decodeHtml(this._fallbackMessages[textKey]);
-                }
-            }
             return `*** message not found: ${textKey} ***`;
         }
     }
-- 
GitLab


From c7bed423a6f71e694ac7fd88722fc642fc063d01 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 15:26:42 +0200
Subject: [PATCH 098/101] Update translations and check-translations script

---
 scripts/check-translations.js                 | 86 ++++++++++++++++++-
 src/app/calculators/bief/en.json              |  2 +-
 src/app/calculators/cloisons/en.json          |  3 -
 src/app/calculators/lechaptcalmon/en.json     |  6 +-
 src/app/calculators/lechaptcalmon/fr.json     |  7 +-
 src/app/calculators/pabpuissance/en.json      |  1 -
 src/app/calculators/par/en.json               |  4 -
 src/app/calculators/parsimulation/en.json     |  4 -
 src/app/calculators/sectionparametree/en.json |  1 -
 src/locale/messages.en.json                   |  8 ++
 src/locale/messages.fr.json                   |  6 ++
 11 files changed, 106 insertions(+), 22 deletions(-)

diff --git a/scripts/check-translations.js b/scripts/check-translations.js
index 8beb57298..4143d689e 100644
--- a/scripts/check-translations.js
+++ b/scripts/check-translations.js
@@ -1,7 +1,24 @@
 'use strict';
 
+/**
+ * 1) Reads Message enum in jalhyd, and for every message code in it, checks
+ * that there is a translation in each nghyd's locale/*.json file (ie. for
+ * every language)
+ * 
+ * 2) For every nghyd calculator, checks that the translated keys are the same
+ * in all language files
+ */
+
 const fs = require('fs');
 
+/* IMPORTANT: during step 2, will look for those languages codes only */
+const expectedLanguages = [ "fr", "en" ];
+
+// total errors
+let nbErr = 0;
+
+// ---- 1. JaLHyd messages ----
+
 // read and transform JaLHyd message file
 const jalhydMessagesPath = "../jalhyd/src/util/message.ts";
 let jm = fs.readFileSync(jalhydMessagesPath, "utf-8");
@@ -17,10 +34,12 @@ jm = jm.replace(/\/\/.+/g, "");
 jm = jm.replace(/[ \t]+/g, "");
 // remove line breaks
 jm = jm.replace(/\n/g, "");
+
 // split on ";"
 const messages = jm.split(",");
 
-// console.log(messages);
+// remove import on 1st line (wtf) @clodo
+messages[0] = messages[0].substring(24);
 
 // read every language file
 const localePath = "src/locale";
@@ -30,15 +49,76 @@ for (let i = 0; i < localeDir.length; i++) {
     const res = localeFile.match(/^messages\.([a-z]{2})\.json$/);
     if (res) {
         const lang = res[1];
-        console.log("Loading translations for language [" + lang + "]");
+        console.log("Loading global translations for language [" + lang + "]");
         const langFilePath = localePath + '/' + localeFile;
-        let translations = Object.keys(JSON.parse(fs.readFileSync(langFilePath, "utf-8")));
+        const translations = Object.keys(JSON.parse(fs.readFileSync(langFilePath, "utf-8")));
         // console.log(translations);
         // check against JaLHyd messages list
         for (const mess of messages) {
             if (! translations.includes(mess)) {
                 console.log("  missing message in [" + lang + "] translation: " + mess);
+                nbErr++;
             }
         }
     }
 }
+
+// ---- 2. calculators localisation ----
+
+// find every calculator folder
+const calculatorsPath = "src/app/calculators";
+const calculatorsDir = fs.readdirSync(calculatorsPath);
+console.log("Checking all calculators translations for languages [" + expectedLanguages.join(", ") + "]");
+for (let i = 0; i < calculatorsDir.length; i++) {
+    const calcPath = calculatorsPath + "/" + calculatorsDir[i];
+    const stats = {};
+    // console.log(" checking calculator [" + calculatorsDir[i] + "]");
+    // find all language files for this calculator, and store translation keys
+    for (let j = 0; j < expectedLanguages.length; j++) {
+        const exLang = expectedLanguages[j];
+        const langFilePath = calcPath + "/" + exLang + ".json";
+        if (fs.existsSync(langFilePath)) {
+            const translations = Object.keys(JSON.parse(fs.readFileSync(langFilePath, "utf-8")));
+            // console.log(translations);
+            stats[exLang] = translations;
+        } else {
+            console.log(" missing language file [" + exLang + ".json] for calculator [" + calculatorsDir[i] + "]");
+            nbErr++;
+        }
+    }
+    // console.log(stats);
+    // compare number of translations per file
+    let sameNumber = true;
+    // compare keys names (order-dependent) per file
+    let sameKeys = true;
+    let prevKeys = null;
+    const sKeys = Object.keys(stats);
+    for (let k = 0; k < sKeys.length; k++) {
+        const key = sKeys[k];
+        if (k > 0) {
+            sameNumber = sameNumber && (stats[key].length === prevKeys.length);
+            sameKeys = sameKeys && (JSON.stringify(stats[key]) === JSON.stringify(prevKeys)); // compare arrays
+        }
+        prevKeys = stats[key];
+    }
+    // difference found ?
+    if (! sameNumber) {
+        console.log(" [" + calculatorsDir[i] + "]: different number of keys found", sKeys.map((s) => {
+            return s + ": " + stats[s].length;
+        }));
+        nbErr++;
+    } else if (! sameKeys) {
+        console.log(" [" + calculatorsDir[i] + "]: different keys found", stats);
+        nbErr++;
+    }
+}
+
+
+// ---- 3. JaLHyd messages ----
+
+if (nbErr === 0) {
+    console.log("Everything OK !");
+    process.exit(0);
+} else {
+    process.exit(1);
+}
diff --git a/src/app/calculators/bief/en.json b/src/app/calculators/bief/en.json
index 30465b07a..83ef6c03f 100644
--- a/src/app/calculators/bief/en.json
+++ b/src/app/calculators/bief/en.json
@@ -26,8 +26,8 @@
     "fs_condlim": "Boundary conditions",
     "Q": "Upstream flow",
     "S": "Wet surface",
-    "fs_param_calc": "Calculation parameters",
     "Dx": "Discretisation step",
+    "fs_param_calc": "Calculation parameters",
     "Z1": "Upstream water elevation",
     "Z2": "Downstream water elevation",
     "ZF1": "Upstream bottom elevation",
diff --git a/src/app/calculators/cloisons/en.json b/src/app/calculators/cloisons/en.json
index 22a43f9ac..af443e0f8 100644
--- a/src/app/calculators/cloisons/en.json
+++ b/src/app/calculators/cloisons/en.json
@@ -2,9 +2,6 @@
     "Q": "Total discharge",
     "P": "Sill",
     "W": "Gate opening",
-    "ZR": "Upstream bed elevation",
-    "PB": "Pool mean depth",
-    "h1": "Head",
 
 	"UNIT_Q": "m³/s",
     "UNIT_YMOY": "m",
diff --git a/src/app/calculators/lechaptcalmon/en.json b/src/app/calculators/lechaptcalmon/en.json
index 0e0b0798c..729994b0e 100644
--- a/src/app/calculators/lechaptcalmon/en.json
+++ b/src/app/calculators/lechaptcalmon/en.json
@@ -14,7 +14,6 @@
     "M": "M",
     "N": "N",
     "fs_hydraulique": "Hydraulic features",
-    "Q": "Flow",
     "D": "Pipe diameter",
     "J": "Total head loss",
     "Ks": "Singular head loss coefficient",
@@ -22,5 +21,8 @@
     "fs_param_calc": "Calculation parameters",
     "Jl": "Linear head loss",
     "Kl": "Linear head loss coefficient",
-    "fD": "Darcy friction factor"
+    "fD": "Darcy friction factor",
+
+    "UNIT_JL": "m",
+    "UNIT_V": "m/s"
 }
\ No newline at end of file
diff --git a/src/app/calculators/lechaptcalmon/fr.json b/src/app/calculators/lechaptcalmon/fr.json
index 0ce375bc6..89884cabd 100644
--- a/src/app/calculators/lechaptcalmon/fr.json
+++ b/src/app/calculators/lechaptcalmon/fr.json
@@ -20,8 +20,9 @@
     "Lg": "Longueur du tuyau",
     "fs_param_calc": "Paramètres de calcul",
     "Jl": "Perte de charge linéaire",
-    "UNIT_JL": "m",
-    "UNIT_V": "m/s",
     "Kl": "Coefficient de perte de charge linéaire",
-    "fD": "Coefficient de perte de charge de Darcy"
+    "fD": "Coefficient de perte de charge de Darcy",
+
+    "UNIT_JL": "m",
+    "UNIT_V": "m/s"
 }
\ No newline at end of file
diff --git a/src/app/calculators/pabpuissance/en.json b/src/app/calculators/pabpuissance/en.json
index 582ca3f45..5872528a5 100644
--- a/src/app/calculators/pabpuissance/en.json
+++ b/src/app/calculators/pabpuissance/en.json
@@ -1,7 +1,6 @@
 {
     "fs_puissance": "Basin dimensions",
     "DH": "Drop",
-    "Q": "Discharge",
     "V": "Volume",
     "PV": "Dissipated power"
 }
\ No newline at end of file
diff --git a/src/app/calculators/par/en.json b/src/app/calculators/par/en.json
index fc7eddd2d..f1d88aa17 100644
--- a/src/app/calculators/par/en.json
+++ b/src/app/calculators/par/en.json
@@ -1,10 +1,6 @@
 {
     "fs_param_hydro": "Hydraulic parameters",
 
-    "Q": "Flow",
-    "Z1": "Upstream water elevation",
-    "Z2": "Downstream water elevation",
-
     "fs_geometry": "Pass geometry",
 
     "ha": "Upstream head",
diff --git a/src/app/calculators/parsimulation/en.json b/src/app/calculators/parsimulation/en.json
index a5b752e21..36c46b4b1 100644
--- a/src/app/calculators/parsimulation/en.json
+++ b/src/app/calculators/parsimulation/en.json
@@ -1,10 +1,6 @@
 {
     "fs_param_hydro": "Hydraulic parameters",
 
-    "Q": "Flow",
-    "Z1": "Upstream water elevation",
-    "Z2": "Downstream water elevation",
-
     "fs_geometry": "Pass geometry",
 
     "ZD1": "Upstream spilling elevation",
diff --git a/src/app/calculators/sectionparametree/en.json b/src/app/calculators/sectionparametree/en.json
index 943320f64..92a0479a8 100644
--- a/src/app/calculators/sectionparametree/en.json
+++ b/src/app/calculators/sectionparametree/en.json
@@ -17,7 +17,6 @@
     "If": "Bottom slope",
     "YB": "Embankment elevation",
     "fs_hydraulique": "Hydraulic features",
-    "Q": "Flow",
     "Y": "Draft",
     "fs_param_calc": "Calculation parameters",
     "Hs": "Specific head",
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 073d7138d..acbc4c150 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -57,15 +57,20 @@
     "ERROR_REMOUS_PAS_CALCUL": "No possible calculation, neither from upstream nor from downstream",
     "ERROR_REMOUS_PENTE_FORTE": "The water line slope is too steep at abscissa %x% m (the discretisation step should be reduced)",
     "ERROR_RU_CIRC_LEVEL_TOO_HIGH": "Uniform flow cannot be calculated with a pipe under load",
+    "ERROR_NEWTON_NON_CONVERGENCE": "Non-convergence (Newton's method)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCONJUG": "Non-convergence of the calculation of the combined depth (Newton's method)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCRITIQUE": "Non-convergence of the calculation of the critical depth (Newton's method)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCOR": "Non convergence of the calculation of the corresponding elevation (Newton's method)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HNORMALE": "Non convergence of the calculation of the normal depth (Newton's method)",
     "ERROR_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "The slope is negative or zero, the normal depth is infinite",
+    "ERROR_SECTION_PERIMETRE_NUL": "Section: calculation is impossible when perimeter is null",
+    "ERROR_SECTION_RAYON_NUL": "Section: calculation is impossible when radius is null",
     "ERROR_SECTION_SURFACE_NULLE": "Section: calculation is impossible when surface is null",
     "ERROR_SOMETHING_FAILED_IN_CHILD": "Calculation of child module #%number% failed",
     "ERROR_SOLVEUR_NO_VARIATED_PARAMS_ALLOWED": "Solver cannot be used with a modules chain containing variated parameters",
     "ERROR_STRUCTURE_Q_TROP_ELEVE": "The flow passing through the other devices is too high: the requested parameter is not calculable.",
+    "ERROR_STRUCTURE_ZDV_PAS_CALCULABLE": "Parameter \"Crest elevation\" cannot be calculated with this discharge law",
+    "ERROR_STRUCTURE_Z_EGAUX_Q_NON_NUL": "Upstream and downstream elevations are equal but flow is not null",
     "INFO_CALCULATOR_CALC_NAME": "Calculator name",
     "INFO_CALCULATOR_CALCULER": "Compute",
     "INFO_CALCULATOR_CLONE": "Duplicate",
@@ -604,6 +609,7 @@
     "INFO_VERIF_OK": "Crossing criteria are met for all species",
     "INFO_VERIF_VARYING_OK": "Crossing criteria are met for all species and all pass modalities",
     "WARNING_VERIF_OK_BUT": "Crossing criteria are met for all species, but there are warnings",
+    "WARNING_VERIF_VARYING_OK_BUT": "Only certain modalities of the pass are crossable",
     "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s",
     "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group",
     "INFO_VERIFICATEUR_TITRE": "Fish pass verification",
@@ -626,6 +632,7 @@
     "WARNING_GRILLE_ALPHA_GREATER_THAN_45": "Recommendation for fish guiding: α ≤ 45°",
     "WARNING_GRILLE_BETA_GREATER_THAN_26": "Recommendation for fish guiding: β ≤ 26°",
     "WARNING_GRILLE_VN_GREATER_THAN_05": "Recommendation to prevent fish getting stuck on grid plan (physical barrier) or prematurely passing through the grid (behavioural barrier): VN ≤ 0.5 m/s.<br>Above average value calculated here, refer to the recommendations taken from experimental caracterisation of effective speed values.",
+    "WARNING_GRILLE_O_LOWER_THAN_OB": "Total obstruction (entered) is lower than obstruction due to bars only (calculated)",
     "WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2": "This formula is discouraged for a speed that is not between 0.4 and 2 m/s",
     "WARNING_UPSTREAM_BOTTOM_HIGHER_THAN_WATER": "Upstream water elevation is lower or equal to bottom elevation",
     "WARNING_DOWNSTREAM_BOTTOM_HIGHER_THAN_WATER": "Downstream water elevation is lower or equal to bottom elevation",
@@ -656,6 +663,7 @@
     "INFO_PARENT_PREFIX": "%name% #%position%: ",
     "INFO_PARENT_PREFIX_DOWNWALL": "downwall: ",
     "ERROR_VERIF_ERRORS_IN_PASS": "Pass to verify contains errors",
+    "ERROR_VERIF_VARYING_ERRORS_IN_PASS": "Pass to verify contains error at iteration %i%",
     "ERROR_VERIF_MISSING_CRITERION": "Criterion %var_criterion% must be defined",
     "ERROR_VERIF_MR_VMAX": "Maximum speed %V% too high (maximum: %maxV%)",
     "ERROR_VERIF_MR_PVMAX": "Dissipated power %PV% too high (maximum: %maxPV%)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 58d8ec44e..2fe2697aa 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -57,15 +57,20 @@
     "ERROR_REMOUS_PAS_CALCUL": "Aucun calcul possible ni depuis l'amont ni depuis l'aval",
     "ERROR_REMOUS_PENTE_FORTE": "La pente de la ligne d'eau est trop forte à l'abscisse %x% m (il faudrait réduire le pas de discrétisation)",
     "ERROR_RU_CIRC_LEVEL_TOO_HIGH": "Le régime uniforme ne peut pas être calculé avec une conduite en charge",
+    "ERROR_NEWTON_NON_CONVERGENCE": "Non convergence (Méthode de Newton)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCONJUG": "Non convergence du calcul de la hauteur conjuguée (Méthode de Newton)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCRITIQUE": "Non convergence du calcul de la hauteur critique (Méthode de Newton)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HCOR": "Non convergence du calcul de la hauteur correspondante (Méthode de Newton)",
     "ERROR_SECTION_NON_CONVERGENCE_NEWTON_HNORMALE": "Non convergence du calcul de la hauteur normale (Méthode de Newton)",
     "ERROR_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "La pente est négative ou nulle, la hauteur normale est infinie",
+    "ERROR_SECTION_PERIMETRE_NUL": "Section&nbsp;: calcul impossible à cause d'un périmètre nul",
+    "ERROR_SECTION_RAYON_NUL": "Section&nbsp;: calcul impossible à cause d'un rayon nul",
     "ERROR_SECTION_SURFACE_NULLE": "Section&nbsp;: calcul impossible à cause d'une surface nulle",
     "ERROR_SOMETHING_FAILED_IN_CHILD": "Le calcul du module enfant n°%number% a échoué",
     "ERROR_SOLVEUR_NO_VARIATED_PARAMS_ALLOWED": "Le solveur ne peut pas être utilisé avec une chaîne de modules contenant des paramètres variés",
     "ERROR_STRUCTURE_Q_TROP_ELEVE": "Le débit passant par les autres ouvrages est trop élevé&nbsp;: le paramètre demandé n'est pas calculable.",
+    "ERROR_STRUCTURE_ZDV_PAS_CALCULABLE": "Le paramètre \"Cote de radier\" ne peut pas être calculé avec cette loi de débit",
+    "ERROR_STRUCTURE_Z_EGAUX_Q_NON_NUL": "Les cotes amont aval sont égales et le débit n'est pas nul",
     "INFO_CALCULATOR_CALC_NAME": "Nom du module de calcul",
     "INFO_CALCULATOR_CALCULER": "Calculer",
     "INFO_CALCULATOR_CLONE": "Dupliquer",
@@ -628,6 +633,7 @@
     "WARNING_GRILLE_ALPHA_GREATER_THAN_45": "Préconisation pour le guidage des poissons&nbsp;: α ≤ 45°",
     "WARNING_GRILLE_BETA_GREATER_THAN_26": "Préconisation pour le guidage des poissons&nbsp;: β ≤ 26°",
     "WARNING_GRILLE_VN_GREATER_THAN_05": "Préconisation pour éviter le placage des poissons sur le plan de grille (barrière physique) ou leur passage prématuré au travers (barrière comportementale)&nbsp;: VN ≤ 0.5 m/s.<br>Au-delà de la valeur moyenne calculée ici, se reporter aux préconisations tirées de la caractérisation expérimentale des valeurs effectives de vitesses.",
+    "WARNING_GRILLE_O_LOWER_THAN_OB": "L'obstruction totale (saisie) est inférieure à l'obstruction due aux barreaux seulement (calculée)",
     "WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2": "Cette formule n'est pas conseillée pour une vitesse non comprise entre 0.4 et 2 m/s",
     "WARNING_UPSTREAM_BOTTOM_HIGHER_THAN_WATER": "La cote de l'eau à l'amont est plus basse ou égale à la cote de fond",
     "WARNING_DOWNSTREAM_BOTTOM_HIGHER_THAN_WATER": "La cote de l'eau à l'aval est plus basse ou égale à la cote de fond",
-- 
GitLab


From 99859af382874ca7e73563d5471e061e76de18c2 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 16:53:50 +0200
Subject: [PATCH 099/101] Add check-translations.js script to npm e2e commands

---
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 465906635..2d99d91b9 100644
--- a/package.json
+++ b/package.json
@@ -11,8 +11,8 @@
     "ng": "cd . && \"node_modules/.bin/ng\"",
     "postinstall": "./node_modules/.bin/webdriver-manager update --gecko=false --versions.chrome=83.0.4103.39",
     "lint": "npm run ng -- lint",
-    "e2e": "npm run preprocess && npm run ng -- e2e --suite=regular --webdriver-update=false",
-    "e2equick": "npm run ng -- e2e --dev-server-target= --suite=regular --webdriver-update=false",
+    "e2e": "npm run preprocess && node scripts/check-translations.js && npm run ng -- e2e --suite=regular --webdriver-update=false",
+    "e2equick": "node scripts/check-translations.js && npm run ng -- e2e --dev-server-target= --suite=regular --webdriver-update=false",
     "monkeytest": "npm run ng -- e2e --dev-server-target= --suite=monkeyTest --webdriver-update=false",
     "mkdocs": "node scripts/python3.js -m mkdocs build -f mkdocs-fr.yml && node scripts/python3.js -m mkdocs build -f mkdocs-en.yml && node scripts/mkdocs-postprocess.js",
     "mkdocs2pdf": "node scripts/python3.js mkdocs2pdf.py",
-- 
GitLab


From dabfe5f88bacf18b1fbb5920a2c27fc0f2d33f88 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 16:54:06 +0200
Subject: [PATCH 100/101] Fix merge typo

---
 src/app/services/formulaire.service.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/services/formulaire.service.ts b/src/app/services/formulaire.service.ts
index 30c065f96..462b312c4 100644
--- a/src/app/services/formulaire.service.ts
+++ b/src/app/services/formulaire.service.ts
@@ -84,7 +84,7 @@ export class FormulaireService extends Observable {
      */
     public getLocalisedDescriptionFromCalculatorType(type: CalculatorType) {
         const sCalculator: string = CalculatorType[type].toUpperCase();
-        return this._intlService.localizeText(`INFO_${sCalculator}_DESCRIPTION`);
+        return this.intlService.localizeText(`INFO_${sCalculator}_DESCRIPTION`);
     }
 
     /**
-- 
GitLab


From 3e8741e125013678164135867003d2b95796988d Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 2 Sep 2020 16:58:52 +0200
Subject: [PATCH 101/101] Fix bug in #223 - missing Promise return when lang is
 already loaded

---
 src/app/services/internationalisation.service.ts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index 96da8821b..451931f1b 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -117,6 +117,10 @@ export class I18nService extends Observable implements Observer {
             }).catch((e) => {
                 throw new Error(`LOCALISATION_FILE_NOT_FOUND "${f}"`);
             });
+        } else {
+            return new Promise((resolve, reject) => {
+                resolve(); // does nothing but complies with Promise expectation
+            });
         }
     }
 
-- 
GitLab